Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - valexey

Страницы: 1 [2] 3 4 ... 9
16
Общий раздел / Про психологию баранов.
« : Июль 26, 2012, 07:53:51 pm »
Вот тут: http://forum.oberoncore.ru/viewtopic.php?f=82&t=3770&start=40#p73608 товарищ говорит то, о чем явно не разбирается:
Цитата: Info21
Цитата: Геннадий Тышов
Наберите запрос ...
Психология барана в стаде.
Пытаясь то ли унизить то ли оскорбить, то ли еще как-то воздействовать на Тышова он сравнивает его поведение с поведением барана в стаде. Типичный пример наглого дилетанта.

Поясню - судя по последним исследованиям, поведение "барана в стаде" продиктовано исключительно эгоистическими прагматичными соображениями, а именно - стремление в гущу стада существенно увеличивает вероятность выживания оного барана. Таким образом поведение "барана в стаде" вообще говоря, оптимально (если мы оптимизируем выживаемость данного конкретного барана).

Тут как бы одно из двух - либо info21 знал об этом и в этом случае своей репликой говорил Тышову - мол, молодец, все правильно делаешь, твое поведение оптимально, оно максимизирует твою выгоду. Либо, считая что Тышов не прав и делает что-то глупое/не оптимальное, info21 оскорбил барана.

PS. Про исследование можно прочитать тут: http://lenta.ru/news/2012/07/24/sheepgps/

17
Общий раздел / Oberon-07/2012
« : Июль 25, 2012, 06:49:32 am »
Тут говорят свежий Оберон-репорт вышел (см. вложение).

PS. Кстати, заметил что в Обероне-07 (в том числе и этой ревизии) TRUE/FALSE это таки ключевые слова, а вот встроенные типы - все еще предопределенные идентификаторы, таким образом их можно перекрыть локальным типом в данном модуле.
(а раньше, в первом обероне, можно было и TRUE/FALSE перекрыть, так что TRUE = FALSE могло стать истиной)

PPS. Судя по использованию doc-файлов, у Вирта таки венда :-)

18
Общий раздел / Не запускается BB 1.6
« : Июль 25, 2012, 12:47:15 am »
Не запускается свежеустановленный BlackBox 1.6. При запуске вылетает вот такое вот сообщение о ошибке (см. приложенный файл). При этом BB 1.5 запускается прекрасно.

Что это может быть и как это фиксить?

19
Общий раздел / Костыльный программист.
« : Июль 24, 2012, 11:50:32 am »
Перевод взят отсюда: http://habrahabr.ru/post/148378/ (и вообще говоря, лучше читать там)

Цитировать
Автор: Джоэль Спольски
Статья посвящена оверинженирингу и тем, кто предпочитает старые костыльные решения лишь потому, что они очень просты. Перевод под катом.

Джейми Завински – из тех, кого я называю «костыльными программистами». И я произношу эту фразу с изрядной долей уважения. Он из той породы программистов, которые упорно работают, создавая будущее и разрабатывая всевозможные полезные штуки. Т.е. они умеют делать рабочие продукты.
Это именно тот человек, который вам нужен, если ваша команда занимается созданием велосипедов, потому что два его излюбленных инструмента – костыли и WD-40. И он элегантно владеет ими, даже когда ваш велосипед мчится с холма со скоростью миля в минуту. А тем временем другие программисты всё ещё застряли у старта, споря, что лучше: титан или уникальный композитный материал космической эры, который Боинг использовала в своём 787.
Когда вы закончите, у вас получится неряшливый велосипед, но вы можете быть абсолютно уверены, что он взлетит.
Я просто прочёл интервью Джейми в книге Coders at Work Питера Сейбела. Это колоссальный набор интервью с великими программистами, в том числе Питером Норвигом, Гаем Стилом и Дональдом Кнутом. Книга настолько интересна, что я вчера провёл на диване целых 60 минут вместо обычных 30, т.к. просто читал и не мог остановиться. Как я уже говорил, идите и прочтите её.

Вперёд! Я жду.

Примеч. Перев.: Coders at Work – сборник интервью. Известные программисты отвечают на один и тот же список вопросов. Одно интервью – одна глава. Всего 15 глав.

Это то, за что я люблю костыльных программистов. А теперь представьте: вы работаете в команде. Вы страшно заняты, лихорадочно набрасывая код. И тут к вашему столу подходит некто с кружкой кофе в руке и начинает трескотню: мол, вы можете увеличить крутость вашего приложения на целых 34%, если воспользуетесь многопоточными подразделениями COM. И это даже не так уж сложно, поскольку он наваял пачку темплейтов, и всё, что вам нужно сделать – воспользоваться множественным наследованием, унаследовавшись всего от 17 темплейтов, каждый из которых принимает в среднем четыре аргумента, а дальше вам останется только написать тело функции. Вам покажут просто гигантский список множественного наследования кучи классов и, кхм, многопоточных подразделений COM. И ваше сознание уплывает, и вы перестаёте понимать, о чём, чёрт возьми, болтает этот хмырь. Но он просто не хочет уходить, и даже если уйдёт, то лишь затем, чтобы, вернувшись в свой офис, написать ещё больше умных классов, полностью основанных на множественном наследовании без единой реализации. И когда вся конструкция с треском рухнет, именно вас посреди ночи попросят прийти и разобраться, потому что он уже будет на какой-нибудь долбанной конференции по паттернам проектирования.

А костыльный программист не побоится сказать: «Множественное наследование – отстой. Выкинь его. Просто выкинь».

Как видите, все остальные слишком боятся показаться идиотами, признав, что просто не способны одновременно удерживать в голове достаточно фактов, чтобы заставить работать множественное наследование, или темплейты, или многопоточность, или COM, или ещё что-нибудь из этих вещей. Поэтому они боязливо соглашаются с любым модным программистским безумием Архитектурных Астронавтов, которые выступают на конференциях, пишут статьи и книги, и настолько продвинутее, чем мы, что даже не осознают, что продвигаемые ими штуковины слишком сложны для нас.

А вот что говорит Завински о Netscape: «Выпустить продукт в срок нам позволили решения навроде не использовать C++ и многопоточность».
Позже он писал email-клиент в Netscape, но команда, ответственная за непосредственно отображение сообщений на экране, так никогда и не выпустила свой компонент. «От них требовался большой пустой прямоугольник в центре окна, где мы могли бы просто отображать текст. Но они подошли к проекту слишком теоретизированно, попытавшись взглянуть на вещи со стороны DOM/DTD. “Хм, ну… нам нужно всего лишь ввести дополнительный слой абстракции, и делегировать делегата делегата, после чего символ наконец появится на экране”».

— Похоже, оверинжениринг сильно вас раздражает, — заметил Питер.

— Да, — ответил Завински. – В конце дня просто выпустите грёбаный продукт! Конечно, переписывать код, делая его чище – это круто, и с третьего раза он действительно станет красивее. Но цель-то не в этом. Вы здесь не для того, чтобы писать код, а для того, чтобы выпускать продукты!

Мой герой.

Завински не заморачивается кучей юнит-тестов. Они «выглядят замечательно… в теории. Если вы избрали неторопливый темп разработки – это ваш путь. Но, взглянув на “необходимо полностью создать с нуля за шесть недель”, ну… я понимаю, что это нереально без какой-нибудь урезки. И выбрасывать я собираюсь то, что не слишком важно. И юнит-тесты не критичны. Если их не будет, пользователю даже в голову не придёт жаловаться на их отсутствие».

Прежде чем возмущаться, вспомните, что Завински был в Netscape, когда они изменяли мир. Они думали, что у них есть всего несколько месяцев, прежде чем кто-то другой снимет все сливки. Много важного кода написано в таком стиле.

Костыльные программисты – прагматики. Завински популяризовал наставление Ричарда Габриэля «Чем хуже, тем лучше». На 50% идеальное решение, которое уже есть у людей, решит больше проблем и дольше проживёт, чем 99% идеал, которого нет ни у кого, потому что он валяется в вашей лаборатории, где вы до бесконечности полируете чёртову штуковину. Выпуск – это фича. По-настоящему важная фича. Она обязана быть у вашего продукта.

Принцип, который хорошо известен всякому костыльному программисту: любая кодерская технология, которая всего лишь чуточку переусложнена, похоронит ваш проект. Костыльные программисты стремятся избегать C++, темплейтов, множественного наследования, многопоточности, COM, CORBA и уймы прочих технологий, чьё применение выглядит оправданным, если думать об этом много и долго, но которые чуток сложноваты для человеческих мозгов.

Конечно же, формально нет ничего плохого в том, чтобы попытаться написать на C++ многопоточный код в Windows, используя COM. Но это трахотня с катастрофическими багами, многие виды которых возникают только при определённых временных сценариях, и всё потому, что наши мозги, действительно, не слишком хороши для работы с таким кодом. Посредственные программисты занимают оборонительную позицию, не желая признавать, что они не способны писать такой сверхусложнённый код. И они позволяют хвастунам из своей команды перепахивать проект унылой темплейт-архитектурой C++, потому как иначе им придётся признать, что они недостаточно продвинуты для использования того, что сам Спок признал бы идеальной программерской техникой.
Костыльным же программистам насрать, что вы о них думаете. Они – приверженцы простых и лёгких в использовании инструментов, которые позволяют высвободить дополнительные мозговые мощности, направив их на создание новых фич для пользователей.

Но есть одна загвоздка, на которую стоит обратить внимание: костыльные программисты – это IT-эквивалент симпатичных парней. Да-да, тех восхитительно выглядящих щёголей, которые могут выйти из дома непричёсанными, с нечищеными зубами, во вчерашней грязной одежде — и всё равно выглядеть блестяще по самой своей природе. Вы, мой друг, не можете показаться на людях с растрёпанными волосами, иначе распугаете всю округу.
Потому что вы не симпатичный парень.
У костыльнных программистов достаточно таланта, чтобы справиться со всей этой хренью. Они достаточно хороши, чтобы выпускать продукт, и мы простим, если они не напишут юнит-тестов или даже поксорят указатели “Prev” и “Next” в связанном списке, дабы высвободить дополнительно 32 бита памяти. Потому что они достаточно хороши, чтобы с этим справиться.

20
Общий раздел / Web in BB.
« : Июль 23, 2012, 06:05:47 pm »
Неоднократно народ замечал что современные браузеры это странные вундервафли, и вообще говоря можно было бы сделать все проще. Ну, например на базе ББ в виде составного документа визуализировать информацию с сайтов.

Предлагаю попробовать решить частную задачу: как форум (например наш) мог бы выглядеть в ББ (то есть не встраивать рендеринг HTML в ББ, а просто в ББ прихоит вся необходимая информация - какие топики есть, какие в них сообщения и так далее, наша задача придумать правильный интерфейс для всего этого в рамках ББ).

То есть как визуально представить форум в BlackBox'e (не забываем про элементы управления/навигацию). Концепты (в виде набросков составных документов например, код пока никакой не нужен конечно же, либо вообще в виде картинок/скриншотов) приветствуются.

21
Общий раздел / Постотпускное.
« : Июль 23, 2012, 03:22:08 pm »
Я, как вы возможно заметили, таки вернулся. Вернулся с Соловков. Отдыхал, так сказать, от программинга во всех его формах. Немного вспомнил физику прочитав три книжечки Фейнмана. Посмотрел на петроглифы беломорские. Приятно в общем.

В процессе путешествий и чтения появились некоторые мысли. В этой теме буду потихоньку их выкладывать (по мере того как буду вспоминать). Возможно тут будет много цитат из Фейнмана (конечно же вырванных из контекста и проинтерпретированных мною в силу моей испорченности). :-)

Итак, мысль первая: все это программирование - фигня. Проще надо быть.

22
Общий раздел / Про эго.
« : Июль 23, 2012, 03:17:06 pm »
Там просто идеалогия важнее истины :-)
Точнее, там истина важнее эго недоучек.
Кстати, по моим наблюдениям самое раскормленное эго у физиков-теоретиков (у экспериментльных физиков все много скромнее). С их эго может сравниться, пожалуй, лишь эго математиков которые занимаются теоркатом, то есть такие суровые не прикладные математики. (возможно у философов тоже эго вполне не маленькое, но с этой братией я общался крайне мало, а вот общения с математиками и теорфизиками у меня достаточно).

Отлично помню, что это самое эго у теорфизиков начинают растить еще с института. Нам упорно внушали что теорфизик это, так сказать, особый тип ума, чуть ли не высшая раса. Прикладных математиков, кстати, мы называли не иначе как приматами, они рассматривались лишь как считалки. А уж программисты/it'шники это было вообще что-то на уровне уборщицы в выстроенной иерархии профессий.

И это не только мои наблюдения.

Замечу, что я ни разу не слышал чтобы программист принебрежительно высказывался о работе/результатах работы физика (не коде который физик написал чтобы что-то посчитать, а именно о содержательной части его работы, именно о физике) и пытался бы его поучать что и как ему делать следует, а что делать не следует. А вот наоборот, когда физик свясока высказывается о работе программиста и пытается ему что-то там насоветовать - сплошь и рядом.

Так вот, на форуме оберонкоре я вижу сплошь и рядом толстое эго в сочетании с вопиющей некомпетенцией в обсуждаемом вопросе. Истина там и рядом не пробегала.

23
Общий раздел / Linux on ARM64
« : Июль 07, 2012, 08:02:54 pm »
А вот и патчи для поддержки линуксом 64битного ARMa подоспели: http://www.opennet.ru/opennews/art.shtml?num=34285

x86 придется и на серверах потесниться :-)

24
Общий раздел / D в GCC
« : Июль 04, 2012, 12:52:47 am »
Появилась новсть про реинтеграцию фронтенда D в набор компиляторов gcc: http://www.linux.org.ru/news/gnu/7941093

Для тех кто не в курсе что такое D (кстати, в википедии про D написано не корректно):
Цитировать
D позиционируется как «системный язык программирования высокого уровня» и предоставляет как высокоуровневые возможности, включая присущие динамическим языкам, так и позволяет при необходимости задействовать характерные для системного программирования низкоуровневые особенности, включая ручное управление памятью. В известной степени D можно считать наследником C++, избавленным от неоднозначностей.

Так, средства метапрограммирования имеют ясный синтаксис и не порождают нечитаемых сообщений об ошибках. Язык поддерживает концепцию модулей. Скорость компиляции и сборки кода настолько высока, что D можно использовать вместо интерпретируемых языков (скрипты).

D не накладывает жёстких парадигменных ограничений и позволяет записывать код в обобщённом, объектно-ориентированном, функциональном и процедурном стилях, а так же их комбинации. Штатно предоставляются полные средства интроспекции. Дополнительно компилятор несёт в себе нечто вроде интерпретатора языка, позволяющего динамически добавлять/изменять методы во время исполнения.

Имеются средства прямого вызова функций, реализованных на языках C и C++.

В целом, D представляется интересным для программирующих пользователей, нуждающихся в современных выразительных средствах, но не имеющих возможности изучать все особые случаи C++.

25
На хабре появилась статейка о проблемах при программировании AVR'ок: http://habrahabr.ru/post/147025/

По нашему опыту могу скзать что примерно то же самое (хотя и не столь масштабно) касается и любых других микроконтроллеров (msp430, 8051 и так далее) - средства разработки там отстают от десктопных/серверных систем примерно лет на 20-30-40. Там не соблюдаются стандарты, там у каждой среды разработки свой диалект языка (например диалект Си), там не работает отладчик (а логи естественно вести нельзя, ибо некуда), точнее часто работает не так (показывает например что переменная как была нулем, так и осталась, но при этом на самом деле переменная поменялась). Да, и средства разработки там стоят каких-то жутких денег (за такое то убожество). Какой-нибудь IAR стоит больше тысячи баксов в не самой богатой комплектации (при этом он вполне глючный, требующий хардверного ключа для запуска и конфликтующий с другими официально купленными версиями этого же IAR'a (например для другого микроконтроллера)). Код естественно пишется не переносимый.

26
Общий раздел / "лишняя" секунда.
« : Июль 01, 2012, 12:42:27 pm »
Тут пишут страшное - из за корректировки времени на секунду (добавили 1 секунду) многие сервера  зависли или начали вести себя странно:

http://www.opennet.ru/opennews/art.shtml?num=34234
Цитировать
Перевод мировых атомных часов на одну секунду привёл к массовому зависанию серверных приложений


В полночь с 30 июня на 1 июля с целью синхронизации с астрономическим временем Земли эталонные мировые атомные часы были приостановлены на одну секунду, таким образом в последней минуте оказалось 61 секунда, а на некоторых часах можно было наблюдать волшебное время "23:59:60" или два раза по "23:59:59". Подобный шаг привёл к непредвиденному коллапсу многих приложений и сервисов. Проблема была вызвана зацикливанием из-за неготовности обработать появление лишней секунды. В большинстве систем, на которых проявилась проблема, была настроена синхронизация точного времени по NTP.

В итоге, испытывали проблемы с работой некоторые сайты (в том числе Reddit, LinkedIn и Mozilla), наблюдалось массовое зависание серверных приложений (в основном приложения работающие в Java VM, такие как Hadoop и Cassandra), начинала съедать все процессорные ресурсы СУБД MySQL, отключились VPN-туннели на базе OpеnVPN, зависали Linux-серверы с вручную собранным ядром.

В большинстве случаев администраторы были вынуждены перезапустить зависшие серверы. Тем не менее, для стабилизации некоторых приложений, начавших потреблять излишние ресурсы CPU, достаточно было вручную выставить корректное время через команду "date `date +"%m%d%H%M%C%y.%S"`". Для некоторых систем мог дополнительно потребоваться останов ntpd на время выполнения данной команды и перезапуск пожирающих CPU приложений. Интересно, что в системе отслеживания ошибок Red Hat информация о возможной проблеме была опубликована ещё в 2009 году и исправлена в RHEL 5.4 (дополнительно было опубликовано уведомление, что RHEL не подвержен проблеме). В марте 2012 года в ядре Linux была выявлена и исправлена проблема с зависанием при появлении лишней секунды на некоторых системах с таймером высокого разрешения (в большинство дистрибутивов данное исправление вошло, поэтому о зависании Linux-серверов в основном сообщают пользователи систем с необновлённым ванильным ядром, собранным вручную).

При этом, добавление лишней секунды для синхронизации времени с периодом вращения земли производится не в первый раз, прошлое прибавление состоялось 31 декабря 2008 года и обошлось без глобальных проблем. В прошлом году внимание к проблеме пыталась поднять компания Google, поделившись своим методом устранения негативного эффекта - разбиеним лишней секунды на большой интервал корректировки, с прибавлением каждый раз по миллисекунде, что приведёт к плавному размыванию секунды по большому отрезку времени.

Впрочем, наш форум крутится на линуксе (debian squeeze) и никаких проблем, как видим, не последовало.

27
Общий раздел / IE
« : Июнь 26, 2012, 04:43:17 pm »
Господа, а кто-нибудь пользуется сабжем? Точнее на наш форум этой штукой кто-нибудь заходит из не анонимусов? И если вдруг да, то какой версией пользуетесь?

А то тут такое дело - у меня может случиться отпуск и от нечего делать могу начать переделывать форум. Ну и, невзначай, он может получиться в строгом соответствии со стандартами html, следовательно IE работать не будет :-)
(тем более что мне даже и потестировать то не где - IE под макось давно не поставляется, да и под линуксом с IE беда)

28
Вот тут предлагают оценить наглядность классической реализации втавки в avl-дереве (видимо на паскале) и "реализации" её же в виде схемы на драконе. Утверждается что драконовской схемой нагляднее получается.

По моему же мнению, драконосхема слишком разлапистая получилась и смотреть её не удобно (мне лично приходится скролить как по вертикали так и по горизонтали, в отличае от обычного кода. И это при том, что в обычном коде Вирт не произвел декомпозицию на подпроцедуры, чтобы в каждый момент времени на экране текущая процедура помещалась полностью).




29
Общий раздел / Linux & nVidia
« : Июнь 24, 2012, 05:18:21 pm »
Дык, есть же альтернативные драйвера для видеокарт Нвидиа с открытым кодом. От чего весь сыр-бор?
Весь сыр-бор, из за того, что nvidia в отличае от интела и amd не публикует спецификации на протокол общения с их железякой. То есть любой желающий написать драйвер для нвидивской карточки будет вынужден заниматься реверс-инженирингом протокола общения с ней. Что есть очевидный маразм ибо протокол не содержит обычно него-либо интересного, никакого ноу-хау там нет.

Ну а закрытый драйвер нвидии поддерживается их рук вон плохо самой нвидией.

Между прочим, отсутствия спек на железяку и вменяемого открытого драйвера уже привело к тому, что нвидия упустила заказ на примерно 10 000 000 GPU (сумма заказа порядка 250 000 000$-500 000 000$). В результате выбор был сделан в пользу AMD видеокарт. http://www.opennet.ru/opennews/art.shtml?num=34168

Кроме того, выступление Линуса не прошло бесследно. В нвидии к нему прислушались и озаботились собственным имиджем. Теперь они ищут пути улучшения своей "кармы" в сообществе: http://www.opennet.ru/opennews/art.shtml?num=34175

30
Общий раздел / Закон Конвея
« : Июнь 20, 2012, 02:45:39 pm »
http://artamonov.ru/2012/06/20/conways-law/

Цитировать
…Джон Конвей когда-то заявил что:

Цитировать
Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

что можно перевести как:

Цитировать
Организация которая разрабатывает систему ... вынуждена делать систему по структуре повторяющую структуру коммуникаций внутри организации

В общем если в компании разрабатывающей ПО есть 3 отдела, которые занимаются этим проектом, то он, с точки зрения архитектуры, будет представлять из себя 3 больших модуля. Или если у вас есть 2 офшорные команды, то и проект будет состоять из двух частей.

Причем если эти команды тесно общаются, например устраивая ежедневные skype митинги и вообще, то и модули будут тесно связаны — например единая сборка, репозиторий, документация, трекер, но разные библиотеки лежащие рядом. Но если общаются лишь переписываясь по email, то получите связь через какой нибудь RESTful API. Десятки раз видел подобные примеры.

Или, как сказал Эрик Реймонд:

Цитировать
Если у вас есть 4 команды разрабатывающие один компилятор — вы получите компилятор работающий в 4 прохода (4-pass compiler)


И похоже, что закон действительно работает.

Страницы: 1 [2] 3 4 ... 9