The lazy Git UI you didn't know you need 🔥 Горячее 💬 Длинная дискуссия
Автор случайно обнаружил lazygit во время экспериментов с neovim и настолько впечатлился, что полностью перешёл на него для всех git-работ. Инструмент сочетает простоту и скорость CLI с интерактивностью и наглядностью GUI, что особенно ценно для тех, кто плохо запоминает команды. По данным опроса StackOverflow 2022 года, 83% разработчиков предпочитают CLI для работы с git, но lazygit предлагает компромисс, сохраняя мощь командной строки while делая операции более доступными.
Lazygit выделяется тремя ключевыми особенностями: последовательность интерфейса, удобство навигации и интерактивность. Автор подчёркивает, что несмотря на преимущества GUI, новичкам всё равно следует изучать git CLI, так как он обеспечивает максимальный контроль и необходим для работы в средах без графического интерфейса. Инструмент идеально подходит для разработчиков, ищущих баланс между мощью командной строки и удобством визуального интерфейса.
Комментарии (171)
- Разные инструменты подходят под разные задачи: от легковесных консольных утилит вроде
tigдо полноценных GUI вроде SourceTree или GitKraken. - Некоторые участники отдают предпочтение TUI-решениям вроде lazygit, другие — полноценным GUI, а кто-то вовсе предпочитает консоль.
- Несколько человек упомянули, что используют
jj(Jujutsu) вместо Git, и что это может быть более удобным для новичков. - Некоторые участники поделились ссылками на инструменты, которые могут быть полезны для решения конкретных задач, таких как
git-absorbдля автоматического разбиения коммитов иtigдля просмотра истории. - Были упомянуты такие инструменты, как
lazygit,tig,gitui,gitin,lazygit,fork,lazygitиgitui, каждый из которых имеет свои сильные стороны и может быть полезен в различных ситуациях.
Rust cross-platform GPUI components 🔥 Горячее 💬 Длинная дискуссия
Библиотека Rust GUI компонентов для создания кроссплатформенных десктопных приложений с использованием фреймворка GPUI. Проект предлагает готовые интерфейсные элементы, упрощающие разработку визуальных приложений на Rust. Компоненты обеспечивают единый пользовательский опыт на разных платформах, включая Windows, macOS и Linux.
Библиотека является частью экосистемы GPUI, который позиционируется как современный подход к созданию GUI на Rust с акцентом на производительность и гибкость. Разработчики могут использовать готовые компоненты или создавать собственные, наследуя базовые функциональности. Проект активно поддерживается сообществом и постоянно пополняется новыми элементами интерфейса.
Комментарии (201)
- Сообщество обсуждает, что "native" может означать как отсутствие web-технологий, так и просто нативный виджет ввода текста, и это влияет на выбор инструментов.
- Участники отмечают, что многие open-source проекты спонсируются криптокомпаниями, что вызывает смешанные чувства, но при этом признаётся вклад этих компаний в OSS.
- Обсуждается нехватка готовых компонентов в экосистеме Rust, несмотря на обилие GUI-фреймворков, и сравнивается с другими языками, где такие коллекции есть.
- Поднимается вопрос о размере бинарника (около 10 МБ), который вызывает у людей вопросы о встроенных данных ICU и прочих ресурсах.
- Участники делятся мнением, что хотя фреймворки быстро развиваются, но они всё ещё не покрывают все потребности, и это тормозит более широкое принятие.
Tcl-Lang Showcase
На вики-сайте Tcl/Tk представлена галерея из более чем 100 интерактивных демонстраций приложений, созданных с использованием этого языка программирования и инструментария для графического интерфейса. Доступ к ним осуществляется через CloudTk — платформу для запуска Tcl/Tk онлайн.
Среди примеров — графические инструменты вроде SpiroGraph, игровые проекты типа TriPeaks Solitaire и 1010!, а также утилиты вроде симулятора калькулятора HP-15. Каждое приложение сопровождается скриншотом и ссылкой на соответствующую страницу вики с подробным описанием.
Комментарии (29)
- Tcl/Tk ценится за простоту создания GUI и интеграцию с C, использовался в научных проектах, тестовой автоматизации и даже для портирования SimCity.
- Язык повлиял на понимание фундаментальных принципов программирования из-за своего уникального подхода к строкам и стеку, отличающегося от распространённых языков.
- Несмотря на критику, Tcl остаётся востребованным в нишевых областях (например, в инженерии с OpenSees) и продолжает активно развиваться.
- Обсуждаются технические проблемы, такие как неработающая демонстрация в CloudTk, и идеи, например, создание редактора на Tcl или компиляция wish в WebAssembly.
- Уточняются терминологические нюансы (flak vs flack, rebut vs rebuttal) в ходе дискуссии.
Learn x86-64 assembly by writing a GUI from scratch (2023)
Изучение x86-64 ассемблера через создание GUI с нуля
Филипп Гольтье
Опубликовано 31.05.2023
Большинство считает ассемблер языком для учебных программ или оптимизации отдельных функций. Но что если написать на нём полноценную GUI-программу? Это будет «Hello World» для графического интерфейса, но всё же. Результат:
Меня вдохновила мысль: современные бинарные файлы часто весят 30+ МБ — а насколько маленьким может быть GUI? Оказалось, всего около 1 КБ!
Я не эксперт в ассемблере или X11, но надеюсь дать понятное руководство для начинающих. Ошибки? Сообщайте в Github.
Примечание: Аутентификация в X11 опциональна, но некоторые серверы (например XWayland) требуют её. Здесь она опущена.
Что потребуется?
Используем ассемблер nasm — простой, кроссплатформенный и быстрый. Для GUI возьмём X11, так как он работает без внешних библиотек. На Wayland должно работать через XWayland, на macOS — с XQuartz (но потребуется формат macho64 и иные значения системных вызовов).
Разница между ОС сводится к значениям системных вызовов. Для Linux укажем свои, для FreeBSD — другие, используя макросы nasm:
%ifdef linux
%define SYSCALL_EXIT 60
%elifdef freebsd
%define SYSCALL_EXIT 1
%endif
Компилируем на Linux, отправляем другу на FreeBSD — и оно работает!
Linux — единственная ОС со стабильным ABI. Другие могут его ломать, но для базовых вызовов это редкость.
Основы X11
X11 — это сервер, управляющий окнами и отрисовкой. Клиент подключается через сокет, отправляет команды на открытие окон, рисование и т.д., а сервер присылает события и ошибки.
Обычно используют libX11 или libxcb, но мы сделаем всё сами. Сервер может быть хоть на другом конце света — это не важно для клиента.
Комментарии (24)
- Обсуждение началось с проекта по изучению ассемблера x86-64 через написание GUI "с нуля", но многие отметили, что использование X-сервера не является истинным "с нуля".
- Несколько пользователей поделились личным опытом изучения ассемблера через различные проекты: написание приложения на GTK, работу с микроконтроллерами PIC и создание собственного виртуального процессора.
- Было высказано мнение, что работа с "сырым" X-протоколом не сложна, но утомительна из-за его асинхронной природы и необходимости сериализации/десериализации запросов.
- Участники дискутировали о том, что на самом деле означает термин "с нуля" (from scratch), от сравнительно простого использования API до создания всей системы самостоятельно.
- В качестве сравнения был приведен пример с Win32, где создание GUI заключается в основном в заполнении структур и вызове функций.
- Было отмечено, что проект, несмотря на спорное определение "с нуля", является более сложным и продвинутым, чем многие аналогичные попытки.
- Один из комментаторов указал на проблему с поддержкой высокого разрешения в XQuartz для пользователей macOS.
Red: A programming language inspired by REBOL
Red — язык нового поколения, вдохновлённый Rebol. Компилирует в нативный код, охватывает от системного программирования до высокоуровневых скриптов и кроссплатформенных GUI. Поддерживает современные примитивы параллелизма, не требует установки и настройки: всё умещается в один файл ≈ 1 МБ.
Комментарии (51)
- Проект Red вызывает ностальгию, но разработка фактически стоит: 32-битные бинарники, проблемы на macOS, отсутствие 64-битной версии.
- Пользователи ищут «простой кроссплатформенный язык + GUI» и обсуждают альтернативы: LiveCode, Tcl/Tk, Dart/Flutter, Iced (Rust), Nushell.
- Сообщество жалуется на «срыв» после ухода в блокчейн/ICO и низкий bus-factor.
- Некоторые считают REBOL/Red «функционально-императивным» и homoiconic, но интерес к языку снизился из-за барьеров запуска.