metaclass: (Default)
2017-04-13 07:31 am

Какие отборные уродцы, однако

https://ria.ru/society/20170212/1487640511.html
"Один из модулей программы выявил, что три несовершеннолетние девочки из города Боровичи Новгородской области у себя на страницах в соцсетях скрывают членство в группе "Дети-404. ЛГБТ-подростки". А сами при этом учатся в педагогическом училище."
metaclass: (Default)
2017-02-25 03:13 pm

Negative value technology

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

Информации очень много и единственный способ ее вместить в голову - повторное использование ранее изученного, выделение общих принципов и упаковка частных случаев в обобщенные решения. Так вот, хорошие технологии - те, где это применимо, там где principle of least surprise и где изученная одна часть - пригодна для понимания другой.
А плохие - там где нужно заучивать миллиард частных случаев и где здравый смысл не применим и где на каждый чих надо звать гуру от вендора за бешеные деньги, чтобы он совершил нужные заклинания.
Со вторым смысл связываться есть только если заказчики готовы платить 10х к рынку и сбегать пилить опенсорс и стартапы при первых же признаках деградации мозга от работы с тупостью. А лучше вообще не связываться, душа не казенная.
metaclass: (Default)
2017-02-07 11:32 am

Какие упертые гады, оказывается

https://habrahabr.ru/company/oleg-bunin/blog/321294/
Программмисты разрабатывают вред, чтобы как можно более точно идентифицировать пользователя в вебе и следить за ним. Причем, doNotTrack, само собой, игнорируют.
Надеюсь их и их заказчиков всех казнят.
metaclass: (Default)
2017-02-02 10:47 pm

gitlab, СУБД, LVM snapshots

Сегодня я узнал, что делать LVM snapshots (и прочие аналогичные действия на уровне "момент в жизни файловой системы") - валидный способ бэкапа PostgreSQL баз.

Вопрос - а как это согласуется с порядком записи/вызовов сисколлов/ordering файловой системы?
Т.е. можем ли мы быть уверены, то снапшот блочного девайса - гарантированно валиден с точки зрения FS и с точки зрения сидящей выше уровнем БД и кэшей уровня БД и уровня FS?

Потому как, например в случае Firebird - вроде это должно быть валидно, т.к. по словам разработчиков он использует careful writes - режим записи который не нарушает корректности БД, но точной уверенности у меня в этом нет, особенно с учетом написанного тут: https://danluu.com/file-consistency/
Кроме того, повреждения FB в случае аварийного пропадания питания у меня наблюдаются не так уж редко (раз в 3-6 месяцев на ~100 инстансов БД, эксплуатируемых в адских условиях). На каком уровне творится фигня - fb, файловая система или диск - неизвестно, но целостность файла БД нарушается.
metaclass: (Default)
2017-01-29 02:14 pm

Мозилла деградирует

http://ex0-planet.livejournal.com/60724.html

Мало того, что в Chrome тупо запретили напрочь делать API для расширений с side-bar - типа вертикальных табов и прочего, так теперь еще и в Мозилле решили убить все, что делало ее хоть немного пригодной к использованию.

Не понимаю, откуда лезет эта мания "уберем всю UI функциональность, ей никто не пользуется".
metaclass: (Default)
2017-01-15 07:26 am

Вот и до нас добрался ХерПоймиЧтоНадзор

http://lj.rossia.org/
"Ресурс заблокирован в соответствии с законодательством Республики Беларусь"
Заебись они придумали.
metaclass: (Default)
2017-01-11 03:24 pm

Рабочее, саппорт и code review

"Дядюшка Мокус, можно я их всех поубиваю к херам собачим?!"
metaclass: (Default)
2017-01-09 03:22 pm

Козлопитоны винторогие, которые рисуют чертей со спины

Вспомнил, что мой ЖЖ был единственным местом, где упоминалась фраза "рисовать чертей со спины", и что слово "козлопитоны" тоже наполовину указывает либо на мой жж, либо на моих френдов из ЖЖ, либо на обсуждение работников Белтелекома айседом.
Нужно как-то понять, сможет ли гугл теперь найти то же самое в dreamwidth.
metaclass: (Default)
2017-01-02 02:22 pm

MediaTek LinkIt Smart Duo

http://wiki.seeed.cc/LinkIt_Smart_7688_Duo/

Упарываюсь очередной порцией эмбеда. На сей раз - плод противоестественного греха ардуины (atmega32u4) и openwrt (MT7688).

В документации рекомендуют программировать из Arduino IDE, который я не очень люблю, поэтому пошел пока стандартным путем - выкусил из WinAVR avr-gcc под винду и запускаю его из под mingw, чтобы было posix-окружение. Можно было бы включить комп с линуксом и подключится к нему - но это вставать из кресла надо и лень.

В атмегу прошит CDC-бутлоадер: https://github.com/MediaTek-Labs/linkit-smart-7688-duo-arduino/tree/master/mtk/avr/bootloaders/caterina но для него нужны драйвера на винду, которые на 8 не поставить без перезагрузки - ибо не подписаны. А на линукс идти - см. выше, лень. А на самом деле, у меня с собой тут ISP программатора нету, поэтому я опасаюсь запороть бутлоадер :)

В итоге, в процессе изучения бутлоадеров и программаторов, выяснил что SPI пины атмеги, через которые можно ее программировать - подключены к MT7688, на котором установлен avrdude, умеющий SPI-программирование через gpio. Соответственно, чтобы программировать атмегу - ничего кроме текстового редактора, avr-gcc и ssh коннекта на linkit не нужно:

root@mylinkit:~# avrdude -p m32u4 -c linuxgpio ...


И еще все это совместимо с Arduino Yun, который в свою очередь порожден из linino: http://www.linino.org/portfolio/yun/
metaclass: (Default)
2017-01-02 12:14 am

Линукс-фанбои и их шелл.

https://github.com/MediaTek-Labs/linkit-smart-7688-duo-arduino/blob/master/mtk/avr/bootloaders/caterina/Makefile#L114

https://github.com/MediaTek-Labs/linkit-smart-7688-duo-arduino/blob/master/mtk/avr/bootloaders/caterina/Makefile#L212

Сие чудо без bc молча генерирует "0x" и ебается при сборке потому что:

Caterina.c:659:58: error: invalid suffix "xUL" on integer constant
metaclass: (Default)
2016-12-31 03:31 pm

Козлопитоны позорные

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

В общем, локальные запасы жолтых саморезов спасают всегда.
А стол у меня отобрали отмечать новый год, а я только собрался его красивую поверхность паяльником, компами и пилением дремелем испортить - я его в качестве рабочего покупал, а то тут электронику некуда раскладывать :)
metaclass: (Default)
2016-12-26 06:50 am

ТУ-154

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

А русские требуют чтобы все оставались людьми и не плясали на костях и на этой почве интернет опять пополам порвало.

Вроде все-таки не принято даже на смерть противника сильно уж радоваться, а уж тем более, если ты к ней никакого отношения не имеешь и он случайно убился.
metaclass: (Default)
2016-12-24 01:54 pm

ЖЖ переехал в рашеньку

По ходу, ЖЖ больше не нужен, надо переезжать сюда.
metaclass: (Default)
2016-12-10 06:36 pm

Firebird 3.0

Как известно, после многолетних трудов был выпущен Firebird 3.0.
Если подключаться к нему клиентом от Firebird 2.5 то он выдает сообщение об ошибке "connection rejected by remote interface".
Если я правильно понимаю, это старый клиент так реагирует, когда его сервер посылает, когда обнаруживает устаревший wire-протокол, который по умолчанию запрещен (его надо разрешать в firebird.conf или использовать клиент от 3.0): https://stackoverflow.com/questions/30390465/connection-rejected-by-remote-interface-connecting-to-firebird-3-with-pdo

Еще в нем при инсталяции руками надо подключаться локально к произвольной базе (в примерах используется демо-база employee) и создавать юзера SYSDBA на весь сервер. Немного смущает что для манипуляции общей базой юзеров надо подключаться к частной базе - нелогично.
И еще надо давать пользователям - владельцам БД явные права на создание баз.

Посмотрю, что будет дальше, но уже понятно что процесс миграции с 2.5, если таковой понадобится, будет сложный.
metaclass: (Default)
2016-11-29 01:54 pm

"Как много нам открытий чудных..."

Недавно я узнал, что среди людей моего круга (всякого рода программисты-сисадмины-инженеры-ученые) существуют люди, которых устраивает отсутствие общественного порядка. Как то: насрано в подъездах, надписи на стенах, бухающие гопники, бомжи, машины на зеленой зоне, мусор выбрасываемый на землю и прочая такая нечисть.
А вот наведение порядка посредством установки камер видеонаблюдения, железных дверей и тотального полицейского сапога с zero-tolerance к мелким правонарушениям - не устраивает, ограничивает их вымышленную "свободу" вплоть до того, что они готовы ломать камеры и домофоны.
metaclass: (Default)
2016-11-15 01:17 am

Уведомления для CI задом наперед

Столкнулся тут с очередным порождением сумеречного хипстерского гения - CI сервер drone.io.
Сам сервер живет внутри докер-образа, собирает и тестирует софт тоже внутри докера - т.е. к одной хипсторятине добавляется еще и вторая - докер.
Далее, если я правильно понял из просмотра документации краем глаза - чтобы узнавать про изменения в репозиториях, этой софтине нужно зарегистрировать "приложение" в гитхабе, которому надо дать доступ к репозиториям и оно на них настроит хуки, которые будут дергать оный сервер за торчащий в интернет http-endpoint. Т.е. запустить его внутри локалки - это надо заниматься пробросом портов, а еще надо бы выяснить какими средствами аутентификации оно прикрыто (вроде OAuth, но с ходу во всей это конструкции из гитхаба, докеров, приложения и хипстософта непонятно, кто есть кто).

Собственно, идея не поллить репозиторий, а ждать что тебя дернет хук - достаточно интересная, но вся эта комбинация безумных новомодных технологий для меня выглядит странновато, особенно с учетом того, что я до сих пор не уверен в пользе от облаков и паранойя не велит сборочные и тестовые сервера держать за пределами периметра охраняемого паранойей.
metaclass: (Default)
2016-11-01 03:06 pm

Типы данных для телеметрии

В процессе пиления датчика co2 столкнулся с такой фигней: если датчик сам не передает тип данных - то каждая доработка софта на контроллере датчика вынуждает дорабатывать и парсер его сообщений, чего делать совершенно нет желания.

Поначалу данные в udp-пакетах с датчика выглядели так: 2016-10-29T21:26:40.990599,ff8601e440402eb92e
Потом вот так, чтобы сразу видеть концентрацию: 2016-10-29T23:48:35.310594,ff86027840042e305e,632

А потом я решил это дело засунуть сразу в эластик с кибаной, чтобы рисовать графики, причем у нас туда данные (мониторинг нашего софта) идут в виде json-объектов в сообщениях через mq-сервер. Наиболее прямой путь такое делать - это поля от датчика разложить в виде полей json-объекта, тогда эластик автодетектит типы полей и все становится сразу доступным для запросов и графиков.
Но прога, которая транслирует udp-пакеты в mq сообщения - вообще говоря, тестовый/отладочный клиент от моей mq-либы и впихивать в нее прибитые гвоздями имена полей от одного конкретного датчика - лютый грех, такой код должен быть универсальным, очевидно.
Поэтому формат пакета превратился в: "utc=2016-10-30T12:04:08.740605,hex=ff8602db40402e30bf,co2=731", а программа просто конвертирует это в json и добивает служебными полями от себя (уникальный идентификатор ноды, тип сообщения, и прочее такое). В таком варианте я смогу, например, добавить еще пакетов от других датчиков - давления, освещенности, влажности, радиации и температуры, не переделывая транслятор.

Фактически, это структурный тип данных - смысл данных определяется тем, какие в нем есть поля. Это очень удобно для обобщенной обработки.

При этом, когда я работаю с чужими железками, там почти всегда типы данных прибиты гвоздями - начиная от просто упакованных бинарных структур, заканчивая csv с позиционным назначением полей или бинарным массивом из кучи бинарных пакетов с CRC и прочим.
Понятно, что так сильно экономится GPRS-трафик для телеметрии и байтики в прошивке, но почему бы этим устройствам сразу после подключения по TCP не передавать метаданные протокола, которые можно было бы грузить в парсер и он автоматом бы становился совместимым с тем, что устройство будет передавать после этого.
Т.е. хотя бы передавать csv заголовок для csv-форматов, или массив "тип, имя, длина" для бинарных структур или еще что-нибудь в том же духе.
metaclass: (Default)
2016-10-30 06:55 pm

LinkIt Smart 7688 и датчик CO2

Дошли наконец-то руки запустить очередной бриколяж - датчики CO2 mh-z19 (https://geektimes.ru/post/272090/)
Наиболее прямым способом, без ордуин и прочего такого оказалось завести микрокомпутер с OpenWRT на борту - LinkIt Smart 7688 (http://wiki.seeedstudio.com/wiki/LinkIt_Smart_7688).

Подключение достаточно влоб: 3.3v usb-uart на пины земли, P9 и P8 для отладки загрузки c serial консоли, сам датчик на пины земли, +5вольт питания и P18(RX linkit)-P3 (TX датчика) P19(TX linkit)-P2(RX датчика).

USB-UART, похоже желательно подключать после питания - а то он через TX и защитные диоды начинает пытаться питать все это устройство, по крайней мере светодиод питания загорается сразу.

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

В принципе, можно и без консоли - при старте этот девайс включает точку доступа, к которой можно подключится и на адресе 192.168.100.1 найти его веб-морду и переключить в режим wifi-клиента и подключить к своей сети, или открыть полноценный веб-интерфейс openwrt, но с консолью удобнее, особенно когда оно с ума сходит.

Дольше всего времени ушло на то, чтобы чтобы разобраться с wifi - который не умеет каналы выше 11 по умолчанию, а у меня модем сел на 13 канал и его вообще не было видно и на то, чтобы вспомнить питон и как на нем отправить массив байт в uart и получить обратно ответ (2 и 3 питоны ведут себя по разному).

Тестовая прога на питоне: https://gist.github.com/metametaclass/fdcd53e4e699ed5a0a780bc74a8a5eca, отправляет результат опроса по udp на комп, где запущен nc на порту 49344 и всякие тестовые прожки на 49345.

Получается вот такая картинка, ночью - с закрытой дверью, днем с открытой и датчиком, на который я дышу: http://www.cacodaemon.org/co2/20161029_212640_20161030_153355.png
metaclass: (Default)
2016-10-09 04:50 pm

Сказочный мир поней

http://ru-sysadmins.livejournal.com/2560263.html?thread=47788807&style=mine#t47788807
"На месяц труда более-менее квалифицированного специалиста, понимающего, что происходит на уровне СУБД, можно взять гигов 128 оперативки. Если не больше - я несколько не в курсе текущих цен."

Покажите мне, где такое бывает, а? Пока все что я вижу - это 1-2 месяца на согласование с заказчиками "нужно докинуть памяти/дисков/процессоров", а потом еще 1-2 месяца на то, чтобы это дошло до одминов, а потом еще и истерики с их стороны "почему у вас память на 100% не используется и почему у вас бэкапы на СТРАШНО ДОРОГОМ И БЫСТРОМ диске, а не на внешнем говносторадже". И это у тех заказчиков, где есть деньги на "докинуть еще памяти", а то у большинства белорусских госконтор истерика начинается уже на этапе "надо купить нормальный сервер".

PS: Расходимся, нас наебали: "Серьезно - вы знаете, проблемы SMB мне не интересны. Пусть идут в SAAS".
metaclass: (Default)
2016-09-07 10:36 pm

Майндфак стал нормой жизни

Для разнообразия вместо того чтобы работать круглые сутки дома, хожу на работу и с работы.
За то время, пока я не был на улице, оказалось, что майндфак стал нормой жизни.
Во-первых, 99% людей в транспорте долбятся в смартфоны нечеловеческих размеров, кто в игрушки, кто в соцсети.

Во-вторых, вот висит афиша, на ней безумные надписи вроде "Арт-пикник в парке Дримленд" из которых сложно понять, что рекламируется, а внизу нарисована либо двухголовая девушка, по которой видно, что Богатый Внутренний Мир ей проел все мозги, либо двухголовый негр с гитарой на одной голове и выпученными глазами на другой.

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

И хэштеги, хэштеги, хэштеги на всех рекламах и афишах, типа кто-то пойдет этот хештэг вбивать в поиск.