37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
Forwarded from Machinelearning
🖥 𝗧𝗵𝗲 𝘀𝘁𝗮𝘁𝗲 𝗼𝗳 𝗼𝗽𝗲𝗻 𝘀𝗼𝘂𝗿𝗰𝗲 𝗶𝗻 𝟮𝟬𝟮𝟯 by GitHub

GitHub только что опубликовал свой последний отчет о состоянии открых проектов. Авторы отметили тренд на использование разработчиками технологий искусственного интеллекта и тренд на создание приложений на основе искусственного интеллекта.

Они выделили основные тенденции:

🔹 Разработчики все чаще используют генеративный ИИ: Все больше разработчиков работают с моделями OpenAI ( 92% ) и с моделями других ИИ-компаний; в 2023 году проекты генеративного ИИ с открытым исходным кодом входят в десятку самых популярных проектов по количеству контрибьюторов.

🔹 Наблюдается тренд на работу с облачными приложениями:
Развертывание облаков становится стандартом; резко возросло количество использования разработчиками Docker контейнеров, IaC и других облачных нативных технологий.

🔹 В 2023 году на GitHub было создано 98 млн новых проектов (за 2022 год - 85.7 млн, за 2021 - 61 млн, за 2020 - 60 млн). Общее число проектов достигло отметки в 420 млн (+27%), а число публично доступных репозиториев - 284 млн (+22%).

🔸 За год добавлено около 65 тысяч новых проектов, связанных с машинным обучением, это на 248% больше, чем в прошлом году. Число AI-проектов за год выросло на 148%.

🔸 Аудитория GitHub за год выросла на 20.2 млн пользователей (+26%) и теперь достигает 114 млн (в прошлом году было 20.5 млн, позапрошлом - 73 млн, три года назад - 56 млн). На первом месте по числу разработчиков находится США, на втором - Индия, на третьем - Китай, на четвёртом Бразилия, на пятом - Великобритания, на шестом - РФ, на седьмом Германия. К 2027 году Индия обгонит США как крупнейшее сообщество разработчиков на GitHub

🔸Javascript остается самым популярным язком. Второе место сохраняет за собой Python.Популярность TypeScript выросла на 37 %. и он вытеснил на четвёртое место язык Java. 5, 6 и 7 места удержали за собой языки С#, C++ и PHP. На восьмое место поднялся язык С, который вытеснил на девятое место Shell. Десятое место занял Go.

🔸 𝗥𝘂𝘀𝘁 растет быстрее всех остальных языков в этом году (рост на 40 % по сравнению с предыдущим годом).

🔸 𝟰.𝟯 миллиона открытых и приватных репозиториев используют 𝗗𝗼𝗰𝗸𝗲𝗿𝗳𝗶𝗹𝗲𝘀. Это является следcтвием роста использования Terraform и других облачных нативных технологий, который мы наблюдали в течение последних нескольких лет.

🔸 Сингапур занял первое место по количеству новых разработчиков на душу населения.

📌 Полный отчет
📌 Видео

ai_machinelearning_big_data
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Dokémon

Dokémon - это удобный графический интерфейс для управления контейнерами Docker. Вы можете управлять несколькими серверами из одного экземпляра Dokemon.

Подробнее почитать можно на сайте https://dokemon.dev.

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🦫Реализация односвязного списка в Golang

Связные списки — это фундаментальные структуры данных информатики и программирования, часто применяемые для хранения и управления набором данных, элементы которого не хранятся в смежных участках памяти. Рассмотрим реализацию односвязного списка на Go.

Введение в односвязные списки

Связный список — это структура данных с последовательностью узлов, в каждом из которых содержатся данные и ссылка на следующий узел последовательности. Различают односвязные, двусвязные и кольцевые связные списки.

У односвязного списка:

⬅️ В каждом узле содержатся данные.
⬅️ В каждом узле имеется ссылка — указатель next  — на следующий узел последовательности.
⬅️ В последнем узле обычно имеется ссылка nil, которой указывается на конец списка.

Узел — основа связного списка
В сердце связного списка находится понятие узла.

УЗЕЛ — ЭТО СТРОИТЕЛЬНЫЙ БЛОК ИЛИ КОНТЕЙНЕР, В КОТОРОМ СОДЕРЖАТСЯ: 1) СОХРАНЯЕМЫЕ ДАННЫЕ — ЧТО БЫ ВЫ НИ ВЫБРАЛИ — И 2) УКАЗАТЕЛЬ НА ТО, ЧТО СЛЕДУЕТ ДАЛЬШЕ.

Этой простой структурой формируется основа для создания односвязных — с последовательно связанными узлами — списков и двусвязных, где у узлов имеются ссылки на следующий и предыдущий узлы:

type Node struct {
data int
next *Node
}

type LinkedList struct {
head *Node
}


Структура Node здесь фундаментальный строительный блок односвязного списка. В ней инкапсулируются основные компоненты каждого узла списка:

▪️Поле data  — это хранимые в узле данные или значение. Мы задали ему целочисленный int, хотя на практике это может быть любой тип данных, необходимый конкретному приложению.
▪️Поле next  — это ссылка или указатель на следующий узел связанного списка. Ею узлы связываются в последовательную цепочку. Когда узел в списке последний, полем next указывается на nil  — конец списка.

Фактически структурой Node определяется, как выглядит отдельный элемент связного списка — с данными, которые в нем содержатся, и ссылкой на следующий элемент.

Структура LinkedList  — это связный список в целом, ею управляется набор узлов:

▪️Поле head  — ссылка или указатель на первый узел связного списка. Это точка входа в список, через которую получается доступ ко всей последовательности узлов для манипулирования ими.
Вместе структуры Node и LinkedList  — основа односвязного списка на Go. Структурой Node определяется то, как структурируются отдельные элементы, структурой LinkedList  — как эти элементы организуются в целостную структуру данных.

Хотя связный список создается и без типа LinkedList, предпочитаю как первичную структуру данных именно его LinkedList  — такой контейнер для связного списка, где инкапсулируется весь список, и кроме того, способ контролировать поведение списка.

Вставка данных в связный список

📌Читать

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎊 Выпущен релиз Go 1.22 Release Candidate 1!

🏃‍♂️ Запустите его в dev! Запускайте в prod! Сообщайте об ошибках! https://go.dev/issue/new

📢 Анонс: https://groups.google.com/g/golang-announce/c/FIUY9kd7fc0

⬇️ Скачать: https://go.dev/dl/#go1.22rc1

#golang

@Golang_google
🖥 CspChan

Чистая реализация каналов Go на C89, включая блокирующие и неблокирующие селекты

https://github.com/rochus-keller/CspChan

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 KubeGPT

Новый инструмент оповещения об ошибках Kubernetes на основе Go с интеграцией GPT для Slack!

📌 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
⛄️❄️ Какой вы гофер в эти зимние праздники?

@Golang_google
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Dive

Полезный инструмент для изучения Docker-образа, содержимого слоев и поиска способов уменьшения размера Docker-образа
Docker/OC 🔥

https://github.com/wagoodman/dive

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Go 1.22: интерактивные заметки c кодом

Основано на заметках о выпуске Go 1.22 от команды Go (лицензия 3-Clause BSD), с добавлением множества интерактивных примеров. Эта запись в блоге синхронизируется с исходным документом по мере его обновления.

Выход Go 1.22 запланирован на февраль 2024 года, но вы уже можете опробовать многие из его возможностей, не выходя из браузера. Читайте дальше и смотрите!

https://antonz.org/go-1-22/

#golang #programming

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Golang за неделю

Почитать:
Toolchain в Go
Создание эмулятора игр MS-DOS в Kubernetes
Event Sourcing и CQRS в Go
Управление зависимостями в Go
— Полный отчет Github за 2023 о состоянии проектов.
9 вопросов для собеседования по SQL в Apple
Автоматизация работы программиста golang
Object-Relational Mapping (ORM) в Golang
Bundling Go Lambda Functions with the AWS CDK
Go concurrency simplified. Part 4: Post office as a data pipeline
How to Test SMTP Settings under 5 Minutes
Building a Go Package with Melange and a Docker Image with Apko
[Go Tour ] 3. Hot-reload
API completa em Golang - Parte 4
🔥 Big frontend update: the Gowebly CLI now supports Bootstrap and Bulma
Modularização de Software
Exploring Prometheus Code - part 1 (personal notes)
Exploring Go: A Powerhouse In Modern Software Development

Посмотреть:
🌐From Svelte to Go and HTMX
🌐 Mixtral 8x7B - новый ИИ. Нейросети, которые ДОМИНИРУЮТ на другими моделями ( 08:04)
🌐 How To Setup A Golang + Templ Project Structure ( 31:20)
🌐 Region Based Distributed Service Scheduling In Golang ( 02:13:14)
🌐 Я не мог читать чужой код #айти #программирование #программист ( 00:48)
🌐 Снес базу данных в Тинькофф #айти #программирование #программист ( 01:01)
🌐 Postgres Integration tests in Golang?! ~ Integration Testing in Go ( 06:33)
🌐 Dynamic Feature Flags with Go Routines!? ~ Feature Switches in Golang ( 08:09)
🌐 FULL STACK Golang + HTMX Building an Engineer Recruitment Platform Golang ~ LIVE! ( 01:42:35)

Хорошего дня!

@Golang_google
🦦 Otter

Самая быстрая библиотека golang in-memory cache, основанная на алгоритме S3-FIFO. Раюотает во много раз быстрее, чем Ristretto.

Внутри используется хеш таблица, которая имеет мьютекс на каждый бакет + seq lock для чтения + каждый бакет помещается в две кеш линии, что предотвращает false sharing и это намногооо быстрее map с мьютексом и sync.Map.
Также исрользуется несколько трюков для избегания частых локов политики вытеснения: при чтении используются wait-free буфферы, которые иногда могут терять данные, но так как главная задача кеша - хранить наиболее частые элементы, то потери незначительны + реализация mpsc очереди при записи, которая значительно превосходит каналы по перфомансу и принцип из статьи bp-wrapper, который коротко можно назвать "batch, batch, batch" aka кеш не обновляет политику мгновенно, а только после наполнения небольшого буффера.

go get -u github.com/maypok86/otter

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 SMTP-клиент Go CLI

Очень легкий CLI SMTP-клиент для удобной отправки писем из командной строки.

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Время Go. Разбор и объяснение Time и time.Location.

https://www.willem.dev/articles/time-location-explained/

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎨 gocol

Простая утилита для колоризации ваших тестов!

Github

@Golang_google
Каковы ваши ожидания по зарплате? Это частый вопрос от рекрутеров даже до технических интервью и давай разберемся как на него можно отвечать

Есть два наиболее эффективных варианта ответа:
- Указать диапазон, в котором ты рассматриваешь предложения: этот вариант рекомендуют рекрутеры, включая Киру Кузьменко (Если не знаком с ней, погугли. Делает оч крутой контент.), с которой я обсудил этот вопрос на YaTalks 2023
- Вернуться к вопросу позже: этот вариант чаще всего предпочитаю я, если разработчик, которого консультирую имеет грейд между Middle и Senior (уж очень хорошо работает этот метод, когда спорный грейд)

Почему вообще рекрутеры советуют огласить зарплатные ожидания в начале? Основная причина, о которой говорят открыто - это "быстрый фильтр для тебя и рекрутера", однако стоит помнить и о недостатках:
- Назвав мелкий диапазон можете в нем и остаться, хотя достойны большего
- Психологическое ограничение для себя (может показаться надуманным, но ЗП в 500-600 тысяч многим кажется чем-то недостижимым)
- и так далее.
P.S. здесь не обсуждаем, насколько часто работодатели прибегают к этим приемам, скорее даю пищу для размышления...

Ты подумал и и решил оглашать ЗП после всех технических интервью, чтобы собрать побольше информации о компании и вдумчиво огласить желаемую вилку. Но что сказать рекрутеру, чтобы не выдать свои ожидания в самом начале? Вот несколько вариантов:
- На данный момент мне не комфортно говорить о деньгах. В первую очередь хочу пройти все технические интервью и познакомиться с командой, а только потом буду готов огласить сумму
- Предлагаю вернуться к вопросу о деньгах после прохождения всех технических интервью

Из рисков тут пожалуй только сразу получить отказ, но на этот счет я никогда не переживаю, ведь это показатель, что компания не готова выстраивать диалог и может быть “проблемной” . P.S. Для тебя это может быть не так, поэтому на консультациях этот момент обсуждаю заранее

Если уж совсем достали вопросами по ЗП, то фраза "Вы ставите меня в неприятное положение этим вопросом. Я сказал, что готов вернуться к этому после всех технических секций, и мое решение не изменится!" поможет остудить собеседника (применять с осторожностью!)

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

На канале делюсь опытом ведения зарплатных переговоров, а так же историями про свои взлеты и падения в айтише. Залетай, будет интересно! Комментарии открыты и дискуссии приветствуются :)
👣 DynamoMQ

DynamoMQ - это библиотека очередей сообщений, использующая DynamoDB в качестве хранилища, написанная на Go.

$ go install github.com/vvatanabe/dynamomq/cmd/dynamomq@latest

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Антипаттерны архитектуры

Откройте для себя распространенные антишаблоны архитектуры, узнайте, как их избегать и преодолевать "подводные камни" проектирования!

Антипаттерн (англ. anti-pattern) — это распространённый подход к решению класса часто встречающихся проблем, являющийся неэффективным, рискованным или непродуктивным. В отличие от шаблона проектирования, рассмотрение антипаттерна включает в себя как неправильное решение проблемы с его признаками и последствиями, так и выход из ситуации.

В этом проекте собраны ценные сведения, практические советы и примеры из реальных проектов для обучения и помощи в создании лучших программных архитектур и улучшать существующие.

Проект
Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Golang за неделю

Почитать:
Миграции в YDB с помощью «goose»
Логирование в Golang
100 вопросов для подготовки к собесу Data Science
Дженерики в go
Проектирование fault-tolerant систем на Go
WebSocket в Go и причем тут горилла
Building golang project from scratch - part 3 - setting up the database using docker
Build a Golang Todo App Backend: A Step-by-Step Guide
Go versus Rust: Choosing the Best Language for You to Learn in 2024
Automate the task of creating requirements.txt with pyreqs!
OnLogs – open-source simplified web logs viewer for Docker containers
Evitando SQL Injection com Golang
5 Golang Features I Wished Were Different!
Десять самых ярких ИИ-работ от NVIDIA Research за 2023 год

Посмотреть:

🌐 100 вопросов с собеседований Data Science — часть 1 ( 36:48)
🌐FULL STACK Golang + HTMX Building an Engineer Recruitment Platform Golang ~ LIVE!
🌐 Building FFAAS In Go. Fast Function As A Service. ( 01:48:16)
🌐 Coding Instant WASM Rollbacks In Go ( 01:32:12)
🌐 Не мог найти первую работу программистом #айти #программирование #программист ( 00:55)
🌐 Дубай для программиста | Сколько стоит жить в Дубае в 2023 ( 05:38)

Хорошего дня!

@Golang_google