Обзор новых возможностей редактора Neovim
Хорошая новость – Neovim не стоит на месте и развивается. Многие вещи, которые раньше реализовывались громоздкими и тормозными плагинами, становятся встроенными.
( читать дальше... )
Хорошая новость – Neovim не стоит на месте и развивается. Многие вещи, которые раньше реализовывались громоздкими и тормозными плагинами, становятся встроенными.
( читать дальше... )
Добрый день.
Хочу (в очередной раз) немного вкатиться в плюсы. Для этого хотелось бы поизучать какой-нибудь опенсурсный проект на предмет стиля оформления кода, разбивки его на модули, обработки ошибок, использования умных указателей и пр. Неплохо бы, если проект существует в реалиях c++17 и новее.
На что по вашему мнению стоит обратить внимание?
15 мая состоялся выпуск 1.6.0 высокопроизводительной системы автоматического распознавания речи whisper.cpp, реализующей модель Whisper от OpenAI на языках C и C++, и распространяемой по лицензии MIT.
Список изменений:
--flash-attn для ускорения обработки данных на устройствах с CUDA и Metal;main.>>> Подробности
Сейчас существует прорва механизмов изоляции приложений — от песочниц до виртуальных машин. Целей их применения тоже множество, но так или иначе всё сводится к тому что нужно ограничить доступ приложений к тем или иным ресурсам вычислительного устройства.
Ниже я хочу описать почти золотую середину в лице утилиты firejail в виде практических советов по использованию в первую очередь для обычных пользователей и (возможно) разработчиков.
( читать дальше... )
Заметил, что очень многие сидят на надёжных, старых конфигурациях своих редакторов, vim и emacs.
В Neovim решили пойти по пути унификации и внедрили, кажется, с 4й версии tree-sitter.
В Emacs с тормозами, но впилили с 29 версии.
Результат впиливания в Emacs: все major modes идут на юга отдыхать (не нужны). Даже с csharp-mode, который приняли в ядро в 29 версии смешно получилось. Tree-sitter выполняет все задачи, описанные в этом примере.
С чем столкнулся я. Примеров в сети на данный момент практически нет, документация недооформлена, приходится обращаться к остаткам доки замороженных проектов, перенесённых в основную ветку разработки (привет Eglot и команды (или названия) для установки lsp сервера).
В сообществе Neovim с этим более чем полный порядок. Правда тут меня напрягает legacy и ублюдочный синтаксис конфига из-за vim. может после 0.11 версии станет легче, не знаю. И нам, осьминогам, Emacs ближе за возможность поменять всё на свете, даже Cthulhu!..
У кого есть истории успеха? Хорошие, годные статьи и (или) примеры конфигов с новыми фишками 29 версии? Их что-то маловато или я не там ищу.
Есть некий драйвер, который ловит прерывания с периодичностью несколько десятков миллисекунд, и судя по time stamp в логе dmesg, делает это очень надежно и регулярно, очень точно с точностью до десятков микросекунд
В ядре используется wait_queue_head_t, в обработчике прерывания wake_up_interruptible, далее wait_event_interruptible, после чего userspace процесс просыпается
Вот иногда в 1% случаев, оно делает это слишком поздно, мне надо успеть за 100-150 мкс, а оно в такие моменты может даже до миллисекунды скакнуть это время ожидания. А когда всё хорошо, оно успевает за 50 в среднем мкс, иногда за 115 что тоже нормально
Пробовал ставить nice -n 0, лочить процесс на ядро taskset -c. И ничего не помогло не улучшило ситуацию
Но программа работает и с еще одним драйвером, который тоже завязан на прерывания, и они тоже приходят очень точно и хорошо. И там тоже проблема что иногда изредка программа просто не просыпается несколько миллисекунд, чтобы отреагировать
Я так понимаю, это ядро просто не всегда хочет будить процесс в userspace?
Уже и nice использовал, что еще можно попробовать, чтобы сказать системе - вот это важные процессы в системе, их нельзя обижать и выгружать, вытеснять и так далее? Что мне все равно что будет со всеми прочими программами в системе
Как объяснить - вот эта программа это VIP, это священный процесс, он всегда должен быть бодряком. Ядро ради него отдам, два, три! Как то так
Как? Российские типа timeweb не интересуют, т.к. могут случайно или из-за санкций перекинуть на хостинг тут.
Статья о создании процессов в Linux
( читать дальше... )
Постоянно писать «как делать правильный код» надоедает. Поэтому для разнообразия и развлечения написал мини-книгу «60 антипаттернов для С++ программиста». Этакие вредные советы в духе «Книга для непослушных детей и их родителей».
На самом деле там, не только вредные советы, но и разбор почему они собственно вредны. Будет полезно почитать новичкам в программировании. Думаю, каждый знает кого-то, кому будет полезно почитать этот материал :). Впрочем, опытные программисты тоже смогут найти интересное для себя и узнать/освежить знания про некоторых тонкие моменты C++.
Там много букв. Приглашаю запастись кофе/энергетиком и приступать. Буду рад обсуждениям и дополнениям, основанном на вашем опыте.
Ещё я этот текст переработал для бумажного издания. Оно в подготовке для печати. Смысл там в целом тот же, но пришлось многое переделать или расписать подробнее. Ведь нельзя в бумажной книге дать 100500 ссылок на сторонние ресурсы «читать здесь про xxx подробнее». Надеюсь, успеем напечатать к осенним конференциям и будем раздавать на стенде, например по кодовым словам. Приходите на стенд и говорите, что с linux.org.ru и что там на тему бумажной книги :)
Парочка вредных советов для примера:
P.S. PDF, если кому-то так удобнее.
Данный топик про игры в юниксовом терминале. Здесь я буду на регулярной основе (в идеале) описывать в отдельном комментарии какую-нибудь игру. В стартер-посте будут ссылки на эти комментарии. Обзор будет не очень подготовленным, поэтому не ждите литературных изысков. Но тем не менее те, кто любит подобное красноглазие, смогут познакомиться с играми и выбрать на свой вкус понравившуюся вещицу. Данная тема создана по аналогии с соседним топиком про стимовские игры.
Приглашаются красноглазые задротики, которые любят тупить в консольку между сессиями компиляния очередного ядра линукса. Можете подписываться на темку, ставить лайк, прожимать колокольчик или что тут у вас принято.
Теги для поисковых ботов (жрите мои любимые ботики): ascii games, terminal games, ncurses games, tty games, console games, cli games, tui games, text-based games, command line games, игры в терминале, игры в консоле, игры для командной строки.
!!!NEW!!! 1. 8f - Терминальный вариант карточной игры Сумасшедшие восьмёрки (Crazy Eights).
Есть ssd на 480ГБ и hdd диск на 1ТБ, сколько выделять места под корень? 90ГБ будет слишком много? В игры особо не играю,но возможно буду
function hashStr (nome)
hours, minutes = GetGameTime()
count1=hours* 3,1415926535
count2=minutes* 3,1415926535
count3=count1*count2
count3=string.sub(count3, 1, 3)
count3=string.format("%03d",count3)
hNik=string.byte(nome,1)
hNik2=string.byte(nome,2)
hNome=hNik*hNik2
hNome=string.sub(hNome, 1, 3)
hNome=string.format("%03d",hNome)
r1=string.sub(count3, 1, 1)
r2=string.sub(hNome, 1, 1)
r3=string.sub(count3, 2, 2)
r4=string.sub(hNome, 2, 2)
r5=string.sub(count3, 3, 3)
r6=string.sub(hNome, 3, 3)
r=r1 .. r2 .. r3 .. r4 .. r5 .. r6
return r
end
hours, minutes = GetGameTime() получает текущие час и минуту в формате: 01 22
Скармливаем слово на одном компе - получаем предсказуемо одинаковый результат. Скармливаем на другом компе получаем тоже предсказуемо одинаковый результат, но не такой, как на предыдущем компе. Это как вообще? Данные одинаковые. Ник один и тот же. Время одно и то же. Результат всегда разный. Это вообще законно?! Время возвращается серверное - одинаковое и там и там.
Перемещено Dimez из general
попался в гугло-новостях такой список ресурсов по сабжу.
Есть всякие ссылки на амазоны codeademy, но м.б. если кто-то даже не представляет, как влезть в С++, но очень хочет, может пригодиться.
https://www.codelivly.com/resources-to-learn-cpp-from-complete-beginner-to-advanced-level/
Папки, или .tar-ы, перед их заливкой в облако-диск, надо бы зашифровать. Какие самые простые, ламповые, бесплатные и де-факто утилиты в Линуксе используются для этого?
Желательно бы, чтобы эти инструменты были также в Виндовс, потому что у меня 2 ОС-и.
Всем привет!
В связи с Российский офис Zabbix будет распущен ищу работу.
Вкратце о своем опыте: преимущественно прикладная разработка на С (не разрабатывал kernel-space и embedded, но готов учиться и хотел бы), разработка на Go (но без современных штук вроде gRPC/protobuf, такие концепты я изучал вне работы для саморазвития).
У меня 10+ опыта с разными UNIX (как GNU/Linux, так и *BSD, и экзотика вроде HP-UX, IBM AIX, Solaris) и хороший бэкграунд (также 10+) в сетях (L1-L7).
Не ищу работы как Python-разработчик (не очень интересно), но умею и пишу с 2008.
Резюме: https://hh.ru/resume/9dd3884bff01c2aedc0039ed1f7735675a3956?hhtm
Вилка 200+.
Контакт в Telegram: @zerodivisionerror/+77753319757.
Спасибо!
Шолом.
Сабж.
Собираюсь починить близорукость, а то танк не увижу. Глаза разбалансировались, некомфортно стало.
Кто себе корректировал и изучал вопрос перед этим:
UPD: всем откликнувшимся - спасибо. Понятное дело, что сначала к офтальмологу на обследование. Буду изучать.
Добрый день! Через какой продукт кроме VNC вы помогаете пользователям удалённо? Есть что нибудь централизованное как из платного, так и Free?
Добрый день!
Много лет назад была неудачная попытка разобраться с gentoo. Недавно решил снова попробовать, и, вроде, что-то получилось, кроме wifi, шланг работает из коробки.
Подопытный: Acer Extensa 5630EZ (да, пожилой уже). Имеем модуль wifi BCM4312 (14e4:4315), который ни в какую не хочет заводиться. Пробовал с помощью b34-fwcutter и с помощью пакета broadcom-sta, успеха нет.
Прошу помощи. Выхлоп терминала, естественно, предоставлю, подскажите, какой.
Ядро 5.15.68.
От старых завершенных проектов остаются данные размером порядка пары сотен Гб, которые жалко сразу выбрасывать и приходится лет по 10 хранить просто на всякий случай. Раньше я запаковывал все в один .tgz (один файл легче копировать, нет риска случайно переписать аттрибуты), клал рядом контрольные суммы и убирал на полку.
Сейчас подумалось, что удобнее было бы использовать для этих целей squashfs – как минимум, с FUSE-дравером можно будет просматривать содержимое без полной распаковки. Оверхед и степень сжатия не так важны, возможность быстро и убедительно проверить сохранность всей копии нужна. С другой стороны, я подозреваю что этот формат не настолько окаменел, как TAR + GZIP, и лет через 20 для монтирования образа может потребоваться некоторая некромантия.
Какие еще есть подводные камни? Что мешает использовать SquashFS вообще везде, где раньше был TAR?
Сидел себе, говнокодил на всякой скриптухе, но вдруг осознал, что даже процедурную пирамидку в консоль вывести не могу, ибо сложно. А ещё не знаю про всякие пузырьковые сортировки. Посоветуйте книгу, в которой собраны важные/популярные/интересные алгоритмы. Желательно без привязки к языку, а то на условном Brainfuck писать желания нет вообще, мне ближе сишно-паскальное.
| следующие → |