Home
golang
golang@conference.jabber.ru
Среда, 30 июля 2014< ^ >
Darth Лис установил(а) тему: 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 || http://duckie.me/
Конфигурация комнаты
Участники комнаты

GMT+4
[00:02:03] ermine вышел(а) из комнаты
[00:31:06] Darth Лис вошёл(а) в комнату
[00:37:37] Darth Лис вышел(а) из комнаты: Disconnected: session closed
[01:28:08] begemot_sun вышел(а) из комнаты
[01:34:39] postman вышел(а) из комнаты
[02:36:39] mad_hatter_ вышел(а) из комнаты
[02:57:33] drumond вышел(а) из комнаты
[03:34:35] ftrvxmtrx вошёл(а) в комнату
[03:52:33] smpl вышел(а) из комнаты
[04:21:36] ftrvxmtrx вышел(а) из комнаты
[05:33:33] krab вошёл(а) в комнату
[06:48:08] 5UN5H1N3 вошёл(а) в комнату
[07:23:30] begemot_sun вошёл(а) в комнату
[09:39:52] ermine вошёл(а) в комнату
[09:53:18] webus вышел(а) из комнаты
[10:03:49] razip вошёл(а) в комнату
[10:22:59] <razip> Как думаете, в key => value хранилище кошерно ли хранить json в качестве значения?
[10:27:26] smpl вошёл(а) в комнату
[10:36:46] ftrvxmtrx вошёл(а) в комнату
[10:56:26] drumond вошёл(а) в комнату
[11:04:16] vaal вошёл(а) в комнату
[11:11:36] ftrvxmtrx вышел(а) из комнаты
[11:17:17] sakujii вошёл(а) в комнату
[11:19:45] vaal вышел(а) из комнаты
[11:24:16] Kxepal вышел(а) из комнаты
[11:33:56] mad_hatter_ вошёл(а) в комнату
[11:43:58] magiq вошёл(а) в комнату
[11:44:02] <magiq> добрый день
[11:44:12] <magiq> почитал лог 1.3 говорят там бла бла бла скорость бла бла бла
[11:44:21] <magiq> стоит ли на рабочем проекте апаться до 1.3?
[12:05:51] <Deirz> magiq: cgo есть?
[12:07:55] <magiq> Deirz: d 1/3&
[12:08:00] <magiq> в 1.3?
[12:08:07] <magiq> есть, более того они пишут что баг пофиксили
[12:08:47] <Deirz> magiq: в проекте cgo есть?
[12:08:52] <magiq> нет
[12:09:01] <Deirz> тогда можешь апаться
[12:09:02] <magiq> я лох
[12:09:05] <magiq> что значит cgo ?
[12:09:14] <magiq> сишные либ нет
[12:09:15] <magiq> вроде
[12:09:16] <Deirz> go bridge to c
[12:09:27] <razip> Кто-нибудь может ответить на мой вопрос?
[12:09:40] <magiq> Deirz: нет, нету
[12:09:44] <Deirz> razip: зависит
[12:10:00] <razip> Я написал его ранее.
[12:10:05] <razip> >Как думаете, в key => value хранилище кошерно ли хранить json в качестве значения?
[12:10:21] <Deirz> зависит от того, что ты с этим json делать собираешься
[12:10:47] <Deirz> magiq: надо будет пересобрать все пакеты в gopath
[12:10:59] <Deirz> делаешь такой cd $GOPATH/src
[12:11:04] <Deirz> go install ./...
[12:11:09] <razip> Ну вместо каких-то одних данных в качестве значения использовать 2 и более.
[12:11:30] <razip> В отличии от обычной строки в JSON есть типы.
[12:12:03] <Deirz> ты можешь использовать в качестве значений map всякие разные типы
[12:12:13] <razip> О, серьёзно?
[12:12:25] <razip> В Redis есть такое?
[12:13:08] <Deirz> не понял. У тебя удаленное хранилище?
[12:13:53] <razip> Я просто хочу в памяти хранить данные.
[12:14:07] <Deirz> а redis причем тут?
[12:14:19] <razip> Разве он не делает то что мне необходимо?
[12:15:51] <Deirz> хм
[12:16:05] <Deirz> я говорил про просто map в памяти
[12:16:12] <Deirz> в redis можно и json хранить
[12:16:19] <Deirz> потом распаковывать
[12:16:35] <Deirz> можно так-то и gob или protobuf использовать
[12:18:00] <razip> А вот допустим есть у меня в файлах какие-то данные, было бы круто иметь такую базу которая загружает эти данные в память, а по завершению работы выгружает в файлы.
[12:18:16] <razip> Ну или при каждой записи обновляет файл.
[12:18:27] <razip> Даже не знаю как можно это устроить.
[12:18:57] <razip> Но каждое обновление файла было бы лишним, если бы можно было контроллировать завершение программы и записывать все новые данные в файлы.
[12:19:36] <Deirz> leveldb
[12:21:41] <razip> Оно копирует данные в файлы?
[12:22:34] Darth Лис вошёл(а) в комнату
[12:24:01] <Deirz> это хитрая база
[12:24:22] <Deirz> она позволяет подсовывать свои бекенды для работы с нижележащим хранилищем
[12:24:37] <razip> Что?
[12:24:42] <Deirz> вот вот
[12:25:07] <Deirz> можешь дать ей такой, что будет делать sync() на каждую запись
[12:25:23] <Deirz> можешь дать такой, что будет кешировать записи и выполнять пачкой
[12:26:23] <razip> >можешь дать такой, что будет кешировать записи и выполнять пачкой
[12:26:29] <razip> Это транзакции?
[12:27:01] <razip> И что значит «нижележащим хранилищем»?
[12:29:11] <Deirz> грубо говоря ты даешь этой базе апи для чтения/записи в некое место
[12:29:22] <Deirz> а она тебе дает апи для работы с key-value хранилищем
[12:29:41] <Deirz> можешь например сделать бэкенд, который будет хранить всё в памяти
[12:29:47] <Deirz> получится аналог memcached
[12:30:03] <Deirz> можешь дать бекенд, который сохраняет в файл
[12:30:04] <razip> Т.е. мне самому мою идею придется дописывать?
[12:30:18] <Deirz> можешь дать такой, который сохраняет в удаленную базу
[12:30:24] <Deirz> там готовые есть вроде
[12:30:29] <Deirz> посмотри ман
[12:30:58] <razip> А как можно отследить заверешние программы? defer к main()?
[12:32:18] <Deirz> да
[12:32:49] <razip> В принципе, эту штуку можно и самому смастерить, но будет криво т.к. в Go я новичек.
[12:34:31] <razip> База использует map[string]interface{}-тип для своих данных, на defer вешается вызов метода завершения работы (сохраняет в json), а при инициализации наоборот загружает данные в базу.
[12:34:40] <razip> Из файлов json.
[12:34:58] <razip> Стоит ли делать?
[12:35:09] <Deirz> а данные критичны?
[12:35:36] <Deirz> если да, то надо постоянно писать на диск
[12:35:41] <Deirz> иначе проеб
[12:35:51] <razip> Ты имеешь ввиду отключение света и т.д.?
[12:36:32] <Deirz> любые проблемы
[12:37:44] <razip> Даже не знаю. В каких-нибудь Data-центрах, где арендую виртуальный сервер, наверное рисков меньше, по крайней мере из-за энергоснабжения.
[12:38:44] <Deirz> это неважно
[12:38:54] <Deirz> если данные тебе нужны, их следует писать
[12:39:09] <Deirz> иначе в случае проеба ты будешь крайним
[12:40:00] <razip> Ну я в общем понял, это не для критичных данных.
[12:40:04] kms_ вошёл(а) в комнату
[12:41:15] <razip> Допустим финансовые операции лучше на диск писать, а какие-нибудь комментарии способом выше хранить (жалко конечно если какой-нибудь коммент спаммера пропадет, но все же ;) ).
[12:41:33] <Deirz> всё равно
[12:42:28] <Deirz> забить можно лишь на данные-производные, которые получаются целиком из других данных, которые уже надежно хранятся
[12:42:42] <razip> Например.
[12:42:50] <Deirz> сюда относятся кеши, может быть статистика, всякие индексы и так далее
[12:44:37] <razip> А что если держать в памяти данные (при инициализации получать из файлов), но записывать в файлы?
[12:45:14] <razip> *только в файлы
[12:46:52] <Deirz> многие так делают
[12:47:10] <razip> Ну ясен пень не я первый до этого додумался. :)
[12:47:24] <razip> А готовые реализации есть под сабж?
[12:48:24] <Deirz> есть много биндингов к разным серверным базам
[12:48:36] <Deirz> есть sqlite, leveldb
[12:48:57] <Deirz> https://github.com/HouzuoGuo/tiedot  вот чисто го база, встраиваемая в приложение
[12:57:19] <razip> А где там про ОЗУ речь?
[13:26:13] <Deirz> оно на mmap'ленных файлах работает
[13:28:17] postman вошёл(а) в комнату
[13:36:02] drumond вышел(а) из комнаты: Replaced by new connection
[13:36:03] drumond вошёл(а) в комнату
[13:41:55] ftrvxmtrx вошёл(а) в комнату
[13:49:06] postman вышел(а) из комнаты
[13:52:52] MaXGGXaM вышел(а) из комнаты
[14:27:05] ftrvxmtrx вышел(а) из комнаты
[14:59:08] 5UN5H1N3 вышел(а) из комнаты
[15:19:13] razip вышел(а) из комнаты
[15:19:39] razip вошёл(а) в комнату
[15:25:31] postman вошёл(а) в комнату
[16:16:47] drumond вышел(а) из комнаты
[16:43:52] razip вышел(а) из комнаты
[16:44:28] razip вошёл(а) в комнату
[16:54:43] MaXGGXaM вошёл(а) в комнату
[16:58:05] ascrazy вошёл(а) в комнату
[17:28:24] razip вышел(а) из комнаты
[17:49:47] razip вошёл(а) в комнату
[17:57:19] krab вышел(а) из комнаты: Replaced by new connection
[17:57:20] krab вошёл(а) в комнату
[18:08:05] ascrazy вышел(а) из комнаты
[18:49:15] 5UN5H1N3 вошёл(а) в комнату
[19:03:35] smpl вышел(а) из комнаты
[19:10:45] magiq вышел(а) из комнаты
[19:12:16] drumond вошёл(а) в комнату
[19:19:17] Darth Лис вышел(а) из комнаты: Disconnected: session closed
[19:30:04] razip вышел(а) из комнаты
[19:41:24] sakujii вышел(а) из комнаты: Replaced by new connection
[19:41:26] sakujii вошёл(а) в комнату
[19:51:30] ftrvxmtrx вошёл(а) в комнату
[19:56:40] ftrvxmtrx вышел(а) из комнаты
[19:56:47] ftrvxmtrx вошёл(а) в комнату
[19:58:11] ftrvxmtrx вышел(а) из комнаты
[19:58:14] ftrvxmtrx вошёл(а) в комнату
[20:00:49] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[20:00:50] ftrvxmtrx вошёл(а) в комнату
[20:09:48] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[20:09:48] ftrvxmtrx вошёл(а) в комнату
[20:11:05] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[20:11:06] ftrvxmtrx вошёл(а) в комнату
[20:13:49] ftrvxmtrx вышел(а) из комнаты
[20:13:53] ftrvxmtrx вошёл(а) в комнату
[20:15:56] Darth Лис вошёл(а) в комнату
[20:17:03] ftrvxmtrx вышел(а) из комнаты
[20:17:14] ftrvxmtrx вошёл(а) в комнату
[20:20:18] ftrvxmtrx вышел(а) из комнаты
[20:20:19] ftrvxmtrx вошёл(а) в комнату
[20:28:04] krab вышел(а) из комнаты: Вышел из Vacuum-IM
[20:30:06] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[20:30:07] ftrvxmtrx вошёл(а) в комнату
[20:34:29] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[20:34:32] ftrvxmtrx вошёл(а) в комнату
[20:45:09] ftrvxmtrx вышел(а) из комнаты
[20:45:11] ftrvxmtrx вошёл(а) в комнату
[20:51:48] ftrvxmtrx вышел(а) из комнаты
[20:51:53] ftrvxmtrx вошёл(а) в комнату
[20:55:37] ftrvxmtrx вышел(а) из комнаты
[20:55:47] ftrvxmtrx вошёл(а) в комнату
[20:59:22] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[20:59:24] ftrvxmtrx вошёл(а) в комнату
[21:03:19] razip вошёл(а) в комнату
[21:04:10] <razip> Каким образом можно сделать один пакет, который состоит из нескольких файлов?
[21:05:57] 5UN5H1N3 вышел(а) из комнаты
[21:06:49] ftrvxmtrx вышел(а) из комнаты
[21:06:55] ftrvxmtrx вошёл(а) в комнату
[21:10:43] <Deirz> в одну директорию кладешь все эти файлы
[21:10:59] <Deirz> у них у всех должно совпадать имя в package $pkgname
[21:11:26] <razip> Здорово.
[21:11:40] <razip> А название файлов не имеет значения?
[21:11:50] ftrvxmtrx вышел(а) из комнаты
[21:12:04] <Deirz> нет
[21:12:18] <Deirz> точнее
[21:12:45] <Deirz> есть специальные суффиксы, вроде _test.go, _x86_64.go, _windows.go
[21:13:35] <razip> И зачем они нужны?
[21:14:01] <razip> Ааа, обозначают что-то?
[21:14:35] ftrvxmtrx вошёл(а) в комнату
[21:15:12] <razip> Тесты, архитектуру и ОС.
[21:15:16] <Deirz> _test.go компилируются только при запуске тестов, другие - файлы, специфичные для архитектуры, ос
[21:15:53] <razip> Я реализую MVC-паттерн и решил объединить все контроллере в один пакет controllers.
[21:15:59] <razip> все контроллеры*
[21:16:34] ftrvxmtrx вышел(а) из комнаты
[21:16:44] ftrvxmtrx вошёл(а) в комнату
[21:28:17] razip вышел(а) из комнаты
[21:31:50] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[21:31:50] ftrvxmtrx вошёл(а) в комнату
[21:34:20] ftrvxmtrx вышел(а) из комнаты
[21:34:25] ftrvxmtrx вошёл(а) в комнату
[21:37:46] ftrvxmtrx вышел(а) из комнаты
[21:37:52] ftrvxmtrx вошёл(а) в комнату
[21:39:51] ftrvxmtrx вышел(а) из комнаты
[21:39:59] ftrvxmtrx вошёл(а) в комнату
[21:41:16] MaXGGXaM вышел(а) из комнаты: Вышел из Vacuum-IM
[21:41:44] MaXGGXaM вошёл(а) в комнату
[21:41:48] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[21:41:49] ftrvxmtrx вошёл(а) в комнату
[21:42:54] ftrvxmtrx вышел(а) из комнаты
[21:43:01] ftrvxmtrx вошёл(а) в комнату
[21:48:47] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[21:48:48] ftrvxmtrx вошёл(а) в комнату
[21:56:07] Kxepal вошёл(а) в комнату
[21:57:35] begemot_sun вышел(а) из комнаты
[22:07:58] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[22:07:59] ftrvxmtrx вошёл(а) в комнату
[22:10:41] postman вышел(а) из комнаты
[22:15:13] postman вошёл(а) в комнату
[22:17:54] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[22:17:55] ftrvxmtrx вошёл(а) в комнату
[22:19:52] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[22:19:54] ftrvxmtrx вошёл(а) в комнату
[22:22:47] ftrvxmtrx вышел(а) из комнаты
[22:22:54] ftrvxmtrx вошёл(а) в комнату
[22:24:51] ftrvxmtrx вышел(а) из комнаты: Replaced by new connection
[22:24:54] ftrvxmtrx вошёл(а) в комнату
[22:26:49] ftrvxmtrx вышел(а) из комнаты
[22:31:25] <Darth Лис> этсамое
[22:31:34] <Darth Лис> у нас уже имеются нормальные либы для aws S3?
[22:31:56] begemot_sun вошёл(а) в комнату
[22:31:58] <Darth Лис> и ещё разыскивается тоже самое только для rackspace cloudfiles
[22:33:58] ftrvxmtrx вошёл(а) в комнату
[22:35:45] ftrvxmtrx вышел(а) из комнаты
[22:35:49] ftrvxmtrx вошёл(а) в комнату
[22:40:51] ftrvxmtrx вышел(а) из комнаты
[22:42:58] ftrvxmtrx вошёл(а) в комнату
[22:45:04] ftrvxmtrx вышел(а) из комнаты
[22:55:28] Darth Лис вышел(а) из комнаты: Disconnected: session closed
[23:06:00] ftrvxmtrx вошёл(а) в комнату
[23:06:11] ftrvxmtrx вышел(а) из комнаты
[23:09:35] begemot_sun вышел(а) из комнаты
[23:31:03] vaal вошёл(а) в комнату
[23:31:54] vaal вышел(а) из комнаты
[23:31:58] vaal вошёл(а) в комнату
[23:32:36] vaal вышел(а) из комнаты
[23:38:54] smpl вошёл(а) в комнату
[23:52:32] postman вышел(а) из комнаты
[23:54:32] postman вошёл(а) в комнату
[23:54:54] <postman> кстати, всем нытикам по поводу пщланга.
[23:55:03] <postman> вы когда-нибудь писали на sourcepawn?
[23:55:17] <postman> вообще на любом диалекте Pawn.
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!