You are viewing [info]metaclass's journal

Заповедник репрессивной психиатрии
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in metaclass' LiveJournal:

    [ << Previous 20 ]
    Monday, May 28th, 2012
    10:01 pm
    Кстати, о рукожопии
    У меня такое ощущение, что большая часть проблем вида "сделали как попало" проистекает не из некомпетентности непосредственных исполнителей, а из неправильной организации труда.
    Вот смотрю я на строителей - это же трындец, насколько неэффективно они работают - чо-то туда сюда бегают, ищут инструменты, делают опалубку из подручного говна и палок, срезают углы и делают как попало, календарных планов работы у них нет в принципе.

    При том, скажем, сам по себе вот сидел делал трубы товарищ - ну более-менее нормально сделал, если б ему еще дать бабла и времени и убрать мозгоебство - так и вообще было бы идеально.
    9:54 pm
    Ебаный стыд
    Онлайнер продолжает разжигать социальную ненависть
    http://dengi.onliner.by/2012/05/28/mylife-3/
    из коментов:
    проблема только в том, что сантехник или хирург не может через инет со штатами работать.

    Пусть эти сантехники, врачи и учителя, во-первых, выпрямят руки, во-вторых, для них УЖЕ есть нормальная рыночная ниша - обслуживать не в сраных поликлиниках и госконторах капремонты делать за копейки или школах курящих-детей-долбоебов учить, а оказывать те же самые услуги тем, кто можыд заплатить, похер, легально-нелегально, главное чтобы услуги были.

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

    А уж на рукожопие строителей я тут за неделю насмотрелся по полной программе. Если сравнивать с программистами - то это уровень рукожопого турбо-паскальщика из НИИ Автоматизации Сельского Хозяйства.

    PS: Есть в этом всем проблема, связанная с дилеммой заключенного и рынками с асимметричной информацией - отсутствие внятной информационной связности, обратных связей и тому подобного приводит к вырождению рынка подобных услуг, т.к. выгоднее становится делать как можно дешевле, а покупатели не знают, как отличить правильные услуги от неправильных.
    Собственно условием адекватного функционирования является нормальный (не "па-знакомству у родственника сестры мужа жены") обмен информацией и изгнание из него корявых поставщиков и покупателей услуг.
    Saturday, May 26th, 2012
    9:21 am
    Правильные условия труда для инженеров.
    http://www.slate.com/blogs/quora/2012/05/24/what_makes_a_good_engineering_culture_.html
    Полезное чтиво.
    И что-то я там не вижу ни ГОСТов, ни ISO9000, ни почасовой оплаты, ни мозгоебли со стороны анально-озабоченных менеджеров и прочей атрибутики "настоящей крупной фирмы".
    PS: Там есть раздел про правильные программные абстракции. Интересно, как это на собеседовании выделять людей, способных на построение этих самых правильных абстракций?
    Thursday, May 24th, 2012
    10:27 pm
    Человеконенавистническое
    Видимо, капремонт с заменой водопровода выбрал мой лимит общения с посторонними людьми и вообще терпимости на несколько лет вперед.
    Сейчас вспомнил еще одну ненавистную тему: веломобили.

    Однажды, в конце 90х, по дороге на военку утром я увидел деда на ужасном веломобиле, который стоял рядом с автобусом на котором я ехал, на перекрестке брилевская-аэродромная. В час пик. Крутил педали. В открытом веломобиле, дыша выхлопными газами
    Это печальное и унизительное зрелище настолько сломало мне мозг, что я до сих пор не могу его забыть.
    Надеюсь, сейчас найдется какое-нибудь правило в ПДД, по которому такое чюдо уберут с дороги, конфискуют и уничтожат.
    ЗЫ: я счетаю, что веломобили это советское дрочество времен журнала "Моделист-Конструктор", построенное из спизженного на родном заводе металла и сваренное в гаражах за бутылку. И делают их те же бородатые длинноволосые представители советской интеллигенции, которые работают в НИИ ГиТ, ходят в походы, поют песни всяких галичей и прочих высотских под гитару, организуют ФИДО, собирают дистанционные управления телевизоров из веревочек и занимаются прочей противоестественной содомией, замаскированной под творчество.
    9:59 pm
    Про ГОСТы
    в частности, в электронной промышленности:
    http://ru-radio-electr.livejournal.com/1023300.html
    http://nicka-startcev.livejournal.com/1707894.html
    В комментариях пафосные "специалисты" (opasno! сайт на народ.ру, самиздат, советская интеллигенция, триз, бороды, КСП) рассуждают об "уставах, написанных кровью", "приборе в баке истребителя" и тому подобном. На минуточку - речь идет о промышленности в стране, проебавшей фобос-грунт и суперджет, а электронику бытовую большей частью покупающей в китае.

    Я затрудняюсь сказать, как я к этому отношусь. С одной стороны, я дичайше люблю наводить порядок и вести полную проектную документацию было бы крайне ок. С другой: за то время, которое нужно на изучение соответствующих стандартов и приведение документации в божеский вид, я три раза проект перепишу, из них один раз на хаскеле.
    И еще, насколько я помню по лабам в универе, которые принимала одна крайне озабоченная ГОСТами тетушка - на реальные данные в документации всем пофиг, главное, чтобы внешне было все так, как заповедано - подписи в нужных местах, нужный шрифт и тому подобное анально-бюрократическое рабство.
    Т.е. мой личный опыт с любой официальной документацией показывает, что это все дикое совковое уебанство, которым в разных НИИГиТ прикрывают отсутствие мозгов и нежелание/невозможность что-либо делать, и создание псевдорабочих мест для людей, которым место на пенсии давно.
    С другой стороны, без строгой документации малореально оформить нормальную коммуникацию между разработчиками на крупных проектах - т.е. где пару лет только проектирование ведется коллективом из нескольких человек.
    Или же я все упустил и такие тормоза остались тоже только в совке, а в норме даже сложные вещи быстро проектируются в соответствующих CAD специально обученными людьми и тут же отправляются на производство?
    Wednesday, May 23rd, 2012
    9:56 pm
    Стены из подручного говна и палок

    Борюсь с искушением заделать эту стену самостоятельно (вроде бы ее строители сами заделают или по определению, или за совсем небольшие деньги). Меня зрелище бегающих туда-сюда и вечно спешащих строителей напрягает.
    8:43 pm
    Гигантская Писька-Змея, король писек, или аксессуары для софта на питоне
    Как известно, у меня есть одна собственная прога на питоне и сейчас я, несмотря на объективные возражения ребе айседа, долблюсь с софтом, написанным на нем же (аналогов нет, на кложури я за разумное время это не перепишу, хотя собираюсь).
    Чтобы духи рукожопия были благосклонны ко мне, пришлось совершить ритуальную покупку во имя Гвидо ван Россума:
    Tuesday, May 22nd, 2012
    4:41 pm
    кластерфак
    ТАБЫ+ПРОБЕЛЫ!
    Открыл петонофайл, сохранил, проект накрылся женскими первичными половыми признаками и прочими органами.
    2:11 pm
    Как страшно жить или Рукожопые Питонасты
    Вырывать руки за такую обработку ошибок. С корнями из жопы вырывать:

    Welcome to GNU Radio Companion 3.6.0
    Error: 'options'
    Read more... )
    File "d:\programm\gnuradio\lib\site-packages\gnuradio\grc\base\odict.py", line 34, in __getitem__
    return self._data[key]
    KeyError: 'options'
    Error: 'options'
    Вы думаете, как ошибка с таким высокодуховным и легкочитаемым сообщением лечится? А вот так:
    set GRC_BLOCKS_PATH=D:\programm\gnuradio\share\gnuradio\grc\blocks

    Метапрограммирование во все поля. Ключ 'options' - это ссылка на файл лежащий по вышеуказанному пути, с расширением xml, но вместо того, чтобы показать ошибку "файл не найден" "ошибка пути" или "проверьте переменные окружения", оно валится с KeyError.

    Нашел сравнением окружения процесса python.exe на машине где "все работает" и где "не работает".
    Причем там где не работает - из программы даже выйти нельзя. Потому что падает оно в конструкторе формы и она остается недоделанной. По моему, это рукожопие чудовищное.
    10:49 am
    Да, кстати, о MS Visual Studio 2010 C++ runtime
    В микрософте, похоже, совсем поехали крышей и в 2010 студии райтайм больше не живет в WinSxS, не использует манифесты для поиска зависимостей(?) и не выводит сообщение в event log винды, когда его не хватает.
    Кроме того, я что-то не смог найти, где его скачать.
    10:10 am
    Дети гвидо-ван-россума и ехидны
    винда, easy_install lxml
    Конечно же, самоочевидное действие - это скачать исходники и пытаться их собирать, надеясь на наличие Visual Studio и ругаясь на отсутствие девелопмент пакетов от libxml.
    Это еще не говоря о том, что я ставлю питонософт по инструкции, которую авторы даже не пытались проверять ее на чистой машине.

    ЗЫ: Ну и рукожопики, простите меня. Валится исключение при импорте. Перехватывают, показывают сообщение вида "проверьте свой environment" и все. Сообщение от исключения показывают _в заголовке диалогового окна_. Пошел я в консоль, быстрее будет разобраться.

    PPS: Ну питонасты, ну капец: Read more... )
    12:18 am
    Белорусский язык
    Цэтлікі: гамон, пекла, бабы, гарэлка, чарка, шкварка, садамія, платы, кароўнікі, рапухi, чарвякi, павукi.
    Цэтлікі. Цэтлікі. Цэтлікі. Цэтлікі.
    Sunday, May 20th, 2012
    4:04 pm
    Безумие, содом, угар, udev, линуксы
    праздник копрофагии в комментах

    В каком состоянии сознания можно советовать читать вывод системных логов для анализа подключения USB устройств, при том, что есть более логичные методы, я затрудняюсь ответить. Завтра какой-нибудь Ли Сунь Хуй поменяет флаг в настройках сислога и вместо логов подключения туда будут выводиться труды Мао Цзе Дуна, скачиваемые по п2п протоколу с распределенного китайского ботнета.

    ЗЫ: там еще и udev нету. Ну ежики, кактус.
    10:46 am
    FIR/IIR фильтр
    Тормозит, конечно, безжалостно - тут вам не здесь, сплошные мультиметоды да персистентные структуры.
    Read more... )
    3:18 am
    Заборы, коровники, clojure, DSP
    Пытался лечь спать, но два часа во сне решал проблему соединения блоков обработки сигналов. Пришлось встать и доделать. Под катом тестовое издевательство над DSL.
    Read more... )
    Соединения можно еще упростить, если автоматически для каждого блока создать цепи с именами "блок-выход", а для входов ссылаться на них.
    Каждый блок представляет собой объект (вернее, мап) с полями, где лежат функции типа "создать внешние ресурсы", "грохнуть внешние ресурсы", "начальное состояние", "рассчитать новое состояние и выходы, исходя из значений текущего состояния и входов" "закончились ли данные".
    Пока из блоков сделаны только "чтение файла" "запись файла" "генератор синусоид" "блок с математической функцией внутри". Надо еще блок типа "фильтр" прикрутить, с коэффицентами прямой и рекурсивной части в качестве параметров.
    Самая мякотка это функция combine-blocks - она разбирает переданные ей блоки на составные части и делает из них один большой блок, соединяя входы и выходы с помощью connections.

    Еще я собираюсь во все атомарные блоки прикрутить функцию типа "сгенерировать уютную сишечьку для каждой составной части", а в combine-blocks сунуть объединение этих частей.
    Saturday, May 19th, 2012
    10:33 pm
    А вот кстати социально-стартапное
    https://closedcircles.com/ - какой-то гибрид IRC, скайпочатика, гугло+ и мейллистов с тредами.
    Пошел туда, а там на #programming тоже сплошное FP, народ рассказывает про Scheme и Clojure в продакшене и тому подобное. Не совсем понял от входа, как тредами пользоваться, но вообще физический смысл в проекте, кажется, есть.
    10:59 am
    Хаскельно-кложурное
    А вот, тащемта, можно ли и каким образом на хаскеле можно сделать обобщенную функцию такого вида:

    На вход подается список функций разных типов, но общей структуры вроде такой:
    f :: state -> input -> (new_state,output) (такая функция описывает блок обработки сигналов, с внутренним состоянием, типа фильтра).

    На выходе наша обобщенная функция должна выдать нечто такое:
    f_all :: state_all -> input_all -> (new_state_all,output_all), где state_all,input_all,output_all - объединение (кортеж) соответственно из всех состояний, входов и выходов переданных на вход функций. То бишь наша функция, из N блоков обработки сигналов делает 1 блок, входы которого - это входы всех составляющих блоков, выходы - выходы составляющих блоков и состояние аналогично.

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

    Далее там еще есть необходимость сгенерировать описание соединений (т.е. функция, которая из state_all и части свободных входов генерирует input_all), но над этим пока думать влом)

    PS: в общем, забавность ситуации в том, что строгая типизация помогла бы находить ошибки в блоках и соединениях, но с ней возникает необходимость использовать гетерогенные списки, SYB и прочую олеговщину. Причем я в это утыкаюсь регулярно - то с оперденями, то вот сейчас с обработкой сигналов.
    Thursday, May 17th, 2012
    5:03 pm
    Откуда эта уверенность?
    Все мои комментаторы, как один, утверждают, что работать в конторе, ориентированной на рынок РБ, не следует. И что, если я сменю работу, мне тут же дадут личного шофера, секретаршу, 100500 денег зарплаты и домик в Ратомке.
    Внимание, вопрос: откуда люди так в этом уверены?
    Открываем dev.by: http://dev.by/salaries/e~3/c~131/
    Смотрим .NET (как наиболее мейнстримное, из того, что я хорошо умею): Средняя зарплата 2000, максимальная 3250. По-моему, это как-то совсем немного.
    Если рассматривать вариант одеска - это, если работать в белую, тупой напряг с бюрократией, но даже без этого - это нужно сначала год там себе нарабатывать проекты и прочее, то бишь опять же "две работы" - сначала днем ебошить тут, чтобы прокормить семью, потом вечером на одеске общаться с клиентами и потом ночью работать.
    3:29 pm
    Тут задают вопрос "откуда ад заборов и коровников"
    А давайте я вам расскажу, откуда берутся ебанутые требования к разработчикам и вообще черви и жабы в ИТ. На примере одного простейшего use-case.
    Есть, значит, проект на дотнете. Как положено, его исходники лежат под контролем версий (меркуриал). И я, всего лишь, желаю следующего:
    1) Проект собирается на машине, где стоит только вижуал студия (а в идеале - только .NET фреймворк)
    2) При сборке получающиеся либы имеют версию вида major.minor.номер-релиза.vcsrevision. Т.е. проставить версии исходя из номера ревизии в меркуриале.
    Вполне себе нормальное желание - пришел к клиенту, глянул на свойства файла и видишь что за версия, итд.

    Так вот, реализация этого дела с уверенностью заводит в один из следующих тупиков:
    1) cmd-файлы, вызывающие комманд-лайн меркуриал и генерирующие файлы AssemblyInfo.cs. При дальнейшем развитии получается фреймворк для билда из cmd-файлов, безальтернативно. Ад кромешнейший.
    2) вижуал студия с доставленными 100500 расширениями выполняющими именно это, но каждое из которых не умеет чего-нибудь.
    3) NAnt с 100500 вручную написанными скриптами сборки, которые нужно синхронизировать с csproj
    4) NAnt, который вызывает MSBuild для сборки, т.к. csproj - это на самом деле скрипты MSBuild
    5) то, что я пытался сейчас сделать: только MSBuild. Из соображений "не разводить зоопарк". Ага, да.

    Значит последовательность действий с MSBuild:
    1) Ищем интеграцию MSBuild с меркуриалом, в гугле. Находим: http://msbuildhg.codeplex.com/
    2) Качаем. MSBuild.Mercurial-1.1.2.msi. Хер знает что и куда это ставит, поэтому ставим в виртуальной машине. Смотрим, что реально это два файлика MSBuild.Mercurial.dll, MSBuild.Mercurial.tasks и примеры с документацией.
    3) Начинаем разбираться в примере, как установить версию. 125 строк, 4 кб xml-файл HgVersion.targets.
    4) Файл зависит от MSBuild Community Tasks. Оттуда используется _ОДНО_ описание таска - AssemblyInfo, которое используется для генерации файла AssemblyInfo
    5) Ищем MSBuild Community Tasks в гугле: http://msbuildtasks.tigris.org/. Оказывается, проект переехал на гитхаб: https://github.com/loresoft/msbuildtasks
    6) Идем туда. Оказывается, чтобы поставить - нужен Package Manager Console. Являющийся частью NuGet. Скачать просто dll и tasks - нельзя.
    7) Думаю - попытаюсь собрать самостоятельно. Качаю исходники, распаковываю, запускаю:
    C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe Master.proj
    Хрен там. Для сборки ТОЖЕ нужен NuGet: loresoft-msbuildtasks-37dae23\Source\.nuget\nuget.targets(51,9): error : Unable to locate ', ".nuget"))\nuget.exe'

    На этом я заябываюсь и иду писать пост в ЖЖ. При этом самодельная реализация того же на бат-файлах - 3 строки бат файла и 10 строк утилитка на дотнете(которую можно заменить awk из GNUWin32, по идее).

    Короче, я не знаю, какие сделать из этого выводы. Наверно, проще в корне сборочных скриптов положить файл readme.txt и написать, в какой последовательности что исправлять и что должно стоять на машине, чтобы собрать проекты, потому что попытка сделать "как положено" (системы сборки, общепринятые инструменты) уводит в дебри с первого же шага.
    2:35 pm
    А бывают ли психи типа меня?
    Вопрос: где взять еще одного психа вроде меня? Тащемта задача: разделить мои рабочие обязанности на двух человек. Основная обязанность - помнить 100500 технологий, 100500 проектов и в случае необходимости доставать/искать подходяшие знания и формулировать их в пригодной для использования форме, либо реализовывать самому. А так же поддерживать порядок в процессах, чтобы умные ничего лишнего не наделали.

    Т.е. там конкретные кложурь/F#/Haskell/Python/C/Linux/Windows/IP/Networking/C#/.NET/NAnt/MSBuild/FPGA/DSP/ад/заборы/коровники/пауки-розеточники/ежихи-из-дурдома знать в подробностях не обязательно, что-то одно из этого и смежную математику и физику - крайне желательно, уметь самостоятельно разобраться в произвольной смежной научно-технической области и не выебать мне мозги вопросами, которые описаны в гугле и батрекере - обязательно.

    Я так понимаю, подобный обобщенно-универсально-поверхностный стиль работы давно не принят и не котируется, поэтому смысла искать нет, а есть смысл брать любого, кто умеет читать и может объяснить что такое a=1; b=a+1 на любом подходящем языке и далее ему вправлять мозги?

    Или же брать вообще ничего не знающих, но еще не заебавшихся самостоятельно учится студентов, но это сразу надо каких-нибудь первокурсников-выпускников Лицея БГУ и тому подобного.

    Есть, впрочем, альтернатива - отдать детей в рабство бабушке и заставить этим заниматься 24 часа в сутки жену, т.к. у нее как раз профильное образование (ФПМ+бухгалтерия), а выедание мозгов дома не считается. Но с точки зрения рисков это печально, так как тогда в машине или самолете можно убиться двум ключевым сотрудникам сразу, а не по одному.
[ << Previous 20 ]
About LiveJournal.com