🔥 Вся историю Unix - от первых 2.5 тысяч строк на PDP-7 до 30 миллионов строк современного FreeBSD.
По сути, это Git-машина времени, восстановленная вручную из 24 исторических снапшотов.
Что внутри:
- Полвека разработки сведены в непрерывную линию: 1970 → 2018, без пропавших релизов и дыр в истории.
- Почти 500 000 коммитов, более 2000 мерджей и около 1000 авторов — самых первых нашли через архивные документы и письма.
- Полная эволюция Unix: PDP-7, версии V1–V7, Unix/32V, все ветки BSD, SCCS-история, 386BSD, вся линейка FreeBSD от 1.0 до текущего дерева.
- Восстановление сделано с максимальной точностью — код собрали по крупицам из разных систем.
- Репозиторий только для чтения: он не принимает пуши, а регулярно пересобирается с нуля, чтобы история оставалась чистой и неизменной.
Это, пожалуй, самый аккуратный и полный архив развития Unix, который можно открыть прямо в GitHub:
https://github.com/dspinellis/unix-history-repo
@python_be1
По сути, это Git-машина времени, восстановленная вручную из 24 исторических снапшотов.
Что внутри:
- Полвека разработки сведены в непрерывную линию: 1970 → 2018, без пропавших релизов и дыр в истории.
- Почти 500 000 коммитов, более 2000 мерджей и около 1000 авторов — самых первых нашли через архивные документы и письма.
- Полная эволюция Unix: PDP-7, версии V1–V7, Unix/32V, все ветки BSD, SCCS-история, 386BSD, вся линейка FreeBSD от 1.0 до текущего дерева.
- Восстановление сделано с максимальной точностью — код собрали по крупицам из разных систем.
- Репозиторий только для чтения: он не принимает пуши, а регулярно пересобирается с нуля, чтобы история оставалась чистой и неизменной.
Это, пожалуй, самый аккуратный и полный архив развития Unix, который можно открыть прямо в GitHub:
https://github.com/dspinellis/unix-history-repo
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🕔 Как сделать задержку в Python разными способами
В Python есть несколько способов сделать задержку, и каждый подходит под разные задачи.
Обычная пауза - через time.sleep().
Неблокирующая задержка - через asyncio.sleep() в асинхронном коде.
Точная задержка в цикле — через time.perf_counter().
Выбирайте под свой сценарий. Подписывайся, больше фишек каждый день !
@python_be1
В Python есть несколько способов сделать задержку, и каждый подходит под разные задачи.
Обычная пауза - через time.sleep().
Неблокирующая задержка - через asyncio.sleep() в асинхронном коде.
Точная задержка в цикле — через time.perf_counter().
Выбирайте под свой сценарий. Подписывайся, больше фишек каждый день !
@python_be1
Анекдот: юзеры массово не могут зайти в Windows — после обновы пропала (https://www.ixbt.com/news/2025/11/30/microsoft-windows-11.html)... кнопка ввода пароля
Обновление KB5064081 снова «улучшило» систему: на экране блокировки внезапно исчезла кнопка для ввода пароля. Она невидимая, но формально существует.
Фикс от «майков» убил: нужно просто ткнуть в пустоту и надеяться, что попадёте. Проблема затронула тех, кто ставит предварительные обновления.
Пока не обновляемся🫡
@python_be1
Обновление KB5064081 снова «улучшило» систему: на экране блокировки внезапно исчезла кнопка для ввода пароля. Она невидимая, но формально существует.
Фикс от «майков» убил: нужно просто ткнуть в пустоту и надеяться, что попадёте. Проблема затронула тех, кто ставит предварительные обновления.
Пока не обновляемся🫡
@python_be1
iXBT.com
Microsoft снова немного «сломала» Windows 11. Кнопка для ввода пароля на экране блокировки может исчезнуть из-за обновления KB5064081
Очередное обновление Windows сломало очередную функцию системы. На сей раз сложно придётся тем, у кого ОС защищена паролем. Microsoft признала, что обновление KB5064081 немного затруднит вход в систему с помощью пароля.
⚡️ Annotation Toolkit помогает дизайнерам прямо в макете объяснить, как должны работать элементы интерфейса.
Проще говоря, он позволяет:
- подписывать элементы: что кликается, что меняется, как ведёт себя при разной ширине экрана;
- сразу указать требования по доступности: например, какой alt-текст нужен или что должно быть доступно с клавиатуры;
- убрать путаницу при передаче макета разработчикам, чтобы они точно понимали задумку.
Почему это важно:
Почти половина ошибок по доступности появляется только потому, что дизайнеры и разработчики по-разному понимают поведение элемента. Если зафиксировать эти детали заранее - проблемы просто не возникнут.
https://github.blog/enterprise-software/collaboration/level-up-design-to-code-collaboration-with-githubs-open-source-annotation-toolkit/
@python_be1
Проще говоря, он позволяет:
- подписывать элементы: что кликается, что меняется, как ведёт себя при разной ширине экрана;
- сразу указать требования по доступности: например, какой alt-текст нужен или что должно быть доступно с клавиатуры;
- убрать путаницу при передаче макета разработчикам, чтобы они точно понимали задумку.
Почему это важно:
Почти половина ошибок по доступности появляется только потому, что дизайнеры и разработчики по-разному понимают поведение элемента. Если зафиксировать эти детали заранее - проблемы просто не возникнут.
https://github.blog/enterprise-software/collaboration/level-up-design-to-code-collaboration-with-githubs-open-source-annotation-toolkit/
@python_be1
Ого, китайцы релизнули две новые опенсорс модели DeepSeek — и они показывают результат на уровне и даже лучше GPT-5 High и Gemini 3 Pro.
Так, DeepSeek-V3.2 Special обгоняет GPT-5 High сразу в нескольких категориях, включая кодинг и агентные задачи. А в олимпиадных бенчмарках по математике и информатике модель не просто берёт золото — она показывает результаты выше всех западных моделей.
DeepSeek-V3.2 уже доступна бесплатно в DeepSeek Chat (https://www.deepseek.com/) и HF. (https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Speciale) А звездочка Special пока только через API. Позиционируются обе, кстати, как модели для агентов.
Китайцы не дают Google и OpenAI отдыхать 😁
@python_be1
Так, DeepSeek-V3.2 Special обгоняет GPT-5 High сразу в нескольких категориях, включая кодинг и агентные задачи. А в олимпиадных бенчмарках по математике и информатике модель не просто берёт золото — она показывает результаты выше всех западных моделей.
DeepSeek-V3.2 уже доступна бесплатно в DeepSeek Chat (https://www.deepseek.com/) и HF. (https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Speciale) А звездочка Special пока только через API. Позиционируются обе, кстати, как модели для агентов.
Китайцы не дают Google и OpenAI отдыхать 😁
@python_be1
Топовые модели ИИ оказались либералами с приоритетами далекими от реальных граждан — и это тревожно.
Рассказываем об эксперименте:
🟢 6 моделей заставили проголосовать на выборах в 8 странах. Как вы уже поняли — их выбор оказался дружно смещен в сторону лево-либеральных взглядов.
🟢 Нюанс в том, что модели при выборе понижали реальные заботы граждан — иммиграционный контроль, преступность и стоимость жизни люди называли главными проблемами. А ИИ считали, что в приоритете зеленые инвестиции и военные конфликты.
🟢 Единственной белой вороной оказался Grok — у него либерально-правые взгляды. И, на удивление, в 6 из 8 стран его голос совпал с реальными результатами выборов.
🟢 Устойчивые предпочтения моделей в политике пугают исследователей — 1 из 10 избирателей уже советуются (https://algosoc.org/results/1-in-10-dutch-citizens-are-likely-to-ask-ai-for-election-advice-this-is-why-they-shouldnt?utm_source=chatgpt.com) с ИИ перед голосованием.
Посмотреть какие модели за кого голосовали можно тут, (https://llm-politics.foaster.ai/) а заодно почитать иногда просто безумные предложения ИИ по новым законам.
Жаль только, что среди стран нет России, было бы любопытно посмотреть 😁
@python_be1
Рассказываем об эксперименте:
🟢 6 моделей заставили проголосовать на выборах в 8 странах. Как вы уже поняли — их выбор оказался дружно смещен в сторону лево-либеральных взглядов.
🟢 Нюанс в том, что модели при выборе понижали реальные заботы граждан — иммиграционный контроль, преступность и стоимость жизни люди называли главными проблемами. А ИИ считали, что в приоритете зеленые инвестиции и военные конфликты.
🟢 Единственной белой вороной оказался Grok — у него либерально-правые взгляды. И, на удивление, в 6 из 8 стран его голос совпал с реальными результатами выборов.
🟢 Устойчивые предпочтения моделей в политике пугают исследователей — 1 из 10 избирателей уже советуются (https://algosoc.org/results/1-in-10-dutch-citizens-are-likely-to-ask-ai-for-election-advice-this-is-why-they-shouldnt?utm_source=chatgpt.com) с ИИ перед голосованием.
Посмотреть какие модели за кого голосовали можно тут, (https://llm-politics.foaster.ai/) а заодно почитать иногда просто безумные предложения ИИ по новым законам.
Жаль только, что среди стран нет России, было бы любопытно посмотреть 😁
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
💀➡️ Большинство кодеров не знают про это ускорение в Python
Одна из самых недооценённых оптимизаций в Python — вынесение повторяющихся вычислений в локальные переменные.
Причина проста: доступ к локальной переменной в CPython *в 2–3 раза быстрее*, чем к глобальной или атрибуту модуля.
@python_be1
Одна из самых недооценённых оптимизаций в Python — вынесение повторяющихся вычислений в локальные переменные.
Причина проста: доступ к локальной переменной в CPython *в 2–3 раза быстрее*, чем к глобальной или атрибуту модуля.
@python_be1
🚀 Flowra - простой и понятный open-source движок для создания AI-воркфлоу.
Это тот же движок, что стоит за FlowBench, и он позволяет собирать сложные pipelines так же легко,
как конструктор LEGO.
Что делает Flowra удобной:
✅ Один движок для всех типов данных: изображения, аудио, видео и 3D
✅ Выполнение через DAG-граф: умное кэширование, параллельность и масштабирование
✅ Подключение моделей ModelScope одной строкой — без сложной настройки
✅ Полный цикл разработки:
flowra create → build → debug → deploy
Итог: вы берёте свою ML-модель и превращаете её в визуальный блок, который можно перетаскивать
и соединять с другими.
✨ Без адских зависимостей. Без мучительного дебага.
🔗 GitHub: https://github.com/modelscope/flowra
📥 FlowBench client: https://modelscope.cn/flowbench/download
@python_be1
Это тот же движок, что стоит за FlowBench, и он позволяет собирать сложные pipelines так же легко,
как конструктор LEGO.
Что делает Flowra удобной:
✅ Один движок для всех типов данных: изображения, аудио, видео и 3D
✅ Выполнение через DAG-граф: умное кэширование, параллельность и масштабирование
✅ Подключение моделей ModelScope одной строкой — без сложной настройки
✅ Полный цикл разработки:
flowra create → build → debug → deploy
Итог: вы берёте свою ML-модель и превращаете её в визуальный блок, который можно перетаскивать
и соединять с другими.
✨ Без адских зависимостей. Без мучительного дебага.
🔗 GitHub: https://github.com/modelscope/flowra
📥 FlowBench client: https://modelscope.cn/flowbench/download
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️КАК СДЕЛАТЬ EXE ИЗ PYTHON САМЫМ ПРОСТЫМ СПОСОБОМ
Самый удобный способ собрать exe из Python это использовать PyInstaller. Он создаёт полноценный исполняемый файл который запускается без установленного Python. Работает на Windows, не требует сложной настройки и подходит для любых скриптов.
```
# Установка PyInstaller
pip install pyinstaller
# Создание exe (один файл)
pyinstaller —onefile your_script.py
# Готовый exe будет в папке dist
# Пример запуска
dist\your_script.exe
```
@python_be1
Самый удобный способ собрать exe из Python это использовать PyInstaller. Он создаёт полноценный исполняемый файл который запускается без установленного Python. Работает на Windows, не требует сложной настройки и подходит для любых скриптов.
```
# Установка PyInstaller
pip install pyinstaller
# Создание exe (один файл)
pyinstaller —onefile your_script.py
# Готовый exe будет в папке dist
# Пример запуска
dist\your_script.exe
```
@python_be1
🔥PlutoPrint — лёгкая и мощная Python-библиотека, которая конвертирует HTML/XML в качественные PDF и изображения.
Основана на движке от PlutoBook, встроенные бинарники идут из коробки — короче, установил и поехали.
Идеально подходит для:
🟢отчётов
🟢инвойсов
🟢билетов
🟢визуальных снапшотов
🟢автоматизации любой документо-генерации
📦 Простая установка
```
pip install plutoprint
```
⌨️ CLI интерфейс
Хочешь быстро сделать PDF из HTML?
```
plutoprint input.html output.pdf —size=A4
```
😰 Пример на Python
```
import plutoprint
book = plutoprint.Book(plutoprint.PAGE_SIZE_A4)
book.load_url("hello.html")
# Весь документ
book.write_to_pdf("hello.pdf")
# Страницы 2–15
book.write_to_pdf("hello-range.pdf", 2, 15, 1)
# В обратном порядке
book.write_to_pdf("hello-reverse.pdf", 15, 2, -1)
# Ручной рендер
with plutoprint.PDFCanvas("hello-canvas.pdf", book.get_page_size()) as canvas:
canvas.scale(plutoprint.UNITS_PX, plutoprint.UNITS_PX)
for page_index in range(book.get_page_count() - 1, -1, -1):
canvas.set_size(book.get_page_size_at(page_index))
book.render_page(canvas, page_index)
canvas.show_page()
```
Если ты делаешь отчёты, автоматизируешь процессы, занимаешься OSINT или пишешь сервисы, которые выдают документы — пробуй!
♎️ GitHub/Инструкция (https://github.com/plutoprint/plutoprint)
#python #soft #code #github
@python_be1
Основана на движке от PlutoBook, встроенные бинарники идут из коробки — короче, установил и поехали.
Идеально подходит для:
🟢отчётов
🟢инвойсов
🟢билетов
🟢визуальных снапшотов
🟢автоматизации любой документо-генерации
📦 Простая установка
```
pip install plutoprint
```
⌨️ CLI интерфейс
Хочешь быстро сделать PDF из HTML?
```
plutoprint input.html output.pdf —size=A4
```
😰 Пример на Python
```
import plutoprint
book = plutoprint.Book(plutoprint.PAGE_SIZE_A4)
book.load_url("hello.html")
# Весь документ
book.write_to_pdf("hello.pdf")
# Страницы 2–15
book.write_to_pdf("hello-range.pdf", 2, 15, 1)
# В обратном порядке
book.write_to_pdf("hello-reverse.pdf", 15, 2, -1)
# Ручной рендер
with plutoprint.PDFCanvas("hello-canvas.pdf", book.get_page_size()) as canvas:
canvas.scale(plutoprint.UNITS_PX, plutoprint.UNITS_PX)
for page_index in range(book.get_page_count() - 1, -1, -1):
canvas.set_size(book.get_page_size_at(page_index))
book.render_page(canvas, page_index)
canvas.show_page()
```
Если ты делаешь отчёты, автоматизируешь процессы, занимаешься OSINT или пишешь сервисы, которые выдают документы — пробуй!
♎️ GitHub/Инструкция (https://github.com/plutoprint/plutoprint)
#python #soft #code #github
@python_be1
📄 Превращайте тысячи PDF в данные, готовые для LLM - с Vision-First Agentic Document AI!
LandingAI представила Agentic Document Extraction (ADE) DPT-2 Mini - облегчённую версию Document Pretrained Transformer 2, специально для потоковой обработки документов.
Идеально для “чистых” цифровых PDF, где визуальный контекст всё ещё важен для точного извлечения.
Подходит для:
• счетов
• договоров
• писем
• служебных записок
• любых аккуратно сформированных PDF
✨ Основные возможности:
• Структурированное извлечение из цифровых документов
• Точное понимание макета простых PDF
• Поддержка разных типов блоков: параграфы, изображения, логотипы, карточки и т.д.
• Надёжная транскрипция английского текста
• Оптимизация под масштаб — быстро, стабильно, экономично
DPT-2 Mini ориентирован на скорость, надёжность и низкую стоимость — когда документы простые, а нужно массовое и чистое структурированное извлечение.
https://github.com/landing-ai/ade-python
@python_be1
LandingAI представила Agentic Document Extraction (ADE) DPT-2 Mini - облегчённую версию Document Pretrained Transformer 2, специально для потоковой обработки документов.
Идеально для “чистых” цифровых PDF, где визуальный контекст всё ещё важен для точного извлечения.
Подходит для:
• счетов
• договоров
• писем
• служебных записок
• любых аккуратно сформированных PDF
✨ Основные возможности:
• Структурированное извлечение из цифровых документов
• Точное понимание макета простых PDF
• Поддержка разных типов блоков: параграфы, изображения, логотипы, карточки и т.д.
• Надёжная транскрипция английского текста
• Оптимизация под масштаб — быстро, стабильно, экономично
DPT-2 Mini ориентирован на скорость, надёжность и низкую стоимость — когда документы простые, а нужно массовое и чистое структурированное извлечение.
https://github.com/landing-ai/ade-python
@python_be1
🖥 Python: Почему твой asyncio-код тормозит и блокируется?
Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с вычислениями или работа с диском без специальных обёрток. Такой вызов останавливает весь event loop, и остальные корутины тупо ждут.
Главное правило: внутри async-функций каждая долгая операция должна либо быть асинхронной (через await), либо вынесена в поток или процесс. Если в корутине нет нормальных await, она вообще не отдаёт управление циклу, и твой «асинхронный» код ведёт себя как обычный синхронный.
Используй:
- асинхронные библиотеки (aiohttp вместо requests и т.п.);
- asyncio.sleep вместо time.sleep;
- asyncio.to_thread или отдельный процесс для тяжёлых синхронных задач.
Как только уберёшь блокирующие вызовы из корутин, код перестанет «залипать» и начнёт реально работать параллельно по I/O.
```
import asyncio
import time
async def bad_task():
print("start bad")
time.sleep(2)
print("end bad")
async def good_task():
print("start good")
await asyncio.to_thread(time.sleep, 2)
print("end good")
async def main():
await asyncio.gather(bad_task(), good_task())
asyncio.run(main())
```
https://www.youtube.com/shorts/LZgy5YvQR4o
@python_be1
Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с вычислениями или работа с диском без специальных обёрток. Такой вызов останавливает весь event loop, и остальные корутины тупо ждут.
Главное правило: внутри async-функций каждая долгая операция должна либо быть асинхронной (через await), либо вынесена в поток или процесс. Если в корутине нет нормальных await, она вообще не отдаёт управление циклу, и твой «асинхронный» код ведёт себя как обычный синхронный.
Используй:
- асинхронные библиотеки (aiohttp вместо requests и т.п.);
- asyncio.sleep вместо time.sleep;
- asyncio.to_thread или отдельный процесс для тяжёлых синхронных задач.
Как только уберёшь блокирующие вызовы из корутин, код перестанет «залипать» и начнёт реально работать параллельно по I/O.
```
import asyncio
import time
async def bad_task():
print("start bad")
time.sleep(2)
print("end bad")
async def good_task():
print("start good")
await asyncio.to_thread(time.sleep, 2)
print("end good")
async def main():
await asyncio.gather(bad_task(), good_task())
asyncio.run(main())
```
https://www.youtube.com/shorts/LZgy5YvQR4o
@python_be1
YouTube
🔥 Python: Почему твой asyncio-код тормозит и блокируется? #python #ai #питона #asyncio
Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с в...