habrahabr
Недопонятый язык Lua

Lua — один из моих любимых языков программирования. Я использовал его для создания CMS на своём старом учебном сайте, для создания крутых IoT-устройств, для разработки мини-игр и экспериментов с децентрализацией сети. Однако экспертом по этому языку я нисколько себя не считаю. Разве что просто разбирающимся в нём пользователем. Я имею в виду, что работал с ним в различных контекстах и на протяжении многих лет, но не вникал глубоко в его реализацию или экосистему. Так что меня немного расстра…

  • вторник, 1 апреля 2025 г. в 00:00:12
golang
Слабые указатели в Go: в консерватории не всё в порядке

Меня зовут Дмитрий Солдатенко, я разработчик в Ви.Tech, IT-дочке ВсеИнструменты.ру. И теперь, когда формальное представление завершено, хочу поделиться своим, местами не очень формальным, батхертом по поводу слабых указателей.Предполагается, что вы пишете на Go и хотя бы на уровне чтения релиз-ноутов знакомы с концепцией слабых указателей (weak pointers).На первый взгляд, это полезный механизм для некоторых сценариев. Но у меня есть одна идеологическая и несколько фактических претензий к их реа…

  • вторник, 1 апреля 2025 г. в 00:00:10
golang
Разбираем паттерны конкурентности

БазаПараллельность - выполнение задач в один момент времени на разных логических ядрах.Конкурентность - выполнение задач последовательно, но со сменой контекста на другую задачу в ожидание завершения иной задачи. У пользователя может возникнуть иллюзия многозадачности даже в однопроцессорной системе, поскольку смена контекста происходит быстро (микросекунды).Процессы:Раздельная памятьРаздельные ресурсыРаздельные регистрыПотоки:Общая памятьОбщие ресурсыРаздельные стэк и регистрыГорутины:Общая па…

  • вторник, 1 апреля 2025 г. в 00:00:08
golang
Параллельное программирование на Go

На практике, создаваемое нами ПО выполняется на множестве процессоров. К сожалению, многие наши допущения, справедливые для одного процессора, в случае нескольких процессоров становятся ложными. Например, каким будет состояние памяти, если два процессора изменяют один блок памяти? В общем случае на этот вопрос ответить сложно. Может случиться так, что внесённое одним процессом изменение перепишет внесённое другим. Справедливо может быть и обратное: может «победить» изменение другого процессора…

  • вторник, 1 апреля 2025 г. в 00:00:07
javascript
CI/CD для чайников — разберитесь, и начните наконец-то автоматизировать рутину в разработке. Часть1…

Всем привет. Наверняка каждый, кто так или иначе связан с IT сферой, слышал модную аббревиатуру CI/CD. Везде мы слышим про необходимость ее использования, преимущества автоматизации процессов и т.д.В вакансиях все чаще требуется опыт работы с одним из инструментов в этой инфраструктуре – Jenkins, Travis, AWS, Gitlab CI/CD.⚠️Я предлагаю вам посмотреть на этот процесс, глазами простого разработчика. Чем ему может помочь автоматизация. Что в конечно итоге скрывается под этой аббревиатурой, и как у…

  • вторник, 1 апреля 2025 г. в 00:00:06
javascript
Балансировка нагрузки LLM через Nginx

Исходный код, разобранный в статье, опубликован в этом репозиторииВ интернете существует множество примеров, которые позволяют подключить ChatGPT 3.5 без инструментов к телеграм боту. Однако, когда речь заходит о большом количестве пользователей, не существуют примеров распределения нагрузки по нескольким процессам: все туториалы в интернете запускают монолит с одной репликойhttps://github.com/telegraf/telegraf/issues/423Так же, на практике работы с NodeJS, я сталкивался с проблемой, когда мног…

  • вторник, 1 апреля 2025 г. в 00:00:05
github
supabase-community / postgres-language-server

A Language Server for Postgres Postgres Language Server A collection of language tools and a Language Server Protocol (LSP) implementation for Postgres, focusing on developer experience and reliable SQL tooling. Docs: pgtools.dev Install: instructions CLI releases VSCode Neovim Overview LSP Demo CLI Demo This project provides a toolchain for Postgres development, built on Postgres' own parser libpg_query to ensure 100% syntax compatibility. It is built on a Server-Client archi…

  • вторник, 1 апреля 2025 г. в 00:00:03
github
yetone / avante.nvim

Use your Neovim like using Cursor AI IDE! avante.nvim avante.nvim is a Neovim plugin designed to emulate the behaviour of the Cursor AI IDE. It provides users with AI-driven code suggestions and the ability to apply these recommendations directly to their source files with minimal effort. 查看中文版 Note 🥰 This project is undergoing rapid iterations, and many exciting features will be added successively. Stay tuned! …

  • вторник, 1 апреля 2025 г. в 00:00:02
habrahabr
Измерительный мост Уитстона — электронные весы

Наверняка вы видели на принципиальных схемах характерную ромбовидную структуру. Схема электрического моста содержит в себе элегантную красоту. А содержащийся в ней технический принцип достоин отдельной статьи. Пару лет назад, когда я разобрался и понял суть, случилось мини-озарение, волшебством которого хочу поделиться с вами. Посмотрите на схему, левая и правая части электрически эквивалентны. Измерительный мост, или мост Уитстона, состоит из двух параллельно включённых резистивных делителей…

  • понедельник, 31 марта 2025 г. в 00:00:12