Home
golang
golang@conference.jabber.ru
Понедельник, 4 апреля 2016< ^ >
Deirz установил(а) тему: Go Programming Language.
|| Изучаем: https://gobyexample.com/
|| Тур: http://tour.golang.org/
|| Как писать код: http://golang.org/doc/code.html
|| Как писать эффективный код: http://golang.org/doc/effective_go.html
|| FAQ: http://golang.org/doc/faq
|| 99% ответов о языке Go тут: http://golang.org/ref/spec
|| Сторонние либы: http://godoc.org/ https://github.com/avelino/awesome-go
|| Логи: http://chatlogs.jabber.ru/golang@conference.jabber.ru/
|| This chatroom does not adhere to any codes of conduct, be they implied or explicitly stated by someone. Your feelings can and WILL be hurt without a warning.
Конфигурация комнаты
Участники комнаты

GMT+3
[00:07:33] <postman> погоди, но у васма есть бинарная форма, и именно она основная.
[00:26:42] begemot_sun вышел(а) из комнаты
[00:30:41] kpmý вошёл(а) в комнату
[00:32:16] <kpmý> бинарная форма webassembly это сериализованное в бинарном виде дерево ast, его на клиенте доводят до бинарного кода конпелятором
[00:34:28] <postman> что ты имеешь в виду, жид?
[00:37:22] <kpmý> да у них там даже не жид, обычная компиляция и размещение исполняемого кода в песочницу
[00:38:06] <Deirz> песочницу переиспользовали накловскую?
[00:38:09] <postman> нихуя, там интерпретатор этого бинарного байт-кода должен быть.
[00:38:53] <Deirz> в накле ж всё готово было вроде
[00:38:55] <kpmý> мне кажется, это ущербная затея, зачем им байткод в век llvm и прочих
[00:39:14] <kpmý> насколько я понял это именно живой бинарный код под платформу
[00:39:18] <kpmý> могу ошибаться
[00:40:04] <postman> ради портабельности.
[00:40:15] <postman> а потом уже можно жидом упороться.
[00:46:22] <kpmý> короче я думал что в wasm вот эта хрень https://ru.wikipedia.org/wiki/AOT-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F
[00:46:31] <kpmý> потому что оно пару раз мелькало в документации
[00:46:42] <kpmý> но видимо что-то переиграли и теперь там jit
[00:46:59] <kpmý> печально
[00:47:25] <postman> ну ебать, выгода от этой хуйни не настолько гигантская, я думаю.
[00:59:32] <Deirz> не так печально
[00:59:48] <Deirz> видать сейчас достаточно собрать один раз приложение и дать на него ссылку
[01:00:18] <Deirz> а так надо было прямо на сервере компилять платформоспецифичный код в зависимости от юзерагента
[01:01:20] <postman> чо.
[01:04:11] <Deirz> аот про это
[01:04:19] <kpmý> ну типа суть в том, чтобы на клиента не прилетал левый бинарь от хуюгла
[01:04:24] <kpmý> аот на клиенте должен был быть
[01:04:47] <kpmý> типа тебе прилетает ast, а браузер его компилит и грузит и всё норм
[01:05:00] <kpmý> ну и jit то же самое даст, в принципе
[01:05:24] <kpmý> aot тупее и быстрее, по идее, плюс в статике уже не порыться, типа секурно
[01:05:52] <Deirz> имея жит кажется можно получить местный аот почти бесплатно
[01:17:50] kpmý вышел(а) из комнаты
[02:19:56] <Deirz> мелочь, но всё же приятно
[02:21:07] <Deirz> вывод типов без костылей позволяет (x + 2) вне зависимости от того, функция это или значение.
Ну да это и без вывода нормально определяется, лол -__-
[02:26:29] <postman> чего?
[02:27:29] <Deirz> парсер пилю
[02:27:33] <Deirz> скромноязычка
[02:28:46] <postman> я не понял смысл предложения.
[02:30:18] <Deirz> (x + 2) может быть либо арифметическим выражением либо неправильным вызовом
[02:30:44] <Deirz> когда вызовы выглядят как (x 2 3 4)
[02:32:16] <postman> ты там инфиксный лисп устраиваешь что ли, ебана?
[02:33:00] <Deirz> в окамле так, например
[02:33:27] <Deirz> в хачкеле тоже так, кажется?
[02:38:18] <postman> в хачкеле нормальный синтаксис, и в окамле тоже.
[02:38:27] <Deirz> ёба
[02:39:14] <Deirz> let x = 1 + 2;
let y v = v + 2;
(x + 2);
(y + 2);
[02:39:22] <Deirz> синтаксически всё верно
[02:39:40] <Deirz> но второе выражение сломается
[02:40:17] <postman> ну да.
[02:40:27] <postman> (если ты не определишь + над функциями)
[02:40:29] <Deirz> причём детект поломки будет даже не во время парсинга
[02:40:45] <postman> а почему бы ему быть во время парсинга?
[02:40:52] <postman> это семантика.
[02:41:02] <Deirz> тип выводится потом
[02:41:12] <Deirz> потому что
[02:42:29] <Deirz> а выражение надо распарсить сейчас
[02:42:56] <postman> ну?
[02:43:04] <Deirz> что "ну"
[02:43:15] <postman> я не вижу проблемы.
[02:43:34] <Deirz> может её там и нет, хз
[02:43:41] <postman> ты хочешь семантические ошибки определять во время парсинга?
[02:44:01] <Deirz> нет, просто два вида парсинга получаются
[02:44:09] <postman> почему?
[02:44:21] <Deirz> один с арифметикой, другой без
[02:44:48] <postman> это как.
[02:45:08] <Deirz> из примера выше
[02:45:24] <Deirz> есть валидная конструкция (x + 2), есть так же (x 2)
[02:45:39] <postman> и?
[02:45:44] <Deirz> (x + 2 * 3), (x 2 3)
[02:45:47] <postman> один и тот же парсер.
[02:45:55] <Deirz> но (x + 2 3) -- невалидная
[02:46:11] <Deirz> (x 2 + 3) -- тоже
[02:46:24] <postman> зависит от приоритета операторов.
[02:47:02] <Deirz> и правда
[02:47:13] <postman> а, кажется, понял тебя.
[02:47:51] <postman> ты хочешь заглянуть "в будущее" и если распарсенное поддерево не имеет смысла семантически, распарсить его по-другому?
[02:47:52] <Deirz> и в то же время не оч
[02:49:01] <Deirz> let y2 v t = v + t + 2;;
y2 2 + 3 3 + 2 ;;
Error: This expression has type int -> int
but an expression was expected of type int
[02:49:49] <Deirz> y2 (2 + 3) 3 + 2 ;;
[02:49:53] <Deirz> вот так работает
[02:50:45] <postman> ну.
[02:52:08] <Deirz> кажется, нужны дополнительные усилия, чтобы работало (y 2 + 3)
[02:52:45] <Deirz> лан, тогда сделаю два парсера
[02:53:11] <Deirz> один для арифметических выражений, другой для вызовов
[02:53:36] <Deirz> судя по тому, что в окамле есть operator chars там примерно то же самое внутри
[02:55:11] <postman> зачем дополнительные усилия, что значит "чтобы работало"?
[02:55:30] <postman> в эмелях аппликация имеела всегда наивысший приоритет.
[02:55:47] <postman> поэтому оно парсится как (y 2) + 3
[03:00:00] <postman> я просто не понимаю, в чем проблема.
[03:00:20] <postman> ты хоть грамматику описал?
[03:01:35] <Deirz> на листочке примеры накидал
[03:02:42] <postman> ммм, я про формальное описание.
[03:02:58] <Deirz> нет
[03:03:20] <Deirz> я делаю минимальный язык, с которым потом буду экспериментировать и думать уже
[03:03:28] <Deirz> так как сейчас нихера не понятно вообще
[03:09:55] krab вошёл(а) в комнату
[03:45:17] krab вышел(а) из комнаты: Replaced by new connection
[03:45:21] krab вошёл(а) в комнату
[04:08:30] Deirz вышел(а) из комнаты
[04:56:56] <mantyr@jabberon.ru> Бенчи… бенчи просто странные:) Ну или stm реально круто:) https://github.com/lukechampine/stm?utm_source=golangweekly&utm_medium=email
[05:00:18] <mantyr@jabberon.ru> Впрочем внутри как и ожидалось написанно на Mutex
[06:44:21] postman вышел(а) из комнаты
[08:00:30] cheshir вошёл(а) в комнату
[08:02:43] Magiq вошёл(а) в комнату
[08:30:19] Magiq вышел(а) из комнаты
[08:39:36] plumbum вышел(а) из комнаты
[09:09:23] Magiq вошёл(а) в комнату
[09:39:04] avz вошёл(а) в комнату
[09:44:49] begemot_sun вошёл(а) в комнату
[09:49:32] plumbum вошёл(а) в комнату
[10:03:55] Magiq вышел(а) из комнаты
[10:04:26] Magiq вошёл(а) в комнату
[10:06:51] Magiq вышел(а) из комнаты
[10:07:20] Magiq вошёл(а) в комнату
[10:08:22] avz вышел(а) из комнаты
[10:09:19] dzendmitry вышел(а) из комнаты
[10:09:21] dzendmitry вошёл(а) в комнату
[10:10:57] kpmý вошёл(а) в комнату
[10:11:28] <kpmý> норм тут у вас парсеры, экспрешшоны
[10:11:36] <kpmý> как будто чятик про программирование
[10:12:47] <mantyr@jabberon.ru> Так и есть, иногда именно о программинге и говорим.
[10:12:57] <mantyr@jabberon.ru> Что нынче пишешь на Golang, kpmý?
[10:13:37] ftrvxmtrx вошёл(а) в комнату
[10:22:51] <kpmý> всякую херню, начинаю, понимаю что херня и бросаю
[10:32:59] <mantyr@jabberon.ru> Например?
[10:37:47] ermine вошёл(а) в комнату
[10:37:57] <kpmý> ну из последнего - экономический симулятор
[10:45:32] Laz вошёл(а) в комнату
[10:46:43] <Laz> напиши текстовый редактор
[10:49:59] <kpmý> дык atom уже есть
[10:53:14] <Laz> на го напиши
[10:55:26] Magiq вышел(а) из комнаты
[10:55:56] Magiq вошёл(а) в комнату
[10:58:22] Magiq вышел(а) из комнаты
[10:58:51] Magiq вошёл(а) в комнату
[11:01:00] Magiq вышел(а) из комнаты
[11:01:29] Magiq вошёл(а) в комнату
[11:03:30] <kpmý> никакой продукт индивидуального разработчика уже не догонит webkit по мощности движка
[11:03:56] Magiq вышел(а) из комнаты
[11:04:02] mks2 вошёл(а) в комнату
[11:04:25] Magiq вошёл(а) в комнату
[11:27:22] <Deirz> вебня ненужна
[11:27:51] <Deirz> kpmý, а что с экономикой?
[11:29:47] <kpmý> да это уже не вебня, это просто наиболее мощный движок ui конкурирующий с ui движком операционки
[11:30:14] <kpmý> экономика чот мне показалась унылой
[11:30:44] <Laz> что ещё за ui движок операционки?
[11:31:09] <kpmý> wpf например
[11:31:24] <kpmý> или как там его
[11:32:54] <Laz> впервые слышу
[11:35:52] <kpmý> ну ты может видел приложения под win10, вот, это оно
[11:36:12] <kpmý> то же самое, макось даёт тебе движок ui
[11:36:36] <kpmý> или там, gtk, qt тоже движки ui
[11:36:43] <kpmý> фрейм нахуй ворки
[11:38:02] <Deirz> http://phys.org/news/2016-03-language-cells.html тем временем в науке
[11:45:09] <kpmý> без виртуалки нещитово)
[11:46:46] <Laz> то есть, это очередной движок для гуя?
[11:47:09] <Laz> типа qt или gtk или fltk?
[11:47:11] <Laz> очень круто
[12:10:20] cheshir вышел(а) из комнаты: Replaced by new connection
[12:10:30] cheshir вошёл(а) в комнату
[12:28:59] Deirz вышел(а) из комнаты
[12:29:57] Magiq вышел(а) из комнаты
[12:30:00] Deirz вошёл(а) в комнату
[12:30:44] Magiq вошёл(а) в комнату
[12:31:13] krab вышел(а) из комнаты: Left Vacuum-IM
[12:44:54] Magiq вышел(а) из комнаты
[12:45:24] Magiq вошёл(а) в комнату
[12:55:50] Magiq вышел(а) из комнаты
[12:56:20] Magiq вошёл(а) в комнату
[14:17:14] krab вошёл(а) в комнату
[14:28:02] kms вышел(а) из комнаты
[14:41:41] Darth Лис вошёл(а) в комнату
[14:43:06] <Darth Лис> преведы
[14:43:15] <Darth Лис> чо как у вас тут
[14:43:23] <Darth Лис> Пщ! сцуко
[14:43:31] <Deirz> привет привет
[14:44:45] <Deirz> ничо так, пилим всякое
[14:45:08] <Deirz> Darth Лис, как запил базы?
[14:45:20] <Darth Лис> asd
[14:45:25] <Darth Лис> о
[14:45:36] <Darth Лис> ну так… потихоньку прокрастинирую %)
[14:45:39] <Darth Лис> точнее
[14:45:50] <Darth Лис> потихоньку прокрастинируя едет вперёд %)
[14:46:06] <Darth Лис> прикольную фиговину для pubsub придумал
[14:46:16] <Deirz> какую?
[14:46:21] <Darth Лис> типа, как обойти проблему медленных консюмеров
[14:46:29] <Darth Лис> что б не тормозили собой всех остальных
[14:46:52] <Deirz> отключать
[14:46:56] <Deirz> как ещё то
[14:46:58] <Darth Лис> нет!
[14:47:01] <Darth Лис> низачто!
[14:47:16] <Darth Лис> мои данные это лог
[14:47:28] <Darth Лис> а по такому логу святое дело сделать множество курсоров
[14:47:42] <Darth Лис> каждый sub будет поддерживать свой собственный курсор
[14:47:52] <Darth Лис> и таким макаром они и не будут друг другу мешать жить
[14:48:14] <Darth Лис> быстрые консюмеры будут вперёд урывать, а медленные догонять
[14:48:33] <Darth Лис> и вся эта радость на каналах конечно %)
[14:49:10] <Darth Лис> это я типа проблему описал, и последствия её решения
[14:50:29] <Darth Лис> а самое решение такое — каждому sub выдаём слегка буферезированый канал, в которые пытаемся сделать send, или скипуем с помощью select { default: }
[14:50:31] <Deirz> медленные потребители тебе всю память на сервере выжрут
[14:50:39] <Deirz> чтоооо
[14:50:39] <Darth Лис> неа
[14:50:41] <Deirz> какой скип?
[14:50:51] <Darth Лис> слушай-слушай до конца
[14:50:55] <Darth Лис> ещё не всё
[14:51:18] <Darth Лис> в канал пихаем не сами сообщение, а только IDшники
[14:51:44] <Darth Лис> меделенные консюмеры будут видеть что у них range образовался
[14:51:58] <Darth Лис> и буду запрашивать сразу пачками сообщения от стораджа
[14:52:26] <Darth Лис> из канала на меделнном консюмере например придёт такая последовательность ID: 1, 2, 22
[14:52:48] <Darth Лис> вот объект sub и сообразит что он проебал кучу сообщений в промежутке 3-22
[14:52:56] <Darth Лис> и попросит их все
[14:53:28] <Deirz> нормально
[14:53:53] <Darth Лис> а так как бэкенд это bolt/lmdb — один хер эти данные будут в ФС кэше
[14:54:09] <Deirz> оверхед правда заметный
[14:54:17] <Darth Лис> ну… это не nuts
[14:54:22] <Darth Лис> я преследую корректность
[14:54:30] <Darth Лис> а не космические скорости
[14:54:34] <Deirz> ну лан, бенчмарк покажет
[14:54:59] <Darth Лис> потому что данные которые там должны храниться — бесценные. ведь это источник правды и консюмерам нельзя ошибаться
[14:55:07] <Darth Лис> и найобывать их
[14:55:16] <Darth Лис> для безопасности короч :)
[14:55:51] <Darth Лис> Deirz: вряд ли оверхэд будет больше чем запись на диск %)
[14:56:02] <Darth Лис> как только диск влючили — вся система резко затормозила
[15:15:09] <Darth Лис> http://arxiv.org/abs/1603.05636
[15:15:16] <Darth Лис> An Implementation and Analysis of a Kernel Network Stack in Go with the CSP Style
[15:15:36] <Darth Лис> In this study, the implemented Go network stack, called GoNet, was compared to a representative network stack written in C. The GoNet code is more readable and generally performs better than that of its C stack counterparts. From this, it can be concluded that Go with CSP style is a viable alternative to C for the language of kernel implementations.
[15:15:40] <Darth Лис> такие дела %)
[15:15:59] <Deirz> ого
[15:16:55] <Deirz> не указано, для какой оси они это сделали
[15:17:37] <ftrvxmtrx> бредятина какая-то. никто не запрещает делать CSP на С
[15:18:44] <Darth Лис> типа сложнее
[15:19:05] <Darth Лис> хотя есть же libmill
[15:19:14] <Darth Лис> или как оно там называется
[15:19:44] <Deirz> либмилл написал сустрик
[15:19:57] <Deirz> автор nanomsg и zeromq
[15:20:19] <Deirz> причём из zeromq он сбежал, а nanomsg - забросил
[15:20:37] <Laz> перед наномсг ещё и crossroads.io был
[15:20:47] <Deirz> точнее, "доделал", передал мейнтейнерство и пошёл делать либмилл
[15:20:55] <Deirz> кроссроадс вообще быстро сдох
[15:32:27] kms вошёл(а) в комнату
[15:34:34] Darth Лис вышел(а) из комнаты
[15:37:26] <Deirz> In tapip,  each  client  and  server  connection  ran  in  its own thread; GoNet was similar, except it used goroutines instead of threads.
[15:37:36] <Deirz> понятно, почему гошный стек оказался быстрее
[15:43:08] <Laz> чо за гонет
[15:43:12] <Laz> тцп-стек на го?
[15:44:52] <Laz> так, и где его можно качнуть?
[15:47:45] Laz вышел(а) из комнаты
[15:48:19] Laz вошёл(а) в комнату
[15:48:34] Laz вышел(а) из комнаты
[15:49:09] <Deirz> а ссылки на реализацию в статье нет
[15:49:40] <Deirz> но чёт графики так себе
[15:49:58] <Deirz> при 1000 одновременных пингах задержка ответа составляет около 800мс
[15:50:47] <Deirz> вообще, если пильнуть нормальный стек, интегрированный с рантаймом, то может получиться что-нибудь интересное
[15:51:39] Laz вошёл(а) в комнату
[16:32:38] ftrvxmtrx вышел(а) из комнаты
[16:36:48] <kpmý> http://i.imgur.com/sKQ6dbD.png
[16:37:31] <Deirz> идея 56 года, кажется
[16:37:40] <Laz> древний прикол
[16:37:46] <Deirz> кодак на этом календаре жил пока его директор не отошёл от дел
[16:38:17] <Laz> только тут же появятся умники, которые решат, что месяц, в который они родились, надо удлиннить
[16:38:27] <Laz> типа как июль и август
[16:38:33] <Deirz> зачем?
[16:38:51] <Laz> воще без понятия
[16:38:58] <Laz> с головой проблемы, видимо
[16:38:58] <Deirz> а
[16:39:10] <Deirz> срач насчёт втыкания этого нового дня будет наверно
[16:39:31] <kms> kpmý: выглядит заманчиво
[16:39:35] <Laz> у кого отчикнуть, кому приделать
[16:39:44] <Laz> вы для начала на utc всех людей переведите
[16:39:51] <Laz> а потом уже и календарь новый можно предлагать
[16:40:24] <Deirz> что не так с utc?
[16:40:43] <Laz> все живут по локальному времени же
[16:40:45] <Laz> до сих пор
[16:40:55] <kpmý> а надо по времени лондона)
[16:41:11] <Deirz> локальное время в принципе норм
[16:41:15] <Laz> да похер по какому
[16:41:18] <Laz> лишь бы по одному
[16:41:21] <Laz> на всех
[16:41:33] <Deirz> оно связано с распорядком дня
[16:41:50] <Laz> ну ладно, хрен с ним, с utc
[16:41:55] <Laz> формат даты времени!!!
[16:42:12] <Laz> хотя бы его один на всех можно запилить?
[16:42:22] <Deirz> вот формат - да
[16:42:30] <Deirz> причём уже взять тот, как его
[16:42:36] <Laz> iso8601
[16:42:48] <Laz> только за несоблюдение ввести пожизненный расстрел
[16:43:13] <Deirz> да, этот
[16:43:23] <Deirz> правда есть ещё rfc-3339
[16:43:32] <Laz> это то же самое, только ietf
[16:43:40] <Laz> там какие-то минимальные отличия
[16:43:46] <Deirz> ну вот ещё
[16:43:50] <Deirz> различий быть не должно
[16:44:15] <Deirz> в исошном не нравится только буква Т между датой и временем
[16:44:19] <Deirz> сложнее читать становится
[16:44:31] <Deirz> а без Т будет пробел - тоже плохо
[16:44:34] <Laz> да, пожалуй, единственный минусец
[16:48:02] <kpmý> если менять что-то старое, то оно должно быть новое для всех, а не для некоторых
[16:48:20] <kpmý> вот календарь это норм
[16:48:27] <kpmý> так необычно
[16:48:39] <kpmý> что для пиндоса, что для хохла, что для россиянчика
[16:49:22] <kpmý> а вот iso8601 это какая-то айтишная шняга которую любят всякие sql-черти
[16:50:24] <kpmý> все остальные просто пошлют нахуй такие iso-блудняки
[16:51:05] <Deirz> плохо что в протоколы зашиты разные представления времени
[16:51:29] <Deirz> тот же http date - она вообще по какому-то старому рфц отформатирована
[17:30:09] krab вышел(а) из комнаты: Left Vacuum-IM
[17:32:11] cheshir вышел(а) из комнаты
[17:38:50] Deirz вышел(а) из комнаты
[17:39:01] Deirz вошёл(а) в комнату
[17:58:44] plumbum вышел(а) из комнаты
[18:03:46] cheshir вошёл(а) в комнату
[18:11:25] Magiq вышел(а) из комнаты
[18:51:27] kpmý вышел(а) из комнаты
[19:41:57] plumbum вошёл(а) в комнату
[20:31:20] kpmý вошёл(а) в комнату
[20:33:00] Magiq вошёл(а) в комнату
[20:33:20] Magiq вышел(а) из комнаты
[20:34:59] Magiq вошёл(а) в комнату
[20:41:08] radioqt вошёл(а) в комнату
[20:48:32] Laz вышел(а) из комнаты
[20:51:08] Deirz вышел(а) из комнаты
[20:55:13] Magiq вышел(а) из комнаты
[20:56:14] Deirz вошёл(а) в комнату
[20:56:48] Magiq вошёл(а) в комнату
[21:00:20] kpmý вышел(а) из комнаты
[21:10:40] ftrvxmtrx вошёл(а) в комнату
[21:13:30] cheshir вышел(а) из комнаты
[21:14:21] cheshir вошёл(а) в комнату
[21:23:00] ftrvxmtrx вышел(а) из комнаты
[21:26:00] ftrvxmtrx вошёл(а) в комнату
[21:29:40] kpmý вошёл(а) в комнату
[21:56:46] kpmý вышел(а) из комнаты
[22:23:25] Magiq вышел(а) из комнаты
[22:51:10] cheshir вышел(а) из комнаты
[22:55:09] kpmý вошёл(а) в комнату
[22:59:09] <kpmý> ipfs суки перемудрили
[22:59:28] <kpmý> версия пщ им не нравится
[22:59:40] <kpmý> сука я же опять заебусь её пересобирать на арм-машине
[23:12:23] <Deirz> какую требуют?
[23:20:45] <kpmý> 1.5.2
[23:21:23] <Deirz> вут
[23:21:30] <Deirz> зачем именно эту?
[23:21:40] <Deirz> почему не 1.5.3?
[23:36:24] <kpmý> ну там на самом деле >=1.5.2
[23:36:47] <kpmý> просто у меня 1.5.0 и теперь надо пересобрать
[23:47:33] ermine вышел(а) из комнаты
[23:54:20] kpmý вышел(а) из комнаты
[23:57:42] kpmý вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!