Home
golang
golang@conference.jabber.ru
Пятница, 29 апреля 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:04:08] begemot_sun вышел(а) из комнаты
[00:05:40] avz вошёл(а) в комнату
[00:16:15] avz вышел(а) из комнаты
[00:34:13] krab вошёл(а) в комнату
[00:45:47] kpmý вышел(а) из комнаты
[00:55:58] plumbum вышел(а) из комнаты
[01:03:37] unixlike вошёл(а) в комнату
[01:08:40] unixlike вышел(а) из комнаты
[01:13:33] cheshir вышел(а) из комнаты
[01:47:55] kms вышел(а) из комнаты
[02:26:17] unixlike вошёл(а) в комнату
[02:42:36] unixlike вышел(а) из комнаты
[02:44:19] krab вышел(а) из комнаты: Left Vacuum-IM
[02:58:54] unixlike вышел(а) из комнаты
[05:06:10] 5UN5H1N3 вошёл(а) в комнату
[05:40:38] mantyr@jabberon.ru вышел(а) из комнаты
[07:03:17] ingvar вошёл(а) в комнату
[07:55:05] cheshir вошёл(а) в комнату
[08:17:44] begemot_sun вошёл(а) в комнату
[09:14:40] avz вошёл(а) в комнату
[09:28:49] Magiq вошёл(а) в комнату
[09:36:37] Laz вошёл(а) в комнату
[09:36:55] kpmy вошёл(а) в комнату
[09:38:48] Magiq вышел(а) из комнаты
[09:39:25] Magiq вошёл(а) в комнату
[09:50:57] ermine вошёл(а) в комнату
[09:55:13] plumbum вошёл(а) в комнату
[10:00:32] <kpmy> Пщ
[10:00:33] <xep> пщ!
[10:01:47] kpmy вышел(а) из комнаты
[10:07:09] kpmy вошёл(а) в комнату
[10:12:57] avz вышел(а) из комнаты
[10:21:44] kpmy вышел(а) из комнаты
[10:55:47] krab вошёл(а) в комнату
[10:57:35] kpmý вошёл(а) в комнату
[10:57:42] <kpmý> критика https://ahmetalpbalkan.com/blog/golang-json-decoder-pitfalls/
[10:59:18] postman вошёл(а) в комнату
[10:59:38] <postman> хотел хорошенько ребейзнуть с утра, но потом зассал.
[11:08:45] mks2 вошёл(а) в комнату
[11:21:37] <kpmý> почему?
[11:22:34] <postman> вдруг обосрется, и потом ебаться.
[11:25:06] <kpmý> сделай копию
[11:25:45] <postman> это уже ебля.
[11:26:58] <kpmý> надо сделать копию ДО ребейса
[11:27:05] <postman> это УЖЕ ебля.
[11:27:15] <kpmý> нет, ты сказал что ебля ПОТОМ
[11:27:23] <postman> и ПОТОМ будет, когда проебется.
[11:27:45] <kpmý> мысли позитивно
[11:31:00] aquarium вошёл(а) в комнату
[11:49:02] krab вышел(а) из комнаты: Left Vacuum-IM
[11:49:15] Magiq вышел(а) из комнаты
[11:55:02] Magiq вошёл(а) в комнату
[13:04:05] Kittycat вышел(а) из комнаты
[13:13:51] Kittycat вошёл(а) в комнату
[13:16:58] mks2 вышел(а) из комнаты
[13:18:22] aquarium вышел(а) из комнаты: Вышел из Vacuum-IM
[13:28:18] mks2 вошёл(а) в комнату
[13:34:46] Magiq вышел(а) из комнаты
[13:36:12] aquarium вошёл(а) в комнату
[13:48:58] begemot_sun вышел(а) из комнаты: Replaced by new connection
[13:49:00] begemot_sun вошёл(а) в комнату
[13:54:17] begemot_sun вышел(а) из комнаты: Replaced by new connection
[13:54:19] begemot_sun вошёл(а) в комнату
[14:02:10] 5UN5H1N3 вышел(а) из комнаты
[14:02:27] dzendmitry вошёл(а) в комнату
[14:23:03] cheshir вышел(а) из комнаты: Replaced by new connection
[14:23:05] cheshir вошёл(а) в комнату
[14:41:23] mantyr@jabberon.ru вошёл(а) в комнату
[14:46:31] <Laz> интересно, а можно как-то так сделать, чтоб моя программа вдруг взяла и кусок себя вдруг сериализовала и запустила в другом месте?
[14:47:02] <mantyr@jabberon.ru> Можно, тебе только нужно узнать номер строки вызова функции… и прочитать исходный файл:)
[14:47:16] <mantyr@jabberon.ru> Ну или там ещё какой reflection вариант есть по вытаскиванию исходного кода...
[14:47:27] <mantyr@jabberon.ru> Извращенец:)
[14:47:31] Laz вышел(а) из комнаты: Disconnected
[14:47:35] Laz вошёл(а) в комнату
[14:48:03] <Laz> я вот подозреваю, что нужно делать какой-то дсл
[14:48:43] <mantyr@jabberon.ru> Для чего ты это всё делать-то хочешь?
[14:48:44] <Laz> и чтоб интерпретатор в какой-то момент вместо выполнения кода просто плевал бы его другому интерпретатору
[14:48:47] <mantyr@jabberon.ru> Может быть есть другой путь...
[14:49:05] <Laz> мне нужно как-то незаметно замутить такую тему
[14:49:06] <mantyr@jabberon.ru> Эм… есть парсер js, можешь куски кода на js писать...
[14:49:13] <Laz> чтоб программа моя вызывала сама себя
[14:49:36] <mantyr@jabberon.ru> Прям через exec вызывала или просто функцию в горутине?:)
[14:49:48] <Laz> и в аргументах говорила себе, что ей делать дальше
[14:49:51] <Laz> прям через exec, да
[14:50:03] <Laz> я уже по-всякому пробовал
[14:50:21] <mantyr@jabberon.ru> Зачем?
[14:50:29] <Laz> но я запарился клепать горы кода для разбора аргументов
[14:50:32] <mantyr@jabberon.ru> Что тебе мешает просто запустить нужное количество кода внутри программы?
[14:50:46] <Laz> думаю, что можно прям код ей в аргумент пихать :)
[14:50:58] <Laz> то, что нужно другой процесс запустить
[14:51:02] <Laz> чтоб в другое окружение перейти
[14:51:17] <Laz> у меня прожка типа debootstrap
[14:51:28] <Laz> она сначала готовит окружение, потом закидывает себя туда и запускает в нём
[14:51:32] <mantyr@jabberon.ru> Не знаю что такое debootstrap
[14:52:00] <Laz> и сейчас приходится руками прописывать все стадии
[14:52:05] <Laz> это мегауныло
[14:52:28] <mantyr@jabberon.ru> Ты делаешь что-то не правильное:)
[14:52:38] <Laz> с удовольствием узнаю, как делать правильно :)
[14:53:01] <Laz> задача такая
[14:53:45] <mantyr@jabberon.ru> Сделай приложение которое с одной стороны читает unix socket по net/rpc, с другой стороны если передать определённый ключ то запускает некую функцию внутри приложения которая в свою очередь запускает N отдельных копий через exec и связывается с ними по net/rpc и вызывает через него нужный метод API...
[14:54:22] <Laz> прожка должна после запуска подготовить себе рабочее окружение, развернуть в нём дебиан, намонтировать файловые системы, зайти в чрут, собрать там кое-что, выйти из чрута, упаковать получившийся дебиан в архив
[14:54:23] <Laz> как-то сложно
[14:54:27] <mantyr@jabberon.ru> net/rpc позволит тебе запускать произвольную функцию, если она описана в качестве экспортируемого метода некой структуры.
[14:54:46] <mantyr@jabberon.ru> Ну вот пусть она всё это делает если по net/rpc придёт запрос...
[14:54:55] <mantyr@jabberon.ru> Да и вопрос, ты на той же машине запускать всё это будешь?:)
[14:55:01] <Laz> ну да
[14:55:04] <Laz> всё на одном хосте
[14:55:27] <mantyr@jabberon.ru> Тогда может тебе просто запускать горутину которая сделает окружение дебиана… многопоточность у Golang отличная.
[14:55:37] <Laz> сделать окружние ладно
[14:55:42] <Laz> как мне попасть в него?
[14:55:51] <Laz> мне нужно сначала в userns, потом в mountns, потом в chroot
[14:55:59] <Laz> сисколы не предлагать
[14:56:10] <mantyr@jabberon.ru> Ну так же в той же горутине… через консольку:)
[14:56:14] <Laz> к тому же чрут действует на весь процесс
[14:56:44] <Laz> да и unshare тот же можно звать только если тредов у процесса нет
[14:56:51] <Laz> так что проще всего стартовать самого себя
[14:56:59] <mantyr@jabberon.ru> Можно так, 1. сделать папочку, скопировать туда данные, отредактировать такие-то конфиги, 2. запустить exec chroot myapp init start… и пусть он там уже доделывает внутри:)
[14:57:05] <mantyr@jabberon.ru> Разные приложения короче:)
[14:57:13] <Laz> у меня сейчас так и сделано
[14:57:24] <Laz> только команд типа init и start у меня дохрена
[14:57:25] <mantyr@jabberon.ru> Тут напрашивается что одно приложение управляющее, второе ведомое внутри chroot...
[14:57:36] <Laz> и мне надоело все эти команды руками прописывать
[14:57:40] <mantyr@jabberon.ru> И взаимодействие между ними по net/rpc :)
[14:57:49] <Laz> большинство из них юзеру ни к чему, например
[14:58:01] <mantyr@jabberon.ru> Так и упрости:) Зачем 100500 ключей:)
[14:58:17] <Laz> затем, что скакать между неймспейсами приходится
[14:58:54] <mantyr@jabberon.ru> net/rpc… net/rpc … :)
[14:58:57] <Laz> чуть-чуть в одном сделал, чуть-чуть в другом
[14:59:10] <Laz> да способ доставки команды меня не интересует
[14:59:29] <mantyr@jabberon.ru> Я раньше такие скрипты на bash делал.. по разворачиванию линухов:)
[14:59:43] <Laz> вот у меня тоже скрипт по разворачиванию линухов
[14:59:47] <Laz> только хитропопый
[15:00:01] <mantyr@jabberon.ru> :)
[15:00:11] <Laz> я задумал асилить overlayfs :)
[15:00:57] Magiq вошёл(а) в комнату
[15:01:16] <Laz> в общем, пока думаю кусок программы в аргументы сувать
[15:01:19] <Laz> и пусть выполняет :)
[15:16:31] Magiq вышел(а) из комнаты
[15:17:52] Magiq вошёл(а) в комнату
[15:31:20] Darth Лис вошёл(а) в комнату
[15:51:06] Magiq вышел(а) из комнаты
[15:51:33] Magiq вошёл(а) в комнату
[16:15:06] Darth Лис вышел(а) из комнаты
[16:50:00] Magiq вышел(а) из комнаты
[17:11:35] ermine вышел(а) из комнаты
[17:11:44] ermine вошёл(а) в комнату
[17:12:14] <kpmý> пщ
[17:12:15] <xep> пщ!
[17:13:18] <kpmý> надо запилить совершенно новый яп поверх wasm
[17:14:10] <kpmý> Yet Another Programming Language
[17:23:03] <kpmý> особое внимание надо уделить всяким ffi и ебанутой системе типов на основе тегов
[17:40:40] <postman> ffi в жс?
[17:42:54] kpmý вышел(а) из комнаты
[18:21:29] 5UN5H1N3 вошёл(а) в комнату
[18:22:33] Laz вышел(а) из комнаты
[18:36:41] <azovcvb> Есть уже вроде как: https://github.com/evanw/thinscript
[18:37:49] <postman> The biggest issue is that the generated code currently doesn't delete anything (garbage collection is planned but not yet implemented)
[18:38:39] plumbum вышел(а) из комнаты
[18:41:06] <azovcvb> нормуль. смысл делать руками сборку мусора в рантайме языка, если через какое-то время сборка мусора запланирована на уровне платформы?
[18:41:47] <postman> в WASM нет никакой сборки мусора, если я правильно помню спеку.
[18:42:04] <postman> платформа выдает тебе область памяти и пердолься как хочешь.
[18:42:10] <azovcvb> они запланировали её добавить
[18:42:15] <postman> напрасно.
[18:42:32] <postman> ограничивает швабодку.
[18:42:44] <azovcvb> также как и доступ к DOM API искаропки без ручных врапперов.
[18:43:17] <azovcvb> в общем, всё там будет, надо лишь подождать
[19:02:47] krab вошёл(а) в комнату
[19:54:00] cheshir вышел(а) из комнаты
[20:14:50] Magiq вошёл(а) в комнату
[20:30:33] kpmy вошёл(а) в комнату
[20:31:28] <kpmy> Сборщик не проблема, на самом деле, если правильно память на блоки разделить
[20:32:22] <kpmy> Интересно же самому сделать
[20:33:32] <kpmy> Я уже показывал вроде, сборщик мусора на один скролл кода
[20:33:55] <kpmy> Mark'n'sweep
[20:39:25] kpmy вышел(а) из комнаты
[20:40:41] kpmy вошёл(а) в комнату
[20:41:03] Magiq вышел(а) из комнаты
[20:42:00] kpmy вышел(а) из комнаты
[20:42:19] <postman> нет.
[20:47:08] Magiq вошёл(а) в комнату
[20:57:32] mantyr@jabberon.ru вышел(а) из комнаты
[20:59:58] avz вошёл(а) в комнату
[21:17:07] plumbum вошёл(а) в комнату
[21:22:32] Magiq вышел(а) из комнаты
[21:25:20] Magiq вошёл(а) в комнату
[21:48:09] kpmý вошёл(а) в комнату
[21:55:01] <kpmý> https://github.com/Spirit-of-Oberon/ProjectOberon2013/blob/master/Sources/Kernel.Mod#L82
[21:58:26] <postman> глаза вытекли от капса.
[21:59:29] <kpmý> с зарплаты вышлю тебе 18 копеек на клавиатуру и дисплей брайля
[22:03:54] <kpmý> знаешь зачем капс в каждой версии?
[22:04:26] <kpmý> потому что капс видно без автоподсветки
[22:08:25] <azovcvb> postman: с твоими глазами что-то не так
[22:08:53] <azovcvb> интересно другое - почему это нигде больше сейчас не используется, за вычетом SQL? И почему используется в SQL?
[22:09:34] <postman> потому что говно.
[22:09:57] <azovcvb> SQL? О-ок.
[22:14:26] <postman> капс.
[22:18:47] <azovcvb> Если он говно, почему в SQL повсеместно используется?
[22:19:02] <azovcvb> Если используется, значит удобно. Иначе выпилили бы давно.
[22:20:28] <azovcvb> А если удобно, то стоит задуматься, почему до сих пор это не используется где-то еще.
[22:21:49] <postman> в sql можно в любом регистре писать.
[22:22:08] <azovcvb> но часто предпочитают таки капс
[22:22:11] <azovcvb> вопрос - почему?
[22:22:17] <postman> дело привычки.
[22:22:53] <azovcvb> о-ок. значит это как минимум не вредно, и не менее читабельно нежели безкапсоверсия.
[22:23:56] <postman> по ссылке kpmy нечитабельное говно.
[22:24:03] <postman> я все сказал.
[22:24:26] <postman> » [22:19:02] <azovcvb> Если используется, значит удобно. Иначе выпилили бы давно.
Нихуя не удобно, поэтому и выпилили из ЯП.
[22:24:37] <postman> если пользоваться твоими маняаргументами.
[22:25:04] <azovcvb> откуда выпилили то? в сях не было изначально.
[22:25:11] <azovcvb> а дальше дело тупо привычки.
[22:25:17] <azovcvb> это как фигурные скобочки
[22:26:55] <postman> из алгола.
[22:28:08] <kpmý> хули нечитабельного, лол
[22:28:14] <postman> капс.
[22:28:22] <azovcvb> из которого? algol-68? дык это вообще выкидыш
[22:28:47] <azovcvb> кроме того, в algol-68 ключевые слова предлагалось ЛИБО выделять подчеркиванием, ЛИБО выделять капсом, если подчеркивание не доступно.
[22:29:03] <azovcvb> в освновном использовался на практике таки капс
[22:29:09] <kpmý> postman: кажется ты пиздишь, капс это просто буквы, ты что, букв не знаешь?
[22:33:25] <azovcvb> postman: вообще, коль SQL не требует капса, и люди его сознательно пишут (тратя силы на лишнее нажатие и удержание шифта, либо капслока), значит это таки удобней чем жизнь без капса в нужных местах.
[22:34:03] <postman> почему же люди в ЯП так не делают?
[22:34:03] <azovcvb> можно еще вспомнить, что в Си принято капсом писать макросы и константы. А их бывает овердохуя.
[22:34:17] <kpmý> дело не в капсе как таковом, а в отличии капса от некапса
[22:34:45] <kpmý> это неотъемлимое свойство
[22:35:00] <azovcvb> postman: всё просто, победил Си, а в си ключевые слова исторически без капса (небось на мервых хрюникс-машинах не было капса в принципе, по техническим причинам). И всё. Все повторяют.
[22:35:15] <kpmý> а в С просто экономили память машины при компиляции, отсюда и ограниченность алфавита)
[22:36:01] <azovcvb> дело не в экономии, тогда в принципе набор символов был един, без больших и маленьких буковок.
[22:36:10] <postman> сдается мне, что вы пиздите, господа.
[22:38:23] <kpmý> ну это известный факт, что курли брейсы были нужны только для экономии памяти)
[22:39:56] <azovcvb> и числа нажатий на клавиатуру - телетайп же был. одно нажатие в секунду, и ни в чем себе не отказывай.
[22:40:28] <kpmý> то есть весь сегодняшний мир АйТи наследует какие-то принципы от бедности в прошлом
[22:40:42] <azovcvb> а те, кому не нужно было нажатия экономить, те могли себе позволить писать слова
[22:40:47] <kpmý> это как жрать всю еду с хлебом)
[22:41:23] <postman> ну раз уж бохато хочется, давайте в эмодзи код хуярить.
[22:41:40] <postman> сколько там, пять байтов в utf8?
[22:42:18] <azovcvb> postman: а уже есть такой язык программирования. на эмодзи основанный
[22:42:19] Magiq вышел(а) из комнаты
[22:42:53] <azovcvb> http://www.emojicode.org/
[22:43:14] <postman> в самый раз для вас.
[22:43:23] <postman> эмодзи - это же интуитивно понятно.
[22:43:26] <postman> и все такое.
[22:45:15] <azovcvb> postman: ты предлагаешь писать на максимально интуитивно непонятном языке?
[22:45:58] <postman> я предлагаю писать так, чтобы рыдать не хотелось от кода.
[22:46:21] <azovcvb> рыдания от кода - это к психологу, ну или к психиатору.
[23:11:25] kpmý вышел(а) из комнаты
[23:18:55] Magiq вошёл(а) в комнату
[23:56:46] begemot_sun вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!