?

Log in

No account? Create an account
Он всегда был не прочь подкрепиться. Кроме того, он был поэт. [SPL] [home page] Below are the 10 most recent journal entries recorded in the "inv2004" journal:

[<< Previous 10 entries]

September 10th, 2019
11:22 pm

[Link]

Rust, рефакторинг
Всё работало, вроде неплохо, пока не подключил extern crate pyo3. Естественно всё просто в Rust быть не может - не могу обернуть структуру с лайфтаймами макросами pyo3 => начался глобальный рефакториг по вычищению от лайфтаймов довольно центральной структуры => всё замазывается толстым слоем Rc/Arc/RefCell, настолько толстым, что хотется начать писать на Swift.

что-то типа такого:
self.borrow().control.borrow().stats.borrow_mut().counter += 1;


какой приятный код :(
При этом это по сути убивает всю lifetime концепцию - так как каждый borrow - это твой личный и ручной контроль поверх раста.

Tags:

(1 comment | Leave a comment)

August 16th, 2019
09:38 pm

[Link]

teamviewer => anydesk
teamviewer меня заблокировал якобы за коммерческое использования, хотя всё что я сделал - поменял полиси телеметрии на компе. В ответ на запрос вернуть всё назад они ответели что не видят для этого причин, но если очень надо, то я должен выслать расписку, паспорта и фотографии, что не то что сложно, но как-то немного противно.

Переехал на anydesk:
- удивительно, но по локалке он намного быстрее.
- интерфейс немного более багованный - иногда на полном экране артефакты.
- мобильное приложение тоже не очень удобное.

(Leave a comment)

December 26th, 2018
01:51 pm

[Link]

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

Tags:

(Leave a comment)

October 26th, 2018
01:12 am

[Link]

ubuntu => alpine linux => ubuntu
Думал, о том, что ubuntu немного жирновата, посмотрел вокруг и наткнулся на alpine в образах scaleway, тут же поднял сервер. По-началу действительно немного меньше, но как только начинаешь всё ставить - то оно быстро вырастает до почти убунтувских размеров.

Собрал всё под неё, посмотрел на глаз сколько жрёт процессора - на глаз меньше прилично, смотрю дальше, ба! , да оказывается другой проц на scaleway поднялся. Поднял ещё одну убунту - замерял - alpine кажется немного больше жрёт cpu на той же задаче (я конечно понимаю точность сравнения top'ом :) ). Из приятного - всё кажется более простым и арчеподобным, пакеты аналогично - mongodb и rust из коробки довольно свежие. Пока не наткнулся на это: http://www.etalabs.net/compare_libcs.html , а потом ещё какие-то косяки с безопастностью и с производительностью тоже (причём свежие) нагуглились, ну и ну его решил, - опять убунту на scaleway поднял.

Tags:

(Leave a comment)

September 16th, 2018
05:15 pm

[Link]

coinbase-pro-rs
Запилил API на расте для работы с coinbase: https://crates.io/crates/coinbase-pro-rs

поддерживает в том числе futures и websocket.
Ордербук пока положил отдельно - в связке он мне пока не нужен - но как только, так сразу его затащу внутрь.

Молча ненавижу питон - банально сделать moving-window на 100 x 2000значений и компьютер превращается в калькулятор, под pypy не собирается.

(5 comments | Leave a comment)

August 3rd, 2018
10:51 pm

[Link]

Rust. The Computer Language Benchmarks Game
Что-то где-то обновилось, пересчиталось, и я, неожиданно для себя вылез на первое место по Rust в k-nucleotide benchmark, причём даже с небольшим заделом:

https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/knucleotide.html

1. C++ g++ #2
3.66 155,956 1624 11.16 70% 98% 70% 68%
2. C gcc
5.07 130,008 1506 15.25 88% 84% 58% 73%
3. C# .NET Core #9
5.29 186,892 2574 17.90 96% 67% 93% 84%
4. Rust #8
5.76 135,728 1900 16.77 84% 94% 49% 65%
5. Rust #4
6.07 137,948 1749 18.11 51% 81% 78% 90%

C++ по-прежнему кажется недостежимым - чтобы посоревноваться за первое - нужен быстрый hashmap со специализацией по типам.

Tags: , , , ,

(Leave a comment)

July 5th, 2018
09:15 pm

[Link]

Продолжаю бенчмаркать
Итого за три дня написан ~ одинаковый функционал на python и type-script, который уже давно был реализован на расте. Задача довольно примитивная, но зато из реальности:
1) есть какое-то количество данных.
2) строим 100 минутных свечей (по сути только close) _от_текущего_тика_ (есть ли в этом смысл - это отдельная тема)
3) загоняем в ML
3) делаем #2 и #3 проигрывая исторические данные в цикле, например от 0 до 2000 для начала.

Итого:

PYTHON: Изначально всё было написано на питоне и pandas, который вроде как раз предназначен для подобных группировок, однако именно группировку он выполнял настолько долго, что я это даже не мерял - больше минуты.
TS: Написал это же на TS с использованием data-forge - картина аналогичная - с точки зрения производительности всё настолько печально, что даже замерять нету смысла.
TS#2: Выкинул data-forge, итого - TS разогнался до ~20 секунд.
PYTHON#2: Выкинул pandas и переписал всё исключительно цифрами (заодно время тоже, до этого это был datetime) на numpy - получилось всего 0.5sec.
TS#3: Выкинул модуль moment.js и TS тут же разогнался с ~20 до ~2 секунд, что в целом неплохо, учитывая что никаких биндингов.

На данном этапе python победил своим numpy, хотя на тот момент TS нравился больше.

Следующий этап - решил подключить ML, ведь каждый хочет с этим поиграться.
PYTHON#3: 20Mb модель он считает ~13ms.
TS#4: Похоже на то что keras.js это имплементация ML без всяких биндингов - следовательно всё считается на ванильном JS. И, оказалось, что в таком виде, 20Mb модель он предиктит 900ms, что при любом раскладе неприемлемо. Учитывая, что он это делает асинхронно в одном потоке, то, если продолжать слать данные, цифры модели вообще могут начать приходить с большим >30сек. опозданием.

Некий, наверное очевидный, вывод:

Python тормоз, на нём писать нельзя, но можно использовать волшебный numpy, если задача хоть как-то в него заходит.

TS - вроде заметно быстрее Python, но, из-за отсутствия биндингов, в конечном итоге он проседает сильнее.

Итого: для склейки оставляю питон.

Tags: , ,

(5 comments | Leave a comment)

June 28th, 2018
01:15 am

[Link]

Как я пофрилансил на react-native.
И чем это закончилось:

Мастер менеджмента и фрилансер. Повесть в трёх частях


Для тех кто просто пролистывает дальше, краткое содержание: «google: freelance подписывайте контракт» спасибо за внимание.

Чуть более полное описание: Как я открыл для себя новые вершины менеджмента благодаря одному заказчику, при работе над совместным фриланс проектом.

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

Действие первое: терпимое
...
https://habr.com/post/412785/

(5 comments | Leave a comment)

June 24th, 2018
01:56 am

[Link]

Вечный вопрос.
Для прода - C++ / Rust / Java / C
Что-то для строгого прототипирования - Haskell / ML
А вот быстро накидать прототип на чём? Python / Perl / Node.JS / Ruby / Go / Lua ?

Посмотрел - библиотек для всего этого много, хотелось бы накидывать на Rust (что и делаю), но быстро на нём никак не получается.

-- дополнение --
Посмотрел библиотеки внимательнее - Perl отпал, что-то современного, например машин-лёнинга для него нет.

(8 comments | Leave a comment)

May 20th, 2018
10:34 pm

[Link]

kx25
Случайно забежал на kx25 https://kx.com/kx25/ . Если отбросить 90% рекламной болтовни, то впечатления следующие: kx продолжает попытки расшириться, штат ~800 человек, причём, если вдруг у кого желание поучаствовать, то, вероятно, уровень входа не особо высокий, так как год назад, на прошлом kx-meetup, про kdb рассказывал человек из kx, по первому впечатлению, совсем студенческого уровня.

Из презентаций показалось, что kdb, в большинстве случаев, используется как некий продвинутый, конечно извиняюсь за такое сравнение, VBA и excel, что немного печально. В основном то, что показали, имеет наколенный или демонстрационный вид, фреймворки не упоминались вообще, вероятно те, у кого большая кодовая база kdb, пишут всю инфраструктуру с нуля, но, так как писать с нуля тяжело и долго, то в большинстве случаев kdb предпочитают использовать в связке с python.

Долго лавировал в толпе в галстуках, пытаясь опознать Arthur Whitney, но, в итоге, обнаружил его в более простой, если можно так сказать, форме, что приятно. Это не отменяет того, что он был постоянно окружён небольшой говорящей толпой, или же пытался убежать от неё, так что переговорить удалось всего парой слов.

Зато удалось интересно пообщаться с core частью kx - Pierre Kovalev и Oleg Finkelshteyn. Подтвердились мысли о том, что создание языка Q преследовало в основном коммерческие цели, и оказалось что я не один, кто считает K понятнее и проще чем Q. В Q 3.6 до сих пор используется K4, однако оказывается Артур уже делает K8 для себя, к сожалению, как и K5 два года назад, не думаю что её удастся посмотреть. Интересно, что K8 не только не пополнела, но и сокращается в объёме относительно K4.

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

Из сопутствующего - было очень много Machine-Learning, но, понятно что через питон или биндинги, это отчасти доказывает, что kdb хорош как небольшая обвязка, но что-то больше писать на этом врядли легко, и не только из-за лицензии. Троль Peter Wang из anaconda.org, предал анафеме C++, однако, как обычно, что на замену не сказал, так как очевидно что не python, так как в докладе он был основной темой. Я спросил его про Rust и попросил в будущем поделиться впечатлением.

Tags: , , , ,

(1 comment | Leave a comment)

[<< Previous 10 entries]

inv2004's Home Page Powered by LiveJournal.com