SannySanoff
programming profit kdb Написал мониторинг. Поставил, стало быть, prometheus. Штук десять разных систем льют в него данные.

А проблема в том, что я не люблю ихний pull, то есть когда он ходит сам за данными, а я ему отдаю по запросу. Потому что у меня там кластер, динамическое всё, кубернетезы, нужно использовать чужие костыли, service discovery всётакое, делать динамический список таргетов. Всё как завещали отцы.

Сделал я pushgateway, то есть как не рекомендовали отцы. И из скриптов туда заливаю данные, а потом сам прометеус их оттуда готовенькими всасует. А данные у меня разные есть, но как известно, данные данным рознь. Таковая система работает с данными типа "загрузка ЦПУ", но плохо работает с данными "запросов в секунду", потому что их хорошо агрегировать "запросов в минуту", "в час" итд. Прометеус это умеет, но в системе с пуш гейтвей не работает, потому что если я например буду каждую секунду в гейтвей заливать цифру "запросов-в-секунду", они не будут там накапливаться, а только последнее хранится. Потом раз в полминуты эти данные забираются уже прометеусом и сами понимаете. Это не синхронизируется в принципе. И не лечится. Так задизайнено. Keep it simple. Ну я приблизительно синхронизировал, порядок совпадает и ладненько. Всякие там jobs, instances как положено.

Потом пошел значит через API запросы гонять и рисовать стало быть graphviz граф на ПЕТОНЕ, в котором на дугах нарисовано к-во запросов в минуту час итд, а в квадратиках загрузка процов итп. Получилось пресимпатишно. НО.

1) куча запросов к прометеусу за данными — тормозит, сотня запросов к прометеусу на 1 отрисовку
2) pushgateway со своими нерешаемыми проблемами.

ДОЛГО ЛИ КОРОТКО

Короче, выкинул прометеус нафиг. Больше ничего не трогал. Оставил как есть все сенсоры на всех 10 сервисах, которые пушают мне свои цифры. И загрузку, и к-во запросов за отчетный период (раз в полминуты лью например).

Взял в руки kdb+. Написал парсер заливаемых данных (POST query). Написал табличку в памяти которая хранит всё что в нее кладут, без вопросов, для последних нескольких миллионов записей, подчищая.

Вместо 100 запросов за данными к прометеусу, теперь запускаю 1 раз весь отрисовочный код, собираю в коллекцию все запросы которые были сделаны (запросы структурно оставил те же самые, токо в kdb syntax перевел), а отдаю нули. Потом 1 раундтрип к кдб с массивом запросов. Потом второй проход снова запускаю отрисовочный код, на этот раз он реально рисует: запросы свои запрашивает, но никто никуда не ходит — все ответы уже на руках.

Результат:

Код отрисовки стал двухпроходной (к-во и структура кода не изменилось, 7 строк ПЕТОНА добавилось которые запускают 2 прохода).

Весь код на kdb+, заменивший прометеус, состоит из 8 (восемь!) строк: пять строк REST сервер беcпарольный, который принимает метрики. 3 строки второй сервер, запароленный, в нем собственно определение таблицы 1 строка, к нему приходят с отрисовочного кода запросы за данными, и две строки утильных функций с повторяющимся кодом для агрегации.

Код, отправляющий данные с сервисов, — без изменений.

8 строк на нормальном языке ваш прометеус, миллениалы.

Да, и алерты на кдб проще будет прикручивать: нормальный язык, а не конечно любопытный, но ограниченный язык запросов к прометейной базке.
SannySanoff
коварно profit Вот гугл придумал свой pagerank. А ведь pagerank это по сути экстракция трудов других людей, которые самим фактом своего труда апрувят какие-то другие линки. Так было, и это работало, ДО централизованного веба.

А щас шо? Фейсбучики, и линки на фейсбучики, твитерчики и линкединчики, образно говоря. И жуечка сбоку. Гугл пожрал работу децентрализованного веба, децентрализованный веб подскукожился, стало более грустно.

Всем, впрочем, в основном пофиг. Всем, впрочем, всегда в основном пофиг.
SannySanoff
programming profit У меня такое случается, что я меняю шрифты в IDE.

Находка сезона iosevka ss07 просто глаз радуется, лигатуры там опять-таки норм (стрелочки клеви).

Нули — нулями, а не бублик с дыркой и не О, всякие амперсанды, буквы g и a, приятно смотреть. github.com
SannySanoff
programming С++ profit закончилось тем, что я переписал под себя cf (composable futures), точнее, я их выкинул и написал свое future/promise/when_all и все такое. Почему? Потому что те что были, как мне показалось, глючили в одном случае. Пока переписывал, оказалось мой баг был в моем коде, но дописал все равно.

Работает в несколько раз быстрее: копирует меньше, аллокаций делает меньше, и, стало быть, занимает меньшую долю общей нагрузки на мультицпу, кучу итп, я доволен. То шо было раньше, для моих нужд overengineered.
SannySanoff
WWW profit faggots Если пользоваться скайпом через веб (скайп — по большой нужде), то можно кастомными стилями его немного улучшить, например убрать эти неместные смайлики после каждой реплики собеседника.

собеседник: привет :)
я: привет
собеседник: шо-то мне седни херова :)
я: шо такое
собеседник: да температура 41,грипп наверное :)
я: еще новости?
собеседник: тут мой кот кажется помирает вообще, ппц карочи :( :)

короче, палю:

button[title="React to this message"] { display: none; }
SannySanoff
WWW profit Отключил в бровзере (vivaldi) отображаться строку с табами, которая под адрес лайном.

И.... ничего не потерял! Но приобрел вертикального пространства.

Пользую ctrl+tab со всплывающим списком, или поиск по имени. Ну иногда зайти в список окон и почистить нафиг 90%.

Лучше поздно, чем никогда!
SannySanoff
programming profit faggots Давеча случился релиз Flutter 1.0, по этому поводу был Live Event, где адепты и афтары собрались, показывали презентации, видосики, и коллективно радовались.

Я сам адепт Флуттера, но я не упущу случая пнуть. Там был один из главных дизайнеров (которые по визуальному дизайну), из тех, которые с высоким голосом и бородой от уха до уха. Он показывал демо, и она тормозила вплоть до 10FPS визуально в некоторых местах. На главной презентации.

Я вот постоянно интересовался, как так, уберут ли они тормоза к релизу. Не убрали. Написал об этом в реддит, дал ссылку на ютуб с таймкодом, говорю, а чо все молчат шо оно тормозит даже на презентации.

Заминусовали.

"Оно не тормозит"
"Ты никогда не писал на флуттере"
"Это был не релиз билд (а дебуг моде)"

Не понимаю я с этими современными людишками ничего.
SannySanoff
programming profit Внезапно тазик на Google Cloud Engine 8ядерный, 32Гига, 8 локальных SSD стоит в районе $240/m.

Сделал для бенчмарка, получил RAID0 read speed 4 G / sec суммарно 2.6Т. Очень хорошо там хранить исторические данные для анализа.
SannySanoff
programming profit В целом angular dart ничо так, терпимо. Цикл edit-compile-run конечно подольше чем был в славном gwt, секунд 25 у меня на 2ядерном гейбуке.

Профит в том, что тайпчекает выражения в html шаблонах тоже, что немного утешает. Ну все остальное тоже тайпчекает, кроме левых проколов, таких как если ты написал левый тег, то он его молча как есть оставит. Всякие SCSS тоже нихрена не чекает, легло оно на что или нет. Но импорты в них понятно, ругается.

На безрыбье и рак — рыба.
SannySanoff
programming profit Загрузил немного данных в яндексовскую БД ClickHouse, сравнить перфоманс с KDB.

Clickhouse ничего почти кроме селектов не умеет, полезного мне мало (на KDB можно писать на супер-клевом встроенном языке который работает со скоростью самой бд, на clickhouse нет — вытаскивай результаты например в жабу и дальше только жаба, тащемта, а зачем мне жаба, шо я, буду на ней статистику гонять?).

Померял простой group-by, на memory table кликхауз уделал на этих запросах аналогичное KDB раза в полтора, на сжатой таблице хранимой на диске где-то того же порядка результат. Ну чо, нормуль, одобряю. Писать более сложные тесты не стал, потому что ну его нафиг, вот почему. А, и еще у них там сэмплинг есть при желании, то есть берутся не все данные, а регулярные кусочки, и по ним считаются приближенные данные, в кдб такое надо явно писать, но не было нужно.

Вердикт: перфоманс действительно на высоте, но использовать это для полезных целей кроме самого простого анализа time series не вижу смысла.
SannySanoff
programming profit вот раньше такая штука была, "zmodem" называлась. Шо это такое: сидишь в терминале, тебе запущенная в терминале консольная программа генерирует специальную последовательность, которую ТЕРМИНАЛ понимает и складывает в файл рядом с собой. Нужно чтобы передать например файл из консоли прямо ко мне, через сколько бы там я штук ssh не сидел далеко. Нужно, чтобы терминал умел понимать zmodem как он понимает ansi sequences. И кстати в другую сторону тоже работало.

Но, насколько я понимаю, это секретное знание древних уже утеряно. А что нынче альтернативой?
SannySanoff
внезапно profit телефония Решил, дай-ка проверю, что местная контора сварила на новый год.

Ппц, я живу в раю, в 22 веке! Не знаю как в РФ, но имхо это уже за пределами щастья (определенного рода, конечно). Да, достаточно честный 3G, 15 мбит в городе, по ощущениям есть, я не мерял нарочно. У нас в гребенях тоже быстро.

Киевстар, 3G, 90грн ($3/мес)

SannySanoff
? Haskell profit Закинул удочку в Serokell, которые вроде б то под руководством Дарта Вейдера^W^WPhilip Wadler пишут свой альткойн на Хаскеле. Питерские, но ищут remote чуваков.

Они созрели и прислали тестовую задачу зафигачить распределенный леджер на блокчейне на хаскеле, с указанным криптоалгоритмом и простеньким API.

Говорят, что работы на 8-9 часов, прислали небольшую заготовку, которая по юникс сокетам коммуницирует, API неможко парсит, таймауты там тестовые имплементит, которые нужны по ТЗ, молодцы.

Бросаться в это? Кто пропустил и хочет, могу зафорвардить, они раскидали тем, кто выразил интерес в середине декабря.
SannySanoff
? programming profit Какой смысл в node.js если есть dart?

Варианты ответов: 1) под ноду есть офигенне ВЕБ-фреймворк, без которого не жизнь, и оно без ноды на сервере не живет 2) реюзать код с бровзером

В моем случае: чисто енларг-подобный процессинг: схватил — сцепил — залил/отдал, никаких веб фреймворков. Шарить с вебом тоже нечего. Зато строгая типизация с тайпчекером, системные штучки искаропки, раздельные кучи, и самое главное — это то, что оно задизайнено все изначально как надо, не костыльно, весь тулчейн включая package mgr.

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

Неявный вопрос звучит так: может я пропустил что-то, что в этом направлении идет еще дальше дарта?
SannySanoff
fun profit Мечта человечества была не голодать, нажраться. Вот, хавка вроде есть. Теперь мечта жрать и не жиреть, на глагне реддита "многообещающие колеса, позволяющие жрать и не жиреть, ускоряют метаболизм жира в клетке, проверено на мышах". Да, все верно, в отличие от предыдущих колес, НЕ подавляют аппетит.

reddit.com
SannySanoff
programming profit KDB+ начали раздавать почти бесплатно. Если раньше лицензия на ядро стоила бешеных бабок (тысячи в год), и выдавалась вручную, то щас туда впилили динамическое измерение ядер во время выполнения, оно теперь постоянно стучится домой, и чуваки разворачивают его на cloud по 5 центов за ядро/час, а малые инсталляции (до 16 ядер) вообще вроде даром для личного пользования (до того была unlimited 32bit версия, но это просто смешно).

tech.marksblogg.com вот тут чувак между делом меряет перфоманс и занимается вещами, которые лично мне не доводилось щупать. Там же сравнение с другими СУБД.
SannySanoff
жизнь macOS WWW profit Мытарства с гейбуком почти подошли к концу.

Купил Mi Wifi 5GHz, поставил прямо возле гейбука (а не на другом этаже 2.4), проблемы с сетью под линуксом ушли. Проблемы с блютусом под линуксом ушли. Возникли проблемы, правда с 5Гц. Сегодня на утро он не анонсируется и не коннектится. On/Off 5Гц через местную админку починили говно. Видать, зря я сэкономил вместо микротыка (микротык который теперь я хочу сюда — это 5Гц/ГигабитЕзернет стоит $125 баксов, хочу в будущем гонять по нему много по дому).

Также гемор с медленной отрисовкой на 4К мониторе — перевел резолюшн пониже под макосью. Он-то и был не нативный, а scaled, а теперь он еще менее нативный, зату сцуко стал значительно быстрее.

Оказывается, гей-ось у себя внутри рендерит весь экран на opengl surface указанного размера (larger text == меньший размер surface), потом (КАК-ТО?) его проецирует на opengl surface размера нативного резолюшна (монитор 3840 x 2160) и эту картинку гонит через displayport, монитор показывает 3840. Есть у него и низкие разрешения, проецируется на меньший резолюшн, хотя монитор все равно показывает сигнал 3840 x 2160.

Так вот, я провел исследования как выглядят шрифты на мониторе после всех этих пертурбаций. Сделал 2 замера: полностью нативный резолюшн (когда на экране все очень мелкое но быстрое, и пиксель-в пиксель), и тот резолюшн где снова не тормозит потому мелкий резолюшн (1504 х 846) . Результаты на картинке внизу. Нужно понимать, что страдал я под тормозным резолюшном где-то в половину от нативного, где был доволен шрифтами, хотя они УЖЕ были "пикселизованные". Эту пикселизацию я и пытался измерить на картинке, чтобы устранить внутренний вопрос "ты шо, с 846p на 2160p мониторе работаешь???"

Резюмируя, как у женщины покупка новых перчаток (или носового платочка?) влечет за собой смену всего гардероба, потому что к новым перчаткам нужно и то и се, так у меня драйвером видать стал 4К монитор, из-за него столько движений.
SannySanoff
Linux profit Отключил compositing в KDE, и под линуксом на 4К ВСЕ стало жрать меньше в 5 раз (а так — анимированная вертушка в хроме жрет столько-то процентов, да и вообще сам он покушывает). Теперь вообще клевота.

А под гей-осью (macosx) так делать запретили в купертине!
SannySanoff
Mac продуктивность profit Я замерял latency ввода клавиатуры гейбука на манер как делал афтор в матерьяле #2886434. Ну, скажем, что рендеринг страницы еще добавляет времени.

Короче, 7 кадров 120 FPS ~ 60 msec. +/- 16 мсек на рефреш — это встроенная клава + встроенный монитор гейбука.

А вот 4К моник (тоже 60FPS over DisplayPort) плюс механическая клава (CM Storm) дали реакцию 4 кадра, что составляет ~ 33 мсек +/- 16 мсек на рефреш.

Думаю, дело в клаве. Картинка, для удовольствия читателя, прилагается (встроенная клава+моник).

А если мерять в IDEA, там все 80 мсек по ощущениям 8(

SannySanoff
Linux profit Решил убрать полу-рабочий десктоп с линуксом нафиг из жилого помещения в пристройку, шоб не гудел мне тут в доме. Там хорошо так винтов всяких и вентиляторов напхано.

Возник вопрос — как на нем работать. Нужен хороший и быстрый удаленный десктоп для линукса, чтобы ходить с тупой тормозной безвентиляторной маленькой железяки. И чтобы не страдать.

VNC всякий отпадает т.к. тормоз.
NX / x2go отпадает т.к. рисует не так как в оригинале, и тормозит на передаче картинок
Teamviewer лучше, но тоже тормоз.
Оригинальный X протокол там в нем часто половина не работает, opengl вызовы тоже.
AnyDesk идея хорошая использовать low latency видео-кодек, но реализация кривая с клавишами которые не передаются половина шорткатов, да и в последней версии там уже и изображение кроме первоначальной картинки не ходит — доломали.

А вот Chrome Remote Desktop взлетел и полетел. Тоже быстрый видео-кодек, и передает все кнопочки, особенно если на клиентском компе запустить тупо голый X с оконным менеджером, от которого нужно обработать запрос на fullscreen окно с клиентом Chrome RemoteDesktop, и еще нужно убрать все шорткаты с этого оконного менеджера, чтобы они шли на удаленный комп.

И вот просто взяло и заработало. Звук еще не настраивал, пишут что прикрутили в октябре 2016.

SannySanoff
Java programming profit Я свичнулся с Жабы на Котлин в основной разработке.
Основная причина проста: просто приятна обновка.
Всякие фичи Котлина прекрасны. К Жабе претензий тоже нет — изумительный язык. Я не страдаю от ее многословия.
Можно назвать множество причин переключения — фич ради, конечно.
Но основная — это просто что-то новое, просто новизна, которая будит уснулую часть мозга, которая уже сделала свое дело, доведя до автоматизма свою часть работы — выражение себя на жабе — и спала уже давно.
Это могла быть и Скала, — Скала просто прекрасна, — но Скала более неудобная в работе: из-за ее гениальной разноликости она чересчур тормозит в инструментарии (компилятор, IDE), что начинает напрягать через некоторое время. Это чувствует и Одерский, который пишет другую, несовместимую версию Скалы, более шуструю.
Больше пока вариантов нет. Остальные либо тормозят в рантайме, либо без статической типизации, либо без tools.
SannySanoff
profit MIT study says 3,000 ride-sharing cars could replace every cab in New York City
Эдак они через некоторое время изобретут маршрутные такси.
SannySanoff
Juick fun profit juick_advanced JA Всем новым и существующим пользователям с 2017 года Juick Advanced будет раздаваться без платной подписки на пойнт и bnw — то есть, даром! Акция действительна до конца января 2017 года.
SannySanoff
жизнь profit Наконфигурял у себя в лесу 10 кВт стабилизатор и 3 кВт инвертор включенный после него. Теперь когда у меня 140 вольт в розетке вечерами, водокачный насос даже стартует! (раньше не мог, и через год сгорал)

Задумка такая, что инвертор с батарейками держит оверлоад до 9 кВт (при номинале в 3 кВт) до 20 секунд, что круто. За это время пусковой ток насоса (> 20А, что дает более 4кВт) уже давно прошел, и насос в стационарном режиме кушает свои 1 кВт. К этому времени (+10 сек от пуска насоса) ошизевший отключившийся стабилизатор уже наконец приходит в себя, и включается снова, видит нагрузку 1 кВт и уже не шизеет, на 140 вольтах норм себя чувствует.

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

Где еще слабина в такой схеме и была ли альтернатива?
SannySanoff
WWW profit Граждан РФ какие-то, понимаешь, мизулины (или приравненные к ним) начинают возвращать из расслабленного виртуальчика в реальность:

Уважаемый @roscomnadzor , вы если порнхаб блокируете, вы хоть предлагайте альтернативу ? Целую, Лёля
Уважаемая Лёля, в качестве альтернативы можно познакомиться с кем-нибудь в реальной жизни, целую, ваш @roscomnadzor

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

Минус у нее один, но стремный: иногда, раз в 20 минут, не доходит какая-то клавиша: нажатие там, или отжатие. При том, bluetooth/wifi interference, если шифи на 2.4ггц, и если скайп голосом, и если блютуц наушники при том доносят голос, то эфир засорен конкретно, и клава сразу начинает пропускать клавиши. Ну, до того это было по мыше заметно, что она изредка притормаживает, если эфир вблизи ноута засорен, но на мыше это не так фатально. На клаве это просто драма. Переключил шифи на 5Гц, стало приемлемо (раз в 20 минут, но бывает и реже).
Клава Varmilo VB87M.

Гик внутри меня плачет.
SannySanoff
Linux Windows programming profit Выкачал новый несколькодневный билд венды (оно мне обновилось само, короче), а там встроенная убунта, и под этой новой версией жаба уже запустилась (под предыдущей нет, я писал об этом).

Решил уж идти до конца, apt-get xubuntu-desktop, поставил VcXsrc виндовое на весь экран, и XFCE сессия запустилась, десктоп там нарисовала, всякое такое. Оконный манагер работает, xterm даже. Встроенный терминал чото пока не завелся. Firefox работает. Хром не работает. glxgears вертится, 11 кадров в секунду на весь экран (странно, почему-то через mesa, хотя сервер вроде умеет opengl).

Редакция будет и дальше информировать вас, наших читателей, о наших извращениях.
SannySanoff
profit набрел на i.redditmedia.com

via reddit.com

Открыл для себя технологию под названием "гидрографика". Этой технологией на пластмассу на фоточке нанесен рисунок дерева.

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

Говорят, можно делать самому дома (практиковаться надо, говорят), токо изготавливать пленку неизвестно как, а стоит она чо-то как-то дороговато (10 баксов за погонный метр шириной 60 см с рисунком). Да и как нанести свой рисунок, неясно мне еще.
SannySanoff
programming profit Приняли участие в ICFP Contest.

Предметом задачи был оригами: единичный кусок бумаги складывается в "оригами" как угодно, главное что есть выраженные линии сгиба и бумага не рвется и все разглажено.

В качестве входных данных дается проекция этого всего дела со скрытыми линиями, краями бумаги итд, в виде скопления прямых линий.

Задача — предъявить развернутый единичный кусок бумаги со всеми линиями сгиба и показать как каждый образованный ими многоугольник ложится из развернутой бумаги на то что было показано в задаче (наборы координат).

Всякие ограничения про смежные грани, все такое.

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

Условие и решение производились в рациональных числах вида A/B (где числитель и знаменатель целые).

Мы просрали полимеры, и находимся приблизительно на 20 месте. Всего было около 130 команд проявивших какую-то осмысленную активность кроме тривиальной, а просто открывших счет было 200.

------------

Для имплементации рациональных чисел на Жабе взяли готовую реализацию на big integers. Мне надоело всякие операции a.plus(b) писать, и я взялся за Котлин (пожалел товарищей по станку, Скалу не взял). Потому что Котлин умеет переопределение операций!

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

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

Немного утомляет, что ТИПЫ можно не писать (но не везде). Когда нужно, приходится смотреть определение символа, идти туда, и копипастить тип оттуда. Вывод типов кажется в большем числе мест чем в скале, например можно не объявлять тип функции.

Не так вылизан плагин в IDEA, как в случае с Жабой.

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