Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Почему Fortran в 2025 году всё ещё остаётся «ракетой»

Время на прочтение3 мин
Охват и читатели22K

Я — школьный учитель информатики с большим стажем работы. За это время я видел смену эпох: Pascal уступил Python, веб вытеснил десктоп, а сегодня центр внимания занимает машинное обучение. Казалось бы, я видел всё и мог бы безошибочно отличить живую технологию от музейного экспоната.

И вот, листая рейтинг TIOBE, я обнаружил в топ-20… Fortran. Более того, он поднялся с третьего десятка почти в топ-10, обогнав такие языки, как Swift и Ruby. Казалось, что этот «старичок» давно покоится в истории, но факты оказались упрямее стереотипов.

Читать далее

Клиент telega сотрудничает с telegram и Павлом Дуровым? Разбираемся

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели39K

В последние недели вокруг неофициального клиента Telega разгорелся скандал — одно из сообществ выяснило что у него имеются связи с VK.

Однако мы наткнулись на информацию куда более любопытную — возможное сотрудничество самой Telega с Telegram.

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

Читать далее

Визуализация горного ландшафта на C++ или велосипед для рендеринга

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

Основной целью этой работы было попытаться реализовать реалистичную сцену горного ландшафта с воздушным шаром, используя "чистый" C++ и QT только для вывода пикселей. Мне было интересно превратить код в картинку, не имея других инструментов.

Читать далее

Протокол VLESS: Как он обходит цензуру в России и почему это работает

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели153K

В 2025 году интернет-цензура в России, Китае и Иране достигла беспрецедентного уровня. Традиционные VPN-протоколы вроде OpenVPN и даже WireGuard обнаруживаются и блокируются системами Deep Packet Inspection (DPI) за считанные секунды. На сцену выходит VLESS — легковесный протокол, который становится последним работающим решением для обхода современной цензуры.

Эта статья объясняет, как работает VLESS на техническом уровне, почему он так эффективен в обходе обнаружения, и делится реальным опытом создания VPN-сервиса во враждебной среде России.

Читать далее

Электроника в вопросах и ответах 4

Уровень сложностиСложный
Время на прочтение37 мин
Охват и читатели14K

Несмотря на то, что можно уже аккуратно говорить о появлении традиции электроквиза, с некоторыми устоявшимися правилами и локальным мемом "правильный ответ" :) , каждый новый выпуск привносит что-то новое.

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

В остальном всё как обычно: 19 участников собрали 19 вопросов по электронике и попробовали на них ответить.

Ответить на вопросы смежников

Почему Pascal лучше для обучения программированию, чем Python

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели33K

Некоторое время назад меня попросили обосновать, почему я за Pascal при обучении программирования. А я скорее не конкретно за Pascal, я за наличие у языка для обучения программированию ряда важных свойств. Получается, я скорее против Python (шутка). В результате получилась эта мини-статья.

Читать далее

Разбираемся с композитным видеосигналом NTSC, и стоит ли изучать его в 2025 году. Часть 1

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели17K

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

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

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

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

К сожалению, всё включить даже в серию статей невозможно, как и невозможно включить ощущения в моменты озарения, когда во вроде бы уже знакомой теме находишь что-то новое. Я надеюсь, что и читатели узнают что-то новое.

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

Читать далее

Как использовать callback-функции в JavaScript

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

Привет, Хабр! Я — Александр Дудукало, автор одноименного YouTube-канала. В прошлой статье мы разобрали ссылочный тип данных, который хранит не само значение, а ссылку на него в памяти. Сегодня используем полученные знания на практике и познакомимся с одной из самых важных концепций в JavaScript — callback-функциями. Подробности — под катом!

Читать далее

URL как контейнер состояния

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели10K

Пару недель назад, когда я писал пост The Hidden Cost of URL Design, мне нужно было добавить подсветку синтаксиса SQL. Я направился на веб-сайт PrismJS, пытаясь вспомнить, можно ли добавить его в качестве плагина. Меня утомило количество вариантов на странице скачивания, поэтому я вернулся к своему коду. Поискав в файле PrismJS, я нашёл в его начале комментарий, содержащий URL:

/* https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+css-extras+markdown+scss+sql&plugins=line-highlight+line-numbers+autolinker */

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

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

Я задумался: как часто мы, фронтенд-разработчики, забываем об URL как об инструменте управления состоянием? Мы пытаемся использовать для этого всевозможные абстракции: глобальные хранилища, контексты, кэши, забывая при этом одну из самых древних и изящных фич веба: скромный URL.

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

Читать далее

Делаем мыши Asus ROG полезными

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели15K

Итак, вы потратили много денег на красивую, удобную игровую мышь. Мышь действительно хорошо сидит в руке, приятно светится, имеет целых 6 дополнительных кнопок, гибко настраивается... Стоп, гибко? Вы хотели забиндить на одну из них, скажем, F13? Разработчики ASUS против такого! Но мы не сдаёмся просто так!

Погружайтесь под кат, нам предстоит узнать все ужасы софта для игровых девайсов, познакомиться с HID сканкодами, узнать сколько на самом деле у клавиатуры клавиш и написать драйвер на python.

Читать далее

Паттерны ООП в 10 минутах от вас… Поведенческие шаблоны с примерами на Java

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели18K

Ночь. Курсор мигает, как маяк в тумане. Логи шепчут о том, что в коде — своя улица, свои правила и кодекс общения. Объекты — не безмолвные элементы системы. У каждого свой характер, привычки и слабости. Один щёлчок и поведение меняется: кто-то отдаёт приказы, кто-то внимательно прислушивается, а кто-то терпеливо ждёт сигнала. Эта статья — карта такого города.

Всем привет! Меня зовут Бромбин Андрей и сегодня разберёмся в поведенческих паттернах ООП. Короткие определения, идеи через ясные метафоры и рабочие примеры на Java. Всё это для того, чтобы система не трещала по швам, а решения были ясными, предсказуемыми и поддерживаемыми.

Шаблонизироваться

AdGuard DNS: от нуля до 100 000 000 пользователей через боль

Время на прочтение13 мин
Охват и читатели19K

Современный DNS — это не только соответствие доменов IP-адресам, но и целое распределенное хранилище различных метаданных (SVCB-, HTTPS-записи, всевозможные верификации и публичные ключи).

Сегодня расскажем, как проект стал одним из основных DNS-сервисов в мире. Статья написана на основе доклада технического директора AdGuard Андрея Мешкова и директора по инфраструктуре AdGuard Константина Замякина в рамках Профессиональной конференции разработчиков высоконагруженных систем Saint HighLoad++ (июнь-2025).

Читать далее

Что делать, когда нашел эксплойт: шпаргалка, как помочь владельцу решения

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели32K

Привет! Я Никита, инженер-инсталлятор в Selectel. Представьте ситуацию: вы нашли уязвимость и понимаете, что ее можно воспроизвести. Цель — помочь владельцу сервиса закрыть дыру быстро и безопасно. Но до контакта важно остановиться и взвешенно проанализировать собственные действия. Чтобы вам было чуть проще сориентироваться «на месте», собрали ключевые советы и рекомендации под катом. 

Под кат →

Ближайшие события

С go на C++ за две недели. Переписываю эмулятор ZX Spectrum

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели21K

В общем-то и целом, мой предыдущий эмулятор ZX Spectrum, написанный на go, работал. Показывал нужное (или очень близко к нужному) и давал чувство приближенности к программистам. Однако у него были очень фундаментальные проблемы, связанные исключительно с языком разработки. Ну по крайней мере я сейчас так думаю.

Другим движущим фактором все-таки была бесплатность БЯМок от cloud.ru (не реклама, да и бесплатности больше нет). Ну где еще можно на халяву пожечь сотни миллионов токенов и получить хоть что-то работающее?

В общем, я принял волевое решение переписать все на С++. Под катом дневник "переписчика", в котором я последовательно описываю все боли и страдания начинающего писателя эмуляторов. Желающим сразу посмотреть на конечный результат можно сходить на https://github.com/kiltum/zxcpp

Читать далее

Ранняя история алгебраических типов данных

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели12K

Это началось со статьи «Алгебраические типы данных на самом деле не такие страшные». Мы знаем о типах‑суммах и типах‑произведениях. Но задумывались ли вы когда‑нибудь о том, откуда они получили такие имена, и как вообще были открыты они и их свойства? Я провел последнюю неделю в кроличьей норе истории, и я просто обязан поделиться тем, что я нашёл.

Читать далее

Пишем свою мобильную ОС с нуля на Rust

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели35K

Почему бы не запустить своё ядро прямо на смартфоне? Без Android, без Linux — только Rust, загрузчик и паяльник. В этой статье расскажу о результатах своего эксперимента, как оживить голое ARM-железо, увидеть первые символы в UART и даже вывести что-нибудь на экран.

Читать далее

Делаем Electron UI более «нативным». Простой гайд из 15 шагов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели19K

Ниже я приведу примеры, как пустить пыль в глаза юзерам можно улучшить ситуацию с ощущением чужеродности приложения среди других, написанных на честном Gtk, китами из XCode, Windows UWP и прочим с 0% вайбкодинга

Читать далее

Открываем RAG и интернет для LM Studio

Уровень сложностиПростой
Время на прочтение28 мин
Охват и читатели19K

На сдачу от пятерочки покупаем ПК на Ryzen AI 9 HX 370 c ОЗУ от 64Гб, устанавливаем LM Studio, скачиваем модель qwen3-coder-30b, в mcp.json указываем путь до нашего mcp-server и вуаля: можно попросить ИИ поискать информацию в интернете или среди pdf, docx, xlsx, pptx файлов в локальной папке.

А как написать этот инструмент развязывающий руки ИИ, мы сейчас с вами и узнаем...

Читать далее

Просто используй кнопку

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели21K

Мне часто доводится вести странные споры с фанатами фреймворков о том, действительно ли <div> «столь же хорош», как и <button>.

Спойлер: нет. И давайте выясним, почему.

Читать далее

Fedora Linux 43: полный переход на Wayland, свежий GNOME и RPM 6.0

Время на прочтение5 мин
Охват и читатели20K

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

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

Читать далее