Search
Write a publication
Pull to refresh
4
0
Michael Elin @vanelm

Consulting Network Engineer

Send message

Пишем свой загрузчик операционной системы Linux

Level of difficultyMedium
Reading time23 min
Views25K


Меня давно интересовал вопрос, насколько сложно написать собственный загрузчик операционной системы. Я не говорю о простой программе, выводящей «Hello, World!», а о полноценном загрузчике, который передаёт управление от встроенного программного обеспечения компьютера ядру операционной системы. Современные загрузчики представляют собой сложные программы, способные загружать множество операционных систем различными способами, учитывая массу нюансов, связанных с программным и аппаратным обеспечением. Читая их исходный код, легко утонуть в деталях и потерять понимание сути и реализации.


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

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

Nix: насколько хороша альтернатива Dockerfile?

Level of difficultyMedium
Reading time12 min
Views9.7K

Современная бэкенд‑разработка не обходится без средств контейнеризации. Самому простому приложению, скорее всего, будет нужна хотя бы база данных или пучок дополнительных зависимостей из веб‑серверов, балансировщиков, сборщиков логов и метрик. Для быстрого их развёртывания и настройки используются кастомные или готовые образы и контейнеры. И когда разговор заходит о контейнерах, первое, что приходит на ум, — это Docker и Dockerfile.

Для многих это стандарт, отклонения от которого вызывают недоумение и вопросы. Но даже у всего хорошего есть альтернативы. Одна из них — Nix. Насколько она сопоставима по удобству и скорости с Docker?

Меня зовут Борис Табачников, я разработчик отдела RnD в СберТехе. Кратко расскажу, что такое Nix в целом, зачем вам его использовать и подробно сравню скорость работы Nix и Docker.

Статья будет полезна DevOps‑инженерам и разработчикам, интересующимся контейнеризацией. И особенно — тем, кто ищет альтернативы для Docker и кого заинтересовал Nix, но при этом сферы его использования и применимость для сборки образов недостаточно понятна.

Читать далее

Четыре кружки пива в день – минус 10 лет для мозга

Level of difficultyEasy
Reading time5 min
Views51K

Дисклеймер: идея о «безопасных дозах алкоголя» смешна, но еще смешнее и ужаснее выглядит пропаганда «ждановщины», которая лишена конструктива в своей основе. Наиболее адекватное объяснение общего вреда алкоголя изложено в этой лекции профессора нейробиологии Стэнфордского университета доктора Эндрю Губермана. В частности, если 1-2 бокала вина или 2-4 кружки пива в день, или еженедельный загул по пятницам стали для человека нормой – он априори вредит своему мозгу и организму в целом. Новое исследование показывает наглядные изменения в мозге при ежедневном «умеренном потреблении».

Читать далее

Разработка антенны на ПП от чайника

Level of difficultyEasy
Reading time9 min
Views8.3K

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

Наверное, самое темное и спекулятивное место на ПП — антенна, поскольку она выходит из удобных границ квазистационарного поля, позволяющего сводить элементы топологии к длинным линиям, индуктивностям и емкостям, и функционирует на уровне первозданного электромагнитного поля со всеми вытекающими сложностями. Задача, которая была поставлена перед мной, банальна и типична: для удешевления производства необходимо заменить покупную керамическую антенну, работающую в 3 диапазонах (703–960 Мгц, 1710–2200 Мгц, 2500–2690 МГц, стандартные диапазоны для сотовой связи) на антенну на ПП. Место под антенну на ПП подрасширили по сравнению с керамикой, и дело осталось за малым — спроектировать антенну.

Мой опыт по рисованию антенн на ПП был типовым, как и задачи: BLE, WIFI и субгигагерцовые транссиверы, берем мануал от уважаемой «конторы», я брал каталог антенн от TI, копируем и подрезаем/удлиняем, чтобы резонанс s11 был на желанной частоте. Но постепенно у меня накопились подозрения, что не все так просто. Поскольку приходилось перебирать разные антенны — и на ПП, где есть место, и различные керамики, где места нет, то у меня накопился некий опыт, который не всегда сходился с простой догмой: лучше s11 — лучше антенна. Результатом этого наблюдения стало расширение процедуры настройки антенн:

Читать далее

Зачем на печатных платах используют медные заливки?

Level of difficultyMedium
Reading time5 min
Views25K
В начале 1980-х типичная печатная плата 8-битного домашнего компьютера выглядела примерно так:


Фрагмент основной платы Amstrad CPC 464.

К началу 2010-х та же технология имела следующий вид компоновки:


Снимок Arduino Uno R3 из рекламных материалов.

Кроме повышенной миниатюризации самым поразительным изменением стало использование медных заливок (copper pour), то есть сгенерированных компьютером зон, занимающих пустое пространство между дорожками печатной платы.

Почему мы начали их создавать?
Читать дальше →

Как конфигурировать Git

Reading time13 min
Views15K

Какие настройки git config сейчас следует устанавливать по умолчанию? Ниже рассмотрены избранные настройки, менять которые не стесняются даже разработчики самого Git.

Несколько недель назад я написал о настройке Git help.autocorrect и поведал странную историю о том, как её значение стали задавать в децисекундах.  

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

В этом посте я разберу некоторые (пожалуй, малопонятные) настройки Git, которые сам активировал во всех моих проектах. Я подробно расскажу о них, поясню, как они действуют, и почему их, пожалуй, стоит выставить по умолчанию.

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

Читать далее

Git для новичков (часть 1)

Reading time5 min
Views735K

Git - это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок - полезно для дизайнеров.

С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.

Читать далее

Как в домашних условиях собрать телевизор из Симпсонов на базе Raspberry Pi

Level of difficultyEasy
Reading time8 min
Views16K

Помните тот небольшой телевизор из заставки "Симпсонов"? Такой же можно собрать самостоятельно, как это сделал один фанат мультсериала. Внутри прибора установлен одноплатный компьютер Raspberry Pi, который случайным образом воспроизводит эпизоды мультсериала, имитируя работу настоящего телевизора из 90-х. Не понадобится ни эфир, ни доступ в интернет: все серии хранятся в памяти устройства. Просто включаете и смотрите. Все, что для это понадобится, – около 14 часов вашего времени и кое-какие компоненты.

Читать далее

Оптимизация JOIN в PostgreSQL

Level of difficultyEasy
Reading time7 min
Views15K

Хотите ускорить работу сложных SQL-запросов в PostgreSQL? 🚀В этой статье мы разберем, как правильно использовать JOIN, какие методы соединения выбирает PostgreSQL и как их оптимизировать. Узнайте, как индексы, статистика и параметры конфигурации влияют на производительность! 🔥

Читать далее

Windows 11 — по-прежнему ничего стоящего

Level of difficultyEasy
Reading time6 min
Views35K

С вами Dedoimedo, и я хочу поделиться историей об очередном эпизоде мазохизма. Раз в несколько месяцев я запускаю свой тестовый ноутбук, на котором в качестве альтернативной системы стоит Windows 11, и проверяю, произошли ли в этой ОС какие-нибудь ощутимые изменения. Последняя такая авантюра была в сентябре, и тогда я столкнулся с кучей проблем.

Но не всё так страшно. Недавно я прочёл на The Register статью, в которой показано, что аудитория Windows 11 не просто не растёт, а сокращается. Как же прекрасно. Просто песня. Люблю читать бахвальные маркетинговые заявления высокопоставленных представителей компаний, особенно на фоне суровой проверки реальностью. Но в этом есть смысл.

Windows 11 бесполезна — файловый менеджер тормозной, раздел настройки не дотягивает до панели управления, а аппаратные требования зачастую препятствуют возможности апгрейда. Что тут сказать… Карма и всё такое…

Приступим?
Читать дальше →

Hi-Fi с Wi-Fi или как я делал беспроводную мини акустику с качественным звуком

Level of difficultyEasy
Reading time16 min
Views29K

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

У меня уже давно назревала мысль о сборке портативной беспроводной акустики для воспроизведения аудио потока со своих домашних устройств. Решения с применением технологии Bluetooth меня не устраивали, хотелось слышать качественный звук. И вот, одним январским вечером, собрав свою волю в кучу, я решил реализовать задуманное. А что из этого вышло - читайте далее.

Читать далее

Tuna — от аналога ngrok, к собственной платформе

Level of difficultyEasy
Reading time8 min
Views5K

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

Читать далее

Самый полный стартовый гайд по ботам Telegram (python)

Reading time5 min
Views335K

QQ Хабр! В этом гайде мы пройдемся по каждому шагу создания ботов в Telegram - от регистрации бота до публикации репозитория на GitHub. Некоторым может показаться, что все разжевано и слишком много элементарной информации, но этот гайд создан для новичков, хотя будет интересен и для тех, кто уже занимался разработкой в Telegram. Сегодня мы будем делать бота, который отвечает на заданные вопросы.

Читать далее

Устраняем эффект шумного соседа в PostgreSQL с помощью cgroups

Level of difficultyMedium
Reading time7 min
Views7.2K

Если вы когда-нибудь запускали несколько экземпляров PostgreSQL или другого ПО на одной машине (виртуальной или физической), то наверняка сталкивались с эффектом шумного соседа, когда инстансы мешали друг другу работать. Так как же примирить соседей? У нас есть ответ!

Читать далее

Мой первый контейнер без Docker

Level of difficultyMedium
Reading time6 min
Views42K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Промпты для ChatGPT, которые могут повысить качество ответов ChatGPT

Level of difficultyEasy
Reading time3 min
Views79K

Давайте будем честными.

Простые промпты наподобие "Напиши статью из 1500 слов под заголовком: Топ-10 продуктов, которые разрушают вашу печень» не дадут вам и 1% тех результатов, которые способен дать Chat GPT.

Читать далее

Новый DI фреймворк для DART и Flutter — sputnik_di

Level of difficultyEasy
Reading time4 min
Views2.2K

Новый DI-фреймворк для Flutter-проектов без бойлерплейта и головной боли. Два пакета: sputnik_di для dart и flutter_sputnik_di для flutter. Это перевернет разработку на dart.

Читать далее

Избавляемся от головной боли: новый интерфейс для VPN-подключения

Level of difficultyEasy
Reading time2 min
Views65K

Наконец, и мы решили обратить свой взор на отечественный рынок программных решений, отразить немного общей боли и рассказать, о том, как мы с этой болью справились. Причины написания данной статьи давно витают в воздухе – зачастую отечественным решениям чего-то, да не хватает =) О всех нюансах работы с ипомпортозамещенными решениями говорить не будем, так как многие читатели, уверены, уже столкнулись с подобными вызовами.  

Сейчас же решили остановиться на том, что из разряда наших внутренних «костылей» перешло в удобный продакшн.  Речь пойдет про защищенное удаленное подключение из трех букв (начинается на «В»), которое строится на базе отечественных NGFW с использованием немного устаревших L2TP, IKEv1, общего ключа и обязательного второго фактора аутентификации в виде OPT.

Читать далее

Чистый код в Python

Level of difficultyEasy
Reading time14 min
Views21K

Всем привет!

Это перевод статьи Clean Code in Python. В данной статье Nik Tomazic рассказывает о чистом коде, его преимуществах, различных стандартах и принципах, но что самое главное– он дает общие рекомендации по написанию чистого кода. Прочитав данную статью в оригинале, я понял, что это именно то, что я хотел бы прочитать в самом начале своего пути разработки на Python. Именно это и вдохновило меня на создание первого перевода, а вместе с этим, и первой публикации на Хабре.

Читать далее

Мануал по запуску полной модели DeepSeek-R1 локально (бюджет ~6k$)

Reading time4 min
Views56K

Давеча наткнулся в экс-Твиттере на интересный тред (https://x.com/carrigmat/status/1884244369907278106?s=52) о том, как запустить самую мощную (на сегодня) ИИ reasoning модель DeepSeek-R1 прямо у себя под столом.

DeepSeek-R1 — это одна из топовых моделей (из Китая), наделавших много шума (и не только), для задач логики, математики и программирования. Она настолько умная, что может (с некоторыми оговорками) "конкурировать" с решениями от OpenAI, но при этом её можно запустить локально, без интернета, без смс и полностью контролировать весь процесс.

Почему это круто?
* все данные остаются с вами, никакие сторонние сервисы не получат доступ к вашим запросам.
* запуск на своём железе избавляет от затрат на облачные сервисы.
* модель способна решать сложные задачи и выдавать результаты на уровне профессионалов.

В статье я расскажу:
* какое оборудование нужно для запуска DeepSeek-R1.
* чем локальный запуск отличается от серверного.
* какие возможности открывает эта модель и как она может быть полезна.
* как сохранить безопасность и приватность при работе с ИИ.

В этом мануале описано, как настроить локальный запуск модели DeepSeek-R1 Q8, сохраняя максимальное качество и производительность без дистилляции или уменьшенной квантизации. Общая стоимость сборки составит около ~$6,000, и ниже приведены все необходимые ссылки на компоненты и инструкции.

Читать далее

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity