Наши услуги

Мы предлагаем

serv2
Сайт визитка - лендинг
Одна шаблонная страница - когда надо сегодня
serv2
Сайт магазин с CRM
Главная страница, каталог товаров/услуг, личный кабинет продавца
serv2
Дизайн для своего сайта
Нарисуем вам новый дизайн
serv2
Доработка существующего сайта
Когда что-то сломалось
serv2
Дизайн печатной продукции
Визитки, баннеры, стикеры и прочее нецифровое, что можно будет потрогать :)
serv2
Не знаю как объяснить - посмотрите сами
И такое делаем :)

Почему мы?

Минимум взаимодействий
Минимум взаимодействий
Из материалов только ваша страница или сайт
Всегда на связи
Всегда на связи
Голосовые, текст, видео - как удобно :)
Бывает и дорого, но есть бесплатно
Бывает и дорого, но есть бесплатно
Качество не зависит от цены
Индивидуальный подход
Индивидуальный подход
Разумеется :)
business
Коротко

О нас

wow5
2015
работаем успешно с
wow3
5
Реализованных проектов

Это начало интересного текста обо мне

Чуть позже напишу тут интересный текст

Партнёров пока нет
Но, ты пиши если что :)

Наши работы

Работа 1
Работа 2

Ознакомьтесь с нашим сервисом и комфортным сотрудничеством

Тарифы

Сайтик фри
0
Точно такой лендинг
checkedВаши фото, контакты и тексты
checkedИмя сайта имя.dencompany.ru
checkedБез мелкого шрифта и камней
Лайт
от
5 000
₽/год
Когда сайт пробник понравился и надо расширяться
checkedСамостоятельное имя сайта
checkedИндивидуальные настройки
checkedCRM (личный кабинет продавца)
checkedБез мелкого шрифта и камней
Хочу всё
от
15 000
₽/мес
Когда налажен процесс или не очень, но надо много и не хочется вникать
checkedСамостоятельное имя сайта
checkedИндивидуальный дизайн
checkedCRM (личный кабинет продавца)
checkedПеренос товаров с текущего сайта
checkedБез мелкого шрифта и камней

Профессионалы своего дела

Наша команда

Фото
Fullstack ведущий программист
Денис

О нас говорят

Отзывы клиентов

Фото отзыв
Я — специалист по SMM
Linda
Дизайнер
Фото отзыв
Отзыв 1
Mark
Backend разработчик
Смотреть все

Все, что нужно знать о бизнесе

Блог

Читать блог
Фото блог
28
10.2026
5 основных инструментов для продвижения интернет-бизнеса
Я — специалист по SMM.
Фото блог
28
10.2026
5 основных инструментов для продвижения интернет-бизнеса
Раньше работала дома.
Фото блог
28
10.2026
5 основных инструментов для продвижения интернет-бизнеса
Я работала дома.

Все, что нужно знать о создании сайтов

Статьи

28.10.2026
Миграция фреймворков в Pascal: разработка игр Экосистема Pascal прошла долгий путь от классического Turbo Pascal до современных кроссплатформенных решений. Для команд, разрабатывающих игры, вопрос миграции фреймворков стоит особенно остро: старые библиотеки перестают получать обновления, а новые обещают поддержку Vulkan, мобильных платформ и многопоточности. В этой статье разберём, как планировать переход и что учитывать, чтобы не потерять производительность и не сломать игровой цикл. Почему миграция неизбежна Игровые проекты на Pascal исторически опирались на привязки к Windows API и DirectX через DelphiX или Asphyre. Со временем такие фреймворки утрачивают совместимость с новыми компиляторами и драйверами. Основные причины миграции: отсутствие поддержки 64-битных сборок и современных видеокарт; несовместимость с кроссплатформенными компиляторами (FPC, Lazarus); устаревшая система управления ресурсами и отсутствие асинхронной загрузки; невозможность сборки под Linux, macOS и мобильные устройства. Выбор целевого фреймворка Сегодня основными кандидатами для игровой разработки на Pascal остаются Castle Game Engine, ZenGL и связки с SDL2 через привязки. Каждый вариант имеет свои сильные стороны, которые стоит оценивать по конкретным критериям. Castle Game Engine Фреймворк с открытым исходным кодом, поддерживающий 3D и 2D, встроенный редактор уровней и экспорт под множество платформ. Хорошо подходит для проектов, где важна сцена с камерой и физика. Миграция сюда требует переписывания рендер-слоя, но окупается кроссплатформенностью. ZenGL Лёгкий 2D-фреймворк с минимальными зависимостями. Отличный выбор для аркад и казуальных игр, где не нужен тяжёлый движок. Переход с DelphiX обычно проходит быстрее за счёт схожей модели спрайтов. Привязки к SDL2 Максимальная гибкость и контроль над окном, вводом и аудио. Подходит командам, готовым самостоятельно реализовать игровой цикл и менеджер ресурсов, но требует больше кода. План миграции Переход стоит разбить на этапы, чтобы не останавливать разработку надолго. Провести аудит текущего кода: выделить модули рендеринга, ввода, звука и логики. Создать слой абстракции над графикой и вводом, чтобы изолировать вызовы старого фреймворка. Портировать по одному модулю, начиная с наименее связанных (например, загрузка ресурсов). Настроить сборку под целевые платформы и проверить производительность на реальном железе. Удалить устаревшие зависимости и провести регрессионное тестирование игровых сценариев. Типичные подводные камни В играх критичны тайминги и работа с памятью, поэтому при миграции легко получить незаметные регрессии. Изменение порядка отрисовки может сломать прозрачность и эффекты наложения. Различия в обработке ввода приводят к «залипанию» клавиш и некорректной работе геймпадов. Другая модель потоков требует пересмотра асинхронной загрузки и звукового микшера. Смена формата текстур влияет на потребление видеопамяти и качество картинки. Чтобы снизить риски, стоит вести профилирование до и после миграции и сравнивать ключевые метрики: время кадра, потребление памяти, задержку ввода. Итог Миграция фреймворка в Pascal — это не просто замена библиотеки, а пересмотр архитектуры игрового проекта с прицелом на современные платформы и инструменты. Продуманный план, слой абстракции и поэтапный перенос модулей позволяют сохранить работоспособность игры и открыть путь к кроссплатформенной разработке.
13.10.2026
Scheme в 2026 году: тихий тренд, который снова набирает силу Пока все обсуждают новые версии JavaScript-фреймворков и очередные ИИ-инструменты, в мире программирования происходит нечто более интересное. Scheme — один из старейших диалектов языка Lisp — возвращается в поле зрения разработчиков. Это не хайп и не мода, а устойчивый технологический тренд, который набирает обороты уже несколько лет. И если вам кажется, что Scheme — это что-то из учебников 1980-х, вы удивитесь, насколько современным может быть этот язык. Что такое Scheme, если объяснять бабушке Представьте, что вы учите внука печь пирог. Есть два подхода. Первый: вы даёте ему готовый набор продуктов и пошаговую инструкцию — шаг 1, шаг 2, шаг 3. Второй: вы объясняете сам принцип — что такое тесто, как оно поднимается, почему важен порядок. Scheme — это второй подход. Бабушке можно сказать так: Scheme — это язык, в котором всё строится из маленьких кирпичиков, и каждый кирпичик можно переставлять, комбинировать и даже создавать свои собственные кирпичики. В отличие от многих современных языков, где программисту выдают готовый «набор для выпечки», Scheme даёт чистые ингредиенты и правила, по которым из них можно собрать что угодно — от калькулятора до искусственного интеллекта. Главная идея проста: код — это данные, а данные — это код. Это звучит абстрактно, но именно эта особенность делает Scheme невероятно гибким. Почему Scheme снова в тренде в 2026 году За последние годы произошло несколько событий, которые вернули Scheme в центр внимания: Расцвет функционального программирования. Идеи, которые Scheme проповедовал с 1975 года, теперь стали мейнстримом в Rust, Kotlin, Swift и даже Python. Инструменты для обучения. Книги вроде «Structure and Interpretation of Computer Programs» снова переиздаются, а онлайн-курсы на базе Scheme собирают тысячи студентов. Языки-наследники. Racket, Guile, Chicken Scheme и Chez Scheme активно развиваются и используются в реальных проектах — от научных исследований до встраиваемых систем. Простота как роскошь. В эпоху переусложнённых фреймворков Scheme предлагает минимализм: весь язык можно выучить за неделю. Где Scheme применяется на практике Многие ошибочно думают, что Scheme — это чисто академический язык. На самом деле он давно работает в продакшене: GNU Guile — официальный язык расширений для GNU-проектов, включая GIMP и систему сборки Guix. Racket — используется в образовании и для создания предметно-ориентированных языков. Chez Scheme — один из самых быстрых компиляторов Scheme, применяется в Cisco и других компаниях. Embedded-системы — TinyScheme и подобные реализации работают на микроконтроллерах. ИИ и обработка данных — Scheme остаётся удобным инструментом для символьных вычислений. Практические советы для старта этой осенью Середина октября — идеальное время, чтобы начать изучать Scheme. Летний отдых позади, дни становятся короче, а вечера длиннее — самое время для спокойного погружения в новый язык без спешки. С чего начать Установите Racket — это самый дружелюбный вариант для новичков, с отличной документацией и средой разработки DrRacket. Прочитайте первые главы SICP или более современную «How to Design Programs». Начните с простых задач: вычисления, работа со списками, рекурсия. Не гонитесь за скоростью — Scheme учит думать, а не печатать. Осенний режим занятий Поскольку темнеет рано, попробуйте заниматься утром или днём, пока естественного света больше — это помогает концентрации. Выделите 30–40 минут в день, лучше регулярно, чем по три часа раз в неделю. Заведите бумажный блокнот: Scheme отлично «думается» ручкой на бумаге, особенно когда разбираете рекурсию. И не пытайтесь сразу писать большие программы. Начните с функций вроде map, filter и reduce — их понимание откроет дверь в функциональное мышление. Что почитать и посмотреть «Structure and Interpretation of Computer Programs» — Харольд Абельсон и Джеральд Сассман. «The Little Schemer» — лёгкое и игривое введение. Курс «Programming Languages» от Университета Вашингтона (доступен онлайн). Официальная документация Racket и Guile. Почему это важно именно сейчас В 2026 году разработчики устали от сложности. Фреймворки растут быстрее, чем мы успеваем их изучать. ИИ-ассистенты генерируют код, но не объясняют его суть. В этом контексте Scheme — это якорь простоты. Он напоминает, что программирование — это прежде всего мышление, а не заучивание API. Бабушке можно сказать так: Scheme — это как умение готовить с нуля, а не разогревать полуфабрикаты. Дольше, но полезнее и вкуснее. И однажды освоив это, вы уже никогда не будете бояться никакой кухни. Попробуйте. Один вечер, один пример, одна функция — и вы поймёте, почему этот старый язык снова стал трендом.
10.10.2026
Awk для сеньора: оптимизация запросов к базе данных без ORM Когда речь заходит об оптимизации запросов к базе данных, взгляд сеньора обычно устремляется к планам выполнения, индексам и статистике. Но есть инструмент, который незаслуженно остаётся в тени при решении задач ETL, аудита и анализа логов — awk. Это не замена SQL, а мощный слой предобработки и постобработки, способный снять нагрузку с БД ещё до того, как запрос попадёт на сервер. Почему awk актуален в эпоху ORM Современный стек часто строится вокруг ORM: ActiveRecord, Hibernate, SQLAlchemy. Удобство оборачивается генерацией неоптимальных запросов, N+1-проблемами и лишними round-trip'ами. Сеньор понимает: не каждый анализ требует БД. Иногда данные уже лежат в CSV-выгрузке, логе репликации или дампе, и гонять их через PostgreSQL ради агрегации — это сжигать IOPS впустую. Awk обрабатывает поток построчно, держит в памяти только нужное состояние и работает со скоростью, близкой к grep. На гигабайтных выгрузках это даёт выигрыш в десятки раз по сравнению с загрузкой в промежуточную таблицу. Базовый шаблон обработки выгрузки Типичный сценарий: есть CSV с миллионами строк, нужно посчитать метрики по группам без единого запроса к БД. awk -F',' 'NR>1 {sum[$3]+=$5; cnt[$3]++} END {for(k in sum) print k, sum[k]/cnt[k]}' dump.csv Разберём, что здесь важно для сеньора: NR>1 — пропуск заголовка без внешних утилит. sum[$3]+=$5 — хеш-таблица в памяти вместо временной таблицы в БД. END — агрегация выполняется один раз, а не на каждой строке. Такой подход снимает нагрузку с СУБД полностью: сортировка, группировка и join происходят на стороне клиента. Соединение двух источников: awk как in-memory join Классическая задача — обогатить факты измерениями. Если измерение маленькое (справочник стран, тарифов, статусов), его можно загрузить в память и выполнить join без обращения к БД. awk -F',' 'NR==FNR {dim[$1]=$2; next} {print $0, dim[$1]}' dims.csv facts.csv Условие NR==FNR — идиома, которую сеньор обязан знать наизусть: она отличает первый файл от последующих. Это дешевле, чем JOIN в БД, если справочник помещается в RAM и не требует транзакционной согласованности. Оптимизация самого SQL через предварительный фильтр Awk полезен не только как замена агрегации, но и как генератор компактного входного множества. Вместо запроса с огромным IN (...) из сотен тысяч идентификаторов, который ломает планировщик, можно собрать список ключей и передать его через VALUES или временную таблицу. Отфильтровать нужные ID из лога через awk. Записать результат в файл или stdin. Загрузить через COPY в PostgreSQL или LOAD DATA в MySQL. Выполнить join с основной таблицей по индексированному ключу. Такой pipeline превращает неоптимальный запрос с seq scan в индексный доступ. Планировщик получает точную статистику по временной таблице и строит корректный план. Продвинутые приёмы для сеньора Контроль памяти через ограничение хеша Хеш-таблицы в awk растут неограниченно. На датасетах с высокой кардинальностью это приводит к OOM. Решение — предварительная сортировка и потоковая агрегация: sort -t',' -k3,3 dump.csv | awk -F',' '{if($3!=prev){print prev,sum; sum=0; prev=$3} sum+=$5}' Сортировка внешняя, память O(1) по числу групп. Цена — дополнительный проход, но на больших объёмах это выгоднее, чем swap. Использование нескольких проходов вместо сложного состояния Сеньор предпочитает два простых прохода одному запутанному. Awk позволяет читать файл повторно, храня промежуточные результаты в отдельные файлы — это упрощает отладку и снижает риск ошибок в логике. Интеграция с psql и mysql через pipe Комбинация awk и клиента БД даёт гибкость: awk формирует запросы пачками, клиент выполняет их, результат снова проходит через awk для постобработки. Это классический Unix-подход, который в руках сеньора превращается в надёжный ETL-конвейер без тяжёлых фреймворков. Когда awk не подходит Инструмент не универсален. Отказывайтесь от него, если: Нужна транзакционная согласованность и MVCC. Данные не помещаются на диск клиента. Требуется сложная аналитика с оконными функциями. Логика уже реализована в БД и оптимизирована планировщиком. Awk — это скальпель, а не молоток. Его сила в точном применении там, где БД избыточна. Итог Оптимизация запросов к базе данных начинается не с EXPLAIN, а с вопроса: должен ли этот запрос вообще идти в БД. Awk позволяет сеньору перенести часть работы на клиент, снизить нагрузку на сервер и получить результат быстрее, чем любой ORM. Владение awk — это маркер зрелости инженера, понимающего, что лучший запрос к базе данных — тот, который не нужно выполнять.
Открыть все статьи
bg_1
Остались вопросы? Задавайте их немедленно.
мы проконсультируем совершенно бесплатно