Тетрис в PDF в браузере
Разработчик Томас Ринсма представил проект pdftris — тетрис в PDF в браузере. Код написан на Python и опубликован на GitHub.
Как пояснил разработчик: «Я понял, что движки PDF современных настольных браузеров (PDFium и PDF.js) поддерживают JavaScript с достаточным количеством примитивов ввода‑вывода для создания простой игры вроде Tetris. Было немного сложно найти объединение функций, которые работают в обоих движках, но в итоге оказалось, что отображение/скрытие „полей“ аннотаций хорошо работает для создания монохромных пикселей, а ввод с клавиатуры можно осуществить, набрав текст в поле ввода. В целом это довольно криво, но это хорошее напоминание о том, насколько универсальным может быть скриптование PDF. Связанный PDF полностью в ASCII, поэтому вы можете просто открыть его в текстовом редакторе или посмотреть исходный код здесь: https://github.com/ThomasRinsma/pdftris/blob/main/gengrid.py».
Код: https://github.com/ThomasRinsma/pdftris
Демо: https://th0mas.nl/downloads/pdftris.pdf
Разработчик Томас Ринсма представил проект pdftris — тетрис в PDF в браузере. Код написан на Python и опубликован на GitHub.
Как пояснил разработчик: «Я понял, что движки PDF современных настольных браузеров (PDFium и PDF.js) поддерживают JavaScript с достаточным количеством примитивов ввода‑вывода для создания простой игры вроде Tetris. Было немного сложно найти объединение функций, которые работают в обоих движках, но в итоге оказалось, что отображение/скрытие „полей“ аннотаций хорошо работает для создания монохромных пикселей, а ввод с клавиатуры можно осуществить, набрав текст в поле ввода. В целом это довольно криво, но это хорошее напоминание о том, насколько универсальным может быть скриптование PDF. Связанный PDF полностью в ASCII, поэтому вы можете просто открыть его в текстовом редакторе или посмотреть исходный код здесь: https://github.com/ThomasRinsma/pdftris/blob/main/gengrid.py».
Код: https://github.com/ThomasRinsma/pdftris
Демо: https://th0mas.nl/downloads/pdftris.pdf
👍13😁5🤯5❤1👎1🥴1
Масштабируемость архитектуры — это способность системы справляться с возросшей рабочей нагрузкой, многократно применяя экономически эффективную стратегию.
Основные препятствия для масштабируемости:
1) Централизованные компоненты: могут стать единой точкой отказа в работе
2) Компоненты с высокой задержкой: они выполняют длительные по времени операции
3) Сильная связанность: затрудняет масштабирование компонентов
Поэтому для построения масштабируемой системы лучше следовать принципам отсутствия состояния, слабой связанности и асинхронной обработки.
Распространенные методы улучшения масштабируемости:
- Балансировка нагрузки: распределяйте запросы по нескольким серверам, чтобы не допустить превращения одного сервера в узкое место
- Кэширование: сохранение в памяти наиболее часто запрашиваемой информации
- Обработка на основе событий: применяйте асинхронность для обработки длительных задач
- Шардинг: разделение большого набора данных на более мелкие подмножества - шарды, для горизонтальной масштабируемости
Основные препятствия для масштабируемости:
1) Централизованные компоненты: могут стать единой точкой отказа в работе
2) Компоненты с высокой задержкой: они выполняют длительные по времени операции
3) Сильная связанность: затрудняет масштабирование компонентов
Поэтому для построения масштабируемой системы лучше следовать принципам отсутствия состояния, слабой связанности и асинхронной обработки.
Распространенные методы улучшения масштабируемости:
- Балансировка нагрузки: распределяйте запросы по нескольким серверам, чтобы не допустить превращения одного сервера в узкое место
- Кэширование: сохранение в памяти наиболее часто запрашиваемой информации
- Обработка на основе событий: применяйте асинхронность для обработки длительных задач
- Шардинг: разделение большого набора данных на более мелкие подмножества - шарды, для горизонтальной масштабируемости
❤1
Системные журналы Linux из каталога /var/log вкратце:
syslog: основной файл журнала, в который поступают многие другие журналы, содержит сообщения от различных системных служб и приложений
auth.log: содержит сообщения аутентификации (успешные и неудачные попытки входа в систему, изменения паролей, события аутентификации пользователей)
kern.log: содержит сообщения, связанные с ядром (ошибки оборудования, загрузка модулей и другие действия ядра)
messages: содержит системные сообщения, как запуск системы, завершения работы и общие системные события
dmesg: содержит сообщения кольцевого буфера ядра, обеспечивая просмотр в реальном времени событий, связанных с ядром, и обнаружение оборудования во время загрузки системы
cron: содержит сообщения, связанные с заданиями cron и запланированными задачами (время их выполнения и любые ошибки, возникшие во время выполнения)
secure: содержит сообщения, связанные с безопасностью (попытки аутентификации, повышение привилегий и другие события, связанные с безопасностью)
syslog: основной файл журнала, в который поступают многие другие журналы, содержит сообщения от различных системных служб и приложений
auth.log: содержит сообщения аутентификации (успешные и неудачные попытки входа в систему, изменения паролей, события аутентификации пользователей)
kern.log: содержит сообщения, связанные с ядром (ошибки оборудования, загрузка модулей и другие действия ядра)
messages: содержит системные сообщения, как запуск системы, завершения работы и общие системные события
dmesg: содержит сообщения кольцевого буфера ядра, обеспечивая просмотр в реальном времени событий, связанных с ядром, и обнаружение оборудования во время загрузки системы
cron: содержит сообщения, связанные с заданиями cron и запланированными задачами (время их выполнения и любые ошибки, возникшие во время выполнения)
secure: содержит сообщения, связанные с безопасностью (попытки аутентификации, повышение привилегий и другие события, связанные с безопасностью)
🔥10🥰1👏1
Скобки (круглые, квадратные, фигурные) в Bash. Что и когда использовать #linux
Media is too big
VIEW IN TELEGRAM
Вслед за тетрисом в PDF представлен новый проект Doom в PDF в браузере или DoomPDF. Код написан на C и опубликован на GitHub. Игровой PDF-файл открывается только в браузерах на базе Chromium, использующих движок PDFium. Это возможно, так как формат файла PDF поддерживает Javascript с собственной отдельной стандартной библиотекой. Современные браузеры (Chromium, Firefox) реализуют это как часть своих движков PDF
код - https://github.com/ading2210/doompdf
демо - https://doompdf.pages.dev/doom.pdf
код - https://github.com/ading2210/doompdf
демо - https://doompdf.pages.dev/doom.pdf
🤯4👍2
Балансировщик нагрузки vs API-шлюза vs Backend-For Frontend
✅ Балансировщик нагрузки (Load Balancer)
Балансировщик нагрузки распределяет входящие запросы по нескольким серверам. Также балансировщики нагрузки поддерживают доступность системы. Если один сервер выходит из строя, он направляет запрос на другой сервер
✅ API-шлюз (API Gateway)
API-шлюз служит в роли координатора в системе, перераспределяя запросы. API-шлюзы также могут выполнять различные функции, такие как аутентификация, ограничение скорости, ведение журнала и кэширование
✅ Backend-For Frontend (Бэкэнд для Фронтенда)
Backends for Frontend — это компонент, который обрабатывает запросы в соответствии с различными требования устройства/фронтэнда
✅ Балансировщик нагрузки (Load Balancer)
Балансировщик нагрузки распределяет входящие запросы по нескольким серверам. Также балансировщики нагрузки поддерживают доступность системы. Если один сервер выходит из строя, он направляет запрос на другой сервер
✅ API-шлюз (API Gateway)
API-шлюз служит в роли координатора в системе, перераспределяя запросы. API-шлюзы также могут выполнять различные функции, такие как аутентификация, ограничение скорости, ведение журнала и кэширование
✅ Backend-For Frontend (Бэкэнд для Фронтенда)
Backends for Frontend — это компонент, который обрабатывает запросы в соответствии с различными требования устройства/фронтэнда
👍3🥰1👏1
4 шаблона проектирования микросервисов:
✅ Database per service
Каждый микросервис управляет собственными данными. И ни один другой сервис не имеет прямой доступ к этим данным. Обмен данными осуществляется только через сервис, владеющий БД.
✅ Shared Database
Следует избегать этого шаблона, так как он увеличивает площадь атак и вероятность возникновения проблем. Но иногда это единственный вариант при постепенном переход к микросервисам. Он гибок, т.к. несколько сервисов используют общую БД
✅ API Composition
Пытается решить проблему реализации сложных запросов в архитектуре микросервисов. API Composer вызывает другие службы в требуемом порядке. После получения результатов перед их отправкой он объединяет данные в памяти
✅ CQRS + Event Sourcing
Приложение прослушивает события домена от других служб и обновляет отдельную БД запросов. Это упрощает обслуживание сложных запросов. CQRS также можно комбинировать с Event Sourcing, где состояние сущности (агрегата) сохраняется в виде последовательности событий
✅ Database per service
Каждый микросервис управляет собственными данными. И ни один другой сервис не имеет прямой доступ к этим данным. Обмен данными осуществляется только через сервис, владеющий БД.
✅ Shared Database
Следует избегать этого шаблона, так как он увеличивает площадь атак и вероятность возникновения проблем. Но иногда это единственный вариант при постепенном переход к микросервисам. Он гибок, т.к. несколько сервисов используют общую БД
✅ API Composition
Пытается решить проблему реализации сложных запросов в архитектуре микросервисов. API Composer вызывает другие службы в требуемом порядке. После получения результатов перед их отправкой он объединяет данные в памяти
✅ CQRS + Event Sourcing
Приложение прослушивает события домена от других служб и обновляет отдельную БД запросов. Это упрощает обслуживание сложных запросов. CQRS также можно комбинировать с Event Sourcing, где состояние сущности (агрегата) сохраняется в виде последовательности событий
👍4🔥2👏1
Новое исследование показывает, что активное использование ИИ приводит к ухудшению навыков критического анализа, особенно среди молодежи.
Ученые из цюрихской бизнес-школы SBS установили, что рост зависимости от технологий искусственного интеллекта сопровождается ухудшением способности к критическому осмыслению информации. Этот процесс обусловлен снижением когнитивных нагрузок
Люди полагаются на технологии искусственного интеллекта для снижения умственных усилий. Создается ситуация, когда нейронные сети, по сути, берут на себя часть мыслительных задач человека.
В рамках исследования о взаимосвязи ИИ и когнитивных функций, таких как память, внимание и решение задач, было привлечено порядка 670 участников. Их разделили на три возрастных группы: 17-25 лет, 26-45 лет и старше 46 лет. Сбор данных осуществлялся через анкетирование из 23 вопросов, оценивающих степень использования ИИ-инструментов, уровень когнитивного облегчения и развитие навыков критического мышления.
Результаты статистической обработки выявили значимую отрицательную корреляцию между частотой использования ИИ и уровнем критического мышления. Участники, активно использующие ИИ, демонстрировали снижение способности к оценке информации и решению сложных задач посредством размышлений.
Молодежь проявила большую склонность к использованию ИИ-технологий и показала худшие результаты в тестах на критическое мышление по сравнению с представителями старших возрастных категорий. Многие респонденты выразили тревогу относительно утраты навыков критического анализа из-за частого обращения к ИИ.
https://phys.org/news/2025-01-ai-linked-eroding-critical-skills.html
Ученые из цюрихской бизнес-школы SBS установили, что рост зависимости от технологий искусственного интеллекта сопровождается ухудшением способности к критическому осмыслению информации. Этот процесс обусловлен снижением когнитивных нагрузок
Люди полагаются на технологии искусственного интеллекта для снижения умственных усилий. Создается ситуация, когда нейронные сети, по сути, берут на себя часть мыслительных задач человека.
В рамках исследования о взаимосвязи ИИ и когнитивных функций, таких как память, внимание и решение задач, было привлечено порядка 670 участников. Их разделили на три возрастных группы: 17-25 лет, 26-45 лет и старше 46 лет. Сбор данных осуществлялся через анкетирование из 23 вопросов, оценивающих степень использования ИИ-инструментов, уровень когнитивного облегчения и развитие навыков критического мышления.
Результаты статистической обработки выявили значимую отрицательную корреляцию между частотой использования ИИ и уровнем критического мышления. Участники, активно использующие ИИ, демонстрировали снижение способности к оценке информации и решению сложных задач посредством размышлений.
Молодежь проявила большую склонность к использованию ИИ-технологий и показала худшие результаты в тестах на критическое мышление по сравнению с представителями старших возрастных категорий. Многие респонденты выразили тревогу относительно утраты навыков критического анализа из-за частого обращения к ИИ.
https://phys.org/news/2025-01-ai-linked-eroding-critical-skills.html
phys.org
Increased AI use linked to eroding critical thinking skills
A study by Michael Gerlich at SBS Swiss Business School has found that increased reliance on artificial intelligence (AI) tools is linked to diminished critical thinking abilities. It points to cognitive ...
💯12💔7👍6
Одна из техник функционального программирования - currying (каррирование, карринг) на примере языка Python #python
🤮1
«Яндекс» в феврале 2025 г. планирует предоставить сторонним разработчикам доступ к своей платформе SourceCraft (аналог сервиса GitLab) в режиме технического превью.
"Платформа SourceCraft включает ИТ-инструменты для непрерывной интеграции и развертывания, безопасной разработки, аудита, мониторинга проектов. В частности, SourceCraft предлагает систему контроля версий и хостинг кода, а также службу автоматического развертывания проекта CI/CD», - заявили в пресс-службе «Яндекс».
Первым компонентом SourceCraft станет Yandex Code Assistant, который на базе нейронных сетей сгенерирует наиболее вероятное продолжение кода по его фрагменту для ИТ-разработчика. С помощью ИИ Yandex Code Assistant способен по фрагменту кода генерировать наиболее вероятное продолжение.
https://www.cnews.ru/news/top/2025-01-14_yandeks_v_fevrale_2025_goda
"Платформа SourceCraft включает ИТ-инструменты для непрерывной интеграции и развертывания, безопасной разработки, аудита, мониторинга проектов. В частности, SourceCraft предлагает систему контроля версий и хостинг кода, а также службу автоматического развертывания проекта CI/CD», - заявили в пресс-службе «Яндекс».
Первым компонентом SourceCraft станет Yandex Code Assistant, который на базе нейронных сетей сгенерирует наиболее вероятное продолжение кода по его фрагменту для ИТ-разработчика. С помощью ИИ Yandex Code Assistant способен по фрагменту кода генерировать наиболее вероятное продолжение.
https://www.cnews.ru/news/top/2025-01-14_yandeks_v_fevrale_2025_goda
CNews.ru
«Яндекс» готовится открыть российским программистам доступ к своему «убийце» GitLab - CNews
ИТ-холдинг «Яндекс» в феврале 2025 г. планирует предоставить сторонним разработчикам доступ к своей платформе SourceCraft (т.е. это аналог сервиса GitLab) в режиме технического превью. Сама платформа...
😁7👍6❤1🔥1
Microsoft настоятельно посоветовала пользователям ПК на Windows 10 обновиться до Windows 11, пока это бесплатно и только в течение ограниченного времени. Помимо этого, Microsoft также объявила, что приложения Microsoft 365 могут перестать работать полностью, если пользователи не обновятся до Windows 11. (Поддержка Window 10 заканчивается 14 октября 2025г)
Если ПК окажется несовместимым с Windows 11, официальная рекомендация Microsoft — купить новый....
https://techcommunity.microsoft.com/blog/nonprofittechies/free-upgrade-to-windows-11-for-a-limited-time-only/4275494
Если ПК окажется несовместимым с Windows 11, официальная рекомендация Microsoft — купить новый....
https://techcommunity.microsoft.com/blog/nonprofittechies/free-upgrade-to-windows-11-for-a-limited-time-only/4275494
TECHCOMMUNITY.MICROSOFT.COM
Home | Microsoft Community Hub
Our community is a collaborative place to learn about our products and ask questions! Check out our most popular conversations!
🤡20😁3👍2🤔2🤬1