Избранные сообщения mamboo
Вышла notcurses v1.4.1 — библиотека для современных текстовых интерфейсов
Вышла новая версия библиотеки notcurses v1.4.x «the saga continues! wu-tang! wu-tang!»
Notcurses это библиотека TUI для современных терминальных эмуляторов. Буквально переводя – не проклятия (not curses). Она написана на С, с использованием C++-safe headers. Доступны обёртки для Rust, C++ (github.com) и Python.
( читать дальше... )
Видео демо с комментариями автора Книга «Hacking The Planet! with Notcurses» от автора
>>> Подробности (github.com)
Как научиться доказывать теоремы?
Здравствуйте! Например, читаю я книгу В. Чубарикова по матану и хочу доказать теорему сам, без подсматриваний. Но не могу этому научиться. Скажите, как это сделать, пожалуйста?
Простая геометрия. Объекты на прямой.
Вот я решаю задачу про определение, какие из элементов находятся на прямой.
Конечно же всё не очень просто. Все элементы с какими-то отклонениями по координатам. Но нужно найти те, которые находятся именно наиболее на одной прямой.
Нет. Не каждые два элемента конечно, а так чтобы была выявлена «прямая» относительно большинства находящихся на этой «прямой» элементов.
Добавлю, что большинство элементов (например 6 из 10) находятся вполне точно относительно прямой, а остальные могут ощутимо отклоняться.
Есть ли быстрые и точные алгоритмы решающие подобные задачи?
Firefox VA-API/X11 (заброшен; смержили другую реализацию)
Проект по добавлению VA-API/X11 в Firefox. Заброшен.
Текущее состояние на 3 июля 2020: (комментарий).
Текст от 25 марта 2020:
Атипичная простуда в очередной раз всех напугала и напомнила, что люди не вечные, причём часто внезапно. Было бы жаль совсем потерять результаты работы, поэтому выкладываю текущий вариант патча к Firefox с поддержкой VA-API под иксами.
Это ещё не готовый к мержу патч, всё держится на честном слове. Из текущих проблем:
если не подкрутить настройки, ест больше ватт, чем полностью программное декодирование;с WebRender видео не видно; возможно роняет контент-процесс;с layers-opengl нет видео, если не включить gfx.use-glx-texture-from-pixmap;истерично переаллоцирует X11-пиксмапы, если под layers-opengl переключиться на другую вкладку.
Чтобы под layers-basic экономия от декодирования вообще имела смысл, нужно включить gfx.xrender.enabled. Без XRender чтение картинки обратно в память CPU ест больше энергии, чем просто декодирование сразу на CPU.
До рабочего варианта ещё далеко. Но если кто-то захочет собрать и потестить, ссылка внизу. Патчсет базируется на 74.0. Оригинальный репозиторий был в Mercurial, и файлы .gitignore там где-то игнорят нужное для сборки, поэтому не факт, что код как есть соберётся. Если так оно и есть, должно помочь использование релизных исходников от 74.0 с последующим накладыванием патча.
Для VP9 Firefox предпочитает ffvpx, особую сборку ffmpeg, которую таскает с собой. Чтобы VP9 декодировать через системный ffmpeg с поддержкой VA-API, нужно выключить media.ffvpx.enabled.
Переехал на кучу утилит переписаных на Rust
Тег «угадай автора по заголовку».
Q: Зачем?
A: Ради эксперимента, повысится комфорт пользования терминалом или нет.
Q: Причем тут Rust?
A: Ни при чем, но из-за нативности и отсутствия GC на нем толпа людей побежала переписывать что ни попадя. С таким же успехом можно было бы и npm install, но тормозило бы. Ближе opam install или go get
Теперь мой терминал по истине свистит и пердит. Даю список если кому надо.
alacritty- GPU ускоренный терминал.alias cat=bat- cat с хорошей подсветкой синтаксиса и нумерацией строк и пейджером.broot- навигатор по каталогам, который одновременно показывает дерево, но адекватно себя ведет с громадными каталогами, показывая их по чуть-чуть.dust- утилита для исследования места занимаемого каталогами, сортирует деревья файлов начиная с самых больших каталогов.alias ls="exa -l --group-directories-first"ls с хорошими дефолтами, tree встроено.ripУтилита для удаления файлов с разными удобными фичами и восстановлениемhors "How do I parse float in javascript?"- находит короткий ответ в интернетах и отвечает. Чуть лучше работает чем оригинал -howdoi.mdcat- cat для Markdown, для отображения удобочитаемой формы документа. Ссылки делает сносками.alias grep=rg- очень быстрый и удобный grepstarship- shell command prompt, показывает кучу полезной информации в зависимости от контекста, например git branch если в репозитории, версии софта и ЯП если в каталогах с сорцами, hostname если зайти по ssh.tokei- сборщик статистики по ЯП и строкам кода в деревьях исходников.hyperfine- бенчмарк утилита, time на стероидах.tldr- сокращенная версия man, показывает как чем пользоваться в примерах, а не выдавая полную справку. Страницы поддерживаются сообществом для громадного количества утилит. Изначальный проект - https://tldr.sh/topgrade- универсальная утилита обновления. При запуске пытается обновить все что видит - системные пакеты, vim пакеты и так далее.runiq- быстрыйsort | uniqс разными алгоритмами внутри.fd- быстрый и удобный find, удобно чтобы не вспоминать заковыристые ключиfselect- поисковик файлов с SQL-like языком запросовsd- как sed, только интуитивныйi3status-rs- Сразу i3status+i3blocks. Плюс батарейки к i3blocks, которые как я понял автор решил убрать.onefetch- Вроде neofetch, но для сорцов. Просто запустите эту штуку с корня любого git репа, клонированого локальноwasmtime- JIT runtime для WASI стандарта. Пускалка WebAssembly приложений.scriptisto- «shebang-интерпретатор» для компилируемых языков, прозрачно собирает и кеширует нативные сборки кода
Что не зашло совсем
- https://github.com/nushell/nushell - куча всего недоделано.
- https://github.com/mitnk/cicada - очень уступает bash
- https://amp.rs/ - сильно отличается от vim, непривычно, глючит. Навигация по дефолту очень крутая зато.
Все вышеперечисленое ставится через cargo install <package_name> (кроме alacritty), название смотрите на страницах. Сам cargo и Rust ставятся через
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
P.S. Призываю остальных взять ЯП вашей секты и поставить такой эксперимент и отписаться. Да-да, расскажите как вы пользовались ls на Java. Пользователей emacs прошу не беспокоить
Что почитать по Guile
Решил ознакомиться со Scheme и глаз зацепился за Guile. У них есть мануал, но я не уверен, насколько он полноценный.
До этого ни с каким лиспом дела не имел, но со скобочками я на ты (objc). Будет ли достаточно этого мануала, чтобы уверенно изучить синтаксис, семантику, ооп и тд? Есть ли еще мануалы с Best Practice и общепринятыми тулзами, типа линтеров, менеджеров зависимостей, юнит тестами, CI.
(в Talks постить не могу, так что сорян, если мимо)
Брошенное СПО
Вот такая мысль. Допустим, вы пользовались какой-то программой. Потом автор забил на её развитие, а в программе остались неисправленные баги, или она перестала работать под современной ОС, или её выкинули из дистрибутива из-за проблем со сборкой. А вам слишком лениво, или нет времени, или нет нужных навыков, чтобы допилить программу. Других желающих тоже не нашлось. При этом программа полезная, и полного функционального аналога у неё нет.
Например, был колоризатор логов ccze, который меня практически всем устраивал, кроме того, что тормозил и без патчей под Арчем уже не собирался. Я пофиксил сборку и оптимизировал всё, что тормозило. Остальное ничего не трогал, т.к. больше в программе под мои задачи дорабатывать было нечего: https://github.com/geekless/ccze-rv/commits/master (Надо будет, кстати, проверить сборку под новыми ОС снова. А то я как собрал бинарник несколько лет назад, так и пользуюсь им без пересборок.)
Если у вас есть примеры таких программ, дайте мне знать.
При этом в моём приоритете:
- Программы либо на gtk2 (просто с этим тулкитом знаком лучше всего), либо чисто консольные.
- В первую очередь, на чистом Си, а потом уже на всём остальном.
- В первую очередь, программы, работавшие под GNU/Linux, во вторую - под FreeBSD, в третьих - всё остальное.
- С небольшой кодовой базой. Форкать xulrunner я ради вас не собираюсь, естественно.
- Не устаревшие на миллион лет. Вот был такой файловый менеджер deco, еще под фряхой в давние времена я пользовался им. Но «спасать» там уже нечего, пришлось бы всю программу переписывать с жесткой привязки к 8-битным кодировкам на современный utf8.
Также:
- Предметная область и решаемые программой задачи должны быть мне понятны. Я не смогу вам помочь, если не понимаю, что вообще в вашей программе происходит.
- Собирать пакеты под ваш любимый дистрибутив я не буду. Могу запустить образ системы в докере, чтобы проверить сборку и корректность работы. Пакет оформляйте сами, если нужно.
- Конечно, я не буду браться за то, что мне не интересно.
Какой мой интерес в этом:
- Потренироваться в портировании ПО.
- Потренироваться в отладке кода.
- Принести пользу сообществу в той области, где она может быть востребована. Новые нескучные библиотеки и приложения пилит каждый первый, а поддерживать существующий полезный людям код и обеспечивать его совместимость с современными платформами - желающих мало.
Если же вас заинтересовала сама эта идея в качестве разработчика, мы можем скооперироваться и запилить профиль организации на github или другой коллаборативной платформе, чтобы все подобные проекты жили вместе.
P.S.
Также я понемногу пилю форк http://mooedit.sourceforge.net/ – https://github.com/sde-gui/qk . Автор замахнулся на амбициозную цель переписать всё на C++, но что-то пошло не так, и очередной релиз редактора так и не вышел. Я форкнул код от стабильной версии на чистом Си. Но здесь я не просто исправляю баги, а постепенно хочу переделать существенную часть редактора.
UPD.
Интересное из комментариев:
- HotSpots Брошенное СПО (комментарий)
- easystroke Брошенное СПО (комментарий)
- myrulib Брошенное СПО (комментарий)
- DDD debugger
UPD. 2
()
Применение Bash-скриптов в повседневности
Опишите примеры вашего применения баш-скриптов в повседневности. В частности дома. Что полезного создаете, упрощает ли это вашу жизнь, и сколько времени потратили на создание своего скрипта.
Музыкальный Linux для Игростроя
٩(。•́‿•̀。)۶
Ну, пора задуматься о музыке. Хочу написать десяток длинных амбиентов для игры, каждый соответствует локации для звукового выделения сцены + один универсальный для масло маслянное универсальных ситуаций. Ну плюс ещё отдельные звуки и музыка в соответствии с происходящими событиями. Короче хочу диалог игры и игрока не только визуальный, но и звуковой, а не только для галочки на фон повесить что-то из opengameart.com и всё.
Раньше пытался что-то брякать используя Pianoteq (Бесплатную версию где 20% клавиш не работает) https://www.jamendo.com/artist/443601/elizar-laboratories/singles
Ещё куда-то заливал всякую хрень, но не помню уже что и куда. Ну да ладно это из разряда что «умею».
Пробовал как Ъ взять LMMS и всё делать там. Получается говняшка. Для себя понял что мне надо просто играть отрезки, затем из них складывать композицию (ибо я не умею и не могу играть сразу гтовое на основе нот или целиком составлять композицию) затем через VST плагины отдельные отрезки и/или всю композицию приводить к тому виду который будет интересен.
Что у меня есть
- Миди клава M-Audio keystation 88es ~15 клавиш не работают (;⌣̀_⌣́)
Чво я умею <( ̄︶ ̄)>
- Открыть Pianoteq/LMMS+SF2/Hydrogen или иное в зависимости от нужного инструмента
- Сесть и просто брякая наигрывать что в голову взбредёт, в процессе находя интересное и далее импровезировать с этим интересным по итогу получается минут 20 потока «музыки» в виде записанного wav и MIDI из которых вырезаю понравившиеся куски, эти куски либо сами по себе либо потом пытаюсь их переиграть. Нот я не знаю. Если хочу повторить своё ранее что-то то просто прослушиваю старое и играю снова.
Ну и всё, больше я ничего не умею, на компе мегабайт 150 миди+wav отрывков накопилось :D от импровизаций
Чво я хочу (๑˃ᴗ˂)ﻭ
- Открыть программу музыкальну
- Выбрать инструмент любой или внешний типа Pianoteq
- Сыграть несколько разного в поисках нужного (ну например амбиент для сцены весёлой/грустной/страшной/глупой/странной/затейливой/непонятной/начальной/конечной/ууууууу многа и надо эксперементировать)
- На месте взять сыгранное и нарезать
- Из нарезок составить композицию «ну не умею я целиком нужное взять и сыграть… ::(»
- На отдельные отрезки наложить преобразования VST плагинами (будто есть альтернатива)
- На всю композицию наложить преобразование для выравнивания по стилю (Ну там заглушить что-то или просто эхо добавить общее)
Ну и всё. Как то так. Редакторов куча,VST плагинов разных типов куча. По хорошему надо 360 монитор что-бы всё что надо вывести на экран с их милллиардами кнопок и крутилок
- 1 Посоветуйте пожалуйста редактор (Ardour?)
- 2 Посоветуйте пожалуйста VST на все случаи жизни (Calf?)
Посоветуйте пожалуйста иное. Понятное дело что надо пробовать, но тут же есть те кто уже прошарен и может сказать что мне лучше подойдёт например всё же LMMS если его правильно готовить.
Короче я от разнообразия потерялся, мне хочется просто один раз выбрать программный стек где я буду делать всё. Пусть этот стек будет неидеальным, но блин я не могу досканально изучить всё т те же VST там чёрт об них ногу сломит, выберу один и буду на нём жить. только вот какой (набор) выбрать calf **ка красивый что я не могу, такой уровень графиков и индикации наверное ни у одной программы нет, программировал просто боженька.
Ну вот как то так. Помогите советом пожалуйста. Не хочется скакать туда да сюда. Хочется просто взять инструменты в виде программ и просто начать работать, да их надо будет изучать, это понятное дело. Но вот что бы сыграть-нарезать-склеить-обработать и всё.
Пока вдохновился этим https://www.youtube.com/watch?v=u_PR46u1T_s но просто решил ещё задать вопрос текущий ибо вдруг кто что посоветует. Я в этом всём слабо шарю.
Всем добра и мира ::)
автоматическая генерация картинок из кружочков и палочек (визуализация графа)?
Возникла необходимость автоматически отрисовывать граф вот в таком виде http://a-iv.ru/trash/Z4.png
У кружочков (узлов) известны координаты, палочки (связи) тоже известны - подскажите пожалуйста какую нить годную несложную утилиту/библиотеку? Выходной формат не очень важен - png, pdf, svg и пр.
Можно наверное в LaTeX, но сходу вышло как то муторно;-(
Насколько сложно смоделировать молекулу на самом фундаментальном уровне?
Я не физик, в некоторых терминах могу ошибаться.
Из личного любопытства я хочу смоделировать молекулу (самую простую, как мне кажется H2, или хотя бы один атом водорода), на самом фундаментальном (то есть моделируя не протоны и электроны, а кварки из которых состоят протоны и нейтроны) уровне.
У меня есть несколько вопросов
а) насколько это легко, мне, как программисту который физику знает лишь поверхностно б) насколько это легко моему компьютеру с i7-4770, 16Gb, если я хочу смоделировать скажем момент соиденения двух атомов в молекулу в) в какую сторону копать?
Для сравнения примитивное моделирование гравитации для меня было простым занятием. Берем N точек, даем им координаты и массу, каждый тик времени вычисляем силу притяжение по формуле
F = m1*m2 / R^2.
a = f/m;
x += dx;
dx += a;
для y аналогично
Дальше построив по координатам график можно было увидеть как тела движутся по эллипсу.
Сейчас же все выглядит для меня заметно сложнее.
- Насколько я понимаю привычных x,y координат ни у кварков, ни у протон/электрон не существует, мне нужна пси функция?
- Электрон в атоме крутится на около световых скоростях, следовательно мне нужно СТО/ОТО и привычные формулы типа
dx += aперестают работать? - Сложно будет визуализировать?
- Начальные условия нужно тщательно подобрать? (В случае с гравитацией все просто - одно тело неподвижно, второе движется не в сторону первого)
как сделать локальное (по окнам) переключение раскладок средствами X?
здравствуйте
в kde есть очень удобная опция настройки раскладок клавиатуры
в Layout Switching Policy можно выбрать Global , Window … итд
как можно сделать то же самое но без kde?
Объясните для дебилов на пальцах: какая разница между реализацией MVCC внутри Postgres и внутри какого-нибудь Oracle там последнего?
Недавно чел один высказался при мне, что в postgres есть проклятие VACUUM (что как-бы по-всякому настраивается и можно избегать - это как наука про уборку мусора - как не срать, чтобы GC работал поменьше) и что в каком-то там Oracle тоже есть MVCC и оно как-то так реализовано, что старые версии оказываются в другом «таблеспейсе» и как-бы не нужен VACUUM. Я спросил физически-то в чём разница? Вот есть у тебя блок B+Tree дерева, там остаются старые версии туплов (строк), на которые ещё ссылаются какие-то транзакции, а когда никто не ссылается тупл помечается удалённым, но продолжает валяться в блоке B+Tree - никто же не станет перепаковывать блок целиком только чтобы похерить там пустое место, это же долго. Если в каком-то там Oracle старые версии вдруг хранятся в «каком-то другом месте», то как? Он их туда перекладывает при апдейтах? А как ссылающиеся на него транзакции переживают перекладывание? А зачем перекладывает, чтобы блок B+Tree пересобрать заново без пустых мест? А зачем, всё ж будет тормозить?
Короче тут половина «одна бабка сказала», но может кто-то прокомментировать внятно на пальцах для дебилов этот кухонный срач?
Не интересны высказывания отдельно про какую-либо из систем, типа «вакуум надо уметь готовить и всё будет норм» - это мы и так знаем, вопрос именно про разницу реализации MVCC на уровне физических структур данных и алгоритмов между постгресом о абстрактным банковским крутым ораклом. Может в треде есть банковские админы в галстуках и могут чё сказать? Может у банковских ораклов по ночам всё-таки какой-то аналог вакуумов запускают раз в неделю?
Intel'овские плюшки для слаки
Вот, сваял слакбилд для slackware-current.
https://github.com/stanson-ch/beignet.SlackBuild
Теперь Beignet (Интелевский OpenCL для процессоров Gen3+ c Intel HD Graphics) собирается и работает на current'е.
В гимпе фильтры значительно шустрее работают и всё такоэ.
Beignet был заброшен Интелем в пользу compute-runtime, но последний поддерживает процессоры только начиная с Broadwell. А постоянно меняющийся llvm привёл к тому, что ванильный Beignet не собирается при мало-мальски свежем окружении. В общем, несколько патчей из дебиана, парочка из арча, немножко своего - и всё снова заработало.
Обновил для llvm11. Вроде работает. Задрали уже обратную совместимость ломать.
Текстовое IDE?
Привет!
Какой текстовый редактор (vi(m)/emacs/etc.) выбрать для программирования на Питоне? Используемый мной Geany перешел на gtk3 и стал тормозить. Что мне нужно:
- Подсветка синтаксиса
- Поддержка вкладок и легкая навигация по ним
- Возможность запуска программы без выхода из редактора
- Подсказка по мере ввода для имен методов классов. Geany не всегда корректно угадывает.
- Автоотступы для новой строки. Автозамена Tab на 4 пробела.
- Поиск по всем открытым файлам
- Относительно высокая скорость работы
- Желательно: задание произвольной правой границы (например, в 72 символа)
- Я не знаю, как это делается в текстовых IDE, но желательно иметь возможность быстрой навигации по именам классов, методов и пр.
- Плюсом будет подсветка лишних скобок
- Плюсом будет автоопределение кодировки для обычных txt
()
работа с SQL
А что есть в Linux-ах красивого с GUI для проектирования БД (вот таблички нарисовать, связи между ними и т.д.). Код писать я и сам напишу, т.е. на генерацию БД мне наплевать, просто структура сложная и надо бы на неё смотреть наглядно. Как делать БД на бумаге знаю и даже делал до 20 таблиц, но тут их штук 40 и банально сложно всю структуру в голове держать/лист бумаги маленький и на него она не помещается. Windows тулзы для этого юзать не хочу, хочется чего-то опенсорсного и в Linux-е. Знаю про SQL Workbench, но там с HighDPI печально всё.
Как в консоли параллельно выполнять обработку нескольких файлов?
Есть консольная утилита pngcrush и надо ею пережать несколько тысяч картинок.
С помощью find написал обработку их всех. Но такое решение обрабатывает одну картинку за раз используя одно ядро.
Как сделать запуск нескольких процессов pngcrush?
Что перспективней Python или C#
Для веба, для машинного обучения и вообще для себя и дальнейшей работы, что бы предпочли?
Как устроен захват экрана в x11?
В частности в webrtc окошке браузеров? Интересуюсь с целью получения возможности прятать окно во время показа.
| ← назад | следующие → |
