Архив за 29 июня 2026 - 3

Практическая история о том, как для небольшой команды мы подняли частное файловое облако на Seafile, прикрутили HTTPS через Nginx, столкнулись с белым экраном на Android и в очередной раз убедились, что все бывает гораздо проще, чем кажется на первый взгляд.

Вступление

В небольшой компании вопрос с файлами встал в тот момент, когда наши популярные файловые решения стали платными. Варианта было 2: платить за то, что все это время было бесплатным. Либо сделать свое облако, тем более все ресурсы для этого есть. Мы выбрали второй вариант!

Читать полностью »

На одном из наших митапов спикер выступала практически без голоса.

За несколько дней до события она заболела, потом вроде бы пошла на поправку. Перед началом всё выглядело терпимо: да, голос был хриплым, но казалось, что она справится. А когда начался доклад, стало понятно, что слышно её очень тихо и говорить ей тяжело.

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

Читать полностью »

В Сети появились новые изображения макета первого складного смартфона Apple, который, по слухам, выйдет под названием iPhone Ultra (возможные другие варианты — iPhone 18 Ultra или iPhone 18 Fold). На этот раз устройство показали в черном цвете.

Меня зовут Георгий, лет 5 назад я делал шеринг самокатов. Это короткий операционный кейс про то, как мы пошли чинить падающую метрику, перебрали в голове весь стандартный продуктовый арсенал — а сезон нам в итоге продлила коробка перчаток по 7 рублей за пару. Без чистого A/B и красивой статистики. Почему это всё равно сработало — дальше.

Читать полностью »

Думаю, многие хотя бы раз сталкивались с ситуацией, когда для проекта нужно было реализовать совсем небольшой backend: отправку письма с формы обратной связи, обработку webhook, простое REST API или несколько строк серверной логики.

В большинстве случаев первым делом арендуют VPS, настраивают Node.js, nginx, HTTPS, деплой и окружение. Хотя для подобных задач это зачастую оказывается избыточным.

В таких случаях отличным решением становятся Google Cloud FunctionsЧитать полностью »

Спойлер: коды готовы — вставьте и пользуйтесь.

Логотипы ChatGPT, DeepSeek, Qwen и кнопка

Пример кнопки. Логотипы являются товарными знаками компаний.

Читать полностью »

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

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

Читать полностью »

Детская футбольная школа имеет базу данных детей и их родителей, в которой более 7000 уникальных записей. На данный момент посещаемость, продление абонементов и напоминания об оплате происходять в ручном режиме через ERP‑систему.

Проблема: Администраторы тратят много времени на проверку платежей и ручную рассылку с напоминаниями об оплате родителям. Из‑за различных причин часть родителей не оплачивают абонемент на следующий месяц вовремя, что существенно снижает выручку школы.

Цель работы:Читать полностью »

Всем привет, недавно я написал симулятор логических гейтов или вентилей на С++ (sfml для графики + sol2 для интеграции луа скриптов), которые можно программировать на луа таким образом: ```

local gate = {}

gate.inputCount = 2
gate.outputCount = 1

function gate.update(inputs)
    local a = inputs[1] or false
    local b = inputs[2] or false

    local result = a and b
    
    return { result }
end

return gate

Этот код отвечает за гейт и (Когда 2 входа активны выход равняется true, если хоть один не активен то равен false.). И так-же бинды гейтов к клавишам:

```

local binds = {
    ["Num1"] = "scripts/gates/and.lua",
    ["Num2"] = "scripts/gates/or.lua",
    ["Num3"] = "scripts/gates/xor.lua",
    ["Num4"] = "scripts/gates/not.lua",
    ["Num5"] = "scripts/gates/halfadder.lua"
}

return binds

Читать полностью »

 Айсберг Доменов Верхнего Уровня

Айсберг Доменов Верхнего Уровня

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js