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 ]
    Saturday, June 2nd, 2012
    4:47 pm
    Диагностика дебиана по фотографии
    http://fas-tm.livejournal.com/29287.html

    1) Скачал образ дебиана для raspberry pi: http://johnrhodes.co.uk/RPi/images/debian/6/debian6-19-04-2012/debian6-19-04-2012.zip
    Внутри файл img - образ sd карты.
    2) узнал у айседа, как узнать где живут разделы в этом образе: file debian6-19-04-2012.img
    debian6-19-04-2012.img: x86 boot sector;
    partition 1: ID=0xc, starthead 0, startsector 2048, 153600 sectors;
    partition 2: ID=0x83, starthead 3, startsector 157696, 3256320 sectors;
    partition 3: ID=0x82, starthead 3, startsector 3416064, 391168 sectors, code offset 0xb8
    3) losetup -f -o 80740352 debian6-19-04-2012.img
    4) mount /dev/loop0 /mnt/rpi
    5) нашел файло с данными пакетов /mnt/rpi/var/lib/apt/lists/ftp.uk.debian.org_debian_dists_squeeze_main_binary-armel_Packages

    В нем версия libcurl3-gnutls старая, в репе такой версии уже нет, а apt-get update почему-то не отработал (возможно, из-за дубликата main в /etc/apt/sources.list?)
    Соответственно, зависимость для git-core находится старой версии, apt пытается ее качать и получает 404.
    12:03 pm
    Анти-критерии для софта и апи
    В процессе срачей с айседом пришел к выводу, что искать идеальные софты/либы/платформы бесполезно, практически все, что хоть как-то используется - достаточно пригодно для использования. Лучше выделить критерии для того, что использовать нежелательно:

    С точки зрения пользователя:
    1) Отличие от общепринятых UI гайдлайнов. Например, розовый фон, красные кнопки, шрифт Comic Sans и выход из программы по кнопке F1.
    2) Неадекватное поведение по отношению к другим программам и ОС. Например, встраивание хуков на системные действия или расширений в Explorer.
    3) Издевательства над обычными средствами пользовательской интеграции - например, невозможность без вуду скопировать текст из программы в клипбоард, стандартным сочетанием кнопок или меню.
    4) Наличие тупиков в Workflow, т.е. возможность обычными действиями зайти в программе туда, откуда обычными действиями уже не выйдешь (только снимать программу из диспетчера задач, kill и прочая)
    5) Отсутствие прогресс-баров и прочей индикации выполнения при длительных операциях, отсутствие возможности их корректно прервать.

    С точки зрения админства-деплоймента:
    1) Неумение работать в многопользовательской среде/на терминальном сервере.
    2) Неумение переживать xcopy-деплоймент и запускаться на чистой машине. В крайнем случае - должно быть документировано, что из окружения требуется (.net, жаба, переменные окружения)
    3) Хардкодед пути в бинарниках - убивать нещадно.
    4) Размещение своих либ/данных в общих папках, типа system32. Под линуксом - не считается, там за это пакетный менеджер, в идеале, отвечает и там принято всему софту гадить единообразно.

    С точки зрения программизма:
    0) ad-hoc программирование, без проектирования. Практически сразу заметно по структуре api.
    1) Хардкодед значения, не являющиеся математическими константами. Пытать на дыбе авторов. Сюда же - хардкодед пути типа C:/Program Files или C:/openssl/etc (портированный софт
    2) Тот же контекст, но в пределах ВСЕЙ ОС, а не только запущенного бинарника (Dragon Naturally Speaking и его апи - сука, ненавижу).
    3) Не реентерабельные функции.
    4) Отсутствие в АПИ для работы с внешними ресурсами явных пар типа Open/Close, Enter/Exit.
    5) Невидимый/недокументированный/мутабельный глобальный контекст. Сюда же - использование такого контекста для работы с внешними ресурсами. Т.е. Open не возвращает "хендл для работы с ресурсом", а просто открывает где-то внутри его и все последующие функции его используют, неявно. Например, коннект к БД - один на всю программу. Или транзакция - одна на весь коннект к БД.
    6) Отсутствие для значений getter там где присутствует setter. Забивать гвозди в голову за такое. Т.е. мы можем установить некий параметр, но не можем узнать его значение.
    7) Случайное поведение API, не объяснимое переданными параметрами и документированным окружением. Обычно - следствие пункта 5 и общего рукожопия.
    8) Использование GUI в явно не-гуишных либах. Последний пример - библиотека для работы с одной железякой, кидающая диалоговое окно при ошибке драйвера. Если ее использовать в фоновом сервисе - капец от входа.
    9) Отсутствие в API возможности показать прогресс и прервать длительно выполняющиеся операции.
    10) Отсутствие обработки ошибок вообще. УБИВАТЬ! УБИВАТЬ! УБИВАТЬ!
    11) Обработка ошибок нормального workflow исключениями. Т.е. "попытка подключится к отсутствующему серверу" кидает исключение, хотя должна быть операция TryConnect
    Хуже этого - только парсинг строк в простые значения без функции TryParse
    12) Отсутствие логгинга. Сажать на кол, конечно же.
    13) Отсутствие исходников - когда вышеописанное вылезет в полной мере, а автор окажется живущим половой жизнью с ежихой в ашраме Гуру Бхактиведанты Свами Прабхувады Ребе Короля Мошиаха - вам придется чинить либу самому.
    За вас никто ничего чинить не будет - инфа 100%, еще ни одной либы не видел, где автор бы починил самоочевидную ошибку ранее чем через месяц после баг-репорта.

    Т.е., если вы проектируете API - лучше сразу думайте, как его можно однозначно завернуть в красивый класс на c# или сделать обертку для него на хаскеле функциональном языке - резко становится очевидно, что можно делать и чего нельзя.

    PS от [info]denisioru:
    - невозможность запустить несколько инстансов софтины одновременно. Да, год 2012й. Лом в жопу.
    - изобретение собственных IP-протоколов. Прикладной софт должен работать по UDP или TCP. В редких очевидных случаях - RTMP и иже с ними. Люто, бешено лоботомировать.
    - использоать API ОС для ресолвинга имён. За формирование руками DNS запросов и отправку их в неизвестном направлении - насылать нещадный кровавый понос.
    - использование нестандартных диалогов открытия и сохранения файлов. Как наказание - выдать блок питания к ноуту юзера, несовместимый с розетками в офисе и дома.
    - глюки на мультимониторных конфигурациях. За появление главного окна софтины, напополам распиленное между десктопами - выкалывать глаза.
    - создание и использование временных файлов ВНЕ системного каталога TEMP - отправлять сортировать мусорные баки.

    PS от [info]belnetmon:
    - невозможность запустить софтину под уровнем пользователя , отличного от админа
    - невозможность работы с UNC путями
    - гадить во временную папку, которую пидор создал в корне системного диска (NVidia, Intel - привет)
    11:14 am
    А расскажите мне за кодировки в Java?
    В дотнете я понимаю - внутри сплошной юникод, кодировка - аспект возникающий только при преобразовании "строка<->массив байт(или файл)". А вот в Java как?
    Вот есть документация на соответствующий класс:
    http://docs.oracle.com/javase/1.5.0/docs/api/java/io/InputStreamReader.html
    Там есть конструктора, принимающие Charset или charsetName но унаследованный класс таких конструкторов не содержит, т.е. я так понимаю - нужно руками открывать FileInputStream, передавать его в конструктор InputStreamReader с соответствующей кодировкой, а его потом еще завернуть заодно в BufferedReader?
    10:59 am
    О строительстве
    По поводу этого: http://auto.onliner.by/2012/06/01/perekrytie-54
    У меня такое ощущение, что ВЕСЬ минск превратили в одну большую стройку, особенно что касается дорог. В серебрянке рокоссовского уже 3-4 года ломают, трамваи как ходили до разворота на Рокоссовского, так и ходят. В центр города выхожу редко, но и там то положат, то снимут асфальт. Сейчас еще и выезд с чижовки по кабушкина перестраивать начали.
    При этом, во-первых, не наблюдается никакого внятного планирования работ, во-вторых, из строителей работники, как из выпускников РТИ - программисты. "Один работает - пятеро стоят смотрят".
    Предполагаю, что причиной этому бардаку - объективные планы развития города + интересы попильщиков бабла, практически непобедимое сочетание, думаю.
    Friday, June 1st, 2012
    3:34 pm
    Гопнет и вижуал студия, как "инструмент"
    Таки неимоверными пиздюлями увещеваниями меня убедили оторваться от Clojure, DSP, Сишечьки и SDRSharp и занятся допиливанием огрехов в базовом гуи софта (коий собственно говоря, я и должен делать, а все остальное - это так, развлечения).
    А я эту Visual Studio уже год не открывал, наверно. Ну и вот от входа вижу, чем меня так бесит разработка гуя.
    Дано: не создан один из методов интерфейса в классе. Класс partial, состоит из двух частей - ручной и генерируемой. Так эта падла при сборке что делает:
    1) Пишет ошибку, мол, метод не создан
    2) Открывает генерируемую часть, которая мне нахрен не нужна
    3) В Solution Explorer, само собой нихрена не выделяет, соответственно - иди по всем двум десяткам проектов, вспоминай где там этот файл (поиск там убогий более чем полностью). Мышой, потому что комбинации клавиш там емакс-содомиты придумывали.

    Это типа IDE, да. Enlarge your продуктивити, ога. Я в фаре этот класс быстрее по именам с клавиатуры найду, чем буду мышой тыркаться в корявом гуи.
    Thursday, May 31st, 2012
    10:22 am
    Приор-банк, аннуитет или "Я не слоупок"
    Не прошло и 5 лет выплаты кредита равными выплатами, как я озаботился таки разобраться, как они считают выплаты по основному долгу и процентам. В итоге, получился такой код на clojure:
    http://github.com/metametaclass/annuity/blob/master/annuity.clj
    в расчетах не учитывается, что сверху всех выплат они берут еще 30 денег "за обслуживание текущего расчетного счета".
    А вообще говоря, я проверял, когда у меня закончится уменьшенная выплата (я чеками жилье погасил часть основного долга), чтобы знать, когда нужно будет платить полную сумму.
    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... )
[ << Previous 20 ]
About LiveJournal.com