web mess – Telegram
web mess
130 subscribers
85 photos
1 video
2 files
163 links
go, vim and some other random stuff
appreciate your feedback :)
Download Telegram
Мне очень нравится clickhouse, но работаю я с ним не так давно.
И вот, у Avito Tech вышла целая статья с ответами на “продвинутые” вопросы о Clickhouse.
Отвечает на вопросы один из главных разработчиков кликхаус.

https://habr.com/ru/company/avito/blog/500678/
Не знаю, приходилось ли кому-то пользоваться graphql в связке с го.
Есть один пакет, скорее всего хороший пакет, буду делать на него миграцию.
Так вот, дока там абсолютно так себе, но, в самом конце есть введения написанные другими людьми.
И это настолько круто, что какой-то из пользователей пакета написал своё введение и автор добавил его в ридми.
Хотя, конечно, минус автору - хорошей доки нет.

https://github.com/graph-gophers/graphql-go - сам пакет.
https://github.com/codex-zaydek/graphql-go-walkthrough - гайд от пользователя.
Forwarded from Not Boring Tech
This media is not supported in your browser
VIEW IN TELEGRAM
Нейросети пошли и в настольный теннис — одна японская нейросеть научилась предсказывать точку падения мяча в реалтайме ещё до того, как ракетка коснулась мяча. Ей всего нужно видеть положение тела игрока и она выдаст своё верное предсказание с вероятностью 75% процентов.
Здесь можно почитать об этой нейросети по подробнее. Видео выше кстати прямиком отсюда.
Forwarded from Not Boring Tech
Обожаю разные забавные проекты с дообученными GPT-2 из серии чё-то.там_does_not_exist — вот один из них, который совсем недавно дико развирусился в соседних каналах. Эта идея уже старая, её наконец-то превратили в реальность: дообученная GPT-2 на UrbanDictionary.com придумывает слова, их часть речи, падежи, слоги и определения к ним. Если обновить страницу, сгенерируется другое слово. Также можно получить определение слова, которое вы сами придумали. В код лезть я не стал, ибо не сильно разбираюсь, можете сами посмотреть исходники, они тут. А вот сам сайт: http://www.thisworddoesnotexist.com/
Сейчас пишу очень много тестов, в основном - это интеграционные тесты.
То есть, нужно проверить взаимодействие разных частей приложения между собой.
Столкнулся с такой проблемой:
Есть структура, в которой есть дата, мне нужно запушить её в MongoDB и позже проверить правильность данных из Mongo.
Так вот, формат даты в монго не такой же, как в го, монго обрезает миллисекунды, из-за чего, в итоге структуры не одинаковы по DeepEqual.
Я пока что присваиваю ожидаемой структуре дату из полученной и сравниваю.
Конечно же, в контексте тестов этот подход не совсем правильный, т.к вдруг что-то будет не так с датой - тесты этого не проверят.
Кто-то сталкивался с таким, как с этим бороться?
В общем, с датой ничего не решилось, но понял, что с помощью прекрасного go-cmp(адвансед альтернатива DeepEqual), можно исключать поля, которые не желательно проверять. Это мой инсайт номер один.
А второй инсайт - это потрясающий тул go-spew, с помощью которого можно очень красиво логировать структуры для дебага(со значениями, типами и т.д). Так я вспомнил, что нулевое значение слайса - nil, а Mongo, когда она сканирует результат запроса в структру, создаёт пустой слайс, а не nil. Так и получается, что в итоге эти две структуры, которые хранят в себе слайсы - не равны по DeepEqul и cmp.Equal.
Столько боли в этих тестах, столько боли …

А вот и сами тулы:
https://github.com/davecgh/go-spew
https://github.com/google/go-cmp
Forwarded from INTERNET 9000
NOTION ✏️ ТЕПЕРЬ 📎 ПОЛНОСТЬЮ 📌 БЕСПЛАТНЫЙ 📓 ДЛЯ 💪 ЛИЧНОГО 🔗 ИСПОЛЬЗОВАНИЯ

notion.so/personal
Я уже знаю, о том, что есть hub. Но вот что.
Github запустил свою command line утилиту для управления репозитириями.
Приятно, что они решили эту утилиту написать на Go.
Пока что это бета и функционал немного урезан по сравнению с тем, что есть в hub.
В будущем обещают поддержку Github Enterprise Server и больше функционала.
Но, по моему скромному мнению, функционала более чем достаточно, чтобы пользоваться в работе.

https://github.com/cli/cli
Если вкратце, я работаю в компании, сервисы которой тесно связаны с криптовалютой.
И по долгу службы, как бы формально это не звучало, мне нужно знать, как устроен блокчейн и апи разных блокчейн платформ.
В процессе ознакомления я прочитал очень известный документ(Satoshi Nakamoto Paper) - https://bitcoin.org/bitcoin.pdf
Впринципе понял, как это устроено в теории. Но на этом решил не останавливаться, ведь намного лучше всё понимается на практике.
Так вот, в итоге я нашел интересную серию статей на медиуме, в которых показывают как сделать свой простой блокчейн и внедрить имплементации разных алгоритмов(майнинг, proof-of-work и т.д).
Пока что еще не написал его, но совсем скоро - поделюсь репо на гитхабе.

Вот ссылка на первую статью, там внизу ссылки на все остальные из серии.
https://medium.com/@mycoralhealth/code-your-own-blockchain-in-less-than-200-lines-of-go-e296282bcffc
Forwarded from oleg_log (Oleg Kovalov)
Стало интересно собрать статистику по Cloud & SaaS. Кто и что использует на работе или просто для себя. На текущем месте работы, а так же и на прошлом.

Даже если вы с этими вещами не работаете (в силу специализации), но знаете, что есть в вашей фирме используется - попрошу вас ответить :)

Результаты выложу на след неделе, думаю за 3-4 дня будет собрано достаточно ответов. Репост приветствуется, или хотя бы ссылку на опрос киньте покидайте другим.

https://forms.gle/v4wppXeC1thfHJ4J9

Спасибо.
Не решился даже пробовать, но теперь и не буду 🙂
Forwarded from oleg_log (Oleg Kovalov)
Последние 2 или 3 недели решил пожить в Goland (который IDE от JetBrains) и...я так-то не много потерял, когда жил без него.

Конечно рефакторинг по F6 это прикольно, и вот все эти менюшки, но как показывает практика, бОльшая часть времени тратится в простом наборе кода и перепрыгиванию между файлами/определениями.

Что сильно выбешивает, так это время отклика, когда по привычке ставишь {} и быстренько хочешь поставить курсор внутри и нажать Enter, а в итоге проваливаешься на строку ниже, а скобки висят на месте. Да и другие телодвижения чувствуются в натяжку (сейчас в лс набегут со словами, что РАМУ РАМУ НАДО БЫЛО ПОДДАТЬ, но факт такой, mbp15 не дотягивает)(и да, кроме как телеги и хрома с 4 вкладками ничего нет, цпу нулевой).

В итоге с июня возвращаюсь в VSCode 🎉
Интересная статья про монорепо Uber. Здесь приводится много примеров использования Bazel и много интересной статистики.

https://eng.uber.com/go-monorepo-bazel/
И вот, после прочтения статьи сверху мне стало интересно чуть глубже копнуть в тему монорепо, и тут есть статья о том, почему это плохо.

https://link.medium.com/UaYr3uIeV6
Релизнули Go 1.14.4
Там несколько фиксов для пакета os, райнтайма и go doc.
Не знаю, стоит ли писать анонсы для майнор версии, но всё же.

https://twitter.com/golang/status/1267589808529997825?s=20
Небольшая документация о 12-и факторных приложениях. https://12factor.net/
Много где встречал этот термин раньше, но как-то не доходили руки почитать.
А этот материал обещает быть хорошим, т.к написан сооснователем Heroku, Adam Wiggins.
Закончил миграцию с одного пакета на другой, осталось дописать мутации и gql api будет готово, кстати gql - это действительно круто в итоге, не смотря на то, как он мне не нравился изначально.
Forwarded from Komfy 🔐
We completed migrating from graphql-go/graphql to graph-gophers/graphql-go because the original package had a number of issues we couldn't solve. Now the GraphQL API works and further development can continue.
Решил попробовать использовать vim какое-то время.
Очень много разговоров вокруг этого зверюги.
Оказалось, что всё не так сложно и из vim’a есть выход.
Vim очень хорошо документирован, у него есть свой интерактивный(насколько это возможно в окне терминала) туториал, который пошагово объяснянт всю навигацию и функционал.
Решил установить nvim, следуя этому гайду.
Было бы круто услышать от вас о вашем опыте использования vim, если такой есть.

https://octetz.com/docs/2019/2019-04-24-vim-as-a-go-ide/
​​Пока что мой neovim выглядит вот так, после всех этапов из гайда, который я отправил в предыдущем посте.
Дополнительно я установил NERDTree, это файловый браузер.
https://github.com/preservim/nerdtree - NERDTree.