Forwarded from Machinelearning
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
The GitHub Blog
Octoverse: The state of open source and rise of AI in 2023
In this year’s Octoverse report, we study how open source activity around AI, the cloud, and Git are changing the developer experience.
Dokémon - это удобный графический интерфейс для управления контейнерами
Docker
. Вы можете управлять несколькими серверами из одного экземпляра Dokemon.Подробнее почитать можно на сайте https://dokemon.dev.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Связные списки — это фундаментальные структуры данных информатики и программирования, часто применяемые для хранения и управления набором данных, элементы которого не хранятся в смежных участках памяти. Рассмотрим реализацию односвязного списка на Go.
Введение в односвязные списки
Связный список — это структура данных с последовательностью узлов, в каждом из которых содержатся данные и ссылка на следующий узел последовательности. Различают односвязные, двусвязные и кольцевые связные списки.
У односвязного списка:
Узел — основа связного списка
В сердце связного списка находится понятие узла.
УЗЕЛ — ЭТО СТРОИТЕЛЬНЫЙ БЛОК ИЛИ КОНТЕЙНЕР, В КОТОРОМ СОДЕРЖАТСЯ: 1) СОХРАНЯЕМЫЕ ДАННЫЕ — ЧТО БЫ ВЫ НИ ВЫБРАЛИ — И 2) УКАЗАТЕЛЬ НА ТО, ЧТО СЛЕДУЕТ ДАЛЬШЕ.
Этой простой структурой формируется основа для создания односвязных — с последовательно связанными узлами — списков и двусвязных, где у узлов имеются ссылки на следующий и предыдущий узлы:
type Node struct {
data int
next *Node
}
type LinkedList struct {
head *Node
}
Структура Node здесь фундаментальный строительный блок односвязного списка. В ней инкапсулируются основные компоненты каждого узла списка:
Фактически структурой Node определяется, как выглядит отдельный элемент связного списка — с данными, которые в нем содержатся, и ссылкой на следующий элемент.
Структура LinkedList — это связный список в целом, ею управляется набор узлов:
Вместе структуры 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
🏃♂️ Запустите его в 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
Чистая реализация каналов Go на C89, включая блокирующие и неблокирующие селекты
https://github.com/rochus-keller/CspChan
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый инструмент оповещения об ошибках Kubernetes на основе Go с интеграцией GPT для Slack!
📌 Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой вы гофер в эти зимние праздники ?
Anonymous Poll
5%
Гофер в кофейне
56%
Домашний Гофер-кодер
8%
Офисный гофер
27%
Никакого кодинга в праздники
4%
Другое (пишите в комментариях)
This media is not supported in your browser
VIEW IN TELEGRAM
Полезный инструмент для изучения Docker-образа, содержимого слоев и поиска способов уменьшения размера Docker-образа
Docker/OC 🔥
https://github.com/wagoodman/dive
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Основано на заметках о выпуске
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
Почитать:
— 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
Самая быстрая библиотека 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
Очень легкий CLI SMTP-клиент для удобной отправки писем из командной строки.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Каковы ваши ожидания по зарплате? Это частый вопрос от рекрутеров даже до технических интервью и давай разберемся как на него можно отвечать
Есть два наиболее эффективных варианта ответа:
- Указать диапазон, в котором ты рассматриваешь предложения: этот вариант рекомендуют рекрутеры, включая Киру Кузьменко (Если не знаком с ней, погугли. Делает оч крутой контент.), с которой я обсудил этот вопрос на YaTalks 2023
- Вернуться к вопросу позже: этот вариант чаще всего предпочитаю я, если разработчик, которого консультирую имеет грейд между Middle и Senior (уж очень хорошо работает этот метод, когда спорный грейд)
Почему вообще рекрутеры советуют огласить зарплатные ожидания в начале? Основная причина, о которой говорят открыто - это "быстрый фильтр для тебя и рекрутера", однако стоит помнить и о недостатках:
- Назвав мелкий диапазон можете в нем и остаться, хотя достойны большего
- Психологическое ограничение для себя (может показаться надуманным, но ЗП в 500-600 тысяч многим кажется чем-то недостижимым)
- и так далее.
P.S. здесь не обсуждаем, насколько часто работодатели прибегают к этим приемам, скорее даю пищу для размышления...
Ты подумал и и решил оглашать ЗП после всех технических интервью, чтобы собрать побольше информации о компании и вдумчиво огласить желаемую вилку. Но что сказать рекрутеру, чтобы не выдать свои ожидания в самом начале? Вот несколько вариантов:
- На данный момент мне не комфортно говорить о деньгах. В первую очередь хочу пройти все технические интервью и познакомиться с командой, а только потом буду готов огласить сумму
- Предлагаю вернуться к вопросу о деньгах после прохождения всех технических интервью
Из рисков тут пожалуй только сразу получить отказ, но на этот счет я никогда не переживаю, ведь это показатель, что компания не готова выстраивать диалог и может быть “проблемной” . P.S. Для тебя это может быть не так, поэтому на консультациях этот момент обсуждаю заранее
Если уж совсем достали вопросами по ЗП, то фраза "Вы ставите меня в неприятное положение этим вопросом. Я сказал, что готов вернуться к этому после всех технических секций, и мое решение не изменится!" поможет остудить собеседника (применять с осторожностью!)
Каждый вариант заслуживает отдельного поста, и каждая стратегия может быть эффективной, но это уже совсем другая история...
На канале делюсь опытом ведения зарплатных переговоров, а так же историями про свои взлеты и падения в айтише. Залетай, будет интересно! Комментарии открыты и дискуссии приветствуются :)
Есть два наиболее эффективных варианта ответа:
- Указать диапазон, в котором ты рассматриваешь предложения: этот вариант рекомендуют рекрутеры, включая Киру Кузьменко (Если не знаком с ней, погугли. Делает оч крутой контент.), с которой я обсудил этот вопрос на YaTalks 2023
- Вернуться к вопросу позже: этот вариант чаще всего предпочитаю я, если разработчик, которого консультирую имеет грейд между Middle и Senior (уж очень хорошо работает этот метод, когда спорный грейд)
Почему вообще рекрутеры советуют огласить зарплатные ожидания в начале? Основная причина, о которой говорят открыто - это "быстрый фильтр для тебя и рекрутера", однако стоит помнить и о недостатках:
- Назвав мелкий диапазон можете в нем и остаться, хотя достойны большего
- Психологическое ограничение для себя (может показаться надуманным, но ЗП в 500-600 тысяч многим кажется чем-то недостижимым)
- и так далее.
P.S. здесь не обсуждаем, насколько часто работодатели прибегают к этим приемам, скорее даю пищу для размышления...
Ты подумал и и решил оглашать ЗП после всех технических интервью, чтобы собрать побольше информации о компании и вдумчиво огласить желаемую вилку. Но что сказать рекрутеру, чтобы не выдать свои ожидания в самом начале? Вот несколько вариантов:
- На данный момент мне не комфортно говорить о деньгах. В первую очередь хочу пройти все технические интервью и познакомиться с командой, а только потом буду готов огласить сумму
- Предлагаю вернуться к вопросу о деньгах после прохождения всех технических интервью
Из рисков тут пожалуй только сразу получить отказ, но на этот счет я никогда не переживаю, ведь это показатель, что компания не готова выстраивать диалог и может быть “проблемной” . P.S. Для тебя это может быть не так, поэтому на консультациях этот момент обсуждаю заранее
Если уж совсем достали вопросами по ЗП, то фраза "Вы ставите меня в неприятное положение этим вопросом. Я сказал, что готов вернуться к этому после всех технических секций, и мое решение не изменится!" поможет остудить собеседника (применять с осторожностью!)
Каждый вариант заслуживает отдельного поста, и каждая стратегия может быть эффективной, но это уже совсем другая история...
На канале делюсь опытом ведения зарплатных переговоров, а так же историями про свои взлеты и падения в айтише. Залетай, будет интересно! Комментарии открыты и дискуссии приветствуются :)
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
Почитать:
— Миграции в 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