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
Не знаю, единственный ли я здесь кто не слышал про methbot.
Случайно наткнулся на название и решил загуглить.
В итоге наткнулся на интересную историю о том, как ребята из России воровали рекламный трафик у огромных рекламных компаний.
В конце концов их вроде раскрыли. Вот документ от компании по кибербезопасности WhiteOps, в котором это всё дело более детально расписано.
На их сайте есть есть много связанной информации, например, скомпрометированные IP и поддельные домены.
Пока искал тул, с помощью которого можно визуализировать зависимости в go коде, наткнулся на вот это.
Этот проект нацелен на то, чтобы визуализировать package в го в виде города.
Улицы - это папки, файлы - это здания, структуры данных - это здания на зданиях (что?).
Достаточно залипательно https://go-city.github.io/#/github.com/Koshqua/scrapio

Кстати, если у кого-то есть пример инструмента, который я ищу, пишите - @mlvni
Ауч
​​Никак не мог решиться, но все таки поделюсь хорошей новостью. Я наконец-таки нашёл работу junior разработчиком на Go в одной Киевской компании.
Уже подписал офер и в прошлую пятницу был мой первый рабочий день.
Пока нахожусь в Дубае и все остальное время карантина - буду работать удаленно.

Самое забавное, что в течении двух прошедших месяцев я отправил около 100–150 писем в разные компании (Дубай, remote) и получил ровно нулевой выхлоп из этого. И тут решил начать отправлять в Украинские компании, отправил всего два или три отклика и на следующий день получил приглашение на собеседование, а через два дня начал работать.

Счастью нет предела, как и всему тому, что ещё предстоит изучить.
Интересно, под какую музыку кодите/учитесь.
Пишите мне в личку(@mlvni) или в комментарии к этому посту.
Я последнее время слушаю либо что-то похожее на Frank Ocean, либо ищу джазовые или классические плейлисты.
Forwarded from 1-800-DESIGN-SUCKS
ЧТОШ, мой друг написал API для сбора данных из разных статей и буквально три дня назад предложил поучаствовать в этом всем. Он попросил меня задизайнить пару слайдов для презентации на ProductHunt, а в ответ я ему предложил сделать хотя бы какой-то минимальный сайт.
В то же время я не хотел делать что-то очень типичное.

Чтобы быстро релизнуться, можно было использовать Readymag (подставьте своё) или взять попробовать сверстать сайт самостоятельно. Я не могу сказать, что достаточно умею в верстку, но когда решили, что сайт может быть максимально простым и без лишних украшательств, мне стало интересно сделать это самому.

Поэтому все началось в Фигме, а закончилось уже правками в html и css. Гораздо быстрее исправить пару строк кода и сразу же проверить как это работает, чем править дизайн под все экраны и только потом писать код.

Я это все к чему. Если есть желание взглянуть и поддержать апвоутом — велкам на продукт хант. Все ссылки ниже:

ProductHunt:
https://www.producthunt.com/posts/extract-news-api

Сайт:
https://extractnewsapi.com/

GitHub:
https://github.com/kotartemiy/extract-news-api?ref=producthunt
Forwarded from 🇺🇦 Go for two :)
Note #66: Go плайграунд теперь исполняет код в multi-threaded linux контейнере

Если у вас есть необходимость в демонстрации многопоточного кода на Go, который использует несколько горутин и которые, в свою очередь, используют один поток (thread) операционной системы или несколько потоков (threads), которые используют разные ядра. В общем теперь можно изучать go параллелизм в плайграунде 🙌

package main

import (
"fmt"
"runtime"
)

func main() {
fmt.Printf("GOOS[%s] GOARCH[%s] GOMAXPROCS[%d] NumCPU[%d]", runtime.GOOS, runtime.GOARCH, runtime.GOMAXPROCS(0), runtime.NumCPU())
}
// OOS[linux] GOARCH[amd64] GOMAXPROCS[8] NumCPU[8]


P.S. объяснение от Брэда Фицпатрика:
Это стало возможным после того, как удалили поддержку Native Client (GOOS=nacl) в Go 1.14, и теперь go плайграунд запускается с помощью gVisor.
https://github.com/golang/go/issues/25224
https://github.com/golang/playground/commit/4d362417fd14b0b8349150cb28c3e8f2e756932e
Toodles

Проект для разработчиков - парсит TODO комментарии в вашем коде и составляет их карту с возможностью удобного менеджмента.

🌐 Lang: #Haskell
📎 Repo: https://github.com/aviaviavi/toodles
Спасибо вскоду за такие шикарные подсказки
Нашел неплохую статью про memory allocation в го.
Содержит много практических примеров, что приятно.

https://segment.com/blog/allocation-efficiency-in-high-performance-go-services/
Мне очень нравится 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