🌲 Как искать данные в пространстве невероятно быстро? R*-tree в Go
Если Вы знакомы с R-tree и не знакомы с R*-tree, объясню простымы словами.
R*-tree - это подвид алгоритма R-tree, более эффективное решение хранения пространственных данных ДЛЯ ПОИСКА. R*-tree балансируется по сторонам, уменьшает перекрытие между областями и уменьшает площадь покрытия веток и деревьев, чтобы можно было искать эффективно.
Для изменений данных в дереве требуется, по сравнению с обычным R-tree, больше времени, одна поиск, наоборот, занимает меньше времени.
Статья
Код
@Golang_google
Если Вы знакомы с R-tree и не знакомы с R*-tree, объясню простымы словами.
R*-tree - это подвид алгоритма R-tree, более эффективное решение хранения пространственных данных ДЛЯ ПОИСКА. R*-tree балансируется по сторонам, уменьшает перекрытие между областями и уменьшает площадь покрытия веток и деревьев, чтобы можно было искать эффективно.
Для изменений данных в дереве требуется, по сравнению с обычным R-tree, больше времени, одна поиск, наоборот, занимает меньше времени.
Статья
Код
@Golang_google
Tproger
R*-tree в Go: примеры использования
Как использовать R*-tree, чтобы обновлять данные об игроках на сервере даже при онлайне в 1000 человек и выше.
✅ Автоматическая генерация документации RESTful API с помощью Swagger
Описание: https://uproger.com/fiber-dlya-avtomaticheskogo-sozdaniya-dokumentaczii-restful-api-s-pomoshhyu-swagger-na-go/
Код: https://github.com/gofiber/swagger?ref=golangexample.com
@Golang_google
Описание: https://uproger.com/fiber-dlya-avtomaticheskogo-sozdaniya-dokumentaczii-restful-api-s-pomoshhyu-swagger-na-go/
Код: https://github.com/gofiber/swagger?ref=golangexample.com
@Golang_google
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Взламываем онлайн-игру Escape from Tarkov на Go
Это проект создан автором , как хобби для развития навыков программирования и любопытства, направленный на изучение того, как работают игровые читы. Автором представлены несколько вариантов кода для взлома игры на основе смещения памяти. Серверная часть радара написана с использованием Windows API. Кроме того, он код написан лаунчерм игры SPT-AK.
Код: https://github.com/joshfinley/radkov
Описание проекта: https://joshfinley.github.io/game-hacking-writing-a-radar/
@Golang_google
Это проект создан автором , как хобби для развития навыков программирования и любопытства, направленный на изучение того, как работают игровые читы. Автором представлены несколько вариантов кода для взлома игры на основе смещения памяти. Серверная часть радара написана с использованием Windows API. Кроме того, он код написан лаунчерм игры SPT-AK.
Код: https://github.com/joshfinley/radkov
Описание проекта: https://joshfinley.github.io/game-hacking-writing-a-radar/
@Golang_google
🛢 База данных NoSQL для Golang
Простая база данных NoSQL, вдохновленная SQLite.
Код
Описание проекта
@Golang_google
Простая база данных NoSQL, вдохновленная SQLite.
Код
Описание проекта
@Golang_google
4️⃣ простых лайфхака при написании тестов на Go + testify
Хотя язык программирования Go идёт в комплекте со встроенным тестовым фреймворком, мне сложно себе представить написание всего того количества тестов, что я написал, без testify. В этой заметке я расскажу про несколько маленьких неочевидных трюков, которым я научился в процессе.
Читать дальше
GIt: https://github.com/stretchr/testify
@Golang_google
Хотя язык программирования Go идёт в комплекте со встроенным тестовым фреймворком, мне сложно себе представить написание всего того количества тестов, что я написал, без testify. В этой заметке я расскажу про несколько маленьких неочевидных трюков, которым я научился в процессе.
Читать дальше
GIt: https://github.com/stretchr/testify
@Golang_google
💻 Получаем IP-адрес (а) с помощью golang
Простой инструмент командной строки для получения IP-адреса vpn, внутреннего, внешнего адреса.
https://github.com/masum0813/getipinfo
@Golang_google
Простой инструмент командной строки для получения IP-адреса vpn, внутреннего, внешнего адреса.
https://github.com/masum0813/getipinfo
@Golang_google
Что выведет код?
Anonymous Quiz
39%
"write data" и "after write" в любом порядке
12%
только "write data" или "after write"
4%
только "write data"
45%
deadlock!
Идёт набор на летнюю стажировку в Яндексе!⚡️
Направление — бэкенд-разработка на Golang.
Мы ищем стажеров в команды Облака и Главной страницы Яндекса.
Летняя стажировка в Яндексе это:
— от 3 до 6 месяцев оплачиваемой работы;
— возможность выбрать занятость 20, 30 или 40 часов в неделю;
— работа в офисах Москвы и Санкт-Петербурга;
— оплата проезда и проживания в Москве иногородним стажёрам;
— плотное общение с ментором и командой;
— работа над реальными задачами компании;
— возможность подтянуть свои знания и прокачать скиллы.
👉 Откликнуться: https://clck.ru/i3fFe
Направление — бэкенд-разработка на Golang.
Мы ищем стажеров в команды Облака и Главной страницы Яндекса.
Летняя стажировка в Яндексе это:
— от 3 до 6 месяцев оплачиваемой работы;
— возможность выбрать занятость 20, 30 или 40 часов в неделю;
— работа в офисах Москвы и Санкт-Петербурга;
— оплата проезда и проживания в Москве иногородним стажёрам;
— плотное общение с ментором и командой;
— работа над реальными задачами компании;
— возможность подтянуть свои знания и прокачать скиллы.
👉 Откликнуться: https://clck.ru/i3fFe
Потоковая обработка данных в go
При использовании языка Go чувствуется нехватка хорошей библиотеки для работы с потоками данных. Имеющиеся библиотеки в основном написаны во времена до дженериков и имеют не очень удобный интерфейс.
С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2.
Потребности потоковых программ
При обработке данных, объём которых превышает объём памяти вычислительного узла, необходимо использовать технологии потоковой обработки данных. При этом данные загружаются в память по частям, выполняется их обработка, а затем данные выгружаются из памяти.
Читать дальше
@Golang_google
При использовании языка Go чувствуется нехватка хорошей библиотеки для работы с потоками данных. Имеющиеся библиотеки в основном написаны во времена до дженериков и имеют не очень удобный интерфейс.
С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2.
Потребности потоковых программ
При обработке данных, объём которых превышает объём памяти вычислительного узла, необходимо использовать технологии потоковой обработки данных. При этом данные загружаются в память по частям, выполняется их обработка, а затем данные выгружаются из памяти.
Читать дальше
@Golang_google
Forwarded from Go tests
🔍 Minecraft Scanner
Интересный проект, написанный на Go Minecraft Scanner , который серфит Интернет на наличие открытых серверов Minecraft.
Описание
Github
@Golang_google
Интересный проект, написанный на Go Minecraft Scanner , который серфит Интернет на наличие открытых серверов Minecraft.
Описание
Github
@Golang_google
📹 Загрузчик видео с YouTube на Golang.
Этот пакет представляет собой пакет для загрузки видео с Youtube.
Этот инструмент предназначен для загрузки контента под лицензией CC0, мы не поддерживаем и не рекомендуем использовать его для незаконных действий.
Установка
Установить через go get
go get github.com/kkdai/youtube/v2
Github
@Golang_google
Этот пакет представляет собой пакет для загрузки видео с Youtube.
Этот инструмент предназначен для загрузки контента под лицензией CC0, мы не поддерживаем и не рекомендуем использовать его для незаконных действий.
Установка
Установить через go get
go get github.com/kkdai/youtube/v2
Github
@Golang_google
🛠 Cache
A Go library to deal with mixed version of key:value store between in-memory cache and shared cache (i.e. Redis).
Функции
Простота в использовании: удобный интерфейс для работы с механизмами кэширования .
Поддерживает согласованность: удаляйте ключи между распределенными системами по шаблону Pub-Sub.
Сжатие данных.
Метрика: предоставление функций обратного вызова для измерения производительности.
Установка:
go get github.com/viney-shih/go-cache
Github
@Golang_google
A Go library to deal with mixed version of key:value store between in-memory cache and shared cache (i.e. Redis).
Функции
Простота в использовании: удобный интерфейс для работы с механизмами кэширования .
Поддерживает согласованность: удаляйте ключи между распределенными системами по шаблону Pub-Sub.
Сжатие данных.
Метрика: предоставление функций обратного вызова для измерения производительности.
Установка:
go get github.com/viney-shih/go-cache
Github
@Golang_google
Go против Rust — производительность вне конкуренции
В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:
Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.
Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня — это слишком, тем более что тут "гвардейцев" больше восьми!
Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.
Повторение — мать учения и основа научного метода
Для начала попробуем воспроизвести результаты. Нужны исходники, а также Go и Rust (у меня версии 1.18 и 1.61, соответственно).
Читать
@rust_code - канал для изучения Rust
В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:
Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.
Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня — это слишком, тем более что тут "гвардейцев" больше восьми!
Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.
Повторение — мать учения и основа научного метода
Для начала попробуем воспроизвести результаты. Нужны исходники, а также Go и Rust (у меня версии 1.18 и 1.61, соответственно).
Читать
@rust_code - канал для изучения Rust
Хабр
Go против Rust — производительность вне конкуренции
В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты: Программа на Rust показала намного большую производительность при вычислении...
🛠 Сканер портов, написанный на GO
gPScan — это простой инструмент командной строки для проверки того, открыты или закрыты определенные порты.
Чтобы установить/собрать бинарный файл, убедитесь, что у вас установлен компилятор go.
git clone https://github.com/alexpfaller/gPScan
cd gPScan
sudo make build
https://uproger.com/skaner-portov-napisannyj-na-go/
Github: https://github.com/alexpfaller/gPScan
@Golang_google
gPScan — это простой инструмент командной строки для проверки того, открыты или закрыты определенные порты.
Чтобы установить/собрать бинарный файл, убедитесь, что у вас установлен компилятор go.
git clone https://github.com/alexpfaller/gPScan
cd gPScan
sudo make build
https://uproger.com/skaner-portov-napisannyj-na-go/
Github: https://github.com/alexpfaller/gPScan
@Golang_google