Обновить

Как я смоделировал первое приложение

Уровень сложностиПростой

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

Читать далее

Настройка цели «Клик по кнопке» в Яндекс Метрике: проблема и решение

Сначала создание цели, потом — использование результатов в рекламной кампании. Так и поступаю. Управляю своим сайтом и продвижением лично. И при работе в Метрике и Директе у меня как неспециалиста возникают трудности. Ищу решения: делаю запросы в поисковиках, уточняю у нейросетей. Проверяю на практике. Об одном случае расскажу здесь — читателям может пригодиться.

Читать далее

Как корректно собрать трафик со множества своих доменов

Уровень сложностиПростой

Ситуация: у вас по какой-то причине есть множество доменов, которые когда-то были сайтами или не были ими никогда. На всех этих доменах есть какой-то остаточный трафик, туда заходят просто любопытствующие или, возможно, вы намеренно занимались тайпсквоттингом и нарегистрировали похожих на gooogle и wkontakte имён. У меня вот таких доменов из прошлой жизни накопилось несколько десятков. Как собрать с них посетителей?

Глобально, проблем тут две:

1. люди заходят со странных диковинных страниц, никогда не существовавших или давно удаленных

2. люди обычно заходят по протоколу https, а не http.

Просто перебрасывать трафик с сохранением $request_uri не стоит, т. к. будут возникать 404 ошибки. Обработка таких ошибок у вас должна бы быть, но обычно это всё-таки какая-то заглушка, а не полноценная функциональная страница сайта, т. к. «обычная» страница вызовет еще больше вопросов и непонимания. Потому $request_uri нужно обязательно вырезать. Попал человек неизвестно откуда неизвестно как на титульную другого сайта — у него хотя бы есть стандартная удобная точка, откуда можно начать. Ну, или создайте отдельную страничку с пояснением, что рады его видеть, несмотря на конфуз.

Вы, возможно, удивитесь, но просто прописать в .htaccess через RewriteEngine новое правило явно недостаточно. Основной трафик идет по https, а если на домене нет нормального валидного сертификата, то из-за самоподписанного или отсутствующего сертификата браузер наверняка вывалит сообщение о потенциальной опасности и вообще откажется куда-либо переходить. Вы просто теряете посетителя. Абсолютное большинство посетителей. Именно из-за того, что весь современный интернет работает по https.

Читать далее

Мой первый On-chain опыт на Base. The Wall Base: техническая архитектура социального мини-приложения на BaseAPP

Уровень сложностиСредний

18.12.25 Base запустила своё Mini App SDK, но я получил доступ к нему немного раньше еще на Beta-тестировании. Мне стало интересно: смогу ли я собрать миниаприложение, в котором каждое действие пользователя оставляет on-chain след. В статье описываю архитектуру, code-level решения, баги, инфраструктуру и все проблемы, которые пришлось пройти. Так появился The Wall Base — мини-приложение внутри Farcaster/BaseAPP

BaseAPP — Это web3 суперапп, эволюция кошелька Coinbase совмещающие в себе социальные сети, блокчейн, торговлю, платежи и мини-приложения

Читать далее

Разработка API-сервиса для развертывания моделей машинного обучения

Уровень сложностиПростой

В данной работе описывается процесс создания REST API сервиса для развертывания моделей машинного обучения с использованием фреймворка FastAPI. В качестве практического примера обогащения входных данных рассматривается получение геопространственных признаков через Overpass API.

Читать далее

Транзакции в базах данных и ACID

Уровень сложностиСредний

Хранить данные - важно. Иметь возможность их прочитать - полезно. Не оболваниться в процессе внесения в эти данные изменений - жизненно необходимо для любой информационной системы. Свойство "не оболваниться" и воплощают в себе транзакции БД.

Что имеем по факту: транзакция БД - это просто одна из функций, которая гарантируется нам конституцией используемой БД и её СУБД. В общем-то, сейчас эта функция есть в наличии почти у любой уважающей себя (СУ)БД. Псевдокод транзакции будет выглядеть как-то так:

[ START TRANSACTION;

UPDATE accounts

SET balance = balance - 100

WHERE id = 1;

COMMIT (or ROLLBACK)]

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

Логика транзакций устроена так, что пока нет коммита, изменения либо не сохраняются непосредственно на физическом носителе (например, временно живут записанными в специальный лог), либо есть возможность их откатить (во временный лог записываются старые значения, и если что-то пойдёт не так, значения будут оттуда перезаписаны обратно на носитель). Эта логика реализует свойство атомарности, которое ожидают от транзакций: либо всё, либо ничего.

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

Читать далее

Мини-ПК как сервер: установка Ubuntu Server на DEXP Compact M008 и все грабли, на которые я наступила

Уровень сложностиПростой

Я решила использовать мини‑ПК DEXP Compact M008 как учебный сервер: для экспериментов с Linux, сетями, Docker и удалённым доступом. Казалось бы — стандартная задача. На практике всё пошло по классическому сценарию: «вчера работало, сегодня нет».

Ниже — реальный опыт установки Ubuntu Server, базовой настройки и диагностики сетевых проблем, которые сначала выглядели мистикой, а потом оказались вполне объяснимыми.

Читать далее

Парсер статей Хабра по количеству комментариев и рейтинга

Уровень сложностиПростой

У меня есть небольшое увлечение - искать статьи на Хабре с отрицательным рейтингом и большим количеством комментариев. Открываю их и читаю нередко провокационный текст, дискуссии по 40 комментариев... Но была проблема - приходилось искать такие статьи вручную, так как инструменты Хабра не позволяют фильтровать статьи по отрицательному рейтингу и количеству комментариев. Публичного апи для таких нужд у Хабра тоже нет. Пришла идея - в качестве пет-проекта написать парсер таких статей.

Читать далее

Базовая защита сервера на Linux

Уровень сложностиПростой

Всем привет. Меня зовут Дмитрий Филиппов, я явлюсь разработчиков AI-платформы VEGA chat. В статье хочу поделится личным опытом администрированием серверов, а именно с чего должна начинаться защита сервера послей установки.

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

Читать далее

Сервис на базе Telergam

Уровень сложностиПростой

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

Читать далее

Гайд: как реализовать децентрализованный логин на Go с libp2p

Уровень сложностиСредний

Что такое децентрализованная база данных? - это хранилище данных, в котором нет единого сервера.

Данные хранятся на нескольких узлах сети, и каждый из них имеет свою копию.
Узлы сами обмениваются и синхронизируют данные между собой.

Читать далее

Практическое применение потокового редактора SED

Уровень сложностиПростой

Работая с АльтЛинукс 10 я обнаружил, что команда apt-cache show <имя пакета> выводит много дополнительной информации, которая возможно важна для мейнтейнеров, но не представляет ценности для меня. Более того дополнительная информация выглядит как шум и затрудняет анализ данных. Для решения этой проблемы я использовал потоковый редактор sed.

Читать далее

Corel Draw: Как получить доступ к пунктам меню в коде макроса

Уровень сложностиПростой

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

Рассмотрим два варианта, которые связаны между собой.

Читать далее

Доказательство гипотезы Коллатца

Уровень сложностиСложный

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

Читать далее

Как настроить отправку оповещений Wazuh в Telegram и Bitrix24: полное руководство

Уровень сложностиСредний

Wazuh — мощная открытая платформа для мониторинга безопасности, обнаружения угроз и соответствия нормативным требованиям. Но по умолчанию она отправляет алерты только в логи или SIEM-систему. Что делать, если вы хотите оперативно получать уведомления в Telegram и автоматически создавать задачи в Bitrix24 при критических событиях — например, при изменении членства в группе администраторов или блокировке учётной записи?

Читать далее

Кейс, который ломает миф про сезонность на Авито: х3 заявок в нише «Мойки высокого давления»

Кейс на Авито: 240 заявок по 362 рубля, где средний чек товара 90000 рублей.

Работа с производителем моек высокого давления. Россия, лето — традиционный «мертвый сезон». При бюджете 90 000 рублей заказчик получал всего 90 обращений в месяц и считал, что «Авито тут ни при чём, просто сезон провальный».
Мы доказали обратное: за один месяц увеличили количество заявок в 3 раза — при том же бюджете. Цена заявки упала в 3 раза.

Читать далее

Static Factory Methods: оружие Java-разработчика

Уровень сложностиПростой

Достаточно писать скучные конструкторы! Пришло время освоить статические фабричные методы — подход, который кардинально изменит ваше представление о создании объектов в Java.

Читать далее

Мнение эколога, голубевода об использовании голубей в качестве биодронов

Уровень сложностиПростой

Недавно было опубликовано сообщение о положительных результатах испытания в России голубей-биодронов, которым вживляют чип в головной мозг, вешают на них видеокамеру и заставляют лететь в заданном направлении для наблюдений и разведки. Эколог, голубевод, эксперт “Центра правовой зоозащиты”  Евгений Ильинский рассказывает об этичности и эффективности использования голубей в качестве биодронов.

Насколько этично использование голубей в качестве биодронов?

Читать далее

Вводная статья по инженерному проекту «Дезинтегратор БПЛА/Дрон»

Инженерный проект по борьбе/противодействию бпла/дронам в инженерно-философском духе! С акцентом на ее разработку и реализацию в Российском пространстве (топосе) и культурном коде.

продолжение в следующих публикациях