
Ievgenii
28.09.2018
19:29:53
Тут видна явная асинхронность

Igor
28.09.2018
19:34:27
не, код выглядит как синхронный try/catch

Ievgenii
28.09.2018
19:38:07
Нет, на оборот
Без try

Google

Ievgenii
28.09.2018
19:38:33
asi.add( // Level 0 step 1 func( asi ){ print( "Level 0 func" ) asi.add( // Level 1 step 1 func( asi ){ print( "Level 1 func" ) asi.error( "MyError" ) }, onerror( asi, error ){ // Level 1 step 1 catch print( "Level 1 onerror: " + error ) asi.error( "NewError" ) } ) }, onerror( asi, error ){ // Level 0 step 1 catch print( "Level 0 onerror: " + error ) if ( error strequal "NewError" ) { asi.success( "Prm", 123, [1, 2, 3], true) } } ) asi.add( // Level 0 step 2 func( asi, str_param, int_param, array_param ){ print( "Level 0 func2: " + param ) } )
Блин)
Глянь ещё раз статью

Dark
28.09.2018
19:40:45
Может все таки код в ``` оборачивать?

Ievgenii
28.09.2018
19:41:47

Igor
28.09.2018
19:50:54
ну … не знаю.. то что я прочел получается что должно выглядеть как синхронное. у него есть контекст который он использует как-бы вместо стека - он передаётся всюду первым агрументом. а раз есть стек (с вложенность) то всё может выглядеть как-бы синхронно
но я пока только пытаюсь понять точно что там написано
так что могу ошибаться

Ievgenii
28.09.2018
21:47:30
Кто-то знает, можно ли из питоновского скрипта, с либами, сделать *.so файл или бинарь под убунту?
TensorFlow для Дишки нет :(
Но есть векторфло, от нетфликса, на Ди
Зато TensorFlow для ГОхи есть... Прям толкают на это ГО...

Dmitry
29.09.2018
05:46:27
Я вообще не представляю какой смысл в Тензорфлоу Го вместо Питон использовать.

Google

Valeriy
29.09.2018
05:56:47
Tiny-dnn попробуй, если нормальные бинари нужны.

Maxim
29.09.2018
06:19:09

Ievgenii
29.09.2018
06:29:54
Ты нейронками решил заняться?
Мы на работе используем одну от Майкрософт, но дороговато выходит. Вот решил попробовать самому сделать, может что-то выйдет
https://github.com/Netflix/vectorflow
Правда давно не обновляется


Valeriy
29.09.2018
06:55:44
А чего не ВекторФло? Он на Ди написан
Когда я его смотрел, там был очень ограниченный функционал. Не было нужных мне вещей. Сейчас уже не понмю.
Но можешь попробовать, расскажешь потом о впечатлениях нам. Будет интересно.

Ievgenii
29.09.2018
06:56:33
Наверное попробую сделать биндинг, хотя бы тех вещей, что мне понадобятся

Valeriy
29.09.2018
06:57:23
Или кафе ещё хвалят, но с кафе я не разобрался с докой.

Ievgenii
29.09.2018
06:58:39
Я попал на статью, которая, практически, на 90% описывает то, что мне нужно сделать. И она на тенсоре основана
Если выйдет на нем, то и переписать на что-то другое будет смымл

Igor
29.09.2018
06:59:13

Ievgenii
29.09.2018
06:59:16
Пока нужно хоть что-то сделать

Igor
29.09.2018
06:59:26
Вон народ на бейсике пилит

Valeriy
29.09.2018
06:59:32
??

Google

Ievgenii
29.09.2018
06:59:52
Ну, нейронки это старая технология
Там на чем угодно можно её писать

Igor
29.09.2018
07:00:05
Да
Не могла долго взлететь

Valeriy
29.09.2018
07:00:28

Ievgenii
29.09.2018
07:09:48
Не лень же людям
https://www.haiku-os.org/get-haiku/release-notes/
Каждый день что-то новое люди создают... Один я какой то хернёй на работе страдаю...

Valeriy
29.09.2018
07:11:27
Как можно передать шаблонный тип в шаблон?
Хочу вот такое:
struct ts(handler) {}
template test(pp, T)
{
alias test = pp!T;
}
pragma(msg, test!(ts, int) );
Получаю
Error: template instance `test!(ts, int)` does not match template declaration test(pp, T)
Вот так вот костыльно можно сделать
struct ts(handler) {}
template test(string pp, T)
{
mixin("alias test = " ~ pp ~ "!T;");
}
pragma(msg, test!("ts", int) );
Но хочется без костылей

Ievgenii
29.09.2018
07:24:13
У меня тоже не выходит

Valeriy
29.09.2018
07:32:56
Блин! Алиас же!
struct ts(handler) {}
template test(alias pp, T)
{
alias test = pp!T;
}
pragma(msg, test!(ts, int) );

Ievgenii
29.09.2018
07:39:57
Хм, а чего, если alias test, поменять на что-то типа alias tes, то перестает работать?

Valeriy
29.09.2018
07:42:20

Dmitry
29.09.2018
07:43:10

Ievgenii
29.09.2018
07:43:42

Valeriy
29.09.2018
07:57:37
Статический полиморфизм
Когда у я на этапе компиляции знаю конфигурацию моих объектов и полиморфизм нужен, что бы писать меньше кода
Когда разные объекты комбинаторно конструируются из простых частей
как то так это выглядит:

Google

Valeriy
29.09.2018
08:01:21

Igor
29.09.2018
08:01:45
видимо незаконченный шаблон (как вот ts без int) не может быть параметром шаблона. только в виде алиаса

Valeriy
29.09.2018
08:01:54
Можно было сделать динамический полиморфизм и получить ненужные аллокации в куче и GC.

Igor
29.09.2018
08:02:43
есть перечень того что может быть параметром, нужн туда заглянуть

Ievgenii
29.09.2018
08:05:16

Igor
29.09.2018
08:05:39
Template parameters can be types, values, symbols, or sequences
https://dlang.org/spec/template.html

Valeriy
29.09.2018
08:08:39

Pavel
29.09.2018
08:26:56

qwerty
29.09.2018
10:51:00

Valeriy
29.09.2018
11:22:06
Очень странно сделана передача шаблонного миксина в качестве аргумента шаблона
я не могу просто взять и написать
mixin template Mxn1(alias str)
{
enum b = str;
}
struct Str1(alias mxn)
{
mixin mxn;
}
pragma(msg, Str1!(Mxn1!"qwe") );
Но могу вот так
template Mxn1(alias str){
mixin template Mxn1(alias _str = str)
{
enum b = _str;
}
}
struct Str1(alias mxn)
{
mixin mxn;
}
pragma(msg, Str1!(Mxn1!"qwe") );

Ievgenii
29.09.2018
11:38:28
Капец
Сам пишешь код так, что ничего не понятно
А потом хаим С++

Valeriy
29.09.2018
11:58:01
А потом хаим С++
В C++ тоже самое через CRTP делается. Вот там сложно, да.
А здесь я удивляюсь странной необходимости делать
template Mxn1(alias str){
mixin template Mxn1(alias _str = str)
Может быть можно проще?

Ievgenii
29.09.2018
12:03:23
Не знаю. Я бы проще как-то писал. Не знаю твоей задачи, но выглядит сложно.

Dameda
29.09.2018
12:30:27
А шо в телегу можно как то подсветку синтаксиса или нормального отображения кода сделать?

Pavel
29.09.2018
12:30:44
нет
Ну можно сделать моноширинный шрифт с помощью ```

Google

Dmitry
29.09.2018
13:46:46
Ребят, давайте по честноку кто код на работе юнит тестами покрывает. Если покрываете, то на сколько.
И есть тут хоть кто то кто видит реальную пользу в TDD?

Pavel
29.09.2018
13:49:38
Мы покрываем
И на прошлой работе тоже покрывали

Dmitry
29.09.2018
13:51:00
А покрывали в какой момент? Когда какие то блоки сделаны и отточены? Просто как по мне этим надо заниматься только после того как то же логгирование будет сделано на 100% и в коде будут обработаны все потенциальные ошибки

Pavel
29.09.2018
13:53:39
Мы покрываем постоянно
Изредка до написания кода
Но самый кайф это функциональные тесты когда надо переписать апи какой то
Есть код, покрываешь его тестами, переписываешь код. Профит.

Dmitry
29.09.2018
14:03:41
Вообще код сайтов есть смысл покрывать? Просто мне это кажется диким маразмом. Ладно там либы или еще что то сложное, но сайты, пусть и со сложными формами я вот реально смысла не вижу.

Ievgenii
29.09.2018
15:24:12

qwerty
29.09.2018
15:27:38
а вот и конструктивная критика подъехала
тесты надо писать, если лень тестировать руками. Не писать тесы можно если не надоело тестировать руками или если софт пишите с первого раза без ошибок
и не стоит путь модульные тесты с функциональными или интегреционными

Dmitry
29.09.2018
16:11:43

Dameda
29.09.2018
16:14:31
Ееее пока открывалась вс я успел прочесть главу в книге
Сразу видно что все продуманно
Прочитал - попробовал на практике новые приемы

qwerty
29.09.2018
16:24:59

Ievgenii
29.09.2018
16:35:23