← All posts tagged programming

Как нормальные люди (не я) минуют этот процесс, эту статью на stackoverflow, эти особые apple technical notes? Я не знаю. Я не понимаю, почему у гомосек в яббле все так сложно. Сколько лет, но все не пойму 8( Взял проект, который заливали на apple store 4 года назад, он уже не заливается, картинки для СТАРОГО ифона ему теперь не такие.


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

Во что я превратился?



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

Конечно не забываем про респекты, и что код реальне работает, но таки если бы это всё писали на чем-то более правильном, было бы больше толку, и пиарчик этой всей фигни был бы продуктивнее в массах.

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

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

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

Вердикт: перфоманс действительно на высоте, но использовать это для полезных целей кроме самого простого анализа time series не вижу смысла.

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

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

Баян-статья habrahabr.ru про промисы в жабоскрипте, нашел попутно.

Так вот, там чуваки РУГАЮТ async/await потому что по сравнению с промисами код хуже читается (!!). Вроде не шутят. Беда (!!), говорят, что асинхронный код становится похож на синхронный. И это не один человек, там вроде есть группа с консенсусом на эту тему. Да, и постоянно ссылаются что становится сложно выполнить 2 функции одновременно: Promise.all(f1(), f2()).

Вопрос публике: в вашем проекте какой процент кода вот это вот, запускает одновременно 2 future? Это оптимизация latency на коленке каждый раз? Нафиг так жить?

Какой смысл в node.js если есть dart?

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

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

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

Неявный вопрос звучит так: может я пропустил что-то, что в этом направлении идет еще дальше дарта?

Пишу на дарте, дык реально утомительно и забывчиво писать там везде "await s.readBytes()", вот это await. В котлине здорово придумали вообще на уровне языка чтобы само все делалось.

Мнэ.

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

tech.marksblogg.com вот тут чувак между делом меряет перфоманс и занимается вещами, которые лично мне не доводилось щупать. Там же сравнение с другими СУБД.

Когда исследуешь багу в OpenJDK, перекомпиляешь по 5 минут, пробуешь разные версии NSTimer, и она то не компилится, то в рантайме нет такой сигнатуры, потому что она, блин только в 10.12, то другой тоже нет, а в мануале твои глаза перепутали макос с tvos справа где написана совместимость, то в недокументированной (уже) версии JNFRunLoop нету addTimer, потому что оказывается она не NSRunLoop, то таймер создался с runloop по умолчанию, но не вертится.. И тогда ты забиваешь на гейские поделки и пишешь простое и ламповое: "pthread_create(...."

Если в Dart разделить целое на целое, получается double:

10/2 -> 5.0

Оператор целочисленного деления выглядит так:

10 ~/ 2

Неявного приведения int к double в дарте нет. Надо везде писать i.toDouble()

А еще во Flutter если ты хочешь нарисовать текст на канвасе, то ОБЯЗАТЕЛЬНЫМ параметром является RTL (left to right или right to left — для арабов и евреев). Я вижу в этом атаку на идею о естественном превосходстве белой расы. Все началось кстати еще с UTF-8.

Щупаю язык Dart в целях как оно там Flutter все дела кросплатформенность, ко-ко-ко (2 платформы, ндя).

Dart как жаба совсем. После Kotlin-а ощущается мною как шаг назад. В отличие от жабы Async/await — есть! Всякие изоляты и мультитредовость еще не щупал. switch/case от С++ целиком 8)

Идейный плагин как-то фурычит, терпимо. Стандартную библиотеку не проиндексировал, найти наследников от Widget не смог. В evaluate/modify автокомплит работает только по полям, а по пропертям не может. Написал switch(), а он мне его возьми и подкрась моментом —
требует чтобы все кейсы из енума там прописал. Не отстал, пока не написал. Короче, проблемы первого мира у меня.

Релоад работает. Жосткий релоад тоже работает.

Я хочу написать десктопно-планшетную приблуду. Пробовал на гейбуке разные эмуляторы, уже упоминал. Остановился на Bluestacks — самый быстрый и приятный (родной SDK эмулятор тормозит 3 кадра в секунду). Минус Bluestacks — говно мамонта, даже настроек нету, HiRes не поддерживает. Афтары пишут: сорян, гейбук не в приоритете, венда наш фронтир. Зато честно. В отличие от также шустрого Andy (в нем Android 4.4) флуттер на Bluestacks поднялся и взлетел без проблем.

Жалко нету нативного десктопного таргета, но с методологией разработки (релоады) на девайсе/эмуляторе это менее важно.

Буду продолжать информировать.

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

Вот только Flutter под ним не запускается, не может инициализировать графику. Но Andy может эмулировать несколько чипсетов, но, скотина, под маком не имеет гуя для настроек, а по коммандлайну я еще не нашел док, а встроенный хелп об етом не пишет.

Самое позорное, что этот бесплатный софт абсолютно молча без опций и всяких opt-out принес с собой какое-то shitware, которое, выждав часик, сообщило мне, что рекомендует мне просканировать собою компьютер. Теперь в чек-листе чем Macos хуже Линукса можно смело ставить эту галочку.