Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

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

simstr — ещё одна строковая библиотека

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

Работа со строками в С++ - зачастую больная боль.

Однако за 25 лет я сумел найти лекарство от этой боли и после 13 лет разработки и испытаний готов поделиться им со всеми страждущими.

simstr — библиотека для использования строк в C++, в которой пишется легко и удобно, а выполняется быстро и оптимально.

Читать далее

Удобный софт для работы с файлами SQLite

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров6.9K

Все мы любим SQLite. Это идеальный движок БД, компактная библиотека размером менее 1 МБ, быстрая, автономная и неубиваемая. Более того, это в принципе удобный способ хранения информации, поскольку СУБД выигрывает у файловой системы по скорости доступа, сжатию, функциональности полнотекстового поиска и т. д. Например, она вдвое быстрее файловой системы Ext4 под Linux.

SQLite — самая популярная в мире СУБД. Как рассказывалось в статье «Безумные и забавные факты о SQLite», в мире активно используется более триллиона (!) БД SQLite, это невероятное число. Просто она встроена во все смартфоны, браузеры, операционные системы и бесчисленное число других приложений.

Читать далее

Невозможные проблемы, скрытые в простой игре «Тетрис»

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.4K

Будучи ребёнком 1990-х годов, я не мог обойти стороной игру-бестселлер «Тетрис». Созданный в 1984 году российским программистом Алексеем Пажитновым, «Тетрис» быстро стал блокбастером, и за прошедшие годы в него сыграли сотни миллионов человек. Я сам часами играл в него на Game Boy, пытаясь расположить падающие фигуры так, чтобы они как можно плотнее заполняли игровое поле. Со временем игры эти блоки начинают падать все быстрее и быстрее, и мои большие пальцы едва успевали за управлением игрой.

В принципе, все игры — даже такие разные, как Candy Crush Saga, Magic: The Gathering и Wordle, — можно изучать с точки зрения математики. Но «Тетрис» имеет много особых связей с математикой. Например, цель игры сильно напоминает геометрические задачи о паркете, в которых вы определяете, можно ли покрыть область бесконечно большим набором плиток без зазоров.

Читать далее

Визуализация трафика, перспективы 6G и рабочие кейсы: избранное для интернет-провайдеров и операторов связи

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров889

Собрали полезные технические материалы, опубликованные на нашем сайте и в блоге на Хабре: про миграцию на IPv6, инструменты визуализации трафика, автоматизацию настройки BRAS и другие. Статьи будут интересны системным администраторам, сотрудникам интернет-провайдеров и операторам дата-центров.

Читать далее

Изучаем Go: руководство для JavaScript-разработчиков. Часть 2

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.6K

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

Интерес к Go в JavaScript-сообществе тоже заметно вырос. Особенно после новости от Microsoft о том, что они переписывают официальный компилятор TypeScript на Go — и обещают ускорение до 10 раз по сравнению с текущей реализацией.

Эта статья — своего рода путеводитель для JavaScript-разработчиков, которые задумываются о переходе на Go или просто хотят с ним познакомиться. Я постарался структурировать материал вокруг ключевых особенностей языка, сравнивая их с привычными концепциями из JavaScript/TypeScript. И, конечно, расскажу о "подводных камнях", с которыми столкнулся лично — с багажом мышления JS-разработчика.

Читать далее

Stealth Mode: 10 Bash-трюков для скрытого хакинга

Время на прочтение5 мин
Количество просмотров5.2K

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

Этот гайд посвящен скрытности и bash-скриптингу. Мы говорим не о супер эксплойтах, а о низкоуровневой невидимости, которая заставит команду криминалистов чесать затылки.

Читать далее

Думай как компилятор: позиции и значения в Rust

Время на прочтение10 мин
Количество просмотров1.8K

Некоторое время назад мне попался в Интернете вопрос о таком синтаксисе в Rust:

*pointer_of_some_kind = blah;

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

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

Читать далее

Отгадай слово дня: от ручного поиска к автоматизации

Время на прочтение8 мин
Количество просмотров1K

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

Читать далее

Вебинары трека Наука о данных Летней цифровой школы Сбера

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров329

Привет, коллеги ML инженеры, Data scientist'ы и все, кто интересуется искусственным интеллектом, созданием нейросетей, машинным обучением и анализом данных! Принёс вам пачку вебинаров с интенсива трека Наука о данных курсов повышения квалификации Летней цифровой школы Сбера.

Читать далее

Я сделал демонстрацию Ethereum Proof of Stake при помощи искусственного интеллекта

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1.1K

Всем привет! Меня зовут Тим и я недавно завершил проект под названием ether-pos цель которого — объяснить, как на самом деле работает система Proof of Stake (PoS, Доказательство доли владения) Ethereum. Если вы еще не видели ее, посмотрите здесь: ether-pos.

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

Читать далее

Rust 1.89.0: явный вывод аргументов для константных обобщений, проверка синтаксиса времён жизни, i128 и u128 в extern C

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров889

Команда Rust рада сообщить о новой версии языка — 1.89.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.89.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Что стабилизировано в 1.89.0

Хватит страдать: Выбросьте ООП и ECS. Есть путь проще

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

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

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

Читать далее

Создаем свой пакет на PHP

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.8K

Хочу поделиться с вами своим опытом, с которым столкнулся, и предоставить шаблон, который написал для пакетов/проектов:
https://github.com/deniskorbakov/skeleton-php-docker

Буду очень рад звёздочке на GitHub и обратной связи после прочтения статьи!

Читать далее

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

Кастомизируем xUnit: feature-toggles или API тесты не для всех (конечных точек)

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров631

У вас в проекте появились feature‑toggles, а API тесты никто не отменял?

В статье рассматривается практический пример кастомизации тестового фреймворка xUnit для написания API тестов с учётом feature‑toggles в условиях их конфликтующих состояний.

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

Читать далее

Titanic + CatBoost (Первое решение, первый Jupyter Notebook)

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

Решение первого соревнования на kaggle титаник с помощью библиотеки от яндекса catboost. Два способа: обычная модель и второй: с перебором гиперпараметров с помощью randomizedsearch. Сравнение результатов.

Читать далее

Как мы создали приложение для тестирования клетки Фарадея и превратили его в инструмент продаж

Время на прочтение5 мин
Количество просмотров3.4K

Хочу поделиться историей создания нишевого мобильного приложения для тестирования клетки Фарадея, которое (внезапно) стало популярным в западном сегменте App Store и Google Play, а также переросло в канал международных продаж для наших продуктов. 

Читать далее

Часть 3: Создание пользовательского интерфейса на дисплее Guition с ESPHome и библиотекой LVGL

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.6K

Привет, Habr! Продолжаем серию статей о LVGL в ESPHome. В третьей части статьи речь пойдет о создании своего пользовательского виджета, который может быть подключен к проекту. И не только к данному проекту, а вообще даст небольшое представление как делать виджеты в ESPHome. Итак, Создавать будем виджет умной розетки с индикацией мощности, напряжения и силы тока. Поехали...

Читать далее

Angular Signals + RxJS: объединяем два реактивных мира в одном стейт-менеджере

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.4K

Angular долгое время ассоциировался с RxJS. Даже слишком: многие разработчики ощущали, что без Observable ничего не работает. Но вот в Angular 17 появляются Signals — синхронная реактивность прямо из коробки. В 17+ — они становятся мейнстримом. Возникает вопрос: а что делать с RxJS? Выбрасывать?

Signals и RxJS — не конкуренты, а два мощных инструмента для решения разных задач. И если их правильно сочетать, можно построить удобную, масштабируемую и эффективную архитектуру.

Читать далее

Как я начал создавать медицинские изделия, ч.1

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

Как влезть в одну из самых сложных тем для бизнеса — медицину — и не сдаться.

Будучи когда-то студентом-медиком, а затем действующим врачом-терапевтом, я усомнился в том, что мне действительно нравится работать с людьми. В какой-то момент мой внутренний интроверт взбунтовался. А, возможно, коктейль из гиперответственности, эмпатии и нежелания «создавать своё собственное кладбище» привёл меня в медицинскую науку...

Читать далее

Самовосстанавливающаяся инфраструктура через цифровые двойники: архитектура и инструменты

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров1.3K

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

Читать далее