📚 "Painful intelligence: What AI can tell us about human suffering
Эта бесплатная книга — путеводитель по миру машинного обучения!
Основное, что в ней рассматривается:
• Базовые концепции: Алгоритмы, математические основы и принципы построения моделей.
• Глубокое обучение: Нейронные сети, методы оптимизации и регуляризация для повышения качества моделей.
• Практические кейсы: Реальные примеры применения ML в различных отраслях, от анализа данных до прогнозирования.
• Современные методики: Настройка гиперпараметров, интерпретация результатов и стратегии улучшения производительности.
Для специалиста по машинному обучению эта книга станет полезным ресурсом, помогая углубить знания, найти новые подходы и повысить эффективность проектов.
📚 Книга
#freebook #book #ai #ml #machinelearning #opensource
Эта бесплатная книга — путеводитель по миру машинного обучения!
Основное, что в ней рассматривается:
• Базовые концепции: Алгоритмы, математические основы и принципы построения моделей.
• Глубокое обучение: Нейронные сети, методы оптимизации и регуляризация для повышения качества моделей.
• Практические кейсы: Реальные примеры применения ML в различных отраслях, от анализа данных до прогнозирования.
• Современные методики: Настройка гиперпараметров, интерпретация результатов и стратегии улучшения производительности.
Для специалиста по машинному обучению эта книга станет полезным ресурсом, помогая углубить знания, найти новые подходы и повысить эффективность проектов.
📚 Книга
#freebook #book #ai #ml #machinelearning #opensource
❤4👍2🤬2
Forwarded from Golang
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
#курс #machinelearning
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🥰1
Forwarded from Golang
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2👍1🤔1
@golang_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤2🥰2
Автор подробно объясняет, почему традиционное последовательное выполнение может приводить к узким местам в работе приложения и как горутины помогают решать эту проблему, обеспечивая эффективное распределение задач и улучшение отзывчивости программ.
Основные моменты статьи:
- Последовательное vs конкурентное выполнение:
Рассматривается, как традиционные программы выполняют задачи по очереди, что может создавать задержки, особенно при выполнении долгих операций, и почему для современных приложений важно использовать конкурентное выполнение.
- Конкурентность и параллелизм:
Объясняется разница между конкурентностью (одновременная работа нескольких задач, даже на одном ядре) и параллелизмом (реальное одновременное выполнение на разных ядрах).
- Горутины в Go:
Показано, как с помощью ключевого слова go можно запускать функции в виде легковесных потоков (горутин), что позволяет выполнять задачи параллельно без накладных расходов, свойственных обычным потокам ОС.
- Синхронизация горутин:
Рассмотрены способы синхронизации, в том числе использование sync.WaitGroup для ожидания завершения всех горутин, что является более надежным методом по сравнению с time.Sleep.
- Коммуникация через каналы:
Описаны принципы работы с каналами (как с буферизированными, так и безбуферными), которые позволяют безопасно передавать данные между горутинами и синхронизировать их работу.
- Предотвращение гонок данных:
Обсуждаются подходы к избежанию гонок, когда несколько горутин одновременно обращаются к общим данным, с использованием каналов и мьютексов (sync.Mutex).
- Паттерны конкурентности:
Приводятся популярные шаблоны проектирования, такие как Fan-Out/Fan-In и Worker Pools, которые помогают масштабировать выполнение задач в реальных приложениях.
- Практический пример:
В статье приведён пример реализации простого конкурентного веб-сервера, где горутины используются для обработки запросов (например, вычисления факториала), что демонстрирует практическую пользу конкурентного подхода.
- Лучшие практики:
Завершается статья рекомендациями по эффективному использованию горутин в производственном коде: управление количеством запущенных горутин, правильное использование синхронизации и применение инструментов для выявления гонок.
▪ Читать
@golang_books
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Forwarded from Golang
This media is not supported in your browser
VIEW IN TELEGRAM
Самое главное:
▪ В 10 раз (!) быстрее компиляция, в 2 раза меньше памяти просит;
▪ На видео как раз тест нового компилятора: 0.63 секунды против 3.35 на старом;
▪ Проект пилят с августа 2024, готово уже 80%;
Полный переход займёт годы 😢;
▪ В версии на Go не работает «манкипатчинг», что сделает API TypeScript более безопасным;
⚫ Планируют интеграцию с LLM (надеюсь, локальными);
⚫ Полный переход на TypeScript-Go не отменяет поддержку старой версии;
⚫ Кодовая база TypeScript в Go расходится с оригиналом, так что некоторые фичи (вроде JSDoc и JSX) могут полететь.
Проект в разработке с августа 2024, готово уже 80%.
Полное интервью с апдейтами тут глянуть на YouTube
▪Github: https://github.com/microsoft/typescript-go
▪Microsoft blog: https://devblogs.microsoft.com/typescript/typescript-native-port/
#dotnet #golang #programming #typescript #webdev
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3🥰3🤔2👏1
Forwarded from Golang
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁2❤1
📌 Основная cуть:
• Рассматриваются лучшие практики и новые возможности для написания и проведения бенчмарков в Go 1.24.
• Автор делится опытом, демонстрирует примеры, объясняет, как правильно измерять производительность и избегать распространённых ошибок.
📌 Польза для разработчиков:
• Помогает оптимизировать приложения на Go, выявляя узкие места в производительности.
• Раскрывает улучшения и особенности новой версии, что важно для точного и эффективного тестирования кода.
• Предоставляет практические рекомендации, которые можно сразу применять в реальных проектах.
Эта статья будет особенно полезна тем, кто стремится повысить производительность своих приложений и глубже разобраться в нюансах бенчмаркинга на Go.
📌 Читать
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2
▪ Атомарность операций: гарантирует, что каждая транзакция выполняется полностью или не выполняется вовсе, что существенно снижает риск ошибок и потери данных.
▪ Простота интеграции: интуитивно понятный API позволяет легко внедрять AtomixDB в проекты разного масштаба, от небольших приложений до распределённых систем.
▪ Масштабируемость: инструмент спроектирован с учётом современных требований к производительности, что делает его подходящим для высоконагруженных систем.
▪ Открытый исходный код: вы можете свободно изучать, модифицировать и расширять функциональность AtomixDB под специфические нужды вашего проекта.
Если вы ищете надёжное, эффективное и гибкое решение для управления данными с гарантией целостности, AtomixDB — отличный выбор для реализации современных приложений.
📌 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥3😁1
«Go: Structs & Interfaces» на GetStream.io рассказывает о ключевых аспектах использования структур (structs) и интерфейсов (interfaces) в языке Go.
Основные моменты статьи:
Структуры (structs):
Рассматриваются как базовые составные типы данных, позволяющие группировать связанные поля вместе. Показаны примеры создания и использования структур для хранения информации.
Интерфейсы (interfaces):
Объясняется, как интерфейсы позволяют задавать набор методов для типов, обеспечивая абстракцию и полиморфизм. Особое внимание уделено тому, что реализация интерфейса происходит неявно — если тип содержит необходимые методы, он автоматически удовлетворяет интерфейсу.
Связь и применение:
Статья демонстрирует, как структуры и интерфейсы помогают создавать гибкую, модульную архитектуру кода, а также обсуждает лучшие практики, позволяющие эффективно использовать их для достижения чистоты и расширяемости программ.
В итоге, материал служит отличным руководством для понимания основ и тонкостей работы с типами в Go, делая акцент на важности композиции и абстракции в разработке.
📌 Читать
@golang_books
Основные моменты статьи:
Структуры (structs):
Рассматриваются как базовые составные типы данных, позволяющие группировать связанные поля вместе. Показаны примеры создания и использования структур для хранения информации.
Интерфейсы (interfaces):
Объясняется, как интерфейсы позволяют задавать набор методов для типов, обеспечивая абстракцию и полиморфизм. Особое внимание уделено тому, что реализация интерфейса происходит неявно — если тип содержит необходимые методы, он автоматически удовлетворяет интерфейсу.
Связь и применение:
Статья демонстрирует, как структуры и интерфейсы помогают создавать гибкую, модульную архитектуру кода, а также обсуждает лучшие практики, позволяющие эффективно использовать их для достижения чистоты и расширяемости программ.
В итоге, материал служит отличным руководством для понимания основ и тонкостей работы с типами в Go, делая акцент на важности композиции и абстракции в разработке.
📌 Читать
@golang_books
👍8❤3🔥2
«Docker Cypress in 2025: How I've Perfected My E2E Testing Setup» гайд, в котором рассказывает о том, как автор усовершенствовал свою систему end-to-end тестирования, используя интеграцию Cypress с Docker.
Основное внимание уделяется тому, как создать стабильное, масштабируемое и воспроизводимое окружение для автоматизированного тестирования.
▪ Интеграция с Docker:
Автор объясняет, как использование контейнеров помогает стандартизировать тестовое окружение и устранять различия между локальной разработкой и CI/CD пайплайнами.
▪ Оптимизация процесса тестирования:
Подробно описываются шаги по настройке, конфигурации и оптимизации тестовой среды с Cypress в Docker, что позволяет ускорить и улучшить качество тестирования.
▪ Преимущества и вызовы:
Статья выделяет ключевые преимущества использования Docker в тестировании – от стабильности окружения до легкости масштабирования, а также обсуждаются возникающие проблемы и способы их решения.
▪ Современные практики CI/CD:
Рассматривается, как такая настройка вписывается в современные процессы непрерывной интеграции и доставки, делая тестирование более надежным и предсказуемым.
В итоге, статья будет полезна разработчикам и тестировщикам, которые хотят повысить эффективность своих e2e тестов и использовать передовые инструменты для создания более надежного тестового процесса.
📌 Читать
@golang_books
Основное внимание уделяется тому, как создать стабильное, масштабируемое и воспроизводимое окружение для автоматизированного тестирования.
▪ Интеграция с Docker:
Автор объясняет, как использование контейнеров помогает стандартизировать тестовое окружение и устранять различия между локальной разработкой и CI/CD пайплайнами.
▪ Оптимизация процесса тестирования:
Подробно описываются шаги по настройке, конфигурации и оптимизации тестовой среды с Cypress в Docker, что позволяет ускорить и улучшить качество тестирования.
▪ Преимущества и вызовы:
Статья выделяет ключевые преимущества использования Docker в тестировании – от стабильности окружения до легкости масштабирования, а также обсуждаются возникающие проблемы и способы их решения.
▪ Современные практики CI/CD:
Рассматривается, как такая настройка вписывается в современные процессы непрерывной интеграции и доставки, делая тестирование более надежным и предсказуемым.
В итоге, статья будет полезна разработчикам и тестировщикам, которые хотят повысить эффективность своих e2e тестов и использовать передовые инструменты для создания более надежного тестового процесса.
📌 Читать
@golang_books
👍4❤3🥰2
Истоки и проблемы: В Go 1.18 появились типовые параметры и ограничения, которые требовали введения core types для унификации операций над обобщёнными типами. Однако это добавило сложности как в спецификацию языка, так и в понимание работы некоторых операций (например, срезов и индексирования) даже для негeneric-кода.
Изменения в Go 1.25: В предстоящем релизе Go 1.25 концепция core types была полностью удалена из спецификации. Вместо этого теперь используются более явные и понятные правила, что упрощает изучение языка и повышает ясность спецификации без изменения поведения существующего кода.
Таким образом, пост подчёркивает, что отказ от core types делает спецификацию Go проще и понятнее, одновременно открывая возможности для будущих улучшений языка.
🔗 Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5❤4
Поскольку стандартный компилятор Go не поддерживает PS2 и требует наличия операционной системы, автор использует TinyGo — компилятор для встраиваемых систем, который преобразует Go-код в LLVM IR, а затем в машинный код для целевой платформы.
Основные трудности связаны с архитектурой процессора PS2, известного как Emotion Engine, основанного на MIPS R5900.
Этот процессор поддерживает инструкции MIPS-III и MIPS-IV с некоторыми особенностями и отсутствием определённых функций. Автор использует SDK ps2dev, предоставляющий библиотеки для графики, ввода-вывода и других операций, однако сталкивается с необходимостью обеспечения совместимости с ABI N32 и другими специфическими требованиями.
Ricardo
Проект находится в стадии разработки, и планируется дальнейшая работа над поддержкой специфичных для PS2 функций, обработкой чисел с плавающей запятой и улучшением совместимости с LLVM.
📌 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5❤4
📚 «Линейная алгебра»
Вторая лучшая книга по линейной алгебре с ~1000 практических задач.
Идеально для ИИ и машинного обучения.
Книга полностью бесплатна .
Прекрасно подходит для новичков.
📌 Книга
Вторая лучшая книга по линейной алгебре с ~1000 практических задач.
Идеально для ИИ и машинного обучения.
Книга полностью бесплатна .
Прекрасно подходит для новичков.
📌 Книга
❤4👍4🔥2
В ней рассматриваются ключевые техники, сгруппированные в четыре основные категории:
1. Управление памятью и эффективность:
- Pooling объектов: Повторное использование объектов для снижения нагрузки на сборщик мусора и уменьшения накладных расходов на выделение памяти.
- Предварительное выделение памяти: Заранее задавать емкость срезов и карт для предотвращения дорогостоящих операций изменения размера.
- Выравнивание полей структур: Оптимизация расположения полей в структурах для минимизации заполнения и улучшения локальности данных.
- Избегание упаковки интерфейсов: Предотвращение скрытых выделений памяти путем отказа от ненужных преобразований типов к интерфейсам.
- Техники нулевого копирования: Минимизация копирования данных с использованием срезов и буферов.
- Эффективность памяти и сборщик мусора Go: Снижение нагрузки на сборщик мусора путем минимизации использования кучи и повторного использования памяти.
- Стековые выделения и анализ ускользания: Использование анализа ускользания для размещения значений в стеке, когда это возможно.
2. Конкурентность и синхронизация:
Пулы рабочих горутин: Контроль уровня конкурентности с помощью пулов фиксированного размера для ограничения использования ресурсов.
Атомарные операции и примитивы синхронизации: Использование атомарных операций или легковесных блокировок для управления общим состоянием.
Ленивая инициализация: Отсрочка выполнения затратных операций до момента, когда они действительно необходимы.
Совместное использование неизменяемых данных: Безопасное совместное использование данных между горутинами без блокировок путем обеспечения их неизменяемости.
goperf.dev
Эффективное управление контекстом: Использование пакета context для передачи тайм-аутов и сигналов отмены между горутинами.
3. Оптимизация ввода/вывода и пропускная способность:
Эффективное буферизирование: Использование буферизованных читателей/писателей для минимизации вызовов ввода/вывода.
Группировка операций: Объединение нескольких мелких операций для уменьшения количества раунд-трипов и повышения пропускной способности.
4. Оптимизация на уровне компилятора и настройка:
Использование флагов оптимизации компилятора: Применение флагов сборки, таких как
-gcflags и -ldflags,
для настройки производительности.Стековые выделения и анализ ускользания: Анализ того, какие значения переходят в кучу, чтобы помочь компилятору оптимизировать размещение памяти.
goperf.dev
Эти техники помогают разработчикам Go создавать более эффективные и производительные приложения, снижая задержки, улучшая использование памяти и повышая эффективность конкурентных операций.
🔗 Читать
@golang_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5❤4