Pull to refresh
-4
Эдуард Зиганшин @e-zigread⁠-⁠only

Разработка электроники

Send message

Чем заменить сахар? Большой гайд по альтернативам и сахарозаменителям

Level of difficultyEasy
Reading time15 min
Views7.6K

Сироп агавы, эритрит, стевия, мальтит и ещё десяток сахарозаменителей — что из этого действительно работает? Что выбрать, если у вас диабет или вы хотите отказаться от сахара? И правда ли шоколадка «Sugar-free» действительно без сахара и углеводов?

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

Читать далее

Глубина кроличьей норы: бинарная граница и ABI C++

Reading time26 min
Views8.6K

Вопрос ABI (Application Binary Interface), бинарной границы и бинарной совместимости в C++, раскрыт на просторах интернета не так хорошо как хотелось бы. Особенно сложно в его изучении приходится новичкам, потому что эта тема связана со множеством деталей нарочно скрытой от глаз программиста имплементации языка.

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

Подробнее о статье:

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

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

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

В рамках всей статьи будут рассмотрены темы: системный стек, системные регистры, динамическая память, детали механизма виртуальных функций, стандарт С++ и реальная имплементация, детали механизма исключений, copy elision при линковке библиотек, шаблоны, POD-типы и ODR violation.

Break -in- ABI

Ссылки и указатели в C++

Level of difficultyEasy
Reading time6 min
Views8.5K

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

Сегодня разбираем &&* неувядающую классику C++ — ссылки & и указатели *. Казалось бы, два оператора, делов-то, но стгоит нырнуть под крышку — и выясняется: тут и разное время жизни, и несменяемость адреса, и прочие вещички. Разберемся в статье подробнее.

Читать далее

Оптимизируем C++ шаблоны: от инлайнинга до модулей

Level of difficultyMedium
Reading time18 min
Views3.8K

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

Читать далее

Как изобретатель печки строил рай для рабочих и что из этого вышло

Reading time7 min
Views6.9K

В XIX веке один француз задался вопросом: «Почему нормальное жильё, горячая вода и достойные условия — это роскошь, а не базовый уровень?»

Его звали Жан-Батист Андре Годен. Он начал как сын слесаря, построил свою фабрику и решил, что бизнес может работать иначе. Что рабочие имеют право не только на зарплату, но и на долю в общем деле.

Так появился Фамилистер — проект, который объединил производство, жильё и принципы социальной справедливости. Он просуществовал больше 100 лет и стал доказательством того, что альтернатива классической модели есть.

Вот как это было.

Читать далее

Dart Native Assets: Полное руководство от новичка до профи

Level of difficultyHard
Reading time14 min
Views859

Представьте, что у вас есть Dart-программа, и вы хотите использовать готовую библиотеку, написанную на C, C++, Rust или другом языке. Раньше это было сложно - нужно было вручную компилировать библиотеку, следить за тем, чтобы она попала в нужное место, и писать много дополнительного кода.

Native Assets - это система, которая автоматизирует весь этот процесс. Она позволяет вашему Dart-пакету "включать в себя" нативный код и автоматически его компилировать и подключать.

Читать далее

Какие LLM модели для чего лучше подходят сейчас?

Level of difficultyEasy
Reading time2 min
Views4.7K

для бизнеса, разработки и другой работы

По моему практическому рабочему опыту, вот так:

Claude 4
* Sonnet => лучше всех пишет код, идеально держит контекст. Отлично пишет тексты и шутит. Подходит для создания ИИ-бота.
* Opus => неоправданно дорогой, всего на 20% лучше Sonnet.
Контекст — до 200 тыс. токенов.

Gemini-2.5
* Pro => вторая по силе написания кода. Хорошо подходит для архитектуры приложений, может быть тебе “другом”. Слабо пишет тексты.
* Flash => всё то же, но на 40% хуже, зато одна из самых быстрых моделей. Подходит для ИИ-звонаря.
Контекст — до 1 млн токенов.

GPT-4

* 4.5 => очень хорошо пишет тексты, креативен, но шутит хуже Claude. Очень человечный и эмпатичный.
* 4.1 => отлично структурирует посты, очень логичен, неплохо пишет код. Идеально держит промпт — хорошо подходит для ИИ-ботов.
* 4.1 mini / nano => если нужна оптимизация цены общения для ИИ-бота или простые задачи (например, определение темы диалога, саммари и др.). Работают заметно быстрее обычного 4.1.
* 4o => хорош тем, что видит/создаёт картинки.
Контекст — до 1 млн токенов.

GPT-o
* o3 => подходит для сложных логических задач, планирования архитектуры приложений (хотя мне Gemini нравится больше), отлично для аналитики.
* o4-mini => если нужно быстро что-то посчитать математически.
* o4-mini-high => подходит для написания кода, но уступает Gemini и Claude. Зато лучше чем gpt-4o работает с картинками.
Контекст — до 200 тыс. токенов.

Deepseek
* R1 => устарел, но по-прежнему самая дешёвая “размышляющая” модель. Хорош для аналитики, например звонков. Можно развернуть на своём сервере.
* V3 => на уровне 4.1 mini, только дешевле. Также можно использовать для ИИ-ботов, разворачивать у себя на сервере/облаке.
Контекст — до 64 тыс. токенов.

Читать далее

Основные команды GIT

Level of difficultyEasy
Reading time23 min
Views7.6K

Научись использовать Git как профессионал. Эта статья поможет тебе освоить самые популярные команды Git на реальных примерах. Узнай, как добавлять изменения, создавать коммиты, переключаться между ветками, объединять изменения и синхронизировать проект с удалённым репозиторием.

ОГОГО, что там далее!? ...

Организация собственной библиотеки на сервере с веб-интерфейсом

Level of difficultyEasy
Reading time6 min
Views4.9K

Привет! Наверное, у каждого рано или поздно возникает вопрос: как упорядочить хаос с купленными (да, мы же против пиратства?) книгами в форматах PDF, DJVU и других, так чтобы:

- получить к ним доступ как с мобильного устройства, так и с любимого ПК или Mac;

- сохранять прогресс чтения между устройствами;

- не терять книги в куче папок.

Хочу поделиться решением, которое помогло мне организовать библиотеку.

Читать далее

Топ российских мессенджеров для работы в команде. Чем заменить WhatsApp и Telegram

Level of difficultyEasy
Reading time12 min
Views12K

Вероятность блокировки Telegram и WhatsApp только становится только выше. 10 июня Госдума приняла закон о создании российского национального мессенджера. Мы собрали топ корпоративных мессенджеров, которые могут стать достойной заменой WhatsApp и Telegram. 

Читать далее

Что не так? Три парадокса теории вероятностей

Level of difficultyEasy
Reading time8 min
Views37K

Парадокс двух детей Вы встретили на прогулке соседей с сыном. Известно, что у них двое детей. Какова вероятность, что второй — тоже мальчик?

Казалось бы, детская задачка, где нужно просто “вспомнить формулу”, но всё не так однозначно. Если задать этот вопрос прохожему, он, скорее всего, скажет ½. Преподаватель математики, возможно, ответит ⅓. Кто из них прав?

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

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

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

В этой статье — три таких истории. В первой один и тот же факт даёт разные вероятности, если по-разному устроено наблюдение. Во второй один и тот же объект может быть “случайным” множеством способов. А в третьей невозможно придумать, как сделать задачу математически строгой.

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

А пока — вернёмся к соседям с мальчиком. Разберемся, почему эта задачка не так проста, как кажется на первый взгляд.

Читать далее

Упрощение прототипирования и верификации RTL с помощью Python

Level of difficultyEasy
Reading time2 min
Views1.3K

Всем привет!

Хочу поделиться своим опытом использования Python на этапах прототипирования RTL-модулей и последующей верификации. Как RTL-инженер, я часто создаю модели на Python для быстрой проверки логики и алгоритмов будущего RTL. Это подход уменьшает вероятность последующих правок в логике RTL в случае если алгоритм не подходит. Однако при переходе к тестированию на SystemVerilog всегда возникала проблема с переиспользованием написанной Python модели устройства: нужно было писать обвязку на C и использовать DPI-C интерфейсы, чтобы интегрировать Python-код модели в верификационную среду. Это занимало время и было неудобно.

Недавно я открыл для себя библиотеку PyStim (Bind Python & SystemVerilog), которая кардинально упростила процесс. PyStim позволяет напрямую вызывать Python-методы и работать с Python-объектами из среды SystemVerilog без необходимости писать обвязку на C или использовать DPI-C. Это значительно снизило трудозатраты и ускорило адаптацию уже готового Python-кода в тестбенче.

Читать далее

Я 25 лет настраивал фотоаппарат, выстраивал композицию, ставил свет, а потом пришла нейросеть

Level of difficultyEasy
Reading time7 min
Views34K

Эту историю для моего блога рассказал профессиональный фотограф Олег Цербаев

В начале 2000-х появилась цифровая фотография, мир раскололся на два лагеря: «Это не искусство!» против «Это будущее!». За три года в рекламной индустрии почти не осталось фотографов старше 40 лет. Крупные журналы начали работать с молодыми ребятами, фотоиндустрия в итоге выросла в разы. То, что происходит сейчас с нейросетями — намного масштабнее. Это не просто новый инструмент в нашем арсенале, а целая новая реальность.

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

Читать далее

Потрясающие фотографии Млечного Пути от лучших астрофотографов

Level of difficultyEasy
Reading time5 min
Views7.4K

Ежегодное цветение люпина в Новой Зеландии впечатляет: поля разноцветных цветов простираются через бассейн Маккензи. Этот регион в самом сердце Южного острова славится своим тёмным небом, что делает эту сцену ещё более сюрреалистичной в ночное время. Над цветами видна полоса внешнего Млечного Пути, а также созвездия Ориона, Близнецов и Плеяд. К ним присоединяются яркие планеты Юпитер и Марс, а на горизонте видно зелёную аврору.

Читать далее

Как выбрать очки, чтобы не ослепнуть

Level of difficultyEasy
Reading time23 min
Views4K

Каждый третий айтишник к 30 годам получает «цифровую близорукость» — и это не баг, а фича нашей профессии. Но если глаза устают быстрее, чем компилируется код, а очки из ближайшей оптики вызывают головную боль — это не норма.

Мы пригласили Марию Трубилину — офтальмолога, к.м.н. эксперта в области оптической коррекции зрения, чтобы объяснить:

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

- Почему прогрессивные очковые линзы — оптимальное решение для комфортного зрения с определенного возраста.

- Как выбрать оправу, чтобы не было стыдно на Zoom-митингах.

- Почему «капли для глаз» не работают для профилактики падения зрения.

Если вам кажется, что зрение вдаль становится все хуже и хуже , а вблизи четкость сохраняется или зрение вдаль по прежнему не вызывает вопросов, а при работе вблизи привычный размер шрифта расплывается и его приходится увеличивать или отодвигать от глаз все дальше и дальше — не обманывайтесь! Не оттягивайте визит к офтальмологу! Мозг мастерски подстраивается и адаптируется. Но, возможно, что без оптической коррекции через какое-то время вы можете столкнуться с сильной усталостью глаз, мешающей работе и снижающей производительность, c двоением, косоглазием, головной болью или другими неприятными сюрпризами. Не ждите, пока это станет реальностью. Правильные очки — это не только четкое зрение, но и комфортная жизнь без головной и глазной боли. 

Читать далее

Доступ к приватным методам класса в С++

Level of difficultyMedium
Reading time8 min
Views5.6K

В C++ инкапсуляция — один из ключевых принципов ООП, и приватные (private) члены класса защищены от прямого доступа извне. Однако иногда возникают ситуации, когда такой доступ необходим (например, при тестировании, сериализации или отладке). Обычно для этого используют friend-функции или геттеры/сеттеры, но есть и более экзотический способ — использование шаблонов и указателей на члены класса.

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

Читать далее

Атрибуты Хорошего Loader-a

Level of difficultyEasy
Reading time7 min
Views3.1K

В программировании микроконтроллеров периодически приходится писать клиентские PC программы для загрузки *.hex файлов в микроконтроллер через загрузчик.

Обычно в названии этих утилит присутствует слово loader.

В этом тексте я попробовал порассуждать на тему того, каким же атрибутами должна обладать эта самая утилита FW_Loader.

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 11

Level of difficultyMedium
Reading time25 min
Views3.7K


Привет, друзья!


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


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


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


Интересно? Тогда прошу под кат.

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

Как работает Node.js

Level of difficultyMedium
Reading time22 min
Views12K



После прочтения этой статьи вы хорошо поймете следующее:


  • как работает цикл событий (event loop) в Node.js, включая все его фазы
  • как Node.js выполняет JavaScript в одном потоке (single thread)
  • как Node.js использует библиотеку libuv и внутренние API для обработки асинхронных операций
  • почему знание работы цикла событий так важно для написания эффективного серверного кода

Понять, как JS работает "под капотом" в браузере (см. эту короткую 15-минутную статью), проще, чем понять устройство Node.js. В браузере нет сложных фаз и многослойных механизмов, как в Node.js.


Но почему в Node.js все устроено сложнее? Зачем столько фаз, которые так непросто понять?

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

Устанавливаем Qt на Windows без регистрации и vpn (почти). Часть 2. В мире зеркал

Level of difficultyEasy
Reading time4 min
Views3.5K

Последние время установка фреймворка Qt через официальный qtinstaler у пользователей из России несколько осложнена. Однако, существует ряд альтернативных вариантов получения необходимых библиотек (методы отсортированы от сложного и долгого к простому и быстрому):

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

Information

Rating
Does not participate
Location
Мытищи, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

System Software Engineer, Hardware Engineer
Senior
From 225,000 ₽
C++
Qt
Verilog HDL
VHDL
C
Git
Linux