Home
golang
golang@conference.jabber.ru
Среда, 27 апреля 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:12:27] <Deirz> зачем ты в респонсе выставляешь Referer?
[00:16:31] Magiq вошёл(а) в комнату
[00:17:30] cheshir вышел(а) из комнаты
[00:18:43] plumbum вошёл(а) в комнату
[00:18:54] Magiq вышел(а) из комнаты: Replaced by new connection
[00:18:55] Magiq вошёл(а) в комнату
[00:23:31] Magiq вышел(а) из комнаты
[00:32:03] begemot_sun вышел(а) из комнаты
[00:42:01] <kpmý> дедушка вирт рекомендует записывать по адресу (адрес переменной структуры - 4) тег типа структуры
[00:42:40] <kpmý> а типы описывать в секции типов модуля
[00:45:21] <kpmý> а тег типа получать из хэша по названию и полям
[00:46:48] <kpmý> проверка типа становится довольно дешёвой
[00:50:09] <Deirz> проверка на идентичность?
[00:50:29] <kpmý> ну, instanceof
[00:52:40] <Deirz> хмм
[00:53:00] <Deirz> это для динамических языков?
[00:53:07] <Deirz> или статическим тоже пригодится?
[00:53:12] <kpmý> для статических
[00:54:12] <Deirz> эта проверка нужна когда сторонний код вызывает функцию?
[00:54:33] <kpmý> ну типа заводишь абстрактную структуру Message, от неё делаешь конкретные структуры MouseEvent, KeyboardEvent, и описываешь хендлер Handle(msg Message)
а внутри чекаешь тип, дёшево, в два сравнения
[00:55:22] <Deirz> и чем это лучше тэга внутри структуры?
[00:56:15] <unixlike> Deirz:  Я не знаю куда его вставлять, мне просто  нужно поймать с какой странички меня средиректило на логин (дашборд ессно не открылся из-за того что пользак незалогинен) а после успешного логина средиректить на тот дашбоард(страничку ) куда я пытался попасть до этого
[00:56:38] <Deirz> тебе его браузер вставляет
[00:56:46] <Deirz> выставлять его обратно не надо
[00:58:27] <unixlike> ага , просто браузер почему-то это не сделал , возможно потому что я делаю редирект c.Redirect(302,settings.SERVER_URL+"/auth/login")
[00:58:56] <unixlike> может быть Referer из-за этого сбрасывается
[00:59:14] <Deirz> параметром к login можешь передать урл куда обратно отредиректить
[00:59:27] <Deirz> не забудь там вставить защиту
[01:00:04] <kpmý> Deirz: а это он и есть, ты же компилятору пишешь типа msg IS Type, и норм.
[01:00:22] kpmý вышел(а) из комнаты
[01:01:41] <unixlike> Deirz:  типа рестриктить /auth/login/auth/login
[01:02:17] <Deirz> нет, не должно редиректить на урл, совершающий деструктивные действия
[01:02:22] <unixlike> Deirz:  Спасиба!
[01:03:04] <unixlike> интересно а такую фигню зациклит  /auth/login/auth/login  
[01:22:17] plumbum вышел(а) из комнаты
[01:37:22] unixlike вошёл(а) в комнату
[01:37:22] unixlike вышел(а) из комнаты
[01:40:49] mantyr@jabberon.ru вошёл(а) в комнату
[01:42:19] mantyr@jabberon.ru вышел(а) из комнаты
[02:00:48] mantyr@jabberon.ru вошёл(а) в комнату
[02:18:38] krab вошёл(а) в комнату
[02:22:51] unixlike вышел(а) из комнаты
[02:46:27] krab вышел(а) из комнаты: Replaced by new connection
[02:46:29] krab вошёл(а) в комнату
[03:02:07] Deirz вышел(а) из комнаты
[04:44:16] krab вышел(а) из комнаты: Replaced by new connection
[04:44:18] krab вошёл(а) в комнату
[07:56:16] aquarium вошёл(а) в комнату
[08:07:06] cheshir вошёл(а) в комнату
[09:10:19] begemot_sun вошёл(а) в комнату
[09:17:04] Laz вошёл(а) в комнату
[09:23:10] avz вошёл(а) в комнату
[09:28:25] debasher-0.1.5-nightly вошёл(а) в комнату
[09:36:09] Magiq вошёл(а) в комнату
[09:38:59] Magiq вышел(а) из комнаты: Replaced by new connection
[09:39:00] Magiq вошёл(а) в комнату
[09:45:09] <debasher-0.1.5-nightly> > [2016-04-27 00:54] kpmý> ну типа заводишь абстрактную структуру Message, от неё делаешь конкретные структуры MouseEvent, KeyboardEvent, и описываешь хендлер Handle(msg Message)
а внутри чекаешь тип, дёшево, в два сравнения
[09:45:13] <debasher-0.1.5-nightly> чото это пизда какая-то
[09:45:22] <debasher-0.1.5-nightly> выглядит некрасиво
[09:45:40] <Laz> чо за абстрактная структура?
[09:45:47] <debasher-0.1.5-nightly> я не знаю как лучше, но так точно не оч
[09:46:26] <debasher-0.1.5-nightly> Laz: abstract class Message { public $type = "MouseEvent" }
[09:46:29] Magiq вышел(а) из комнаты
[09:46:40] <Laz> а чо не так?
[09:46:43] <Laz> сделать её закрытой
[09:46:47] <Laz> и чекай сколько влезет
[09:47:05] <debasher-0.1.5-nightly> ну не знаю
[09:47:12] <debasher-0.1.5-nightly> может вечером мне это и покажется норм решением
[09:47:14] <debasher-0.1.5-nightly> но точно не с утра
[09:47:19] <Laz> а в лишпе чо, такого нет?
[09:48:24] <debasher-0.1.5-nightly> везде есть, но зачем же юзать
[09:48:24] <Laz> сейчас это модно называть "поттэрн маччин"
[09:48:40] <Laz> если подходит под задачу, почему нет?
[09:49:16] <debasher-0.1.5-nightly> если гото подходит под задачу, почему нет?
[09:50:15] <Laz> подтверждаю
[09:50:36] <Laz> а ты, походу, из лагеря любителей флажков в выходе?
[09:51:06] <debasher-0.1.5-nightly> каких ещё флажков
[09:51:26] <debasher-0.1.5-nightly> я любитель красивых женщин, например, а это ваше компьютерное говно терпеть ненавижу
[09:51:29] <Laz> флажков типа "мы вот тут зафейлились, а тут нет, а тут хер пойми"
[09:51:53] <debasher-0.1.5-nightly> не
[09:52:05] <Laz> или за гото ты просто так пузыри пустил?
[09:52:16] <debasher-0.1.5-nightly> у меня просто внутри что-то сопротивляется, когда ИФом вытаются решить то, для чего нужно ООП
[09:52:48] <debasher-0.1.5-nightly> или когда гото используют вместо структурного программирования
[09:53:17] <debasher-0.1.5-nightly> ИТ-индустрия старается для вас, блять
[09:53:18] <debasher-0.1.5-nightly> !
[09:53:54] <Laz> а когда вместо обычного патерн-мачинга городят лапшу из классов, всё норм?
[09:54:12] <debasher-0.1.5-nightly> ну, страшного в этом очень часто ничего нет
[09:54:25] <Laz> ну да
[09:54:51] <debasher-0.1.5-nightly> фишка в том, что оно может меняться
[09:55:00] <debasher-0.1.5-nightly> и тут мы вспоминает SOLID =)
[09:55:03] <Laz> примерно как нет ничего страшного в замене трёх гото для выхода при ошибке на три флажка, которые надо везде таскать и везде проверять
[09:55:05] <debasher-0.1.5-nightly> нельзя менять_ но можно расширять
[09:55:09] <Laz> что может меняться?
[09:55:15] <Laz> тип?
[09:55:21] <debasher-0.1.5-nightly> например, ты добавил ещё одного ребёнка
[09:55:28] <debasher-0.1.5-nightly> ты можешь добавить ещё один класс
[09:55:30] <Laz> ну, добавил
[09:55:32] <debasher-0.1.5-nightly> или ты можешь изменить матчинг
[09:55:34] plumbum вошёл(а) в комнату
[09:55:48] <debasher-0.1.5-nightly> в первом случае ты только расширяешь
[09:55:52] <Laz> изначально у нас что было, события?
[09:56:01] <debasher-0.1.5-nightly> например да
[09:56:04] <Laz> ну давай, появился у меня ещё один тип события, которые должны обрабатывать мои клиенты
[09:56:20] <Laz> я делаю ещё одного ребёнка, начинаю слать его направо-налево, так?
[09:56:29] <Laz> откуда юзер узнает про этого ребёнка?
[09:56:51] <debasher-0.1.5-nightly> мы видимо видим задачу в разных сторон
[09:56:53] <Laz> с закрытым типом компилятор просто пошлёт ебасоса, если он что-то не обработал
[09:56:53] <debasher-0.1.5-nightly>
[09:57:09] <debasher-0.1.5-nightly> бля, как же бесит ебучая эплоклава
[09:57:42] <Laz> в случае ооп придётся делать интерфейс, который будет иметь по методу для каждого возможного типа события
[09:57:48] <Laz> этот интерфейс клиент должен будет реализовать
[09:58:01] Magiq вошёл(а) в комнату
[09:58:03] <Laz> и что толку?
[09:58:23] <Laz> у тебя всё так же по методу на сообщение, только пришлось налепить ещё несколько уровней индирекции
[09:58:30] <debasher-0.1.5-nightly> > делать интерфейс, который будет иметь по методу для каждого возможного типа события
[09:58:31] <Laz> и бойлерплейта, да
[09:58:32] <debasher-0.1.5-nightly> что?
[09:58:48] <Laz> а как ещё ты можешь гарантировать, что клиент обрабатывает любое твоё сообщение, например?
[10:00:22] <debasher-0.1.5-nightly> бойлерплейт не так страшен, как его малюют
[10:00:36] <debasher-0.1.5-nightly> что он есть, что нет -- вообще похер
[10:00:48] <Laz> ну если ооп заради ооп, то ок
[10:01:18] <debasher-0.1.5-nightly> нет, тут даже скорее не ооп
[10:01:25] <debasher-0.1.5-nightly> а просто полиморфизм
[10:01:59] <Laz> ад-хок?
[10:02:16] <Laz> карощ
[10:02:20] <Laz> есть иксы
[10:02:38] <Laz> есть два типа эвентов - нажатие на клавишу и нажатие на мышу
[10:02:48] <Laz> они типа эвенты
[10:02:59] <Laz> я лихо обрабатываю эвенты
[10:03:16] <Laz> мне прилетело всё такое из себя полиморфное событие, что дальше?
[10:03:57] ermine вошёл(а) в комнату
[10:04:12] <debasher-0.1.5-nightly> у тебя с евентом каждого типа болтается метод(хандлер) который и знает что делать
[10:04:28] <Laz> где именно он болтается?
[10:04:36] <debasher-0.1.5-nightly> зависит от реализации
[10:04:43] <debasher-0.1.5-nightly> вообще, что за язык?
[10:04:48] <Laz> или мне предварительно надо дёрнуть что-то типа onButton(handler)?
[10:04:54] <Laz> джява
[10:05:38] <debasher-0.1.5-nightly> суть в том, что если логика специфична для типа, пусть с ним и болтается, а если нет -- то вызывается полиморфно, без внешних проверок типов
[10:06:22] <Laz> чо-то я не понял
[10:06:39] <Laz> мне нужно приболтнуть на нажатие клавиши одну логику, на нажатие мыши - другую
[10:06:45] <debasher-0.1.5-nightly> я понял
[10:06:59] <Laz> гоф рекомендует применять визитора
[10:07:05] <Laz> или что-то типа того
[10:07:06] <debasher-0.1.5-nightly> вот одну логику прикрути к одному классу, а другую - к другому
[10:07:18] <Laz> эти классы находятся в чужом пакете
[10:07:19] <debasher-0.1.5-nightly> а вызывай одинаково
[10:07:23] <Laz> мне от них отнаследоваться надо?
[10:07:31] <debasher-0.1.5-nightly> ну, как вариант
[10:07:48] <Laz> а как чужой код будет создавать экземпляры моих классов?
[10:08:15] <Laz> он же должен как-то по нажатию на клавишу создать экземпляр моего KeyEvent с моей логикой
[10:09:05] <debasher-0.1.5-nightly> а
[10:09:17] <Laz> ну ладно, скажу
[10:09:41] <Laz> в том пакете есть интерфейс фабрики с методами создания эвентов
[10:10:09] <Laz> я его реализую, передам в сервер, и он будет кидаться в меня моими экземплярами с моей логикой
[10:10:23] <debasher-0.1.5-nightly> ну вот
[10:10:29] <debasher-0.1.5-nightly> а ты -- матчинг, матчинг!
[10:10:53] <Laz> внатуре
[10:11:19] <debasher-0.1.5-nightly> ну на самом деле может и матчинг, просто я в пятницу был на конфе и слушал докладик
[10:11:24] <debasher-0.1.5-nightly> где говорилось что нельзя и говно =)
[10:11:35] <debasher-0.1.5-nightly> ещё не уложил в голове когда да, а когда нет
[10:13:11] <Laz> ну я как представляю
[10:13:18] <Laz> гм
[10:13:45] <Laz> когда ты пишешь тип какой-то, и он под твоим контролем, и ты знаешь, чо там может быть
[10:13:48] <Laz> считай, закрытый тип
[10:13:54] <Laz> то потэрн матчить его и привет
[10:14:22] <Laz> если ты хочешь, чтоб всякие там юзеры могли добавлять свои инстансы
[10:14:31] <Laz> то интерфейсы с полиморфизмом
[10:17:42] krab вышел(а) из комнаты: Replaced by new connection
[10:17:45] krab вошёл(а) в комнату
[10:18:14] <debasher-0.1.5-nightly> как хорошо когда на работе полно халявной жратвы
[10:18:22] <debasher-0.1.5-nightly> сижу грызу орешки
[10:18:50] avz вышел(а) из комнаты
[10:23:45] <Magiq > функция len ее мутексить не нужно?
[10:23:55] <Laz> каэш
[10:24:00] <Laz> в смысле, нужно
[10:24:04] <Laz> всё мутексить нужно
[10:24:07] <Laz> кроме атомиков
[10:24:08] <Magiq > ну в тестах я заметил что не нужно
[10:24:10] <Magiq > на нее не ругается
[10:24:16] <Laz> и каналов
[10:24:18] <Magiq > может она атомарная?
[10:24:22] <Laz> сомневаюсь
[10:24:41] <Magiq > ну конкретно в return len без мутекса в тестах моих с горутинами не понадобилось
[10:25:00] <Magiq > потому и спрашиваю
[10:25:56] <Laz> тебе просто повезло
[10:27:21] <Magiq > defer же сработает после return ?
[10:28:04] <Magiq > It is safe to call len(ch) concurrently, but the obtained value is unavoidably racy per se.
[10:28:08] <Magiq > https://groups.google.com/forum/#!topic/Golang-nuts/yQw1Wx6BoUU
[10:29:47] <Magiq > по разному пишут
[10:29:49] krab вышел(а) из комнаты: Replaced by new connection
[10:29:50] <Magiq > наверное ты прав
[10:29:51] krab вошёл(а) в комнату
[10:30:02] <Magiq > но я запись и чтение делал паралельно в рутинах
[10:30:07] <Magiq > несколько раз тест запускал
[10:32:59] <Magiq > ну в доках не сказано ничего а атомарности len, значит ты скорей всего прав
[10:34:19] <Magiq > меня еще другое удивляет
[10:35:17] <Magiq > почему в этом коде http://pastebin.com/DUPv8X4L в метод flushIfExpiried нужно помещать блокировки
[10:35:27] <Magiq > если в контексте откуда он вызван уже есть блокировки
[10:36:17] <Magiq > тестами проверил
[10:37:10] <debasher-0.1.5-nightly> CreationManager
[10:38:04] <Magiq > ?
[10:38:07] kpmý вошёл(а) в комнату
[10:38:23] <debasher-0.1.5-nightly> да это я о своём
[10:39:46] dzendmitry вышел(а) из комнаты
[11:10:52] Magiq вышел(а) из комнаты
[11:17:07] je вошёл(а) в комнату
[11:18:46] Magiq вошёл(а) в комнату
[11:19:16] ftrvxmtrx вошёл(а) в комнату
[11:19:45] <je> привет, гляньте пожалуйста пару функций, вот так нормально использовать каналы? https://paste.fedoraproject.org/360109/61744989/
[11:19:51] <je> то есть из http запроса по каналу улетает запрос на извлечение ключа, извлекается и прилетает обратно по этому же каналу
[11:21:36] <mantyr@jabberon.ru>     1    redis <- RedisData{k, ""}
    2                data := <- redis
[11:21:38] aquarium вышел(а) из комнаты
[11:22:26] <mantyr@jabberon.ru> Давай разберём. Первый фейл - это когда у тебя 100500 потоков запускают getHandler и может случиться так что ты в одном потоке отправишь в redis данные на обработку, а в другом получишь эти данные не обработанными - в результате коллапс и фарш...
[11:23:15] <je> то есть каналы в данном случае никакую потокобезопасность не обеспечивают?
[11:23:24] aquarium вошёл(а) в комнату
[11:23:55] <mantyr@jabberon.ru> Второй момент - если ты всё равно ждёшь результатов - зачем канал?:) Ну запусти ты функцию и подожди пока оно выполнится… или ты таким образом хочешь оберегать базу от многопоточного доступа?:)
[11:24:16] postman вошёл(а) в комнату
[11:24:20] <mantyr@jabberon.ru> Ты должен понимать "что именно" ты защищаешь в потокобезопасности:)
[11:24:32] <mantyr@jabberon.ru> Вот скажи - что ты хочешь защитить?:)
[11:24:58] <je> ну в данном случае я правильно понял, что один поток может отправить ключ, второй отправить, и второй получить результат первого?
[11:25:04] <postman> ебать, основа бнвача.
[11:26:06] <mantyr@jabberon.ru> Нет, если канал один то может быть так что первый отправил "задачу" в канал, второй отправил "вторую задачу в канал", первый получил в ответ "вторую задачу в канал", а второй получил в ответ "задачу" и ни одна из задач не выполнилась потому что горутина которая отслеживала канал просто не успела забрать данные:)
[11:26:44] <mantyr@jabberon.ru> первый отправил, второй отправил, второй прочитал, первый прочитал, горутина прочитала и ничего не нашла…
[11:26:50] <mantyr@jabberon.ru> Не знаю как ещё перефразировать:)
[11:27:03] <postman> передавайте вместе с задачей канал, по которому можно слушать результат, шизики.
[11:27:36] <mantyr@jabberon.ru> Да, так можно. Вопрос для чего там вообще каналы...
[11:27:45] <postman> я даже не переходил по ссылке.
[11:27:58] <mantyr@jabberon.ru> Это и не нужно, там этого нет:)
[11:28:23] <mantyr@jabberon.ru> je, сформулируй что надо защитить.
[11:28:52] <je> я просто хочу убедиться, что такая модель в Го сломается, но убедился в обратном - она работает, может потоков мало запустил
[11:29:32] <je> по сути мне просто было нужно обрабатывать данные в редиске, но я нахуевертил с каналами, потому что это модно, стильно
[11:30:15] <debasher-0.1.5-nightly> привет postman!
[11:30:17] <debasher-0.1.5-nightly> привет чат!
[11:30:18] <je> и такое разделение какбы наглядное - вот крутится redis обработчик, вот http
[11:30:37] <postman> выглядит как хуйня, одна горутина не должна одновременно писать в анал и читать из него.
[11:30:38] <je> создавать канал на каждый http запрос это нормально?
[11:30:52] <mantyr@jabberon.ru> Смотри. Как правило, не факт, но как правило, доступ к базе уже защищён.
[11:31:34] <mantyr@jabberon.ru> Да, нормально. Но можно и один буфиризированный канал на 100500 значений сделать вне горутин.
[11:31:42] <je> да здесь не в базе дело, конечно там потокобезопасная обертка, я просто хотел пронаблюдать, как один данные отправил, а другой эти данные прочитал
[11:32:06] <mantyr@jabberon.ru> Ну тогда всё правильно, кроме ребуса с одним каналом для всего:)
[11:32:35] <je> одного канала хватит всем, ыы
[11:32:50] <je> ладно, спасибо =)
[11:32:56] <mantyr@jabberon.ru> Сделай 1 общий канал на отправку заданий, читай из него опять таки одной или несколькими горутинами, в каждую задачу передавай обратный канал для получения результата...
[11:33:09] <je> угу
[11:33:23] <mantyr@jabberon.ru> И в результате у тебя однопоточный сервер:)
[11:33:40] <postman> хуепроточный.
[11:33:50] <mantyr@jabberon.ru> Я бы понял если бы ты там какой-нибудь кеш для вычислений хотел делать… но и в этом случае это несколько надуманный вариант с однопоточностью:)
[11:33:51] <postman> воркеров несколько сделайте.
[11:33:58] <je> ну а базой данных всегда так, если специально ничего не делать, блокирующая ж операцыя
[11:34:30] <mantyr@jabberon.ru> Смотря что ты там в базе делаешь:) Скорее всего ты не прав:)
[11:34:38] <je> >http.HandleFunc("/get", getHandler(read_redis_channel))
[11:34:48] <mantyr@jabberon.ru> Хотя что там в редисе знают только те кто его разрабатывают.
[11:34:53] <je> а вот это вот, это синхронная обработка вызовов http?
[11:35:02] <je> или чокаво, в потоке функции запустятся?
[11:35:25] <je> хули не очевидно опять же, что они в горутине отработают, или же так, по очереди
[11:36:03] <mantyr@jabberon.ru> Смотри. Ты всё равно в каждом хандлере ждёшь пока выполнится запрос в базу… запросы в базу защищены сами по себе, выполняются они там на стороне базы так как им вздумается, но на твой код это не влияет… вопрос - нафиг тебе потоки и отдельные воркеры? Разве что ты хочешь специально ограничить количество одновременно работающих воркеров и заставлять клиентов ждать чуть больше чем обычно.
[11:36:40] <kpmý> мантыра не слушай, дружище)
[11:36:48] <mantyr@jabberon.ru> Ага, пили говнософт:)
[11:37:22] <postman> пакет хттп из стдлиб спавнит горутину на каждый запрос.
[11:37:33] <debasher-0.1.5-nightly> :-O
[11:41:15] <debasher-0.1.5-nightly> postman: как тебе сотрудники? общаешься?
[11:41:24] <debasher-0.1.5-nightly> не обижают?
[11:41:46] krab вышел(а) из комнаты: Left Vacuum-IM
[11:44:41] <kpmý> debasher-0.1.5-nightly: тебе чем не понравилась работа с сообщениями?
[11:44:57] <debasher-0.1.5-nightly> kpmý: всмысле?
[11:48:12] <debasher-0.1.5-nightly> нас тут на работе заставляют в обеденный перерыв смотреть записи с хайлоад++.
[11:48:23] <debasher-0.1.5-nightly> зато кормят халявно
[11:51:33] <postman> https://github.com/golang/go/issues/6722
[11:51:37] <postman> ну и goвно.
[11:55:08] <debasher-0.1.5-nightly> kpmý: а, ты про моё вчерашнее сообщение на лоре?
[11:55:24] <debasher-0.1.5-nightly> мне не непоравилась
[11:55:44] <debasher-0.1.5-nightly> просто заебали те, кто и в правду думает что ооп это про посылку сообщений
[11:56:05] <postman> а ты думаешь, про что оно?
[11:56:09] <kpmý> нет, в этом чате
[11:56:16] <debasher-0.1.5-nightly> посылать сообщения клёво, только давайте не будем строить из себя умников которые прочитали посты анонiмуса
[11:57:18] <debasher-0.1.5-nightly> postman: сначала ты, щенок, на мои вопросы ответьи
[12:11:10] <postman> ты заебал своими расспросами, иди в пизду.
[12:11:16] <postman> у тебя ирл нет друзей?
[12:18:04] <debasher-0.1.5-nightly> таких как ты - нет
[12:18:10] <debasher-0.1.5-nightly> поэтому ты мне особенно интересен
[12:21:58] <kpmý> опять устроили тут свои гейские игрища
[12:23:37] <postman> предлагаю забанить дебошера за гей-пропаганду.
[12:26:50] <debasher-0.1.5-nightly> ну, каждый видит то что хочет
[12:27:01] <debasher-0.1.5-nightly> если вы тут видите гейство -- у меня для вас плохие новости
[12:51:20] Deirz вошёл(а) в комнату
[12:57:38] Deirz вошёл(а) в комнату
[13:40:39] <Deirz> https://twitter.com/phillip_webb/status/705909774001377280 охщи
[13:47:58] Magiq вышел(а) из комнаты
[13:52:11] <mantyr@jabberon.ru> И так… вопрос, какие есть варианты replace в Golang… надо заменить \# на # в тексте… https://play.golang.org/p/n4_-Y-7-aF
[13:52:21] <mantyr@jabberon.ru> prog.go:10: unknown escape sequence: #
[13:53:15] <postman> https://play.golang.org/p/lQnRT27vyj
[13:55:29] <mantyr@jabberon.ru> Ага, спасибо. А где бы почитать про подводные камни использования `` вместо ""… ведь там полюбому стопка отличий...
[13:55:43] <mantyr@jabberon.ru> И прилететь туда может что угодно по своей сути.
[13:56:08] <Deirz> "" обрабатывает escape-последовательности, `` - не обрабатывает
[13:56:39] <mantyr@jabberon.ru> И всё?
[13:57:09] <postman> https://golang.org/ref/spec#String_literals
[13:59:00] <mantyr@jabberon.ru> Cпасибо.
[14:11:53] Magiq вошёл(а) в комнату
[14:12:16] <kpmý> Deirz: прикольно видеть такое от автора спрыга)
[14:28:37] Magiq вышел(а) из комнаты
[14:29:39] Magiq вошёл(а) в комнату
[14:33:34] <kpmý> маня-аналитика https://habrahabr.ru/post/282588/
[15:00:50] <debasher-0.1.5-nightly> поцоны, нахуя нужны микросервисы?
[15:05:22] <cheshir> для удобства
[15:06:54] <debasher-0.1.5-nightly> и чем это удобнее?
[15:07:02] <cheshir> архитектура приложения упрощается, можно оптимизировать нагрузку, отказоустойчивость повышать. Но как и везде где их стоит использовать где-то нет
[15:07:42] <debasher-0.1.5-nightly> упрощается? это каким таким образом?
[15:08:00] <cheshir> вообще я считаю что на микросервисы стоит переходить когда уже понятно или хотя бы более менее четко видно что нужно. А начинать лучше с монолита )
[15:08:47] <cheshir> таким что каждый сервис занимается своим делом - он небольшой и в нем можно разобраться. Зависимости у него тоже ясные и понятные )
[15:09:07] <debasher-0.1.5-nightly> что мешает просто не говнокодить в монолите?
[15:09:38] <cheshir> да тут дело не только в этом.
[15:10:22] <cheshir> вот есть сервис какой-то, через некоторое время нужен еще один которые использует часть кода другого
[15:11:48] <cheshir> и тут либо копипаста, либо выносить все в библиотеку. В первом варианте будет два вроде бы одинаковых кода, но в каждом свои правки. Во втором может начаться что-то вроде: вот эта софтина использует версию 1.2, а вот это 2.0  и надо подерживать и то и другое
[15:17:33] Kittycat вышел(а) из комнаты
[15:23:08] <cheshir> потом можно быстро оптимизировать части приложения раскидывая их по хостам например. Короче идея неплохая, но не стоит ее внедрять вот прям сразу же. Лучше мигрировать когда станет понятно что вот она прям нужна и понятно какие микросервисы нужны.
[15:24:16] Kittycat вошёл(а) в комнату
[15:34:59] radioqt вошёл(а) в комнату
[15:36:48] Kittycat вышел(а) из комнаты
[15:41:07] Kittycat вошёл(а) в комнату
[15:45:12] <kpmý> будующее https://habrahabr.ru/company/intel/blog/282570/
[15:46:23] <radioqt> сколько там кеша всех левелов? терабайтник?
[15:47:05] Kittycat вышел(а) из комнаты
[15:49:37] <kpmý> да какая разница, важно что там fpga
[15:50:52] Kittycat вошёл(а) в комнату
[15:51:18] Kittycat вышел(а) из комнаты
[15:52:36] radioqt вышел(а) из комнаты
[16:15:03] krab вошёл(а) в комнату
[16:25:12] Kittycat вошёл(а) в комнату
[16:27:38] ftrvxmtrx вышел(а) из комнаты
[16:38:15] Darth Лис вошёл(а) в комнату
[16:38:26] krab вышел(а) из комнаты: Replaced by new connection
[16:38:28] krab вошёл(а) в комнату
[16:39:39] <Darth Лис> утра!
[16:45:54] <kpmý> хмутра
[16:46:03] Magiq вышел(а) из комнаты
[16:49:32] <Darth Лис> чо как
[16:50:46] <kpmý> всё ровно, ковыряю webassembly
[16:51:50] <Darth Лис> зачем?
[16:55:11] <kpmý> чтобы не скучно и типа в потоке современных технологий
[16:55:26] <kpmý> от скуки конеш
[16:55:29] <kpmý> в основном
[16:59:20] <Darth Лис> нда, так себе развлекуха
[17:07:48] krab вышел(а) из комнаты
[17:08:24] krab вошёл(а) в комнату
[17:15:16] <Deirz> да ладно, это же кровоточащая грань веб-технологий
[17:15:58] <Darth Лис> кровоточащая щель веб-технологий :D
[17:19:40] je вышел(а) из комнаты: leaving
[17:24:34] Darth Лис вышел(а) из комнаты
[17:36:35] <postman> блядь, ну и говно.
[17:36:46] <postman> не могу зашифрованный приватный ключ прочитать.
[17:37:01] <Laz> внатуре
[17:37:17] <Laz> есть вот несколько ремоутов с одинаковыми тегами внутри
[17:37:33] <Laz> точнее, с одинаковыми именами тегов, но указывают они в разные места
[17:37:39] <Laz> гиту сносит башку
[17:38:22] <Deirz> вот кстати
[17:38:30] <Deirz> как зашифровываются приватные ключи?
[17:38:35] <Deirz> аесом?
[17:38:55] <Deirz> хотя не
[17:38:57] <Deirz> какой аем
[17:39:02] <Deirz> *аес с паролями
[17:45:32] <postman> пиздец, я щас мозги поломаю об эту криптографию.
[17:48:43] Magiq вошёл(а) в комнату
[17:52:14] debasher-0.1.5-nightly вышел(а) из комнаты
[17:57:21] 5UN5H1N3 вошёл(а) в комнату
[17:57:37] Magiq вышел(а) из комнаты
[17:58:09] <Laz> не, походу, не сносит
[17:58:15] <Laz> он просто забивает на другие теги
[17:58:27] <Laz> кто первый встал, того и тапки
[18:03:41] kpmý вышел(а) из комнаты
[18:19:26] Laz вышел(а) из комнаты
[18:29:39] plumbum вышел(а) из комнаты
[19:30:52] postman вышел(а) из комнаты
[20:32:16] radioqt вошёл(а) в комнату
[20:33:09] radioqt вышел(а) из комнаты
[20:55:05] 5UN5H1N3 вышел(а) из комнаты
[20:56:28] kpmý вошёл(а) в комнату
[20:57:25] <kpmý> доехал от метро до дома на велосипеде, пиздец конечно трудно
[21:01:05] avz вошёл(а) в комнату
[21:07:37] <azovcvb> долго?
[21:08:03] <kpmý> полчаса
[21:50:51] kpmý вышел(а) из комнаты
[21:55:01] kpmý вошёл(а) в комнату
[22:07:09] Magiq вошёл(а) в комнату
[22:14:27] plumbum вошёл(а) в комнату
[22:49:04] cheshir вышел(а) из комнаты
[22:58:06] avz вышел(а) из комнаты
[23:23:47] begemot_sun вышел(а) из комнаты
[23:42:44] mantyr@jabberon.ru вышел(а) из комнаты
[23:43:29] ermine вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!