В начало истории#DigitalДиалоги (часть 2): Тильда — фуфло?😵Дальше разговор пошёл по накатанной.СеньорЛэнд заявил:“Мы не работаем с Тильдой. Это фуфло для бедных. Уважающие себя агентства с этим даже не связываются.”Интересно, подумал я, почему тогда топовые агентства России используют Тильду для промо и тестов?А всё просто: они умеют выбирать инструмент под задачу.Тильда — не конкурент Битриксу.Это инструмент для скорости, проверки спроса и гибкости.Не всегда нужен грузовик, чтобы отвезти коробку.❗️Главное не инструмент, а осознанный выбор.Если задача — быстро проверить гипотезу, зачем тянуть за собой сложный код и сервера?
Веб-разработка — страница 8
Лента темы
lavandulaВоу! Современный веб-фреймворк на C. Да да, реально на C, все серьезно. Можно по-быстрому накидать веб-приложение и наслаждаться скоростьюLavandula - это легковесный, быстрый и интуитивно понятный веб-фреймворк на C, созданный для быстрой разработки современных веб-приложений. Он ориентирован на простоту, производительность и эффективность, предоставляя все необходимые компоненты без лишней сложности более тяжеловесных фреймворков.#kodhttps://kodikapusta.ru/news/qy79-lavandula

Использование атрибута accept для выбора файлов в HTML 🧐Атрибут accept в HTML позволяет ограничить типы файлов, которые можно выбрать через форму загрузки. Например, если вы хотите разрешить пользователю загружать только изображения, вы можете использовать следующий код:<input type="file" accept="image/*">Это ограничит выбор файлов в диалоговом окне только изображениями (например, .jpg, .png и другие). Также можно указывать конкретные расширения:<input type="file" accept=".jpg, .png">‼️ Важное замечание: не полагайтесь только на acceptХотя атрибут accept полезен для улучшения пользовательского опыта, важно понимать, что это не защищает от ошибок и не является надёжным механизмом безопасности. Ведь пользователь может:✔️ Обойти ограничение, выбрав файл с неподобающим расширением через инструменты разработчика;✔️ Ввести путь к файлу вручную, игнорируя ограничения в диалоговом окне.➡️ Это значит, что атрибут accept — всего лишь подсказка для пользователя, а не строгий фильтр.Поэтому не забывайте про дополнительные проверки, чтобы гарантировать, что загружаемые файлы соответствуют ожидаемым типам. 👍
☣️ Один HTTP-запрос для DoS, или как CVE-2025-3600 может превратиться в RCEВчера watchTowr Labs опубликовали разбор свежей уязвимости CVE-2025-3600 в Progress Telerik UI для ASP.NET AJAX — одной из самых популярных библиотек для веб-разработки на .NET. Официально это DoS, но реальность куда интереснее.🔎 В чем суть? Уязвимость типа Unsafe Reflection позволяет атакующему контролировать параметр prtype в запросе к /Telerik.Web.UI.WebResource.axd. Приложение передает этот параметр в Type.GetType() и инициализирует указанный класс через его публичный конструктор без аргументов. Звучит безобидно? Не совсем.💥 DoS из коробки: Используя гаджет из .NET Framework (System.Management.Automation.Remoting.WSManPluginManagedEntryInstanceWrapper), можно вызвать краш приложения одним HTTP-запросом. Когда Garbage Collector соберет объект, финализатор попытается освободить неинициализированный handle — необработанное исключение, и приложение падает. Один запрос каждые 2 минуты держит сервис в офлайне.⚡️ Но это не всё! Исследователи показали, что в зависимости от окружения уязвимость может привести к Remote Code Execution. Как? Конструкторы без аргументов могут:- Читать данные из query-параметров, cookies или headers- Десериализовать файлы из предсказуемых путей- Регистрировать небезопасные assembly resolvers в AppDomain.AssemblyResolve🎯 Живой пример: watchTowr продемонстрировали pre-auth RCE-цепочку в Sitecore Experience Platform. CVE-2025-3600 использовалась для триггера уязвимого assembly resolver, который загружает вредоносную DLL с path traversal. В комбинации с CVE-2025-34509 (bypass аутентификации) получается полноценный RCE без авторизации.📊 Масштаб катастрофы: Библиотека используется миллионами окружений по всему миру. Простой поиск в FOFA показывает ~185,000 результатов. Уязвимость существовала 14 лет. Telerik UI уже имеет историю критических багов (CVE-2017-9248, CVE-2019-18935), которые до сих пор активно эксплуатируются.🛡 Что делать? Progress выпустила патч. Проверьте, используется ли Telerik UI в ваших приложениях (запрос к /Telerik.Web.UI.WebResource.axd покажет это), и обновитесь как можно скорее.📖 Хотите узнать все технические детали, увидеть PoC и разобрать RCE-цепочку? Полный разбор с диаграммами и кодом ждет вас в PDF-файле!🔗 Оригинальное исследование: https://labs.watchtowr.com/more-than-dos-progress-telerik-ui-for-asp-net-ajax-unsafe-reflection-cve-2025-3600/

❌Выхода нет! Как-то на менторстве аналитик спросил меня: "Нужно ли описывать сценарий выхода пользователя из системы?"Вцелом логично, если есть сценарий "входа в систему", то должен быть сценарий "выхода из системы".Но честно, я зависла над вопросом #капитаночевидность и поняла, что в ТЗ практически нигде не видела описания выхода из системы. Кнопка была, но самого сценария не было. При этом и вход заключался в "авторизации и аутентификации", и не назывался входом.Что посоветуете, описывать сценарий "выхода из системы"❓И это выход именно из аккаунта, личного кабинета. А уже в личном кабинете пользователь получает роль, полномочия и доступ к набору операций.#usecases #сценарии #выходанет

⬜️ Как я победил 404 в WordPress, когда CPT и страницы живут в одной url вложенности ⬜️Недавно столкнулся с довольно интересной ситуацией у букмекеров:нужно было, чтобы существовали URL вида/bookmaker-rating/1xbet/ ← страница букмекера (CPT)/bookmaker-rating/about-rating/ ← обычная страницаА WordPress, конечно, говорит: «нет».Потому что у кастомного пост-типа bookmaker стоит rewrite['slug'] = 'bookmaker-rating',и он считает, что всё под этим путём — это букмекеры.Страницы просто не доходят до роута и отлетают 404.❌ Суть бага:WP не умеет на одном уровне различать CPT и page.Если слаг у пост-типа совпадает с директорией страниц, одна из сущностей «съедается».✅ Решение:Добавил фильтр request, который проверяет, существует ли букмекер с таким slug.Если да — отдаёт его.Если нет — считает, что это страница.Плюс добавил собственное правило для /bookmaker-rating/.Вот код:add_filter('request', function ($query_vars) { if (isset($query_vars['pagename']) && strpos($query_vars['pagename'], 'bookmaker-rating/') === 0) { $slug = explode('/', $query_vars['pagename'])[1] ?? null; if ($slug && get_page_by_path($slug, OBJECT, 'bookmaker')) { $query_vars = [ 'post_type' => 'bookmaker', 'name' => $slug, ]; } else { $query_vars['pagename'] = 'bookmaker-rating/' . $slug; } } return $query_vars;});add_action('init', function () { add_rewrite_rule( '^bookmaker-rating/([^/]+)/?$', 'index.php?pagename=bookmaker-rating/$matches[1]', 'top' );});📌 Если статья была полезна, то буду рад, если вы поделитесь ей с друзьями разработчиками.➡️ Ставьте реакции, если было полезно. Тогда я пойму, что такие темы интересны и посты будут выходить чаще.OlegTix | #wordpress #php
Если вы сомневались в величии питона в последнее время, то кажется еще один бастион пал.Python теперь можно запускать внутри node.js.https://blog.platformatic.dev/bring-python-asgi-to-your-nodejs-applicationsОфициальная мотивация в том, чтобы добавить AI стек внутри серверных node.js приложений. Но мы то знаем, что если человек попробует написать серверную часть на python, то вряд ли захочется потом писать на typescript/javascript. Я вот недавно попробовал писать на обычной Java и мне очень захотелось писать на Python. Потом открыл фронтенд код на React и опять захотелось писать на Python. Разработчику предлагается сначала сделать приложение на питоне, а потом вокруг него сделать обертку:import Fastify from 'fastify'import { fileURLToPath } from 'node:url'import { dirname, resolve } from 'node:path'import { Python, Request } from '@platformatic/python-node'const fastify = new Fastify()const python = new Python({ docroot: resolve(import.meta.dirname, 'public'), appTarget: 'api:app' // Points to our FastAPI app})// Route all requests to Pythonfastify.all('/*', async (req, reply) => { const headers = Object.fromEntries( Object.entries(req.headers).map(([key, value]) => [ key, Array.isArray(value) ? value : [String(value)] ]) ) const pythonRequest = new Request({ method: req.method, url: new URL(req.raw.url, `http://${req.headers.host ?? 'localhost'}`).toString(), headers, body: req.body }) const pythonResponse = await python.handleRequest(pythonRequest) reply.status(pythonResponse.status) for (const [key, value] of pythonResponse.headers.entries()) { reply.header(key, value) } reply.send(pythonResponse.body)})await fastify.listen({ port: 3042 })console.log('Listening on http://localhost:3042')Если внимательно присмотреться, то можно предположить, что это просто прокси который обращается к проекту на Python.А теперь будет критика этого подхода. Platformatic вероятно очень хорошие rust/js разработчики, но очень плохие бэкенд и python разработчики. Потому что возьмем простую историю ради которой имеет смысл весь этот огород. Мы хотим загрузить модель и что-то с ее помощью ответить пользователю. Возьму тот же код, который у меня был в прошлом посте:from sentence_transformers import SentenceTransformerqwen = SentenceTransformer("Qwen/Qwen3-Embedding-0.6B") #💀Вот эта строка нам дает порядка 3 гигабайт памяти. Я не так много разворачивал на бэке node-js приложений, но в целом это не выглядит адекватно решенной задачей. Конечно можно везде засунуть виртуализацию. Но вопреки общественному мнению я считаю, что докер и куберы полезны в гораздо меньшем количестве кейсов чем приятно использовать. Да, они коммерчески выгодны, но фактически они влияют только на цену деплоя и все. Я многократно видел и участвовал в проектах где девопс благодаря добавлению новых слоев обеспечивал себе высокую занятость, да так что у него не оставалось времени на то чтобы сделать хоть что-то полезное для проекта. Не говоря уже о том насколько сильно различается стоимость облачных ресурсов по сравнению просто с обычными серверами. А если короче: подход очень сомнительный. Лучше использовать обычное проксирование чем этот подход.
Рост трафика в 3 раза за 3 месяцаТематика: накопители электроэнергии сегмента премиум (чек от 1 млн)Что сделано:— Донесена ценность и команда клиента делала задачи по техническому SEO и функционалу в течении 2-3 недель с момента постановки им задач— Дроп-домены с прокачкой и подклейкой— Ссылочная масса (микс крауда и вечных) + усиление по Tier2 и Tier3— Создание новых посадочных и написание SEO-текстов (да-да, они работают в 2025)— Про базовые SEO-истории писать не буду, итак все всё знают))

разблокирован новый кумир: https://thomaspark.co/portfolio/вы возможно видели Flexbox Froggy. это он сделалон делает много других образовательных игрушек. например он сделал игрушку про расстановку якорей в CSS. в 2024 году (!). кто из вас вообще помнит что такое якорь
Оптовая вставка блоков в Курсэдитор: Ctrl-C —> Ctrl-VВ Курсэдитор добавили фичу импорта блоков из текстовых редакторов. Буквально «скопировали кусок документа, Ctrl-V в окне браузера, получили готовые блоки в конструкторе»Сначала коротко по технике, дальше чуть про идеологию.✅ Что фича переносит:+ Заголовки H1 и H2: как в документе+ Текст: один параграф = один блок+ Изображения: вставленные изображения отдельным блоком❌ Что пока доделывают:— сохранение форматирования текста— буквы в верхнем и нижнем регистре— списки: пока что один пункт = один параграф = один блок⚠️ Шероховатости, которые уберут:▫️ Картинки вставляются без учёта обрезки в редакторе — вставляйте готовые▫️ Две картинки в строке вставляются последовательно — галереи делайте вручную▫️ При вставке используется максимальная ширина контейнера — после вставки примените настроенный «Стиль»❓ Что это значит для хип-хопа цифровых учебников?1️⃣ Гигиена документов — взлетает на новый уровень важности, хороший сценарий теперь прямо ускоряет сборку2️⃣ Ускорение работы с внутренними экспертами — подготовленные ими тексты можно быстрее превратить в курсы3️⃣ Высвобождение времени — основная часть переноса теперь делается быстрее, поэтому можно выделить больше времени на работу с типографикой и настройку интерактивовВ общем, удобно. Ждём расширений и обновлений функции.〰️〰️〰️👍🏻 — наконец-то!😐 — а что, раньше не было?🗿 — тЕкСтЫ сКуЧнЫЕ
Вк повторяет за телегой!Она брала умную ленту и повысила охваты?Аааа нихуа. Она тож показывает в вашем сообществе рекламу, которую нельзя отключать и за которую вам не платят 😂🥲Еще и рекламу МАААААААКС
Программируем фронт-енд с Claude CodeНаходим дизайн, который нравится -- где-нибудь на Mobbin или Dribble, думаю сработает так и так.Отдаём картинку умной сетке (на ваш выбор) с промптом:Deeply analyse the UI in this screenshot and describe it in as much detail as you can to hand over from a UI designer to a developer. Output characteristics as JSON and end with a prompt explaining how to implement the UI for a code agent. The app should be called Mevolut and should be modern and clean.Промпт, конечно, можно и нужно менять под контекст. На выходе будет подробный JSON (см. картинку).После этого идём в Cursor или Claude Code, и просим сделать что-то такое:Generate a new responsive page under app/mevolut for the Mevolut Settings screen using the JSON spec: implement two-column layout stacked on mobile; wire up complete state logic.Чтобы было интереснее. я попросил сгенерировать лого и картинки в replicate (есть у меня aigen агент, который может писать промпты и брать оттуда картинки).Чуть подкрутил скрипт на смену цен, чтобы счётчик бегал вверх-вниз. На всё это дело ушло $16.79 и полчаса.https://x.com/d4m1n/status/1974107207936716835@aizvestia#поделкИИ
❗️ Уроки по XSSМежсайтовый скриптинг (XSS) – это уязвимость, которая заключается во внедрении кода, исполняемого на стороне клиента (JavaScript) в веб-страницу, которую просматривают другие пользователи — Уязвимость возникает из-за недостаточной фильтрации данных, которые пользователь отправляет для вставки в веб-страницу Урок 1. Основы XSS и поиск уязвимых к XSS сайтов Урок 2. Скрытая передача данных, перехват нажатия клавиш, изменение внешнего вида сайта, подцепление на BeEF, фишинг, подсказки обхода фильтров Урок 3. Контексты внедрения XSS#XSS #Guide #Phishing #BeEF 🥷 INSPECTOR

Что такое BFFВ статье разберём, что такое Backend for Frontend, зачем он нужен и как упрощает работу мобильных и веб-приложений.https://telegra.ph/CHto-takoe-BFF-09-11
Что получается, когда IT-специалисты делают свою работу по принципу «И так сойдет»👆(Это запись моего сегодняшнего эфира про Prodamus XL.)Сутевой момент на 4:14 — там показываю проблему в верстке виджета оплаты, из-за которой не сканируется QR-код SberPay.Причем, можно исправить всего одну цифру в css, и все будет отображаться правильно. Как я делаю в режиме разработчика на 6:24.⛔️ Но нет, исправлять никто ничего не собирается! Ведь куда проще и удобнее слать отписки в духе «Это потому что у вас iframe», «Это потому, что у вас Microsoft Edge», и т.п.А результат — неслучившиеся покупки и фрустрированные клиенты.💫 Если вы столкнулись с этой проблемой на моих страницах, пишите мне в личку, дам вам другой способ оплаты и скидку за потраченное время.⏺⏺⏺UPD от 10 октября: Продамус исправил отображение QR-кода, и мне даже специально отзвонился менеджер, чтобы об этом сообщить.🙏 Спасибо тебе, добрый человек, который переслал мой эфир нужным людям!
👁 Знаете, что больше всего раздражает в плеере Okko? Его поведение при окончании трансляций.Обычная для меня (и, думаю, не только) история: я включаю какой-то матч, затем ставлю на паузу и забываю. Возвращаюсь и обнаруживаю, что без спросу заиграл звук в «забытой» вкладке, потому что автоматически включилась какая-то другая трансляция. Вопрос — зачем? Может, я хотел концовку той самой оставленной трансляции досмотреть? И даже если нет, зачем меня дёргать туда, куда я не просил?Собираются ли это поведение исправлять?
🎨 Ну что, хочу поделиться своим опытом, как я делал сайт для нашего нового продукта в Naoma за 1 день и $0На входе: я без навыков дизайна, кодинга, создания сайтов на nocode решениях.Я перепробовал всё: Replit, Lovable, GPT-5, Claude.Результат каждый раз один: типовое сгенерированное говно, которое ещё и сложно корректировать.В итоге решил пойти другим путём:1️⃣ Взял готовый темплейт на Framer.2️⃣ Вместе с GPT-5 прописал контент под каждый блок.3️⃣ Сам руками собрал сайт на Framer.⏳ Итог: один день работы и сайт готов.Без боли, бесконечного тюнинга и ощущения, что смотришь на тысячу клонов одного и того же лендинга.👉 Вот что получилось: naoma.aiИногда магия - это не изобретать велосипед, а выбрать хороший шаблон и доделать по-своему. Возможно, я просто плохо работаю с Lovable, Replit и подобными решениями, но когда мне показывали сайты, сделанные с помощью AI, они все были одинаковые, дженерик с посредственным качеством. Мой личный вывод. Если вам надо сделать прототип какого-то простого решения (не лендинга), то Lovable и Replit могут быть отличным решением. Если нужен ленд с каким-то интересным дизайном, то проще сделать на Framer.
От REST-монолита к гибкой архитектуре GraphQL-федерации: реальный кейс Авто.руЧитать статью

Заметка сугубо практическая - но страждущих много, поэтому вот. Несколько лет назад единственным относительно вменяемым провайдером в моём доме был МГТС. Минус его был в том, что он поставлял интернет по оптике, сугубо со своим оборудованием в лице богомерзкого роутера от компании Sercomm. Роутер этот практически неконфигурируемый, со слабеньким вай-фаем, а ещё с закрытой админской частью (которая позволяла бы гибко управлять конфигурацией домашней сети, если бы была доступна в свежих версиях прошивок). Да, коллеги умудрялись раньше выцепить так называемый PLOAM-пароль от оптического модуля, и на базе трибалтийского оборудования AKA Mikrotik с SFP+ портом настроить себе более-менее вменяемую домашнюю сеть на китайских ONT. После перехода МГТС под волосатое крыло МТС, да обновления внутреннего ПО роутера - этот способ кратно усложнился - так как доступ к инженерной админке пропал. Чтобы завести собственный ONT-адаптер приходилось, натурально, лезть в железо, замыкать там некоторые контакты на плате при перезагрузке, параллельно подключившись к роутеру по UART, сбрасывать настройки роутера до заводских и уже вот там по отладочному интерфейсу выцеплять этот пароль, без которого никакой ONT работать не будет. Тлен? Тлен. Недавно у МТС появились в продаже медиаконвертеры, которые позволяют всей этой содомии избежать. Но, как гласит страшная информация на сайте, это доступно только новым абонентам. Что думает пытливый ум? Надо перезаключить договор! То есть расторгнуть и заключить его заново. И, наверное, метод это рабочий. Но я решил, что как Ильич пойду другим путём.Так вот, докладываю - никакого перезаключения не нужно. Если вы в Москве - достаточно просто подъехать в ближайший офис МТС с роутером, ТВ-приставкой (при наличии), пультом от неё и блоками питания от всего указанного. И сказать, что вы собираетесь расторгнуть договор. На вопрос почему - ответствуем, что вас не устраивает качество абонентского оборудования и вы хотите поставить своё. Поскольку ни один вменяемый (а МТС всё-таки вменяемый) провайдер не захочет терять абонента, который ему каждый месяц заносит деньги - вопрос с заменой серкома на PON-розетку - становится решаемым. Причем без проблем, они похоже с этим смирились и есть уже наработанная процедура. Создаёте заявку, к вам через некоторое время приезжает монтажник - ему отдаёте старое оборудование, он вам взамен ставит гигабитную коробочку-конвертор из GPON-оптики в медь. Всё, дальше уже только ваша фантазия. На фото - моя конфигурация, PON-розетка белая, чёрное - POE-инжектор и роутер. Живу на этом примерно месяц, плюс-минус неделя. Помни, дорогой коллега - иногда проще задолбать провайдера словесно, нежели рожать в муках технические костыли. Если вы в другом городе - работать это должно ровно также, оборудование - типовой медиаконвертор D-Link. Но ехать строго живьём - в техподдержке по телефону люди живут по скриптам, а в офисах - специально обучены на сохранение вас, как плательщика. Ибо если уж человек до офиса доехал - он явно настроен серьёзно. Такие дела. Плодитесь и размножайтесь, уважаемый коллега, всем чмоки в этом чатике. И избавления от Sercomm 6699, который всех нас мог бы довести до геены огненной. 📱 Айтишник в ватничке

К сожалению с ВК Видео не сложилось однако я кое что нашёл поинтереснее - 🙃 Яндекс диск. Оказывается если загрузить видео туда, то оно автоматически интегрируется во встроенный плеер и он более чем адекватный. Есть выбор качества, открывается без глюков и не нужен впн - пользуйтесь Почему я искал ещё какую-то платформу ведь может показаться что Телеги и Ютуба достаточно. Всё просто - в России плохой пинг на сервера Телеграма и бывает что даже какие-то мелкие файлы грузятся очень долго не говоря уже об большом видео. Ютуб замедлен в России без VPN, а сами ВПНы переодически блочат. Поэтому Яндекс диск выглядит как достойная альтернатива

Почти месяц я бился над этим блоком… (я писал ранее , что работаю над ним , и хотел бросить его миллион раз ) Да , это не канва и не тильда … да , там много еще чего стоит доработать …Но уже сейчас , это открывает новые возможности для творческих и креативных архитекторов. Возможность создавать красивые элементы , не дожидаясь когда «проснется дизайнер» Сейчас работаю над следующей фичей, точнее рядом фич, которые еще сильнее расширят возможности архитекторовМы постоянно добавляем инструменты для архитекторов , задача которых - уменьшить время на создание аппок для клиентов. Например , мы сделали мастер автоворонки, где надо просто указать количество шагов и будет создана аппка (как у меня в закрепе ) , включая все автосообщения бота … дальше останется взять видео от заказчика и добавить на страницы … 10 минут делов вместо нескольких дней Или как, меньше чем за 30 мин создать полноценную демку приложения для клиента из его канала, и прийти к нему уже с готовым приложением, и далее уже обговаривать улучшения за деньги …И все в этом духе …Все эти фичи первыми узнают участники нашей Академии Нотибот , дальше я принимаю решение какие фичи будут доступны всем , а какие будут доступны только сертифицированным архитекторам и участникам нашего клуба …❤️Еще из хорошего - у нас новые жирные кейсы по конверсиям . 🤒Из плохого , они на столько жирные , что в них не верят 😁😁😁
Затестил Supabase и понял, почему все так прутся.Базовые функции авторизации, сброса пароля, изменения пароля, управления юзерами, сессиями — это всё уже есть и работает из коробки, вместе с базой данных.Нативная интеграция с Lovable — и базовая аппка с авторизацией поднимается буквально за полчаса-час, даже если ты вообще не технарь. Честно говоря, у меня даже есть легкое сомнение по поводу обучения вайбкодингу: блин, это же так просто, бери и делай, чему тут учить? Но большинство почему-то все равно не делает. Поэтому придется делать курс 😅
Онлайн сервис для оптимизации размера изображений.Можно настраивать и смотреть результат в реальном времени.https://squoosh.appПС: детальнее про оптимизацию изображений рекоменду почитать здесь
Облигации и отчет Selectel Компания в конце августа подвела итоги за первое полугодие этого года и объявила о новом размещении облигаций. Напомним, что Selectel — провайдер IT-инфраструктуры, основная доля выручки компании приходится на облачные инфраструктурные сервисы (IaaS). Финансы— Выручка — 8,9 млрд ₽ (+46% г/г)— Облачные сервисы — 7,7 млрд ₽ (+47% г/г)— EBITDA скорр. — 5,2 млрд ₽ (+49% г/г), маржа 59%— Чистая прибыль — 1,8 млрд ₽ (+1%), рентабельность 21% (-9 п.п.)— ND/EBITDA LTM — 1,7x (-0,2 п.п.) Долговая нагрузка снижается, уровень комфортный. — FCF — -0.1 млрд ₽ (против 0.3 млрд ₽ в 2024)ОперационкаКлиенты — 30,1 тыс. (+5,3 тыс. за год). Крупные клиенты генерируют ~50% выручки; при этом малый и средний бизнес, прибегающий к услугам компании, остаётся значимой частью клиентской базы. По сферам деятельности потребители услуг достаточно диверсифицированы.Среди драйверов роста – расширение клиентской базы и развитие облачного рынка в целом. Компания развивает продуктовую линейку – например, обновляет собственную серверную ОС SelectelOS, начинает продажи серверного оборудования, запускает сервис регистрации доменов в .RU и .РФ.Бонды— Объём — 4 млрд ₽— Срок — 2,5 года— Купон фиксированный, ориентир ≤16,50% годовых (эфф. доходность ≤17,81%)— Выплата купонов каждые 30 дней— Цель — рефинансирование ноябрьского займа и реализация инвестиционной программы— Книга заявок откроется 23 сентября 2025 г.— Кредитный рейтинг эмитента — ruAA- (Эксперт РА) и A+(RU) (АКРА)ВыводКомпанию можно похвалить за ускоренный рост выручки и высокую рентабельность, но чистая прибыль пока не растет и нет свободного денежного потока. Новый выпуск облигаций — продолжение стратегии масштабирования с сохранением умеренной долговой нагрузки.P.S. Снимали видео про компанию, кому интересно — гляньте. @harmfulinvestor
😰 Pyshorteners — лёгкая библиотека, которая превращает длиннющие ссылки в короткие и удобные. А при желании ещё и разворачивает их обратно.Поддержка самых популярных сервисов сокращения URL прямо из Python: Adf.ly, Bit.ly, Chilp.it, Clck.ru, Cutt.ly, Da.gd, Git.io, Is.gd, NullPointer, Os.db, Ow.ly, Po.st, Qps.ru, Short.cm, Tiny.cc, TinyURL.comУстановка:pip install pyshortenersПример:import pyshortenerss = pyshorteners.Shortener()print(s.tinyurl.short("https://www.youtube.com/@PythonToday"))♎️ GitHub/Инструкция📖 Документация#soft #python #github
Bună dimineața 👋На этой неделе я предлагаю вам поговорить о том, благодаря чему существует наше сообщество людей из разных стран и с разных континентов, изучающих румынский язык. Мы поговорим о том, что нас связывает и позволяет изучать румынский эффективно и с удовольствием - despre internet (= об интернете) 🌐Как всегда, сегодня мы посмотрим список ключевых слов по теме недели 👌internet = интернетo rețea - două rețele = сетьo conexiune - două conexiuni = соединениеun site / o pagină web = сайт / веб-страницаun cont - două conturi = аккаунтo parolă - două parole = парольun acces = доступo aplicație - două aplicații = приложениеun apel video - două apeluri video = видеозвонокun e-mail - două e-mailuri = электронное письмоo notificare - două notificări = уведомлениеspam = спамo setare - două setări = настройкиo viteză - două viteze = скоростьa descărca / a încărca fișiere = скачивать / загружать файлыa se conecta (-ez) la internet = подключаться к интернетуa pierde conexiunea / a se deconecta (-ez) = терять соединениеa naviga (-ez) pe internet = сидеть в интернетеa accesa (-ez) = получать доступa scrie pe chat = писать в чатеa distribui = поделиться (постом, ссылкой)se blochează internetul = интернет зависаетА какие слова к этому списку можете добавить вы? Пожалуйста, поделитесь в комментариях👇#румынскийязык #полезныевыражения@limba_romana_cu_arina
Сейчас я балуюсь с созданием SEO-сайтов, чтобы научиться делать их от и до с помощью нейросетей.Получаются вот такие штуки. Это новый проект, который я накидал за сегодня.Здесь сгенерировано всё: логотип, картинки, тексты и так далее.Плюс в том, что потом сайт можно будет редактировать и дополнять, например, с телефона через Codex от OpenAI.Минус в том, что это самописный вариант, и нужно понимать, где и что генерировать, а также в целом разбираться в коде.Для разработки я использую Next.js в качестве фронтенда, он очень хорош для SEO.Конечно, тут готова только база из шрифтов, стилей, лейаутов, но уже смотрится хорошо, как по мне.И это первая работа, которая мне по-настоящему нравится, поэтому решил ею поделиться.
SVGL v4.2. Сайт, который хорошо бы иметь в закладках, чтобы не серчить интернет в поисках очередного лого в SVG 🖥В основном содержит логотипы цифровых продуктов, стартапов и фреймворков#бесплатное
Нужно ли включать камеру на видеозвонках? Новые правила цифрового этикетаВидеоконференции прочно вошли в нашу жизнь, а вместе с ними и новые правила общения. Если вас пригласили на онлайн-встречу, считается вежливым включить камеру. Это знак уважения к собеседникам и проявление вовлеченности в диалог.Но что, если у Вас нет такой возможности?Главное — предупредить об этом организатора в начале встречи. Достаточно короткого сообщения в чат или устного комментария. Подробно объяснять причины не обязательно — это личное дело каждого.А если Вы работаете из отпуска или красивого места?Уважайте внимание коллег: выберите нейтральный виртуальный фон или найдите ракурс без живописных пейзажей за спиной. Это поможет всем сохранить фокус на рабочих вопросах.Такие простые правила помогают создавать комфортную и профессиональную атмосферу 💙
📑 Документы на сайте — это не формальность, а ваша защита!Многие думают, что мы «придираемся».Но в суде одно и то же: решает цифровой след.Ваш сайт — это не просто дизайн и тексты. Это юридическая точка опоры, которая либо защищает вас, либо оставляет беззащитным.✅ Что обязательно должно быть:1️⃣ Реквизиты компании — название, ИНН, ОГРН/ОГРНИП, адрес, контакты. Без этого сразу падает доверие и появляется риск претензий по Закону о защите прав потребителей2️⃣ Публичная оферта — договор с клиентом прямо на сайте (цена, оплата, возвраты, ответственность). Ст. 437 ГК РФ3️⃣ Политика конфиденциальности — обязательна по закону ФЗ-1524️⃣ Согласие на обработку данных — чекбокс в формах. Без него штрафы: до 300 000 ₽, при повторе — до 500 000 ₽5️⃣ Cookie-баннер — уведомление о сборе аналитики, рекламы, метрики6️⃣ Уведомление РКН + российское хранение данных — нужно всем (ИП, самозанятым, ООО). Нарушение = штраф до 300 000 ₽ + риск блокировки сайта.📌 Факт:В феврале 2025 года Роскомнадзор проверил сайты с .RU-доменами.— у трети сайтов политика конфиденциальности была с ошибками или отсутствовала;— итог: 4,6 тыс. требований только за месяц.⚠️ Реальность:— 8 из 10 сайтов работают с нарушениями;— итог: потеря клиентов и миллионные штрафы.👉 Запомните: без документов сайт — просто красивая витрина. Он не защитит вас в споре и не вызовет доверия у клиента.💡 Хотите быть спокойны?Проверьте документы на сайте уже сейчас.А если нужно — пишите. Поможем быстро закрыть все риски.🎁 Первичная консультация бесплатна и ни к чему не обязывает НАШИ КОНТАКТЫ:Пишите: @KonstantinUristPravTechnoНаш бот: ЗДЕСЬ