Please open Telegram to view this post
VIEW IN TELEGRAM
👎7😁3
Большая подборка алгоритмов для робототехники на Python
Репозиторий Python-Robotics включает обширный набор алгоритмов для робототехнических задач, реализованных на Python. Основной фокус сделан на автономной навигации.
Проект ориентирован на начинающих: алгоритмы сопровождаются понятными примерами и демонстрируют базовые идеи и принципы, лежащие в основе робототехники и автономных систем.
Клик
➡️ GitHub Ready | #урок
Репозиторий Python-Robotics включает обширный набор алгоритмов для робототехнических задач, реализованных на Python. Основной фокус сделан на автономной навигации.
Проект ориентирован на начинающих: алгоритмы сопровождаются понятными примерами и демонстрируют базовые идеи и принципы, лежащие в основе робототехники и автономных систем.
Клик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Rever
В стартапах часто больше всего проблем доставляет не продукт, а финансовая рутина. Нестандартные выплаты, закупки, странные инвойсы и purchase order’ы приходят отовсюду, а всё это сводится вручную через Excel и почту. В результате — медленно, много ручной работы и высокий риск ошибок.
Rever — open-source платформа для автоматизации финансовых процессов с фокусом на AI, по сути попытка реализовать «виртуального CFO».
Проект объединяет в одном месте управление поставщиками, закупочные заказы (PO) и обработку счетов (invoices/bills). Реализовано двухстороннее сопоставление (2-way matching): система автоматически сверяет PO и счет по суммам и количеству, снижая риск переплат и ошибок.
Есть встроенные флоу согласований и полный audit log — все действия логируются и легко отслеживаются, что важно для комплаенса. В планах — поддержка 3-way matching, управление документами и расширенная аналитика.
Платформа поддерживает приватный деплой, поэтому финансовые данные остаются внутри компании.
Если нужен open-source инструмент, который может заменить Excel и хаос в финансовых процессах, Rever точно заслуживает внимания.
Cсылка
➡️ GitHub Ready | #урок
В стартапах часто больше всего проблем доставляет не продукт, а финансовая рутина. Нестандартные выплаты, закупки, странные инвойсы и purchase order’ы приходят отовсюду, а всё это сводится вручную через Excel и почту. В результате — медленно, много ручной работы и высокий риск ошибок.
Rever — open-source платформа для автоматизации финансовых процессов с фокусом на AI, по сути попытка реализовать «виртуального CFO».
Проект объединяет в одном месте управление поставщиками, закупочные заказы (PO) и обработку счетов (invoices/bills). Реализовано двухстороннее сопоставление (2-way matching): система автоматически сверяет PO и счет по суммам и количеству, снижая риск переплат и ошибок.
Есть встроенные флоу согласований и полный audit log — все действия логируются и легко отслеживаются, что важно для комплаенса. В планах — поддержка 3-way matching, управление документами и расширенная аналитика.
Платформа поддерживает приватный деплой, поэтому финансовые данные остаются внутри компании.
Если нужен open-source инструмент, который может заменить Excel и хаос в финансовых процессах, Rever точно заслуживает внимания.
Cсылка
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Yаzi
Высокопроизводительный файловый менеджер для терминала
Yаzi — это терминальный файловый менеджер, написанный на Rust и построенный на неблокирующем асинхронном вводе-выводе. Он ориентирован на скорость, удобство и гибкую настройку при работе с файлами прямо из консоли.
Возможности:
Открыть
➡️ GitHub Ready | #урок
Высокопроизводительный файловый менеджер для терминала
Yаzi — это терминальный файловый менеджер, написанный на Rust и построенный на неблокирующем асинхронном вводе-выводе. Он ориентирован на скорость, удобство и гибкую настройку при работе с файлами прямо из консоли.
Возможности:
• Поддержка нескольких форматов изображений из коробки
• Полностью асинхронная архитектура: все I/O-операции выполняются асинхронно, а CPU-задачи распределяются по потокам для максимальной производительности
• Встроенная подсветка кода
• Интеграция с fd, ripgrep, fzf, zoxide
• Управление в стиле Vim
• Работа с несколькими вкладками
• Предпросмотр с прокруткой для видео, PDF, архивов, каталогов, исходного кода и других типов файлов
• Темы оформления, пользовательские раскладки, корзина для удалённых файлов
• Дополнительные функции для кастомизации и удобной навигации
Открыть
Please open Telegram to view this post
VIEW IN TELEGRAM
Howdy
Для Linux существует проект Howdy — он добавляет аутентификацию по распознаванию лица, аналогичную Windows Hello. Программа использует камеру и ИК-излучатели для быстрого и безопасного входа в систему.
Howdy работает через PAM, поддерживает экран логина и выполнение sudo. Совместим с Debian/Ubuntu, Arch Linux, Fedora и openSUSE. Подходит тем, кто хочет отказаться от паролей и использовать биометрическую аутентификацию в Linux.
GitHub
➡️ GitHub Ready | #урок
Для Linux существует проект Howdy — он добавляет аутентификацию по распознаванию лица, аналогичную Windows Hello. Программа использует камеру и ИК-излучатели для быстрого и безопасного входа в систему.
Howdy работает через PAM, поддерживает экран логина и выполнение sudo. Совместим с Debian/Ubuntu, Arch Linux, Fedora и openSUSE. Подходит тем, кто хочет отказаться от паролей и использовать биометрическую аутентификацию в Linux.
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🔥 Git Reflog — спасение потерянных веток и коммитов
Иногда ветка удалена или коммит кажется потерянным. git reflog хранит историю всех перемещений HEAD, и это твой путь к восстановлению.
• Просмотреть историю перемещений HEAD:
• Вернуть ветку или коммит в рабочее состояние:
• Восстановить удалённую ветку:
💡 Даже если кажется, что работа потеряна, reflog часто спасает ситуацию без стресса.
➡️ GitHub Ready | #урок
Иногда ветка удалена или коммит кажется потерянным. git reflog хранит историю всех перемещений HEAD, и это твой путь к восстановлению.
• Просмотреть историю перемещений HEAD:
git reflog
• Вернуть ветку или коммит в рабочее состояние:
git checkout <hash_коммита>
• Восстановить удалённую ветку:
git branch feature/rescue <hash_коммита>
💡 Даже если кажется, что работа потеряна, reflog часто спасает ситуацию без стресса.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
📌 Что такое git rebase и зачем он нужен на практике
git rebase — инструмент для переписывания истории коммитов. Он переносит ваши коммиты поверх другой ветки, делая историю линейной и читаемой.
Базовый сценарий:
Что происходит:
• коммиты из feature временно убираются;
• ветка обновляется до состояния main;
• коммиты применяются заново поверх неё.
Полезно, когда:
Важно:
rebase — не про магию, а про контроль и порядок в истории проекта.
➡️ GitHub Ready | #урок
git rebase — инструмент для переписывания истории коммитов. Он переносит ваши коммиты поверх другой ветки, делая историю линейной и читаемой.
Базовый сценарий:
git checkout feature
git rebase main
Что происходит:
• коммиты из feature временно убираются;
• ветка обновляется до состояния main;
• коммиты применяются заново поверх неё.
Полезно, когда:
• нужно подтянуть свежие изменения без лишних merge-коммитов;
• хочешь аккуратную историю в pull request;
• работаешь в команде с жёсткими требованиями к логам.
Важно:
• не делай rebase публичных веток;
• если возник конфликт — правишь файлы и продолжаешь:
git rebase --continue
rebase — не про магию, а про контроль и порядок в истории проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
🛠 Git Stash — временное сохранение изменений
Иногда нужно переключиться на другую ветку, но текущие изменения не готовы к коммиту. git stash временно сохраняет работу, не создавая лишних коммитов.
• Сохранить изменения:
• Посмотреть список сохранённых изменений:
• Вернуть последние сохранённые изменения:
• Применить изменения без удаления из списка:
💡 Отлично подходит для быстрого переключения между задачами и экспериментов без риска потерять работу.
➡️ GitHub Ready | #урок
Иногда нужно переключиться на другую ветку, но текущие изменения не готовы к коммиту. git stash временно сохраняет работу, не создавая лишних коммитов.
• Сохранить изменения:
git stash
• Посмотреть список сохранённых изменений:
git stash list
• Вернуть последние сохранённые изменения:
git stash pop
• Применить изменения без удаления из списка:
git stash apply
💡 Отлично подходит для быстрого переключения между задачами и экспериментов без риска потерять работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
📂 Как работает .gitignore и почему он не игнорирует файлы
.gitignore управляет тем, какие файлы Git не должен отслеживать, но он не влияет на уже добавленные в репозиторий файлы.
Частая ошибка:
• файл уже закоммичен;
• добавляешь его в .gitignore;
• Git продолжает его видеть.
Правильное решение:
После этого файл:
• останется на диске;
• перестанет отслеживаться;
• начнёт игнорироваться по правилам .gitignore.
Проверить, почему файл не игнорируется:
.gitignore — это фильтр для новых файлов, а не кнопка «скрыть всё».
➡️ GitHub Ready | #урок
.gitignore управляет тем, какие файлы Git не должен отслеживать, но он не влияет на уже добавленные в репозиторий файлы.
Частая ошибка:
• файл уже закоммичен;
• добавляешь его в .gitignore;
• Git продолжает его видеть.
Правильное решение:
git rm --cached config.env
После этого файл:
• останется на диске;
• перестанет отслеживаться;
• начнёт игнорироваться по правилам .gitignore.
Проверить, почему файл не игнорируется:
git check-ignore -v config.env
.gitignore — это фильтр для новых файлов, а не кнопка «скрыть всё».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🧠 Зачем нужен git blame и как читать его правильно
git blame показывает, какой коммит и какой автор последний раз менял каждую строку файла. Инструмент для понимания контекста, а не для поиска виноватых.
Базовое использование:
Полезные флаги:
• Игнорировать переносы строк и форматирование:
• Показать историю конкретного диапазона строк:
Переход к коммиту строки:
• копируешь hash;
• смотришь изменения:
git blame отвечает на три вопроса: что изменили, когда и зачем.
➡️ GitHub Ready | #урок
git blame показывает, какой коммит и какой автор последний раз менял каждую строку файла. Инструмент для понимания контекста, а не для поиска виноватых.
Базовое использование:
git blame app.js
Полезные флаги:
• Игнорировать переносы строк и форматирование:
git blame -w app.js
• Показать историю конкретного диапазона строк:
git blame -L 20,40 app.js
Переход к коммиту строки:
• копируешь hash;
• смотришь изменения:
git show <hash>
git blame отвечает на три вопроса: что изменили, когда и зачем.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
🔀 Merge commit vs Fast-forward — в чём разница
При слиянии веток Git может использовать разные стратегии. Понимание разницы важно для чистой истории.
Fast-forward merge
Происходит, если основная ветка не менялась.
• Git просто сдвигает указатель ветки;
• история остаётся линейной;
Merge commit
Создаётся отдельный коммит слияния.
• сохраняет факт объединения веток;
• полезно для больших фич;
Когда что использовать:
• fast-forward — мелкие правки, простые фичи;
• merge commit — командная работа, долгие ветки.
Стратегия влияет не на код, а на читаемость истории проекта.
➡️ GitHub Ready | #урок
При слиянии веток Git может использовать разные стратегии. Понимание разницы важно для чистой истории.
Fast-forward merge
Происходит, если основная ветка не менялась.
• Git просто сдвигает указатель ветки;
• история остаётся линейной;
git merge feature
Merge commit
Создаётся отдельный коммит слияния.
• сохраняет факт объединения веток;
• полезно для больших фич;
git merge --no-ff feature
Когда что использовать:
• fast-forward — мелкие правки, простые фичи;
• merge commit — командная работа, долгие ветки.
Стратегия влияет не на код, а на читаемость истории проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🧪 Git Bisect — поиск бага бинарным поиском
git bisect помогает найти коммит, в котором появился баг, без ручного перебора истории. Git сам делит диапазон коммитов пополам.
Запуск:
Дальше Git:
• переключает коммиты;
• ты проверяешь баг;
• помечаешь результат:
Завершение:
Итог:
• точный коммит с поломкой;
• минимум проверок;
• идеально для сложных багов, появившихся «где-то в истории».
➡️ GitHub Ready | #урок
git bisect помогает найти коммит, в котором появился баг, без ручного перебора истории. Git сам делит диапазон коммитов пополам.
Запуск:
git bisect start
git bisect bad # текущий коммит с багом
git bisect good v1.2 # версия, где всё работало
Дальше Git:
• переключает коммиты;
• ты проверяешь баг;
• помечаешь результат:
git bisect good
git bisect bad
Завершение:
git bisect reset
Итог:
• точный коммит с поломкой;
• минимум проверок;
• идеально для сложных багов, появившихся «где-то в истории».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔐 Подпись коммитов в Git — зачем и как использовать
Подписанные коммиты подтверждают, что изменения действительно сделаны автором, а не подменены. Часто требуются в open-source и корпоративных репозиториях.
Проверка подписи коммита:
Подпись каждого коммита:
Одноразовая подпись:
Что это даёт:
• подтверждение авторства;
• защита от подмены;
• доверие к истории репозитория.
Подпись коммитов — это не паранойя, а контроль целостности кода.
➡️ GitHub Ready | #урок
Подписанные коммиты подтверждают, что изменения действительно сделаны автором, а не подменены. Часто требуются в open-source и корпоративных репозиториях.
Проверка подписи коммита:
git log --show-signature
Подпись каждого коммита:
git config --global commit.gpgsign true
Одноразовая подпись:
git commit -S -m "fix: auth logic"
Что это даёт:
• подтверждение авторства;
• защита от подмены;
• доверие к истории репозитория.
Подпись коммитов — это не паранойя, а контроль целостности кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
📦 Git Submodule — подключение одного репозитория к другому
git submodule позволяет использовать внешний репозиторий как часть основного проекта, фиксируя конкретную версию кода.
Добавление сабмодуля:
Инициализация и загрузка:
Обновление сабмодулей:
Важно помнить:
• сабмодуль — это отдельный Git-репозиторий;
• в основном проекте хранится ссылка на конкретный коммит;
• изменения в сабмодуле нужно коммитить отдельно.
Submodule — инструмент для строгого контроля зависимостей, а не для удобства.
➡️ GitHub Ready | #урок
git submodule позволяет использовать внешний репозиторий как часть основного проекта, фиксируя конкретную версию кода.
Добавление сабмодуля:
git submodule add https://github.com/lib/example.git libs/example
Инициализация и загрузка:
git submodule update --init --recursive
Обновление сабмодулей:
git submodule update --remoteВажно помнить:
• сабмодуль — это отдельный Git-репозиторий;
• в основном проекте хранится ссылка на конкретный коммит;
• изменения в сабмодуле нужно коммитить отдельно.
Submodule — инструмент для строгого контроля зависимостей, а не для удобства.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
📊 Git Cherry-pick — перенос одного коммита без всей ветки
git cherry-pick позволяет взять конкретный коммит и применить его в другой ветке, не делая merge или rebase всей истории.
Базовое использование:
Перенос диапазона коммитов:
Если возник конфликт:
Отмена операции:
Когда полезно:
• срочный хотфикс в main;
• перенос одной фичи без лишних изменений;
• аккуратная работа с релизными ветками.
cherry-pick — точный инструмент, требует аккуратности.
➡️ GitHub Ready | #урок
git cherry-pick позволяет взять конкретный коммит и применить его в другой ветке, не делая merge или rebase всей истории.
Базовое использование:
git cherry-pick <hash>
Перенос диапазона коммитов:
git cherry-pick <hash1>..<hash2>
Если возник конфликт:
git cherry-pick --continue
Отмена операции:
git cherry-pick --abort
Когда полезно:
• срочный хотфикс в main;
• перенос одной фичи без лишних изменений;
• аккуратная работа с релизными ветками.
cherry-pick — точный инструмент, требует аккуратности.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
⚙️ Git Hooks — автоматизация до и после команд Git
Git hooks — это скрипты, которые автоматически запускаются при определённых действиях: коммит, push, merge и т.д. Используются для контроля качества и автоматизации.
Где находятся:
Примеры хуков:
• pre-commit — запуск линтера, тестов;
• commit-msg — проверка формата сообщения;
• pre-push — блокировка push при ошибках.
Простейший pre-commit:
Важно:
• хуки не коммитятся по умолчанию;
• для команды используют шаблоны или husky;
• экономят время и ловят ошибки раньше CI.
Git hooks — локальный CI до настоящего CI.
➡️ GitHub Ready | #урок
Git hooks — это скрипты, которые автоматически запускаются при определённых действиях: коммит, push, merge и т.д. Используются для контроля качества и автоматизации.
Где находятся:
.git/hooks/
Примеры хуков:
• pre-commit — запуск линтера, тестов;
• commit-msg — проверка формата сообщения;
• pre-push — блокировка push при ошибках.
Простейший pre-commit:
#!/bin/sh
npm test || exit 1
Важно:
• хуки не коммитятся по умолчанию;
• для команды используют шаблоны или husky;
• экономят время и ловят ошибки раньше CI.
Git hooks — локальный CI до настоящего CI.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
🧬 Detached HEAD — что это и почему это нормально
Состояние detached HEAD возникает, когда ты переключаешься не на ветку, а на конкретный коммит.
Пример:
Что происходит:
• HEAD указывает прямо на коммит;
• новые коммиты не принадлежат ни одной ветке;
• при переключении ветки они могут «потеряться».
Как сохранить работу:
Когда это полезно:
• анализ старого состояния проекта;
• тестирование прошлых версий;
• быстрые эксперименты без влияния на ветки.
Detached HEAD — это режим просмотра и экспериментов, а не ошибка.
➡️ GitHub Ready | #урок
Состояние detached HEAD возникает, когда ты переключаешься не на ветку, а на конкретный коммит.
Пример:
git checkout a1b2c3d
Что происходит:
• HEAD указывает прямо на коммит;
• новые коммиты не принадлежат ни одной ветке;
• при переключении ветки они могут «потеряться».
Как сохранить работу:
git switch -c fix-from-old-commit
Когда это полезно:
• анализ старого состояния проекта;
• тестирование прошлых версий;
• быстрые эксперименты без влияния на ветки.
Detached HEAD — это режим просмотра и экспериментов, а не ошибка.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
📈 Git Squash — объединение коммитов перед merge
Squash позволяет превратить несколько рабочих коммитов в один аккуратный перед добавлением в основную ветку.
Через интерактивный rebase:
В списке:
• первый коммит — pick;
• остальные меняешь на squash или s.
После этого:
• объединяются изменения;
• редактируется одно итоговое сообщение коммита;
• история становится чище.
Когда использовать:
• много мелких «fix», «wip»;
• подготовка PR;
• требования к чистой истории.
Squash — порядок в истории без потери смысла изменений.
➡️ GitHub Ready | #урок
Squash позволяет превратить несколько рабочих коммитов в один аккуратный перед добавлением в основную ветку.
Через интерактивный rebase:
git rebase -i HEAD~3
В списке:
• первый коммит — pick;
• остальные меняешь на squash или s.
После этого:
• объединяются изменения;
• редактируется одно итоговое сообщение коммита;
• история становится чище.
Когда использовать:
• много мелких «fix», «wip»;
• подготовка PR;
• требования к чистой истории.
Squash — порядок в истории без потери смысла изменений.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥1
🧾 Conventional Commits — зачем нужен единый формат коммитов
Conventional Commits — соглашение о структуре сообщений коммитов, которое упрощает навигацию по истории и автоматизацию релизов.
Формат:
Примеры:
Что это даёт:
• читаемая история;
• автоматический changelog;
• корректный semver;
• проще код-ревью.
Conventional Commits — фундамент для масштабируемой разработки.
➡️ GitHub Ready | #урок
Conventional Commits — соглашение о структуре сообщений коммитов, которое упрощает навигацию по истории и автоматизацию релизов.
Формат:
type(scope): краткое описание
Примеры:
feat(auth): add token refresh
fix(ui): fix modal closing bug
refactor(api): simplify handlers
Что это даёт:
• читаемая история;
• автоматический changelog;
• корректный semver;
• проще код-ревью.
Conventional Commits — фундамент для масштабируемой разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🗂 Git Worktree — несколько рабочих копий одного репозитория
git worktree позволяет иметь несколько рабочих директорий для одного репозитория без лишних clone.
Добавить новую рабочую копию:
Список worktree:
Удаление:
Когда полезно:
• параллельная работа над фичей и хотфиксом;
• тестирование разных веток одновременно;
• экономия места и времени.
worktree — альтернатива постоянным stash и переключениям веток.
➡️ GitHub Ready | #урок
git worktree позволяет иметь несколько рабочих директорий для одного репозитория без лишних clone.
Добавить новую рабочую копию:
git worktree add ../hotfix main
Список worktree:
git worktree list
Удаление:
git worktree remove ../hotfix
Когда полезно:
• параллельная работа над фичей и хотфиксом;
• тестирование разных веток одновременно;
• экономия места и времени.
worktree — альтернатива постоянным stash и переключениям веток.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4