Home
golang
golang@conference.jabber.ru
Среда, 2 июля 2014< ^ >
ftrvxmtrx установил(а) тему: Go Programming Language. http://tip.golang.org/pkg
|| Всегда используйте hg tip. Не ждите релизов.
|| Логи: http://chatlogs.jabber.ru/golang@conference.jabber.ru/
|| Изучаем: https://gobyexample.com/
|| Сторонние либы: http://godoc.org/
|| http://github.com/goerlang
Конфигурация комнаты
Участники комнаты

GMT+4
[00:11:27] Darth Лис вышел(а) из комнаты
[00:15:06] drumond вышел(а) из комнаты
[00:15:14] drumond вошёл(а) в комнату
[00:48:07] ermine вышел(а) из комнаты
[00:53:28] MaXGGXaM вышел(а) из комнаты: Вышел из Vacuum-IM
[00:53:38] MaXGGXaM вошёл(а) в комнату
[00:56:38] Yuriy Tsemashko вошёл(а) в комнату
[00:56:54] <Yuriy Tsemashko> Оу, и такой чятик есть
[00:56:56] Yuriy Tsemashko изменил(а) имя на azzz
[00:57:07] <azzz> вечера, гоаны
[01:00:38] <azzz> ага, знакомые всё лица
[01:05:54] <postman> опять рубисты ввалились?
[01:06:31] <azzz> угу
[01:06:40] <postman> бывает.
[01:06:44] <azzz> куда ни плюнь - всюду эти чертовы хипстеры
[01:08:10] <azzz> Я тут начал ковырять Go и.. Ну какбы один из плюсов языка - эот офигенная работа с зависимостями, без мозгосношения с мейкфайлами, путями, переменными и прочей херью, которой, в принципе, полно в любом C/C++ компиляторе или той же яве. Но это происходит ценою вкомпилирования всех импортов в один бинарный файл.
[01:08:22] <azzz> И я вот смотрю на это и начинаю чота ссаться: а это нормально?
[01:08:37] <azzz> редис+fmt и бинарник весит больше треъ метров
[01:08:55] <azzz> а приложение какой-нибудь так и вообще будет весом в сто метров. И всё в одном бинарнике
[01:09:03] <azzz> это вообще чо как, не страшно?
[01:09:47] <azzz> применимо к той же яве, я, конечно, понимаю, что с точки зрения переноса приложения разнциы нет: 150 метров в одном бинарнике или в десяти. А что до деплоя явы, так там вообще также всё говно собирается в один стопицот-метровый йар файл
[01:10:38] <azzz> но у какой-нибудь сишки есть шаред либы и все дела, дллки там или сошки в одном экземпляре шарятся между приложениями и все счастливы в плане потребления памяти и скорости загрузки приложения, если дллки закешированы
[01:11:45] <azzz> с другой стороны, я понимаю, что как-то в рубях с рельсами мы живет и нормально. Разве что 150 метров не в одном файле, а в стописяти гемах, и эти гемы разве что только место на диске экономят, но никак не скорость загрузки приложения или потребление памяти
[01:12:24] <ftrvxmtrx> я несчастлив. шаред объекты -- сраное говно, которое нужно искоренять
[01:12:37] <azzz> но мне хотелось бы использовать Go для действительно быстрых задач. Еще одно руби-ява-говно как-то и ни к чему. А Го выглядит как замена для тех, кому больно писать на Си
[01:12:50] <azzz> ftrvxmtrx: вот какбы я тоже понимаю это с одной стороны
[01:13:03] <ftrvxmtrx> го не заменяет си вообще никак. это совершенно разные вещи
[01:13:33] <ftrvxmtrx> исполняемый файл 100 метров? стрипнутый? не пофиг ли вообще?
[01:13:36] <azzz> ftrvxmtrx: но искоренение шаред-объектов не подразумевает полный отказ от разбивки приложения на исполняемый бинарник и подключаемые модули
[01:13:50] <azzz> ftrvxmtrx: ну вот я и пытаюсь понять: не пофиг ли?
[01:13:52] <Kxepal> azzz: большой бинарь / jar наоборот хорошо: вместо того, чтобы искать на диске и загружать по одной каждую зависимость, которой может и внезапно не оказать, все разом отправляется в память и никаких проблем.
[01:13:55] <azzz> оним метсом чую, что пофиг
[01:14:10] <azzz> Kxepal: вот какбы тоже аргумент
[01:14:12] <ftrvxmtrx> если приложение должно иметь подключаемые модули, а не другие приложения, то с этим приложением что-то не так
[01:14:34] <azzz> ftrvxmtrx: ну подключаемые модули - это, в смысле, библиотеки или что там еще в терминологии
[01:14:35] <azzz> ипорты
[01:14:38] <azzz> пекеджи
[01:15:17] <ftrvxmtrx> динамическая линковка в случае го бесполезна anyway
[01:15:30] <ftrvxmtrx> так как не совсем понятно, что же линковать и зачем
[01:15:33] <azzz> Kxepal: да, загрузить один бинарь сразу и целиком - это даже быстрее работать будет, т.к. все пекеджи уже в памяти, и не надо их искать по диску в моменты, когда они начинают в первых раз использоваться
[01:15:51] <Deirz> так то не 100 метров, а 10-15
[01:17:21] <azzz> ftrvxmtrx: т.е. в принципе, не стоит думать об этом, как о проблеме?
[01:17:47] <ftrvxmtrx> нет. думать нужно о решении задач, а не о "недостатках" инструмента
[01:18:39] <azzz> ну если не думать о недостатках, то может так случиться, что решив большую задачу на 95% можно взять и обосраться, т.к. недостатки не позвояют решить оставшиеся пять процентов
[01:19:48] <ftrvxmtrx> размер и тип линковки к недостаткам не относится
[01:20:22] <azzz> я, конечно, понимаю, что на Го мы не микроконтроллеры программируем - размер файла значения не имеет, когда у тебя не 128 килобайт памяти, а 8 гиг или даже 256
[01:20:38] <azzz> ftrvxmtrx: ну в принцпе согласен
[01:21:17] <azzz> просто я, например, првык, что обычно приложение побито на исполняемый бинарник и подключаемые любы(со, длл, йары)
[01:21:35] <azzz> наверное и в самом деле, это просто дело првиычки и в этом ничего такого нет
[01:36:07] mad_hatter_ вышел(а) из комнаты
[01:48:42] <azzz> обожемой, интерфейсы в Го божественны. Только, к сожалению, не так-то легко определить какие интерфейсы имплементирует структура
[01:48:58] <azzz> но в целом, обожемойявлюблён.
[02:42:33] <postman> ftrvxmtrx: а если мне нужны плагины к приложению?
[02:46:59] <Deirz> postman: плохо быть тобой
[02:47:03] <azzz> видимо, только через всякие луа/питоны/руби-скриптинг
[02:47:18] <postman> Deirz: гипотетически.
[02:47:32] <Deirz> перекомпиливать
[02:47:48] <postman> сысоев?
[02:48:53] <azzz> а еще можно плагины сделать в виде отдельных приложений и связываться с ними из главного приложения через какой-нибудь RPC
[02:48:57] <azzz> Круто будет
[02:49:35] <postman> ага, охуенно.
[02:49:46] <postman> модняво и перспективно.
[02:50:15] <azzz> зато прикинь, плагины могут быть не только на локальной машине, а вообще где угодно!
[02:50:25] <azzz> плагин-ту-плагин сеть!
[02:50:29] <azzz> распределенные плагины!
[02:50:30] <azzz> круто
[02:50:34] <azzz> сколько перспектив!
[02:50:38] <azzz> ябсделал что-нибудь
[02:51:42] <postman> я где-то это сышал уже.
[02:52:00] <postman> кто-то в девяностых вроде так же хотел.
[02:53:16] <azzz> дыа? и что? не взлетело?:)
[02:53:56] <postman> а, ну точно.
[02:54:06] <postman> https://en.wikipedia.org/wiki/Distributed_Component_Object_Model
[02:54:47] <azzz> бля, я изобрёл комы
[02:54:52] <azzz> это ужасно
[02:55:50] <postman> или CORBA.
[02:59:43] postman вышел(а) из комнаты
[03:07:17] azzz вышел(а) из комнаты
[03:13:41] vaal вышел(а) из комнаты: Disconnected: closed
[03:29:06] Yuriy Tsemashko вошёл(а) в комнату
[03:51:59] drumond вышел(а) из комнаты
[04:13:16] Yuriy Tsemashko вышел(а) из комнаты
[06:08:52] sakujii вышел(а) из комнаты
[08:21:16] magister вошёл(а) в комнату
[08:59:36] <Kerrigаn> azzz: го это клево, пока тебе не надо юзать cgo
[09:49:36] Laz вошёл(а) в комнату
[10:07:42] ermine вошёл(а) в комнату
[10:17:35] Darth Лис вошёл(а) в комнату
[10:19:37] <Darth Лис> это вы тут про ерланг трёте что ли?
[10:25:46] <Kerrigаn> где?
[10:28:48] <Darth Лис> сети плагинов какие-то
[10:28:54] <Darth Лис> распределённый
[10:29:01] <Darth Лис> ну точно про ерланг
[10:30:42] <Kerrigаn> у тебя шрифт какой-то огромный
[10:30:57] wanderer@jabber.ru вошёл(а) в комнату
[10:30:58] <Kerrigаn> как будто в других языках такого нет
[10:34:48] Yuriy Tsemashko вошёл(а) в комнату
[10:49:33] ascrazy вошёл(а) в комнату
[10:51:16] <ascrazy> а что, golang походу говно уже?
[10:51:24] <Laz> дык давно уж
[10:51:25] <ascrazy> пора на rust переходить?
[10:51:34] <Darth Лис> всегда
[10:51:35] qwer75440 вошёл(а) в комнату
[10:51:39] <Darth Лис> на пхп пора переходить
[10:51:45] <Laz> а что, кто-то ещё не перешёл?
[10:51:48] <ascrazy> с пхп я только перешёл
[10:52:00] <qwer75440> капрофаг
[10:52:03] <qwer75440> всем привет
[10:52:28] <ascrazy> так а что решили по поводу goop, не нужен или говно?
[10:52:34] <Laz> а что это?
[10:52:47] <ascrazy> https://github.com/nitrous-io/goop
[10:52:58] <Darth Лис> не нужен
[10:53:06] <ascrazy> ну ок
[10:53:22] <qwer75440> вроде gom самое оно, нет?
[10:53:22] <Darth Лис> ниодин депенденси-хуёв-сосенденси не нужен
[10:53:42] <ascrazy> Darth Лис хуёво сосис
[10:53:59] <qwer75440> почему?
[10:54:13] <Darth Лис> ascrazy: знаешь зачем нужен bundler на самом деле?
[10:54:40] <ascrazy> Darth Лис, затем что бы разруливать версии джемов, хули
[10:54:44] <Darth Лис> для резолва версий зависииостей-зависимостей
[10:55:04] <Darth Лис> зависимостей-зависимостей
и это он делает збс
[10:55:33] <Darth Лис> но то раби
[10:55:39] <Darth Лис> и рабигемс
[10:55:57] <Darth Лис> для пщ так как нет централизованной метадаты это никак не заработает
[10:56:05] <qwer75440> так есть же
[10:56:07] <ascrazy> ну вообще-то я в говноланге не увидел как сделать что бы у меня был список зависимостей описан в проекте
[10:56:07] <Darth Лис> и так даже лучше
[10:56:24] <Laz> што
[10:56:27] <Darth Лис> qwer75440: pkgin? или как там это говно называется
[10:56:29] <Laz> go list всё тебе покажет
[10:56:55] <ascrazy> Laz что он покажет?
[10:56:56] <Darth Лис> ascrazy: просто комить зависимости прямо к себе в гит
[10:56:57] <qwer75440> http://www.gonuts.io/ :-)
[10:57:06] <ascrazy> Darth Лис, ну так это же полная хуйня
[10:57:07] <Laz> список зависимостей
[10:57:11] <qwer75440> Serving 27 versions of 12 nuts published by 70 registered users. lol)
[10:57:19] <Darth Лис> ascrazy: с какого перепуга?!
[10:57:32] <Darth Лис> 100% повторяемый билд это хуйня?!
[10:57:41] <Darth Лис> совсем охуели люди ЖВ
[10:57:44] <Darth Лис> :D
[10:58:12] <ascrazy> Darth Лис, с такого что потом хуй пойми где чей говнокод
[10:58:13] <qwer75440> лучше наверно гитсабмодулями
[10:58:27] <Darth Лис> ascrazy: клади в _vendor
[10:58:30] <Darth Лис> а не в src
[10:59:09] <Darth Лис> export GOPATH := $(CURDIR)/_vendor:$(CURDIR)
[10:59:23] <Laz> так точно
[11:00:00] <Darth Лис> а почему _ в начале? что бы при запуске go test ./… не запускалось то что в vendor
[11:00:31] <ascrazy> Darth Лис, ты мейкфайлы что ли пишешь?
[11:00:51] <Darth Лис> ты так говоришь как будто это что-то плохое :D
[11:01:00] <ascrazy> ёбаный свет, 21 век на дворе, а они мейкфайлами собирают
[11:01:48] <Darth Лис> ёбаный свет?
что лучше: написать go get github.com/hui/rogatii
или
make
[11:01:58] Darth Лис пнул ascrazy
[11:02:09] <Darth Лис> я просто кол-во тайпов экономлю
[11:02:11] <ascrazy> я вообще не понял о чём ты
[11:02:18] <ascrazy> причём тут go get?
[11:02:18] <Darth Лис> пишешь make и больше ничего
[11:02:25] <ascrazy> лол
[11:02:35] <ascrazy> а потом пишешь 100500 говно в Makefile
[11:02:42] vaal вошёл(а) в комнату
[11:02:57] <Darth Лис> о да
[11:03:05] <Darth Лис> 610 байт Makefile
[11:03:15] <ascrazy> для hello world?
[11:03:19] <ascrazy> о да, заебись
[11:03:23] <Darth Лис> для продакшен проекта
[11:03:28] krab вошёл(а) в комнату
[11:03:29] <ascrazy> хуекшен
[11:03:32] <Darth Лис> который уже давно работает
[11:03:38] <qwer75440> покажи makefile как выглядит
[11:05:21] <Darth Лис> http://pastebin.com/nNd0jizi
[11:06:06] <Darth Лис> кто не автоматизирует сборку тот ascrazy
[11:06:40] <qwer75440> выглядит норм
[11:06:51] <Laz> воу-воу export GOPATH := $(CURDIR)/_vendor:$(CURDIR)
[11:06:58] <Laz> это из другой директории его не запустишь же?
[11:07:06] <Darth Лис> нет
[11:07:11] <Laz> ну и похер
[11:07:17] <Darth Лис> make надо пейсать в директории с проектом
[11:07:20] <Darth Лис> ну и я о том
[11:07:27] <Darth Лис> cd /path/to/src/ && make
[11:07:34] <Yuriy Tsemashko> утра горасты
[11:07:38] Yuriy Tsemashko изменил(а) имя на azzz
[11:07:53] <Darth Лис> даже в Dockerfile так написал :D
[11:07:57] <Darth Лис> RUN cd /gopath && make
[11:08:44] <azzz> два канала, а все люди одни и те же.
[11:09:13] <qwer75440> ruby@cjr уже не тот
[11:09:43] <Laz> он никогда не был тот
[11:09:57] <ascrazy> Laz, ты не прав
[11:10:03] <azzz> qwer75440: надо просто было смержить две конфы в одну: hipsters@cjr
[11:10:19] <ascrazy> Laz, он был тот когда ещё меня не забанили
[11:10:21] <azzz> или princesses@cjr
[11:10:22] <ascrazy> :D
[11:10:53] <Laz> что-то я сомневаюсь
[11:11:05] <ascrazy> ну спроси у Darth Лис
[11:11:06] <ascrazy> хули
[11:11:22] qwer75440 вышел(а) из комнаты: Replaced by new connection
[11:11:26] qwer2041 вошёл(а) в комнату
[11:11:31] <azzz> он был тот, когда я еще даже на php писал [x]
[11:12:20] <ascrazy> gopsters@cjr
[11:14:18] ftrvxmtrx вышел(а) из комнаты
[11:14:51] <Kerrigаn> gophers же
[11:15:42] <ascrazy> нет
[11:16:28] <ascrazy> Darth Лис, так хули ты не переписал на rust свой sshtool
[11:16:35] <ascrazy> rust заебись же
[11:16:56] <Kerrigаn> руст все время меняется
[11:18:04] <Darth Лис> ascrazy: sshtool не достоин такой высокой чести
[11:18:12] <Darth Лис> недостаточно хипстерский
[11:18:23] <Darth Лис> вот надо будет научить его сосать хуй, тогда и напишу на расте
[11:18:46] <ascrazy> Darth Лис, сам уже умеешь сосать?
[11:18:53] qwer2041 вышел(а) из комнаты: Replaced by new connection
[11:18:57] qwer41645 вошёл(а) в комнату
[11:19:00] <Darth Лис> ascrazy: с тобой проконсультируюсь
[11:19:04] <Kerrigаn> http://i.imgur.com/ffXnImi.png
[11:19:05] <ascrazy> нет
[11:19:14] <Kerrigаn> я об этом
[11:19:33] <ascrazy> Kerrigаn, выключи rich text
[11:19:34] <Darth Лис> Kerrigаn: выстави настроечку что бы игронировать пользовательское форматирование в клиенте
[11:19:38] <Darth Лис> иначе боль
[11:19:50] <ascrazy> или забань Darth Лис
[11:20:00] <ascrazy> за то что шлёт хуйню в конфочку
[11:20:43] <Kerrigаn> пиджинопроблемы
[11:20:54] Kerrigаn закопался в настройки личкрафтов
[11:21:12] <Darth Лис> будет раст 1.0 — будем посмотреть. а пока что, когда они ломают синтаксис даже, и стдлиб постоянно меняется там нормальным людям делать нех
[11:21:24] <Darth Лис> да и он мне не нравится в любом случае
[11:21:38] <ascrazy> всмысле не нравится?
[11:22:02] Kerrigаn вышел(а) из комнаты
[11:22:03] Kerrigаn вошёл(а) в комнату
[11:22:06] <Darth Лис> ну направление мышления авторов раста как-то мягко говоря странное
[11:22:14] <Darth Лис> взяли всё до чего грабли дотянулись
[11:22:19] <Darth Лис> накидали до кучи
[11:22:27] <Darth Лис> и всё, сидят довольные
[11:22:30] Kerrigаn вышел(а) из комнаты
[11:22:37] <qwer41645> и получили c++++
[11:22:42] <Darth Лис> отож
[11:22:45] Kerrigаn вошёл(а) в комнату
[11:22:54] <Darth Лис> мне нравится минимализм пщ
[11:23:00] <Darth Лис> less is more :)
[11:23:06] <Kerrigаn> да, так полущ
[11:23:10] <qwer41645> да, за пару дней язык осваивается
[11:23:24] qwer41645 вышел(а) из комнаты
[11:23:33] qwer17022 вошёл(а) в комнату
[11:23:53] <Darth Лис> я кстати не в курсе, а что там расту есть что ответить на гороутины и select?
[11:23:58] <Darth Лис> и есть ли вообще что?
[11:24:12] <Laz> там есть ADT
[11:24:18] <qwer17022> поясни
[11:24:37] <Darth Лис> Laz: а на concurrency это как влияет?
[11:24:53] <Laz> так, что ADT - это круто, а конкуррентность не нужна
[11:24:57] <Laz> или типа того
[11:25:00] <Darth Лис> ахаха
[11:25:03] <Darth Лис> ок
[11:25:07] <Darth Лис> ахахахаха
[11:25:12] <Darth Лис> збс теперь бля :D
[11:26:06] <Kerrigаn> которое ADT?
[11:26:13] <Darth Лис> алгебраический типы данных
[11:26:18] <qwer17022> что такое ADT
[11:26:22] <Laz> ага
[11:26:32] <Darth Лис> простецкий Пщ, основанный на научных работах и 20 лет экспериментов — неудача, это всем очевидно
а хуйак-хуйак в кучу всё говно — это успех
[11:26:33] <qwer17022> и чего в них такого хорошего?
[11:26:46] <Laz> все знают, что ADT - это круто
[11:26:54] <qwer17022> чем
[11:26:59] <Laz> чем ООП
[11:27:00] <Kerrigаn> asynchronous data transfer это тоже ADT
[11:27:33] <Laz> anal dildo transformation тоже ADT
[11:27:39] <Kerrigаn> угу
[11:27:56] <qwer17022> последним хорош раст?
[11:28:08] <Darth Лис> выделяется
[11:28:15] <Kerrigаn> короче это не ответ
[11:28:21] <qwer17022> шалунишки
[11:28:22] <Laz> ну ты хаскель видал?
[11:28:25] <Laz> там же ADT
[11:28:38] <qwer17022> хаскель странный
[11:29:00] <Kerrigаn> ага
[11:29:29] <Laz> пхп-макакам не понять
[11:29:30] <qwer17022> мне кажется после него придумали обфускацию кода
[11:29:33] <qwer17022> хотя мб я не привык
[11:29:49] <qwer17022> вот list/clojure збс читается
[11:29:54] <qwer17022> скобочки збс
[11:29:56] <Darth Лис> просто ваш хипстер-левел недостаточно высок
[11:30:00] <Kerrigаn> да, кложура - ок
[11:30:36] Darth Лис посмеялся норм
[11:30:41] <Darth Лис> аж проснулся
[11:30:53] <Kerrigаn> правда примерно так же ок как гоъ
[11:30:56] <Darth Лис> а то ходил такой, поднять - подняли а разбудить забыли
[11:30:59] krab вышел(а) из комнаты: Replaced by new connection
[11:31:00] krab вошёл(а) в комнату
[11:31:02] <Kerrigаn> чуть лезешь наружу - уже неок
[11:31:17] <qwer17022> куда?
[11:31:21] <qwer17022> куда ты им лезть собрался?
[11:31:25] <Kerrigаn> ну всякие там сторонние либы
[11:31:44] <qwer17022> в пщ норм всё с либами же
[11:31:53] <Kerrigаn> не с сишными
[11:31:54] <qwer17022> а в кложуре что не так
[11:32:16] <Kerrigаn> в кложуре с жаболибами
[11:33:00] <Kerrigаn> точнее юзать их можно, но код уже какой-то не кложурный
[11:34:28] <Laz> а что не так с cgo?
[11:34:45] <Laz> кроме того, что кривые руки мешают его использовать
[11:35:07] <Kerrigаn> там нет нормальных песочниц
[11:35:50] <Kerrigаn> нельзя прилинковать 2 одинаковые либы разных версий, оно само не умеет изолировать символы
[11:36:16] <Darth Лис> а зачем тебе хочется прилинковать 2 одинаковые либы разных версий?!
[11:36:26] <Kerrigаn> а мне не хочется
[11:36:28] <Kerrigаn> просто надо
[11:36:32] <Darth Лис> ну и нахуй так делать?
[11:36:47] <Kerrigаn> Darth Лис: у Торвальда Найтвига спроси
[11:36:59] <Kerrigаn> *Натвига
[11:37:06] <qwer17022> ну охуеть
[11:37:16] <qwer17022> пригласите его сюда
[11:37:20] <qwer17022> спросим
[11:37:24] <Kerrigаn> лол
[11:37:24] <Laz> а как можно прилинковать две либы разных версий-то?
[11:37:27] <Laz> йоба
[11:37:35] <Laz> если у них символы конфликтуют
[11:38:05] <Kerrigаn> в сырцах мамбла сделали обертку для старой версии CELT
[11:38:05] <Darth Лис> короче малый радиус программы можно объяснить недостатками cgo, понятно.
[11:38:40] <Laz> и как они её сделали?
[11:38:53] <Laz> руками всё делают?
[11:38:55] <Darth Лис> человек соснул, а cgo виноват
[11:39:01] <ascrazy> :D
[11:39:02] <Laz> dlopen, dlsym?
[11:43:18] <Darth Лис> https://github.com/mirrors/gcc/blob/7057506456ba18f080679b2fe55ec56ee90fd81c/gcc/reload.c#L1056-L1110
[11:43:52] <qwer17022> что это за дерьмо
[11:44:09] <Laz> некоторое
[11:44:20] <Kerrigаn> руками, да
[11:44:36] <qwer17022> https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-xpf1/t1.0-9/10262155_306852989482425_2593761984170646808_n.jpg
[11:44:48] <qwer17022> сраный си
[11:45:14] <Laz> Kerrigаn: это уже не линковка, есичо
[11:45:47] <Kerrigаn> не распарсил
[11:45:58] <Kerrigаn> да, символы конфликтуют
[11:46:29] <Laz> загрузка библиотек руками - не линковка
[11:47:55] <Kerrigаn> я не гружу их руками
[11:48:02] <Kerrigаn> через fopen
[11:48:06] <Laz> мамбл грузит
[11:48:15] <Laz> как ты сам только что сказал
[11:49:45] <Kerrigаn> он прилинкован к ним
[11:50:16] <Laz> две версии одной и той же библиотеки с одинаковыми символами?
[11:50:20] <Kerrigаn> одна версия прилинкована просто так, другая через враппер
[11:50:33] <Laz> ну пездиш же, ссука
[11:50:36] <Laz> показывай ldd
[11:50:50] <qwer17022> ебало бить таким надо
[11:50:51] mad_hatter_ вошёл(а) в комнату
[11:51:10] <Kerrigаn> ща
[11:53:10] <Darth Лис> Laz: ну так а чо, ща в ldd покажет одну либу (которая слинкована) и всё
[11:53:16] <Kerrigаn> странно, там ни OPUS ни CELT
[11:53:29] <Kerrigаn> только speex
[11:53:52] <Laz> Darth Лис: ну так и будет
[11:54:06] <Darth Лис> а вторая костыликами подпёрта
[11:54:11] <Darth Лис> но блять нахуйа так мутить
[11:54:19] <Darth Лис> вопрос конечно вселенского масштаба
[11:54:39] <Laz> это ж ундерас
[11:54:47] <Laz> я уже давно перестал удивляться
[11:54:48] <Kerrigаn> это ж СОВМЕСТИМОСТЬ
[11:54:58] <Laz> совместимость?
[11:55:02] <Kerrigаn> на старых клиентах один кодек, на чуть поновее - другой
[11:55:08] <Kerrigаn> на самых новых OPUS
[11:55:14] <Laz> использование одновременно двух версий библиотек - совместимость?
[11:55:18] <Kerrigаn> ага
[11:55:36] <Kerrigаn> CELT постоянно менял формат битстрима
[11:57:11] <Laz> охуенчег
[11:58:03] <Kerrigаn> в итоге xiph.org забрал оттуда наработки в опус, а сам проект прикрыл
[11:58:16] <Kerrigаn> осталось такое легаси
[11:58:24] <Laz> то есть, криворукие мудаки постоянно ломают совместимость, а cgo из-за этого - говно?
[11:59:16] <Kerrigаn> ну это
[11:59:27] <Kerrigаn> а почему им не сделать песочницы для сишных либ?
[11:59:53] <Laz> а зачем?
[12:02:25] <Kerrigаn> вот в питоне такой хуйни нет - собрал нативное расширение и никакие символы не накладываются
[12:03:04] <Kerrigаn> что мешает сделать такое же для гоъ?
[12:03:50] <Laz> то, что это нахуй никому не нужно
[12:04:10] ftrvxmtrx вошёл(а) в комнату
[12:04:32] <Kerrigаn> >  то, что гоъ нахуй никому не нужно
ты хотел это сказать
[12:05:09] <Laz> нет
[12:05:13] <Laz> я хотел сказать то, что я сказал
[12:05:28] <Kerrigаn> ладно, похуй
[12:05:47] <Laz> да
[12:05:50] <Kerrigаn> в крайнем случае напишу враппер на сях
[12:05:55] <Laz> да, давай
[12:09:53] <Deirz> нихуя себе наркомания
[12:13:56] <azzz> а скжаите, а с помощью defer и recover я могу поймать определенный тип эксепшена(panic)? или нет?
[12:14:15] <qwer17022> ловишь всё и проверяешь
[12:14:28] <qwer17022> если не “твоё”, то обрабатываешь, иначе паникуешь
[12:14:33] <qwer17022> прыгаешь в окно
[12:14:38] <azzz> а как проверять?
[12:14:52] <azzz> recover() возвращает строку же, нет?
[12:15:13] <qwer17022> он Error {} вроде возращает
[12:15:17] <azzz> а
[12:15:24] <qwer17022> то есть интерфейс
[12:15:35] <qwer17022> хотя я пщ что-то давно не ковырял
[12:15:40] <azzz> поняль, значит ща посмотрю что как и куда
[12:20:38] qwer17022 вышел(а) из комнаты: Replaced by new connection
[12:20:42] qwer77422 вошёл(а) в комнату
[12:22:10] ftrvxmtrx вышел(а) из комнаты
[12:28:24] <azzz> ну panic принимает interface{}, recover его же и возвращает: что получит, то и вернул. Но тут такая печаль: все эксепшены, производимые гошечкой(деление на ноль или out of bounds for array) меют один и тот же тип runtime.errorCString
[12:29:18] <azzz> и это пичалька. Хотя с другой стороны, в FAQ так и написано: мы не сделали эксепшенов потому что try-catch это говно
[12:29:31] <azzz> может, надо в Го просто как-то иначе подходить к этому вопросу
[12:29:37] <azzz> Darth Лис: да?
[12:31:05] <Laz> к обработке ошибок?
[12:31:26] <Laz> if err := smth(); err != nil {
[12:31:51] <azzz> ну это понятно, старый добрый сишный способ
[12:31:59] <azzz> а вот если у меня произошел division by zero?
[12:32:14] <qwer77422> то ты мудак полный :-)
[12:32:21] <qwer77422> иди под струю
[12:32:36] <qwer77422> вырвалось
[12:32:37] <azzz> хотя может если какой-либо panic происходит, то надо говорить юзеру "ой чота поламатое", закрывать все ресурсы и выключаться?
[12:37:04] ftrvxmtrx вошёл(а) в комнату
[13:05:22] postman вошёл(а) в комнату
[13:09:11] drumond вошёл(а) в комнату
[13:33:55] <Darth Лис> qwer77422: :D
[13:34:39] <Darth Лис> azzz: как можно на ноль поделить? ты на юзерский инпут что ли делишь?
[13:34:46] <Darth Лис> проверь заранее тогда
[13:34:50] <Darth Лис> до деления
[13:35:04] <Darth Лис> короче обработай ситуацию без доведения до паника
[13:44:27] <azzz> Darth Лис: йопт, ну хочу поделить на ноль что-нибудь. Или обосратушки произошли к обращению за пределы массива
[13:44:33] <azzz> япнимаю, что надо всё проверять
[13:44:59] qwer77422 вышел(а) из комнаты
[13:45:03] qwer90772 вошёл(а) в комнату
[13:45:10] <qwer90772> ахахахаха
[13:45:15] <qwer90772> обосратушки произошли))) лол
[13:45:21] <qwer90772> обосратушки произошли))) лол
[13:46:16] <azzz> Darth Лис: а есть какие-нибудь интересные юзкейсы с defer кроме закрытия ресурсов или каких-нибудь мютексов? Например, может ли дефер получить результат выпонения внешней функции(той, где он вызван)?
[13:46:37] <azzz> или вернуть что-нибудь, что перекроет return внешней функции?
[13:46:44] <azzz> декораторы-шматораторы всякие
[13:47:16] <Kerrigаn> panic, не?
[13:47:58] <azzz> Kerrigаn: ну э использовать panic вмето return было бы странно, мне кажется
[13:48:12] <Laz> паник можно юзать, чтоб стек развернуть
[13:48:29] <Kerrigаn> как вариант - тут можно делать ретурн без указания аргументов
[13:48:46] <Kerrigаn> тогда возвратятся одноименные локальные
[13:51:29] <qwer90772> defer можно как after_action юзать) но это хуёвая идея конечно
[13:54:47] <Darth Лис> azzz: defer лучше юзать по минимум
[13:54:53] <Darth Лис> он сцуко медленный шо пздц
[13:55:05] <qwer90772> всмысь
[13:55:09] <Darth Лис> в прямом
[13:55:14] <qwer90772> как мерил
[13:55:22] <Darth Лис> не я мерил
[13:55:34] <Darth Лис> загугели golang+defer+slow
[13:55:43] <qwer90772> получается все эти “освобождение ресурсов” отрабатывают медленно?
[13:55:47] <Darth Лис> нет
[13:55:59] <Darth Лис> был пост, чувак менял с defer и без
[13:56:07] <Darth Лис> например закрытые файл-дескриптора
[13:56:21] <Darth Лис> так вот с дефером программа тупил чить ли не в 2 раза дольше
[13:56:33] <Laz> там он, помнится, дичайший говнокод выкладывал
[13:56:47] <Darth Лис> может быть :D я не помню уже подробностей
[13:57:01] <Laz> но вообще, да, дефер медленноват
[13:57:08] <postman> кстати, говоря, где можно почитать про реализацию исключений?
[13:57:16] <postman> stack unwinding и прочую хуйню.
[13:57:19] <Darth Лис> речь идёт о микросекундах конечно, типа, без дефера тупняк на 1 мкс а с дефером 2 мкс
[13:57:20] <qwer90772> первая страница гугла по твоему запросу хуйня конечно
[13:58:37] <Laz> postman: наверное, setjmp и longjmp
[13:58:45] <Darth Лис> в принципе чо
[13:58:59] <Darth Лис> накидать простой тестик можно побыстрячку
[13:59:12] <qwer90772> помолодецки
[13:59:24] <qwer90772> ну накидай, я гляну
[13:59:41] <postman> Laz: а обработчики?
[14:00:47] <Laz> что обработчики
[14:00:57] <qwer90772> всё
[14:01:04] <qwer90772> в основном обработчики это всё
[14:02:04] <postman> вызвать обработчик надо, если он есть в текущем фрейме.
[14:05:58] <Darth Лис> гм
[14:06:05] <Darth Лис> чо бы такого задефереть-то
[14:09:06] <postman> > Compared to mechanisms in higher-level programming languages such as Python, Java, C++, C#, and even pre-C languages such as Algol 60, the technique of using setjmp/longjmp to implement an exception mechanism is cumbersome. These languages provide more powerful exception handling techniques, while languages such as Scheme, Smalltalk, and Haskell provide even more general continuation-handling constructs.
[14:09:18] <postman> в пизду, гуглить еще.
[14:10:54] <Darth Лис> http://play.golang.org/p/94GgU1RSqE
[14:10:57] <Darth Лис> во
[14:11:02] <Darth Лис> в 10 раз разница
[14:11:41] <azzz> ну там разница в наносекунды
[14:11:56] <azzz> и мне кажется, тупняк только на том, чтобы вытащить функцию из списка
[14:12:00] <Darth Лис> ну так и тест смешной
[14:12:03] <Darth Лис> 1+2
[14:12:11] <qwer90772> ну отношение 46 к 3) пиздец же много
[14:12:13] <azzz> выполняется-то она, небось, с такой же скоростью, как и без дефера
[14:12:16] <qwer90772> почему так тормозит то?
[14:13:09] <Darth Лис> хз
[14:13:12] <azzz> да на вытаскивании функции из списка оно тормозит
[14:13:19] <azzz> ну не может же функция работать медленнее
[14:16:24] <postman> из какого списка?
[14:16:36] <azzz> в который defer помещает функцию
[14:16:47] <postman> а он помещает?
[14:16:50] <azzz> помещает
[14:16:55] <postman> а где написано?
[14:17:06] <azzz> http://blog.golang.org/defer-panic-and-recover
[14:17:25] <azzz> A defer statement pushes a function call onto a list. The list of saved calls is executed after the surrounding function returns.
[14:17:30] <postman> хуясе.
[14:17:37] <azzz> дык а ты как думал оно работает?
[14:17:40] <azzz> никакой магии
[14:17:44] <azzz> очередь и пиздец
[14:18:12] <Laz> какая ещё очередь
[14:18:14] <Laz> там стек
[14:18:46] <azzz> точно, стэк
[14:19:01] <qwer90772> типа дрочите на структуры данных?
[14:19:12] <azzz> qwer90772: а на что еще дрочить?
[14:19:12] <Laz> типа отличаем одно от другого
[14:19:25] <azzz> а я думал, что очередь, кстати
[14:19:30] <azzz> а прочерил - стэк
[14:19:31] <azzz> такие дела
[14:19:36] <postman> они в обратном порядке вызываются же.
[14:19:40] <postman> LIFO
[14:19:50] <azzz> стэк
[14:47:07] <postman> почитал про механизмы реализации отлова исключений.
[14:47:12] <postman> костыли ебаные, как я и думал.
[14:54:16] <azzz> тут же нет исключений
[14:54:35] <postman> я помню.
[14:55:06] <azzz> тогда зачем их отлавливать?
[15:15:40] <Deirz> defer тормозит потому, что делает замыкание для вызова
[15:15:56] <Deirz> даже если там file.Close() с одним лишь file из локальных переменных
[15:16:17] rm вышел(а) из комнаты
[15:28:03] postman вышел(а) из комнаты
[15:32:00] <krab> штошто
[15:53:46] postman вошёл(а) в комнату
[15:57:09] drumond вышел(а) из комнаты: Replaced by new connection
[15:57:10] drumond вошёл(а) в комнату
[16:11:18] qwer90772 вышел(а) из комнаты
[16:28:09] ascrazy вышел(а) из комнаты
[16:43:03] <magister> >postman: костыли ебаные, как я и думал.
это как в стек слить содержимое всех регистров, а потом восстанавливать?
[16:43:52] <postman> это норма ©
[16:52:07] <magister> ну да, как по-другому отслеживать
[16:58:54] <magister> можешь конечно плюсы использовать...там многое есть искоропки
[16:59:25] rm вошёл(а) в комнату
[17:02:11] <magister> но есть задачи, где я не хочу плюсы например
[17:19:52] Darth Лис вышел(а) из комнаты: Disconnected: connection closed
[19:07:06] Laz вышел(а) из комнаты
[19:44:23] ftrvxmtrx вышел(а) из комнаты
[19:50:03] azzz вышел(а) из комнаты
[19:50:34] postman вышел(а) из комнаты
[20:20:36] wanderer@jabber.ru вышел(а) из комнаты
[20:27:50] ftrvxmtrx вошёл(а) в комнату
[20:32:35] mad_hatter_ вышел(а) из комнаты
[21:07:00] rm вышел(а) из комнаты
[21:28:26] ftrvxmtrx вышел(а) из комнаты
[21:32:15] krab вышел(а) из комнаты: Вышел из Vacuum-IM
[21:45:08] savik вошёл(а) в комнату
[22:16:11] postman вышел(а) из комнаты
[22:16:30] postman вошёл(а) в комнату
[22:34:36] krab вошёл(а) в комнату
[23:08:10] postman вышел(а) из комнаты
[23:10:05] Kerrigаn вышел(а) из комнаты
[23:23:33] postman вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!