Pull to refresh
4
0
Send message

GPT с миллионным контекстом, провальная Llama 4 и открытие исходного кода AlexNet: главные события апреля в области ИИ

Level of difficultyEasy
Reading time23 min
Views3.6K

Пока большие модели соревнуются в увеличении контекстных окон, а их создатели — в маркетинговой находчивости, мы продолжаем следить за наиболее важными событиями в мире ИИ. В апреле OpenAI выкатила сразу несколько GPT — от флагманов до микроскопических версий. Anthropic наконец научила Claude гуглить и разослала его в университеты. Midjourney вернулась в строй, а Google устроила парад апдейтов — от визуального поиска до генерации кино.

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

Читать далее

Я сделал самую удобную либу для Go-конфига

Level of difficultyEasy
Reading time5 min
Views7.6K

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

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

Я решил, что хватит терпеть это, и вдохновился простотой стандартного пакета flag, где каждая опция — это буквально одна строка кода. Представьте: больше никакой беготни по структурам и файлам! В zerocfg вы объявляете опцию, дефолтное значение и документацию в одной строке — лаконично, понятно, надёжно.

Читать далее

Golang Top 15 ошибок

Level of difficultyEasy
Reading time9 min
Views6.7K

Golang Top 15 ошибок

Go – язык простой, но из-за кажущейся простоты многие разработчики совершают одни и те же ошибки, которые приводят к серьёзным последствиям в production. Ниже собраны 20 самых распространённых ошибок при разработке на Golang и рекомендации по их исправлению.

Читать далее

Еще раз про Di-контейнеры в golang

Level of difficultyEasy
Reading time7 min
Views4.1K

В предыдущей статье я попросил — «Расскажите, зачем вам DI‑контейнер в golang». Большое спасибо всем, кто оставил коммент и проголосовал. Общий вывод такой: используем контейнер, потому что с ним удобно писать тесты. Тесты — весомый аргумент, особенно в контексте того, что тест — это часть кода. Получается, мы все таки «тащим» Di‑контейнер в проект. Ну, хорошо....

Вероятно, это будет uber‑fx, ведь у него хорошая документация, самое простое и понятное API по сравнению с другими..., или нет — не «тащим»?

Мой ответ — нет, uber‑fx не «тащим», потому что можно еще проще и понятнее.

Делаем...

Open-source инструменты для визуализации данных

Level of difficultyEasy
Reading time5 min
Views10K

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

Читать далее

DeepSeek-R1 для чайников

Level of difficultyHard
Reading time9 min
Views61K

В последние месяцы всё чаще слышим про «reasoning-модели», способные не просто продолжать текст, а действительно шаг за шагом решать сложнейшие задачи цепочкой рассуждений (chain-of-thought). Впервые такой подход эффектно показали в OpenAI o1, но, к сожалению, подробности там остаются секретными. Недавно же команда DeepSeek наделала шуму с открытыми вариантами R1 и R1-Zero, созданными поверх их собственной большой MoE-модели DeepSeek-V3. В этом посте я не стану углубляться в вопрос «чья модель лучше — o1 или R1». Зато разберу, какие главные технические детали стоят за R1, почему Zero-версия выглядит особо захватывающе, и как именно авторам удалось обучить модель мыслить.

Читать далее

Как Джон Нэш изменил теорию игр и вдохновил экономику, биологию и технологии

Level of difficultyMedium
Reading time15 min
Views5.4K

Джон Нэш, гений, чьи идеи перевернули математику и экономику, стал символом новой эры анализа взаимодействий. От знаменитого равновесия Нэша до эволюционных стратегий в биологии — его концепции продолжают находить применение в бизнесе, политике, ИИ и даже соцсетях. Узнайте, как работы Нэша вдохновили развитие науки и технологий, и почему его наследие остаётся актуальным и сегодня.

Читать далее

dumbproxy — что нового?

Level of difficultyMedium
Reading time5 min
Views5.3K

dumbproxy уже упоминался на Хабре в одной из моих прошлых статей. Это HTTP(S) прокси-сервер, который работает через TLS, напрямую совместим с браузерами и браузерными расширениями, и имеет заметное количество дополнительных функций, расширяющих его границы применимости и облегчающих его использование.

Читать далее

ADR: Как сохранить архитектурные решения и избежать повторения ошибок

Level of difficultyMedium
Reading time5 min
Views3.9K

Вы когда-нибудь чувствовали себя потерянным в лабиринте чужого кода, задаваясь вопросами: «Почему здесь используется именно эта технология?» или «Зачем был выбран такой подход к архитектуре?»

В этой статье я рассказываю о том, как Architectural Decision Records (ADR) помогают командам фиксировать и сохранять важные архитектурные решения. Узнайте, как ADR превращает разрозненные знания в структурированный ресурс, доступный каждому члену команды, и почему это важно для эффективности и успеха проекта.

Вы познакомитесь с:
- Преимуществами использования ADR в долгосрочных и сложных проектах.
- Практическими шагами по внедрению ADR без лишней бюрократии.
- Реальным опытом и советами по преодолению возможных препятствий.

Бонусом: шаблон и пример документа в конце статьи.

Читать далее

Рекурсивная генерация подземелий на Godot 4.1

Level of difficultyMedium
Reading time8 min
Views6.6K

В данной статье рассмотрим способ процедурной генерации подземелий, с помощью рекурсивную функцию на Godot 4.1.

Познакомимся с один из возможных алгоритмов генерации подземелья, который достаточно быстро написать и легко применять в своём проекте. Добавим персонажа, который сможет бегать по нашему подземелью.

Читать далее

Пиррова победа Domain-Driven Design

Level of difficultyHard
Reading time7 min
Views13K

TL;DR: DDD неизбежно ведёт к избыточному (на порядки больше минимально необходимого) количеству саг в проекте, которые, в свою очередь, неизбежно ведут к нарушению целостности данных в БД.

DDD вполне успешно решает поставленную задачу: дать разработчикам инструменты, которые позволят им справиться (корректно реализовать и поддерживать) со сложной предметной областью. Но эта победа оказалась пирровой: инструменты, обеспечивающие корректность данных в памяти, оказались неспособны гарантировать корректность данных в БД. А что толку от изначально корректных данных в памяти, если со временем (после их сохранения в БД и последующего чтения) они перестают быть корректными? По сути, у DDD есть фатальный недостаток: DDD неизбежно приводит к нарушению целостности данных (инварианта бизнес-логики) в БД.

Читать далее

Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20

Level of difficultyEasy
Reading time4 min
Views19K

Привет, Хабр!

Сегодня рассмотрим лямбда-выражения в C++ и их эволюцию с момента появления в стандарте C++11 и до последних обновлений в C++20.

Лямбда-выражения в C++ — это анонимные функции, которые позволяют писать инлайн-выражения прямо там, где они используются. С их помощью можно легко определять функции обратного вызова, передавать их в функции высшего порядка или использовать для инициализации функциональных объектов.

Читать далее

Не пора ли валить с gnu libc на что‑то другое?

Level of difficultyMedium
Reading time3 min
Views21K

Пользуюсь открытым ПО значительное время. Сижу на Линуксе.

Но в последнее время настолько часто сталкиваюсь с различными багами, что думается иногда, а как оно вообще в принципе работает?

Последний эпизод коснулся совсем уж системного кода - стандартной библиотеки libc от GNU. Системнее может быть только ядро.

История такая. Собрал Хромиум (не быстро). Когда наконец сборка завершилась с попутным решением проблем, думал: ну вот наконец щас запущу, посмотрю как работают интересующие меня вещи. И тут произошёл облом. Хром падал почти в самом начале запуска с ошибкой доступа к памяти. Довольно быстро удалось выяснить, что падение происходит из-за ошибки обращения по нулевому указателю. И происходит оно в динамическом загрузчике, то бишь в libdl, при загрузке библиотеки через dlopen. libdl.so является одной из компонент пакета стандартной библиотеки и понятно, самой системной библиотекой в ОС. Подробности всей ситуации я описал в вопросе на stackoverflow.

Вкратце: при загрузке библиотеки libXcursor.so подтягиваются непонятно откуда взявшиеся зависимости, не имеющие никакого отношения к упомянутой библиотеке. И зависимости эти не инициализированы корректно. Откуда и происходит обращение по нулевому указателю. Впоследствии выяснилось, что проблема начинается с несовпадающих версий библиотек libQt5Core, в результате чего libdl делает полный отбой с попыткой отката всех изменений.

Но, видимо, этот откат реализован из рук вон плохо, поскольку после него начинают происходить весьма странные вещи. И загрузка неинициализированной зависимости с нулевыми указателями лишь одна из них. Я ещё сделал пробник в виде простого приложения, которое пытается воспроизвести ситуацию. И в этом пробнике также происходил сбой, но уже при инициализации (вызов init или конструктор в их терминологии) либы libpthread.so (тоже очень системная) - потерян адрес глобального на процесс хранилища либ.

Читать далее

GoFunc: новая конференция по Go

Reading time6 min
Views2.6K

Разработка на Go — особый мир. Этот язык не так популярен, как Python или JavaScript, но благодаря этому и дурацкой шумихи вокруг него меньше. Популярность приманивает «случайно проходивших мимо» и вызывает много глупых холиваров. А тем временем Go собирает людей, которые хорошо понимают, зачем они здесь, и хотят эффективно решать реальные задачи. 

В этом могут помочь конференции. Для многих других разработчиков мы уже давно их проводим (вроде HolyJS или С++ Russia). А в марте впервые проведём новую конференцию GoFunc. Главное, что нужно о ней знать:

Полностью в онлайне, можно подключиться откуда угодно. 
 Технические доклады без воды и маркетинга.
 Если вы сами готовы выступить, сейчас последние дни подачи заявок.

А подробнее — в полном тексте:

Читать далее

В поиске оптимального подхода к миграциям в Go

Level of difficultyEasy
Reading time9 min
Views27K

Привет! Меня зовут Нина, и я Golang разработчик.

Однажды, мы поняли, что в нашей компании очень много Go-сервисов, но каждая команда использует свой инструмент и подход. Поэтому мы решили систематизировать и унифицировать инструменты, используемые для создания и применения миграций.

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

Читать далее

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time15 min
Views571K
Всем привет!

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


Читать дальше →

Улучшенная маршрутизация HTTP-серверов в Go 1.22

Level of difficultyEasy
Reading time5 min
Views14K

В Go 1.22 ожидается появление интересного предложения - расширение возможностей по поиску шаблонов (pattern-matching) в мультиплексоре, используемом по умолчанию для обслуживания HTTP в пакете net/http.

Существующий мультиплексор (http.ServeMux) обеспечивает рудиментарное сопоставление путей, но не более того. Это привело к появлению целой индустрии сторонних библиотек для реализации более мощных возможностей. Я рассматривал эти возможности в серии статей "REST-серверы на Go", в частях 1 и 2.

Новый мультиплексор в версии 1.22 позволит значительно сократить отставание от пакетов сторонних разработчиков, обеспечив расширенное согласование. В этой небольшой заметке я кратко расскажу о новом мультиплексоре (mux). Я также вернусь к примеру из серии "REST-серверы на Go" и сравню, как новый stdlib mux справляется с gorilla/mux.

Читать далее

GitFlow процесс

Level of difficultyEasy
Reading time6 min
Views109K

В этой статье я хотел бы затронуть тему хранения кода в Git, контроля версий, релизов и в целом как этим всем управлять в команде.

Существует множество моделей хранения кода, но многие из них не имели место на существование заранее, так как решали довольно конкретные задачи, или не масштабировались, или были слишком неудобными, или вообще состояли из одной ветки. Судя из названия статьи, я хочу рассмотреть GitFlow модель в контексте того, как мы применяем ее на практике в нашем проекте.

Читать далее

Физики смогли увидеть «ненаблюдаемый» квантовый переход

Reading time15 min
Views12K

В 1935 году Альберт Эйнштейн и Эрвин Шрёдингер, два самых выдающихся физика того времени, вступили в спор о природе реальности.

Эйнштейн провёл математические расчёты и понял, что Вселенная должна быть локальной, то есть никакое событие в одном месте не может мгновенно повлиять на удалённое место. Но Шрёдингер провёл собственные расчёты и понял, что в основе квантовой механики лежит странная связь, которую он назвал «запутанностью» и которая, как оказалось, наносит удар по здравому эйнштейновскому предположению о локальности.

Когда две частицы становятся запутанными (что может произойти, например, при их столкновении), их судьбы оказываются связанными. Измерьте, например, ориентацию спина одной частицы, и вы можете узнать, что её запутанный партнёр (если и когда он будет измерен) указывает в противоположном направлении, независимо от его местонахождения. Таким образом, измерение в Пекине может мгновенно повлиять на эксперимент в Бруклине, что, очевидно, нарушает эйнштейновский закон о том, что никакое воздействие не может распространяться быстрее света.

Читать далее

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию от Mentorpiece

Level of difficultyEasy
Reading time12 min
Views111K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity