AcraServer работает как прокси-сервер шифрования/дешифрования с базами данных SQL.
▪ Github
▪Документация
▪Примеры
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Go 1.20.6 and 1.19.11 are released!
🔐 Безопасность: Includes security fixes for CVE-2023-29406 and Go issue https://go.dev/issue/60374
📢 Анонс: https://groups.google.com/g/golang-announce/c/2q13H6LEEx0
📦 Загрузить: https://go.dev/dl/#go1.20.6
@Golang_google
🔐 Безопасность: Includes security fixes for CVE-2023-29406 and Go issue https://go.dev/issue/60374
📢 Анонс: https://groups.google.com/g/golang-announce/c/2q13H6LEEx0
📦 Загрузить: https://go.dev/dl/#go1.20.6
@Golang_google
Этот проект поможет вам преодолеть границу Python-Go: расширить возможности Python с помощью Go и наоборот.
▪Github
▪Как использовать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 bleve
Удобный инструмент анализа текста для векторизации и поиска слов на основе векторов.
▪ Github
@Golang_google
Удобный инструмент анализа текста для векторизации и поиска слов на основе векторов.
$ go install github.com/blevesearch/bleve/v2/cmd/bleve@latest
▪ Github
@Golang_google
Модульное тестирование — неотъемлемая часть процесса разработки ПО, которой обеспечивается корректное функционирование отдельных компонентов или модулей кода.
Пирамида тестирования
Тестирование ПО осмысливается в виде метафоры — пирамиды тестирования.
• Вот основные ее компоненты:
1. Модульные тесты.
2. Интеграционные тесты.
3. Сквозные тесты.
Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Iris веб-фреймворке на Go, который предоставялет набор инструментов для быстрой и легкой разработки веб-приложений. Репозиторий содержит множество полезных примеров с кодом.
package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
app.Use(iris.Compression)
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "World")
})
app.Listen(":8080")
}
На картинке привден пример использования апи hCAPTCHA с Iris.
hCAPTCHA - это сервис, защищающий сайты от ботов и спама. Использование hCAPTCHA позволяет обеспечить доступ к сайту только реальным пользователям и предотвратить автоматические атаки.
▪Github
▪hCAPTCHA пример
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
VPN-клиент в контейнере Docker для нескольких провайдеров VPN, написанный на Golang и использующий OpenVPN или Wireguard, DNS через TLS, с несколькими встроенными прокси-серверами.
▪ Поддерживает: AirVPN, Cyberghost, ExpressVPN, FastestVPN, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Perfect Privacy, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, SlickVPN, Surfshark, TorGuard, VPNSecure, VPNUnlimited, Vyprvpn, WeVPN, Windscribe
▪Поддерживает OpenVPN для всех перечисленных провайдеров
▪Поддерживает Wireguard
▪Позволяет блокировать DNS вредоносных/рекламных/ имен хостов и IP-адресов с оперативным обновлением каждые 24 часа
и многое другое.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Сбер выложил в открытый доступ нейросетевую модель генерации текста для русского языка ruGPT-3.5 13B.
▪ Также банк выложил новую версию модели mGPT 13B — самую большую из семейства многоязычных моделей банка, способную генерировать тексты на 61 языке, включая языки стран СНГ и малых народов России.
▪ ruGPT-3.5 содержит 13 миллиардов параметров и умеет писать и продолжать тексты на русском и английском языках, а также на языках программирования.
Руководитель блока «Технологии» Сбербанка Андрей Белевцев подчеркнул:
«Сбер как ведущая технологическая компания выступает за открытость технологий и обмен опытом с профессиональным сообществом, ведь любые разработки и исследования имеют ограниченный потенциал в замкнутой среде. Поэтому, мы уверены, что публикация обученных моделей подстегнёт работу российских исследователей и разработчиков, нуждающихся в сверхмощных языковых моделях, создавать на их базе собственные технологические продукты и решения».
@Golang_google
▪ Также банк выложил новую версию модели mGPT 13B — самую большую из семейства многоязычных моделей банка, способную генерировать тексты на 61 языке, включая языки стран СНГ и малых народов России.
▪ ruGPT-3.5 содержит 13 миллиардов параметров и умеет писать и продолжать тексты на русском и английском языках, а также на языках программирования.
Руководитель блока «Технологии» Сбербанка Андрей Белевцев подчеркнул:
«Сбер как ведущая технологическая компания выступает за открытость технологий и обмен опытом с профессиональным сообществом, ведь любые разработки и исследования имеют ограниченный потенциал в замкнутой среде. Поэтому, мы уверены, что публикация обученных моделей подстегнёт работу российских исследователей и разработчиков, нуждающихся в сверхмощных языковых моделях, создавать на их базе собственные технологические продукты и решения».
@Golang_google
Интересная статья о повышении скорости использования модулей Go с помощью прокси.
▪ Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔐 Безопасность цепочки поставок: серия статей от Google для Go-разработчика
По мере усложнения проектов корпоративным разработчикам приходится справляться с огромной волной уязвимостей, распространяющихся по деревьям зависимостей.
Разработчикам открытого ПО необходимы эффективные способы проверки кода, зависимостей и защиты своих проектов. Рост числа атак в сочетании с усложняющимися цепочками поставок означает, что проблемы безопасности цепочек поставок требуют решения на уровне экосистем.
С помощью Golang разработчики меняют ландшафт безопасности цепочки поставок, исправляя основу — сам язык. От внедрения OSV до обширной информации о пакетах, курируемой информации об уязвимостях.
Это серия статей о том, как разработчики и предприятия могут защитить свои цепочки поставок программного обеспечения к с помощью Go.
▪ Vulnerability management
▪ Compromised dependencies
▪ Shifting left
@Golang_google
По мере усложнения проектов корпоративным разработчикам приходится справляться с огромной волной уязвимостей, распространяющихся по деревьям зависимостей.
Разработчикам открытого ПО необходимы эффективные способы проверки кода, зависимостей и защиты своих проектов. Рост числа атак в сочетании с усложняющимися цепочками поставок означает, что проблемы безопасности цепочек поставок требуют решения на уровне экосистем.
С помощью Golang разработчики меняют ландшафт безопасности цепочки поставок, исправляя основу — сам язык. От внедрения OSV до обширной информации о пакетах, курируемой информации об уязвимостях.
Это серия статей о том, как разработчики и предприятия могут защитить свои цепочки поставок программного обеспечения к с помощью Go.
▪ Vulnerability management
▪ Compromised dependencies
▪ Shifting left
@Golang_google
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
$ go install github.com/jpillora/chisel@latest
Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Распространенные "подводные камни" при проведении тестов на производительность в GO
Программистам Go повезло: в стандартную библиотеку - в пакет testing - встроены отличные средства тестирования и бенчмаркинга. Однако бенчмаркинг - это сложно. Это одна из тех вещей, которым опытные разработчики учатся со временем.
В этой заметке перечислены некоторые распространенные "подводные камни" бенчмаркинга, с которыми сталкиваются программисты на Go. Несмотря на то, что эти проблемы рассматриваются на примере Go, они встречаются в любом языке программирования или среде, поэтому извлеченные из них уроки могут быть полезны всем.
▪Читать статью
@Golang_google
Программистам Go повезло: в стандартную библиотеку - в пакет testing - встроены отличные средства тестирования и бенчмаркинга. Однако бенчмаркинг - это сложно. Это одна из тех вещей, которым опытные разработчики учатся со временем.
В этой заметке перечислены некоторые распространенные "подводные камни" бенчмаркинга, с которыми сталкиваются программисты на Go. Несмотря на то, что эти проблемы рассматриваются на примере Go, они встречаются в любом языке программирования или среде, поэтому извлеченные из них уроки могут быть полезны всем.
▪Читать статью
@Golang_google
Golang
Распространенные "подводные камни" при проведении тестов на производительность в GO Программистам Go повезло: в стандартную библиотеку - в пакет testing - встроены отличные средства тестирования и бенчмаркинга. Однако бенчмаркинг - это сложно. Это одна из…
Self hosted mtproto messenger.
Mtproto cервер с открытым исходным кодом, написанный на Go, который совместим с клиентом Telegram.
▪Github
▪Teamgram
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Автономный FTP-сервер на Go с коннекторами SFTP, S3, Dropbox и Google Drive.
go install github.com/fclairamb/ftpserver@main
ftpserver &
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучший способ получать свежие обновлении и следить за трендами в разработке.
Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Машинное обучение: t.me/ai_machinelearning_big_data
Data Science: t.me/data_analysis_ml
Devops: t.me/devOPSitsec
Go: t.me/golang_interview
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Java: t.me/javatg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
🇬🇧Английский: t.me/english_forprogrammers
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Полный курс Golang разработчика 2023 года. Часть1.
1. О курсе - https://www.youtube.com/watch?v=Nv0vmR5OqRg&t=34s
2. Установка GO - https://www.youtube.com/watch?v=gi6gAhzUhUg
3. Пакеты в Golang https://www.youtube.com/watch?v=RNVhf-zBpdQ
4. Типы данных в Go - https://www.youtube.com/watch?v=_ilP500FEP8&t=16s
5. Строки и руны - https://www.youtube.com/watch?v=wUQB74nNxos&t=27s
6. Инструменты командной строки - https://www.youtube.com/watch?v=LzqVFx6yOAs&t=8s
7. Введение в переменные - https://www.youtube.com/watch?v=zQa85CrYQJ4&t=190s
8. Переменные на практике - https://www.youtube.com/watch?v=P9Lk0EiO2pU&t=1s
9. Упражнения с переменными -
https://www.youtube.com/watch?v=huj6RHQC34I&t=1s
10. Работа с функциями - https://www.youtube.com/watch?v=euudha7zAiU&t=7s
11. Функции на практике - https://www.youtube.com/watch?v=YdoMOD6H_nk
12. Управление потоками с операторами if else - https://www.youtube.com/watch?v=Mq6WQy_eq_k&t=1s
13. Оператор Switch - https://www.youtube.com/watch?v=4REsob985vc
14. Циклы - https://www.youtube.com/watch?v=gpt8IGahbXo
15. Структуры - https://www.youtube.com/watch?v=VrOflBI4f_E&t=311s
16. Массивы - https://www.youtube.com/watch?v=QrVHFGtCAnE
17. Срезы - https://www.youtube.com/watch?v=XA1WFY1kv2o&t=671s
18. Карты - https://www.youtube.com/watch?v=XA1WFY1kv2o&list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66&index=18
19.Указатели - https://www.youtube.com/watch?v=LYFOJhP28Ro
20. Методы - https://www.youtube.com/watch?v=hmWwp04_XC0
21. IOTA - https://www.youtube.com/watch?v=La67BqQdoys
22.FMT - https://www.youtube.com/watch?v=-Ie4-R23VTk
23.INIT - https://www.youtube.com/watch?v=riIi-FpSOuc
24 Тесты- https://www.youtube.com/watch?v=AprUuq_rm0I
25 Интерфейсы - https://www.youtube.com/watch?v=Amun1J6KE3Q&t=70s
26. Обработка ошибок - https://www.youtube.com/watch?v=VTmHbN0Y4aU
Полный плейлист - https://www.youtube.com/playlist?list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66
📌Курс на stepik
@Golang_google
1. О курсе - https://www.youtube.com/watch?v=Nv0vmR5OqRg&t=34s
2. Установка GO - https://www.youtube.com/watch?v=gi6gAhzUhUg
3. Пакеты в Golang https://www.youtube.com/watch?v=RNVhf-zBpdQ
4. Типы данных в Go - https://www.youtube.com/watch?v=_ilP500FEP8&t=16s
5. Строки и руны - https://www.youtube.com/watch?v=wUQB74nNxos&t=27s
6. Инструменты командной строки - https://www.youtube.com/watch?v=LzqVFx6yOAs&t=8s
7. Введение в переменные - https://www.youtube.com/watch?v=zQa85CrYQJ4&t=190s
8. Переменные на практике - https://www.youtube.com/watch?v=P9Lk0EiO2pU&t=1s
9. Упражнения с переменными -
https://www.youtube.com/watch?v=huj6RHQC34I&t=1s
10. Работа с функциями - https://www.youtube.com/watch?v=euudha7zAiU&t=7s
11. Функции на практике - https://www.youtube.com/watch?v=YdoMOD6H_nk
12. Управление потоками с операторами if else - https://www.youtube.com/watch?v=Mq6WQy_eq_k&t=1s
13. Оператор Switch - https://www.youtube.com/watch?v=4REsob985vc
14. Циклы - https://www.youtube.com/watch?v=gpt8IGahbXo
15. Структуры - https://www.youtube.com/watch?v=VrOflBI4f_E&t=311s
16. Массивы - https://www.youtube.com/watch?v=QrVHFGtCAnE
17. Срезы - https://www.youtube.com/watch?v=XA1WFY1kv2o&t=671s
18. Карты - https://www.youtube.com/watch?v=XA1WFY1kv2o&list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66&index=18
19.Указатели - https://www.youtube.com/watch?v=LYFOJhP28Ro
20. Методы - https://www.youtube.com/watch?v=hmWwp04_XC0
21. IOTA - https://www.youtube.com/watch?v=La67BqQdoys
22.FMT - https://www.youtube.com/watch?v=-Ie4-R23VTk
23.INIT - https://www.youtube.com/watch?v=riIi-FpSOuc
24 Тесты- https://www.youtube.com/watch?v=AprUuq_rm0I
25 Интерфейсы - https://www.youtube.com/watch?v=Amun1J6KE3Q&t=70s
26. Обработка ошибок - https://www.youtube.com/watch?v=VTmHbN0Y4aU
Полный плейлист - https://www.youtube.com/playlist?list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66
📌Курс на stepik
@Golang_google
🦫Сетевое программирование в Go
Напишем Go-программу для создания сервера, способного обрабатывать множество соединений и следить за ними.
Go-сервер похож на офисного секретаря, который принимает звонки (сетевые соединения), ведет учет звонков (логирование данных) и может общаться с несколькими людьми одновременно (параллельная обработка нескольких соединений).
Отправная точка: импорт пакетов
Начнем с импорта необходимых пакетов:
Эти пакеты предоставляют инструменты для работы с сетями, логирования, управления контекстами и использования семафоров. “Семафоры” — это образное выражение, обозначающее контроль над количеством параллельных процессов.
Пакет Semaphore
В Go пакет semaphore используется для ограничения количества определенных операций, выполняемых одновременно.
Представьте его в виде светофора. Он управляет потоком машин (комплексом программных задач), чтобы предотвратить пробки (чрезмерное использование ресурсов).
Что касается кода, то здесь semaphore ограничивает количество соединений, которые сервер обрабатывает одновременно.
Создание главной функции
Главная функция — это то место, где начинается магия. Именно она настраивает логирование и создает сетевого слушателя. Этот слушатель ожидает входящих соединений, подобно секретарю, ожидающему телефонного звонка.
🟠 Продолжение
@Golang_google
Напишем Go-программу для создания сервера, способного обрабатывать множество соединений и следить за ними.
Go-сервер похож на офисного секретаря, который принимает звонки (сетевые соединения), ведет учет звонков (логирование данных) и может общаться с несколькими людьми одновременно (параллельная обработка нескольких соединений).
Отправная точка: импорт пакетов
Начнем с импорта необходимых пакетов:
import (
"context"
"log"
"net"
"os"
"time"
"golang.org/x/sync/semaphore"
)
Эти пакеты предоставляют инструменты для работы с сетями, логирования, управления контекстами и использования семафоров. “Семафоры” — это образное выражение, обозначающее контроль над количеством параллельных процессов.
Пакет Semaphore
В Go пакет semaphore используется для ограничения количества определенных операций, выполняемых одновременно.
Представьте его в виде светофора. Он управляет потоком машин (комплексом программных задач), чтобы предотвратить пробки (чрезмерное использование ресурсов).
Что касается кода, то здесь semaphore ограничивает количество соединений, которые сервер обрабатывает одновременно.
Создание главной функции
Главная функция — это то место, где начинается магия. Именно она настраивает логирование и создает сетевого слушателя. Этот слушатель ожидает входящих соединений, подобно секретарю, ожидающему телефонного звонка.
func main() {
// Создаем семафор с максимальным весом maxConcurrentConnections.
sem = semaphore.NewWeighted(maxConcurrentConnections)
// Создаем файл лога.
logFile, err := os.OpenFile("network.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("Error opening log file: %v", err)
}
defer logFile.Close()
// Устанавливаем вывод логера по умолчанию в файл лога.
log.SetOutput(logFile)
// Прослушиваем входящие соединения.
l, err := net.Listen("tcp", ":2000")
if err != nil {
log.Fatalf("Error listening: %v", err)
}
// Закрываем слушателя при закрытии приложения.
defer func() {
if err = l.Close(); err != nil {
log.Printf("Error closing listener: %v", err)
}
}()
log.Println("Listening on localhost:2000")
// ...
}
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM