Forwarded from Веб-страница
Dembrandt: извлекаем дизайн-системы сайтов одной командой
Open-source инструмент Dembrandt анализирует любой сайт и вытаскивает токены дизайна: цвета, шрифты, отступы, тени, радиусы, состояния кнопок и даже брейкпоинты. Выводит в JSON по стандарту W3C, делая пригодным для использования с Figma, Tailwind или Storybook.
Инструкция по использованию и установке по ссылке: https://www.dembrandt.com
#инструменты
@tproger_web
Читайте также в VK и Max
Open-source инструмент Dembrandt анализирует любой сайт и вытаскивает токены дизайна: цвета, шрифты, отступы, тени, радиусы, состояния кнопок и даже брейкпоинты. Выводит в JSON по стандарту W3C, делая пригодным для использования с Figma, Tailwind или Storybook.
Инструкция по использованию и установке по ссылке: https://www.dembrandt.com
#инструменты
@tproger_web
Читайте также в VK и Max
👍19❤5🔥3🤯2😭1😨1🙉1
Топ-10 техник масштабирования баз данных
Сохраняем👍
Индексация: Создавайте индексы на часто запрашиваемых столбцах, чтобы ускорить извлечение данных.
Вертикальное масштабирование: Увеличивайте мощность базы данных, добавляя больше CPU, оперативной памяти или хранилища, чтобы справляться с повышенной нагрузкой.
Кэширование: Храните часто запрашиваемые данные в памяти, чтобы снизить нагрузку на базу данных и улучшить время отклика.
Шардинг: Разделяйте данные на независимые фрагменты и распределяйте их между несколькими серверами, что позволяет горизонтально масштабировать базу данных и повышать производительность.
Репликация: Создавайте несколько копий базы данных на разных серверах, чтобы распределять запросы на чтение между репликами и повышать доступность.
Оптимизация запросов: Улучшайте SQL-запросы, исключайте ресурсоемкие операции и эффективно используйте индексы, чтобы ускорить выполнение запросов и снизить нагрузку на базу данных.
Пулинг соединений: Уменьшайте расходы на открытие и закрытие соединений с базой данных, переиспользуя существующие подключения, что повышает производительность при высокой нагрузке.
Вертикальное разделение: Разделяйте большие таблицы на более мелкие части, каждая из которых содержит подмножество столбцов оригинальной таблицы, что упрощает управление и улучшает производительность.
Денормализация: Храните данные в избыточном, но организованном формате, чтобы минимизировать сложные объединения и ускорить запросы, ориентированные на чтение.
Материализованные представления: Предварительно вычисляйте и сохраняйте результаты сложных запросов в отдельных таблицах, чтобы избегать дорогостоящего пересчета, снижая нагрузку на базу данных и ускоряя время отклика.
Сохраняем
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38💔4😍2⚡1🤯1😱1
Startups.RIP: мертвые YC стартапы — живые идеи
Нашёл для вас базу 1700+ YC-проектов с 2005, которые провалились или ушли в закат. Для каждого есть пост-мортем, объяснение почему рухнуло, и готовый план перезапуска на 2026 tech.
Внутри глубокий разбор, playbook на Claude/Cursor/Lovable, tech-spec. Возможно, именно тут вы найдёте идею на миллион, которую сможете реализовать и продать сегодня: https://startups.rip/
@tproger
Читайте также в VK, Max и Дзен
Нашёл для вас базу 1700+ YC-проектов с 2005, которые провалились или ушли в закат. Для каждого есть пост-мортем, объяснение почему рухнуло, и готовый план перезапуска на 2026 tech.
Внутри глубокий разбор, playbook на Claude/Cursor/Lovable, tech-spec. Возможно, именно тут вы найдёте идею на миллион, которую сможете реализовать и продать сегодня: https://startups.rip/
@tproger
Читайте также в VK, Max и Дзен
👍19😈2😴2🤩1🌚1😭1🎃1
OrbStack: быстрый и простой способ запуска контейнеров на Mac
Забудьте про медленный Docker Desktop, который жрёт батарею и CPU. OrbStack — это суперлёгкая замена: контейнеры стартуют за секунды, Linux-машины в 1 минуту, при этом всё нативно для Apple Silicon.
Что умеет:
— Docker drop-in: compose, build, networking, bind mounts — как родное.
— 15 дистров Linux (Ubuntu, Debian), SSH/VS Code remote.
— Rosetta x86 эмуляция, VirtioFS файлы, IPv6/VPN без проблем.
Инструмент бесплатен для личного пользования, а коммерческая версия стоит адекватных денег.
#инструменты #docker
@tproger
Читайте также в VK, Max и Дзен
Забудьте про медленный Docker Desktop, который жрёт батарею и CPU. OrbStack — это суперлёгкая замена: контейнеры стартуют за секунды, Linux-машины в 1 минуту, при этом всё нативно для Apple Silicon.
Что умеет:
— Docker drop-in: compose, build, networking, bind mounts — как родное.
— 15 дистров Linux (Ubuntu, Debian), SSH/VS Code remote.
— Rosetta x86 эмуляция, VirtioFS файлы, IPv6/VPN без проблем.
Инструмент бесплатен для личного пользования, а коммерческая версия стоит адекватных денег.
#инструменты #docker
@tproger
Читайте также в VK, Max и Дзен
❤16🫡4👏2💘2❤🔥1🔥1😎1
This media is not supported in your browser
VIEW IN TELEGRAM
Каким был интернет 2000-х 👨🦳
Современные юзеры привыкли к быстрой загрузке и безлимиту. Но олды помнят, как это — смотреть, как картинка появляется на экране по частям и тщательно рассчитывать каждый мегабайт, чтобы не остаться без интернета.
Скорость 56 кбит/с была роскошью, а «выйти в сеть» превращалось в ритуал: отключить телефон, запустить модем и посвятить этому весь вечер. Мы сохраняли страницы на диск, читали письма и тексты офлайн, чтобы не тратить драгоценные минуты, знали коды вроде *17#.
У нас на сайте лежит годный лонгрид по цифровой эпохе того времени. Так что, если хотите свести олдскулы или узнать больше об этих временах — велком. Вдруг пригодится 😒
Современные юзеры привыкли к быстрой загрузке и безлимиту. Но олды помнят, как это — смотреть, как картинка появляется на экране по частям и тщательно рассчитывать каждый мегабайт, чтобы не остаться без интернета.
Скорость 56 кбит/с была роскошью, а «выйти в сеть» превращалось в ритуал: отключить телефон, запустить модем и посвятить этому весь вечер. Мы сохраняли страницы на диск, читали письма и тексты офлайн, чтобы не тратить драгоценные минуты, знали коды вроде *17#.
У нас на сайте лежит годный лонгрид по цифровой эпохе того времени. Так что, если хотите свести олдскулы или узнать больше об этих временах — велком. Вдруг пригодится 😒
Please open Telegram to view this post
VIEW IN TELEGRAM
❤32😭17😢4👍3🕊2🎉1🐳1💋1😈1😨1🤗1
Forwarded from GameDev: разработка игр
This media is not supported in your browser
VIEW IN TELEGRAM
Просто оставлю это здесь и дам ссылку где можно поиграть: https://eyebrow-tetris.sanderdesnaijer.com
@make_game (теперь в VK и Max)
@make_game (теперь в VK и Max)
😁42❤3👍2😈2🤷♂1👎1🔥1🤪1💊1
Попасть в ИТ сегодня проще, чем когда‑либо, но при этом сложнее задержаться
Все из-за нейросетей, которые снижают порог входа, но также маскируют отсутствие фундамента. Можно сдать тестовое, нагенерировать код, объяснить решение красивыми словами от ИИ, но при этом не понять ни строчки.
В индустрии этот феномен назвали «когнитивным долгом». За него придется расплачиваться через полгода-год, когда без глубокого понимания архитектуры, логики и критического мышления вы упрётесь в потолок.
У нас на сайте вышел разбор этого явления. В статье автор разбирает, что происходит с мышлением, когда ИИ из инструмента превращается в костыль. Заглядывайте, чтобы понять, не попались ли вы в эту нейросетевую ловушку.
@tproger
Читайте также в VK, Max и Дзен
Все из-за нейросетей, которые снижают порог входа, но также маскируют отсутствие фундамента. Можно сдать тестовое, нагенерировать код, объяснить решение красивыми словами от ИИ, но при этом не понять ни строчки.
В индустрии этот феномен назвали «когнитивным долгом». За него придется расплачиваться через полгода-год, когда без глубокого понимания архитектуры, логики и критического мышления вы упрётесь в потолок.
У нас на сайте вышел разбор этого явления. В статье автор разбирает, что происходит с мышлением, когда ИИ из инструмента превращается в костыль. Заглядывайте, чтобы понять, не попались ли вы в эту нейросетевую ловушку.
@tproger
Читайте также в VK, Max и Дзен
😁30👍10❤5🤪3💯2💊2🍌1👨💻1🗿1😘1🤷1
Почему вам стоит добавить LLM‑as‑a‑Judge в пайплайн автоматического тестирования и как это сделать
Если вы читаете эту статью, значит, уже понимаете, зачем нужны автотесты и какую роль они играют в разработке LLM‑ассистентов и агентов. В таких проектах тестирование важнее классического: ответы недетерминированы, а задачи специфичны — от сбора бенчмарков до сравнения сгенерированных ответов с эталонными.
Здесь вы узнаете, почему стоит внедрить гибридный автоматизированный пайплайн, сочетающий сравнение векторов и подход LLM‑as‑a‑Judge, и как выстроить его так, чтобы ручная разметка оставалась только стартовым этапом, а не постоянной нагрузкой на команду.
#llm #ml
@tproger
Читайте также в VK, Max и Дзен
Если вы читаете эту статью, значит, уже понимаете, зачем нужны автотесты и какую роль они играют в разработке LLM‑ассистентов и агентов. В таких проектах тестирование важнее классического: ответы недетерминированы, а задачи специфичны — от сбора бенчмарков до сравнения сгенерированных ответов с эталонными.
Здесь вы узнаете, почему стоит внедрить гибридный автоматизированный пайплайн, сочетающий сравнение векторов и подход LLM‑as‑a‑Judge, и как выстроить его так, чтобы ручная разметка оставалась только стартовым этапом, а не постоянной нагрузкой на команду.
#llm #ml
@tproger
Читайте также в VK, Max и Дзен
👎12💊4🎅3🤷♂1❤1😁1😱1😨1🤝1🤪1🤷1
Можно ли нанять сеньора за 200к и почему эйчар приводит не тех?
На первый вопрос есть короткий ответ — «нет». Если наймете, то напишите нам, мы погрустим вместе с этим сеньором...
А вот на второй вопрос одним словом не отделаешься. Поэтому держите статью от директора HR-департамента, вот он рассказывает:
— как один 15-минутный созвон техлида с рекрутером экономит от 500к для компании;
— почему идеальный по резюме кандидат проваливается, а интроверта нанимают;
— как бороться с ИИ-суфлерами.
Разбираемся в рассинхроне: https://tprg.ru/NIhO
@tproger
Читайте также в VK, Max и Дзен
На первый вопрос есть короткий ответ — «нет». Если наймете, то напишите нам, мы погрустим вместе с этим сеньором...
А вот на второй вопрос одним словом не отделаешься. Поэтому держите статью от директора HR-департамента, вот он рассказывает:
— как один 15-минутный созвон техлида с рекрутером экономит от 500к для компании;
— почему идеальный по резюме кандидат проваливается, а интроверта нанимают;
— как бороться с ИИ-суфлерами.
Разбираемся в рассинхроне: https://tprg.ru/NIhO
@tproger
Читайте также в VK, Max и Дзен
❤8🔥5☃3🎉3💔3🙉2🥰1💯1🤝1🆒1💘1
Детальный обзор полей Галуа
«Попросите Якоби или Гаусса публично высказать своё мнение — не о истинности, а о важности этих теорем. Позже, я надеюсь, найдутся люди, которым будет выгодно разобраться во всём этом хаосе.»
Этими словами Эварист Галуа завершал письмо своему другу Огюсту Шевалье за два дня до смерти от ран на дуэли в 21 год. Ни Якоби, ни Гаусс так и не разобрались в его работах, но спустя 15 лет Жозеф Лиувилль их опубликовал и они легли в основу современной алгебры, став известными как теория Галуа. В этой статье разберём одну из её частей — поля Галуа, которые сегодня широко применяются в криптографии и избыточном кодировании даже на уровне специализированных расширений Intel и AMD.
@tproger
Читайте также в VK, Max и Дзен
«Попросите Якоби или Гаусса публично высказать своё мнение — не о истинности, а о важности этих теорем. Позже, я надеюсь, найдутся люди, которым будет выгодно разобраться во всём этом хаосе.»
Этими словами Эварист Галуа завершал письмо своему другу Огюсту Шевалье за два дня до смерти от ран на дуэли в 21 год. Ни Якоби, ни Гаусс так и не разобрались в его работах, но спустя 15 лет Жозеф Лиувилль их опубликовал и они легли в основу современной алгебры, став известными как теория Галуа. В этой статье разберём одну из её частей — поля Галуа, которые сегодня широко применяются в криптографии и избыточном кодировании даже на уровне специализированных расширений Intel и AMD.
@tproger
Читайте также в VK, Max и Дзен
👍30❤3☃3🕊2🤨2❤🔥1😁1🌭1😭1👻1💘1
Пакет с 97 млн загрузок крал ключи при каждом запуске Python — и это не кликбейт
В популярном LiteLLM, который используют как единый шлюз к сотне LLM, нашли стилер. Версии 1.82.7 и 1.82.8 уже удалены из PyPI, но они успели разойтись — и вредоносный код не требовал даже импорта библиотеки.
Достаточно было установить пакет. В версии 1.82.8 скрипт срабатывал при каждом старте интерпретатора, собирал SSH-ключи, токены AWS, GCP, Azure, переменные окружения и отправлял на поддельный домен. Обнаружили атаку случайно: баг в стилере устроил fork-бомбу, съел всю память и привлёк внимание.
Это не единичный случай. Группировка TeamPCP за последние дни скомпрометировала уже несколько инструментов разработки, и паттерн везде один — захват аккаунта мейнтейнера и публикация вредоносной версии в реестр.
Если в ваших проектах или CI/CD был
Подробности в материале.
#новости
В популярном LiteLLM, который используют как единый шлюз к сотне LLM, нашли стилер. Версии 1.82.7 и 1.82.8 уже удалены из PyPI, но они успели разойтись — и вредоносный код не требовал даже импорта библиотеки.
Достаточно было установить пакет. В версии 1.82.8 скрипт срабатывал при каждом старте интерпретатора, собирал SSH-ключи, токены AWS, GCP, Azure, переменные окружения и отправлял на поддельный домен. Обнаружили атаку случайно: баг в стилере устроил fork-бомбу, съел всю память и привлёк внимание.
Это не единичный случай. Группировка TeamPCP за последние дни скомпрометировала уже несколько инструментов разработки, и паттерн везде один — захват аккаунта мейнтейнера и публикация вредоносной версии в реестр.
Если в ваших проектах или CI/CD был
pip install litellm без фиксации версии, стоит проверить, не подтянулся ли скомпрометированный пакет. Ирония в том, что LiteLLM как раз и предназначен для хранения API-ключей к нейросетям.Подробности в материале.
#новости
😐34😁21🤯8😱3🤷♂2🆒2❤🔥1❤1🔥1🎃1🗿1
Как Google повышала знания работников в кабинках туалета
На фоне большого роста Google в 2006 году столкнулась с огромным количеством багов. Чтобы справиться с этим, инженеры решили подойти к задаче нестандартно.
В шутку было предложено обучать сотрудников прямо в туалетах — месте, где внимание пусть ненадолго, но точно сосредоточено. Так и появился Tech on the Toilet (TotT) — одностраничные листовки с качественным техническим контентом по тестированию.
Реакции на это были смешанные: одни благодарили за знания, другие просили оставить их в покое. Но концепция сработала и разрослась — теперь TotT охватывает темы от чистого кода до веба и ML.
Отличный пример как креатив может сделать рутинные процессы эффективнее🧻
#факты
@tproger
Читайте также в VK, Max и Дзен
На фоне большого роста Google в 2006 году столкнулась с огромным количеством багов. Чтобы справиться с этим, инженеры решили подойти к задаче нестандартно.
В шутку было предложено обучать сотрудников прямо в туалетах — месте, где внимание пусть ненадолго, но точно сосредоточено. Так и появился Tech on the Toilet (TotT) — одностраничные листовки с качественным техническим контентом по тестированию.
Реакции на это были смешанные: одни благодарили за знания, другие просили оставить их в покое. Но концепция сработала и разрослась — теперь TotT охватывает темы от чистого кода до веба и ML.
Отличный пример как креатив может сделать рутинные процессы эффективнее🧻
#факты
@tproger
Читайте также в VK, Max и Дзен
❤38😁16✍11❤🔥2💯2🤨2🍓2🍾2👍1💘1😘1
Forwarded from Точка входа в программирование
Процессор в вашем компьютере угадывает будущее. И ошибается в 5% случаев
Мы знаем, что код на отсортированном массиве работает быстрее, чем на неотсортированном. Тот же массив, тот же алгоритм, и те же данные. Просто в другом порядке. Всё потому, что процессор постоянно пытается предсказать будущее. Буквально. Он гадает, какая ветка
Давайте вместе разберёмся, как это работает:
https://habr.com/ru/articles/1013098/
@prog_point (теперь ещё в VK и Max)
Мы знаем, что код на отсортированном массиве работает быстрее, чем на неотсортированном. Тот же массив, тот же алгоритм, и те же данные. Просто в другом порядке. Всё потому, что процессор постоянно пытается предсказать будущее. Буквально. Он гадает, какая ветка
if выполнится ещё до того, как условие будет вычислено. И на отсортированных данных ему угадывать проще.Давайте вместе разберёмся, как это работает:
https://habr.com/ru/articles/1013098/
@prog_point (теперь ещё в VK и Max)
🔥15👏7🗿6💯5🤨4🤓3❤🔥2😐2🎃1💅1🙉1
И снова пора хвастаться!
В прошлом выпуске вы рассказали:
— о проекте для планирования учёбы,
— решении np-hard для сортировки контейнеров в стеках,
— аналоге Skype,
— платформе для подготовки к фронтенд-собесам,
— приложении для путешествий,
— цифровом мозге для obsidian и не только.
Теперь расскажите, как успехи с развитием этих проектов? А те, кто ещё не хвастался, не стесняйтесь и пишите о своих проектах в комментариях.
@tproger
Читайте также в VK, Max и Дзен
В прошлом выпуске вы рассказали:
— о проекте для планирования учёбы,
— решении np-hard для сортировки контейнеров в стеках,
— аналоге Skype,
— платформе для подготовки к фронтенд-собесам,
— приложении для путешествий,
— цифровом мозге для obsidian и не только.
Теперь расскажите, как успехи с развитием этих проектов? А те, кто ещё не хвастался, не стесняйтесь и пишите о своих проектах в комментариях.
@tproger
Читайте также в VK, Max и Дзен
🍓3💘3✍2👍2🙏2💔2🗿2👌1😴1🤓1🎅1
Большая подборка статей, которая поможет изучить 30 основ проектирования систем
Осталось только лайк поставить и сохранить👍
#архитектура
1. APIs
2. Вебхуки
3. REST и GraphQL
4. API Gateway
5. Балансировщики нагрузки
6. Алгоритмы балансировки нагрузки
7. Прокси vs Обратный прокси
8. Масштабируемость
9. Доступность (Availability)
10. Единая точка отказа (SPOF)
11. Теорема CAP
12. Типы баз данных
13. SQL или NoSQL
14. Транзакции ACID
15. Индексирование баз данных
16. Шардирование или партиционирование БД
17. Согласованное хеширование (Consistent Hashing)
18. Захват изменения данных (Change Data Capture, CDC
19. Кэширование
20. Стратегии кэширования
21. Политики очищения кэша (Cache Eviction Policies)
22. CDN (Сети доставки контента)
23. Алгоритмы ограничения скорости запросов (Rate Limiting)
24. Очереди сообщений (Message Queues)
25. Фильтр Блума
26. Идемпотентность
27. Конкурентность и параллелизм
28. Состояние: stateful vs stateless
29. Long polling vs WebSockets
30. Пакетная обработка и потоковая обработка
Осталось только лайк поставить и сохранить
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
❤54👍32👏3🍌2👨💻2💅2🏆1💋1🎄1💘1😘1
Media is too big
VIEW IN TELEGRAM
Doom на чистом Go
Переписать классический DOOM на Go без единого вызова C? Это реально. Репозиторий gore — порт doomgeneric, автоматически конвертированный из C через ccgo, а затем доведённый до ума вручную.
Движок полностью абстрагирован от ввода-вывода через простой интерфейс
Уже есть три готовых примера:
— терминальный клиент с ANSI-графикой (Doom в консоли),
— веб-сервер с управлением через браузер,
— оконная версия на Ebitengine.
Сборка под любую ОС, включая WebAssembly, прямо из коробки. Из нереализованного: глобальные переменные оригинала пока не дают запустить два экземпляра в одном процессе, и остались отдельные вызовы
Для запуска нужен Go 1.24+ и любой WAD-файл (поддерживаются DOOM, DOOM II, Ultimate DOOM, Final DOOM).
Исходный код, примеры и инструкции — здесь: https://github.com/AndreRenaud/gore
Переписать классический DOOM на Go без единого вызова C? Это реально. Репозиторий gore — порт doomgeneric, автоматически конвертированный из C через ccgo, а затем доведённый до ума вручную.
Движок полностью абстрагирован от ввода-вывода через простой интерфейс
DoomFrontend. Чтобы запустить игру на любой платформе, достаточно реализовать всего два метода — DrawFrame и GetEvent. Остальное опционально.Уже есть три готовых примера:
— терминальный клиент с ANSI-графикой (Doom в консоли),
— веб-сервер с управлением через браузер,
— оконная версия на Ebitengine.
Сборка под любую ОС, включая WebAssembly, прямо из коробки. Из нереализованного: глобальные переменные оригинала пока не дают запустить два экземпляра в одном процессе, и остались отдельные вызовы
unsafe.Для запуска нужен Go 1.24+ и любой WAD-файл (поддерживаются DOOM, DOOM II, Ultimate DOOM, Final DOOM).
Исходный код, примеры и инструкции — здесь: https://github.com/AndreRenaud/gore
🤷♀12🔥7😐6❤3⚡2😍2🐳2👎1🆒1😘1