Посоветуйте редактор кода по слоям
Функционал:
-
Переключение между слоями (например, Alt+1, Alt+2).
-
Возможность видеть слои как отдельно, так и вместе.
-
Сохранять слои как один и/или несколько файлов.
Функционал:
Переключение между слоями (например, Alt+1, Alt+2).
Возможность видеть слои как отдельно, так и вместе.
Сохранять слои как один и/или несколько файлов.
Почему у линуксоидов не стало модным перемещаться по директориям, используя (по типу $PATH — путевые) переменные программ от GUI до CLI.
Ничего запоминать не нужно, нужно лишь иметь индексатор «$PATH» переменных и доступ к одной единственной директории, которую можно хоть на рабочий стол ярлыком добавить; по ней искать нужные пути, пиша по памяти ключевые слова и из результатов поиска выбирать нужное расположение (путь) до файла.
Особенно бы так файловые менеджеры показывали всегда, если перешёл по какому-то «$PATH», то и видишь его сначала в адресной строке, по нажатии на путь видишь его полностью.
Многие тут не в курсе, что уже несколько лет (!) на рынке есть натриево-ионные аккумуляторы, которые отличаются по параметрам от литий-ионных только чуть более низким напряжением ячейки, значительно большей устойчивостью к холоду и отсутствием проблем при разряде в нуль. Выпускаются в разных размерах, соответствующих типовым размерам литиевых, по цене даже гуманнее литиевых. Подозреваю что служить они тоже будут дольше, потому что одной из частых причин подыхания сраной литиевой батарейки является глубокий разряд и отсутствие заряда некоторое время после этого. Х.з. купленный на пробу действительно выглядит неубиваемым, и действительно не сдыхает после морозилки и разряда до 0. Ёмкость если и потерял, то не больше чем литиевый за то же количество циклов, если не считать издевательств, которые литиевый бы точно не выдержал. Да они даже на озоне уже появились, а на алике давно уже продаются (где я и купил когда-то эту банку на посмотреть).
Литий для их производства не нужен, натрия хоть жопой ешь везде, никаких прям особых веществ и пр. тоже. Устройство такое же как у литиевых. Т.е. намного меньше проблем как с ресурсами, как и с утилизацией.
Т.е. с самими натриево-ионными аккумуляторами всё пучком. Они существуют, они продаются даже в розницу кому угодно, они работают лучше литиевых.
Но вот что-то за эти годы нифига до сих не слышно ни про штатные натриевые аккумуляторы для ноутов и телефонов, ни про натриевые аккумуляторы для электромобильчиков и самокатов, ни даже про то, что какие-то «лидеры промышленности» какую-нибудь гига-мега хрень на натриевых вместо литиевых собираются строить. Как-то вообще тотальная тишина в масс-медиа про натриевые аккумуляторы, на протяжении нескольких лет. Если не знаешь что такие существуют - при поиске случайно никогда не попадутся. Сам когда-то нашёл только потому что стал искать специально, после прочтения какой-то научной публикации про то, почему натриево-ионные аккумуляторы будут устойчивы к холоду. Охренел, когда оказалось что они на алике в наличии оптом и в розницу. Ещё больше охренел когда оказалось что они реально работают как заявлено.
Нормальным-то людям и так понятно, что куча «тех кого надо» вбухали кучу бабла в созданный ими же литиевый пузырь и им совершенно не надо никакого реального прогресса ни в каких технологиях, кроме тех, которые, по их мнению, обеспечат им прибыль и контроль.
Интересно послушать шлангование тех, кто тут годами топил за всякое барахло на литиевых батарейках и какие они восхитительные и как за ними будущее, и как нет никаких альтернатив. :)
Давайте, начинайте объяснять про то как «рыночек порешал» и про то, как никто ничем не манипулирует, и как никаких заговоров никогда не бывает.
https://www.moddb.com/mods/diffusion
Краткая подводка к сюжету:
Вы играете за Джеймса Смита, бывшего бойца SWAT, который отправился в отпуск… но его машина сломалась посреди пустынной местности штата Юта.
В поисках помощи герой находит заброшенный перерабатывающий завод и очень быстро понимает, что место это совсем не такое, каким кажется.
Автор проекта - Богдан Макаров (Aynekko), который в одиночку вытащил гигантский хобби-проект, сделав настоящую тотал-конверсию с собственной историей, картами, моделями и атмосферой.
Что внутри:
Автор использует часть моделей и текстур, найденных в свободном доступе, но открыт к корректировкам и и указаниям авторства.
Помимо всего остального, музыку автор писал сам, послушать, скачать или купить можно тут: https://traceline.bandcamp.com/
Есть нативная сборка под GNU/Linux amd64. Примечателен тем, что сделан на основе кроссплатформенного движка Xash3D FWGS, форка оригинального Xash3D, к которому причастны я, @mittorn и ещё множество других людей, которые вроде как не зарегистрированы на ЛОРе.
Исходники от игровой части скорее всего будут в начале следующего года.
Давайте поговорим о слоне в комнате: используемые вами инструменты для шифрования файлов мироточат метаданными, и никто об этом не говорит:
Неужели всем норм? Почему все ведут себя так, будто это номально?
Почему с использующих ПО под лицензией BSD в коммерческих целях как проприетарное не требуют выплат?
имеется ноут Lenovo Legion S7 15ACH6 под управлением debian 12.
Неадекватное поведение системы охлаждения при нагрузке CPU стресс-тестом из stress_ng. При назрузке всех 16 потоков радиатор быстро разогревается, вентиляторы трогаются, но остаются на весьма малых оборотах, явно недостаточных для такого стресс-режима.
Вопрос в том, где и как можно настроить охлаждение ноутбука.
Опубликован релиз geeqie-2.6.
Geeqie — просмотрщик и менеджер коллекций изображений. Поддерживает множество форматов изображений, файлы pdf, просмотр в архивах, метаданные gps, скрипты на bash и lua.
( читать дальше... )
>>> Подробности
Мне не нравится, когда и в теории, и на практике программирования — пренебрегают вторым этапом.
Если первый этап — это идея, задача, или что должна делать программа. Тогда второй этап — уже написать на естественном языке реализацию этой идеи, задачи (без учёта синтаксиса и семантики языка программирования, на котором будем писать).
Когда как на третьем этапе, мы будем писать естественным языком код (псевдокод), который впоследствии напишем на языке программирования, на 4 этапе.
Соответственно, только тогда мы будем учитывать синтаксис и семантику языка программирования, держа в уме контекст, который получили на втором этапе.
Например, на втором этапе пишем: «предположим, что зарплата минимальна у первого сотрудника по массиву структуры…», когда как на третьем этапе будем писать: «целочисленный тип минИндекс равен нулю», а на четвёртом «int minIndex = 0;».
Надеюсь понятно.
Стали часто появляться темы как многие пользуются результатами всяких ChatGPT, но почему-то мне ни разу не попала даже реклама подобного сервиса :( ...
Где вы берёте эти ChatGPT и что сейчас мощнее?
Выпущена новая версия панели управления для аудиоинтерфейсов Focusrite линеек Scarlett, Clarett/Clarett+ и Vocaster.
ALSA Scarlett Control Panel предоставляет удобный интерфейс для управления маршрутизацией сигнала и громкостью в каналах интерфейсов, а также для дополнительной настройки, такой как загрузка прошивок и включение режима mass storage device для некоторых моделей. Компания Focusrite предоставляет разработчику необходимую техническую информацию и устройства.
( читать дальше... )
>>> Подробности
Btrfs — это замечательная файловая система, главными фишками которой являются легковесные снапшоты, реализуемые через Copy-On-Write (COW), и сжатие. Она показала высокую надежность и стабильность, и именно поэтому она включена в ядро Linux. Однако, даже наличие COW не позволяет избежать избыточности данных на уровне блоков.
( читать дальше... )
Т.к. в сети информации толком нет (ну или я просто не умею её искать), то решил написать эту статью, чтоб исправить это.
Речь пойдёт про установку конкретно houdini. В сети есть скрипты для автоматической установки, которые нужно запускать от рута, но описания что конкретно они делают к ним нет, поэтому у меня не возникло к ним доверия и я решил разобраться что да как.
Многим играм и программам для андроид требуется архитектура arm для работы. Houdini — это набор библиотек-трансляторов, которые позволят запускать их на архитектуре x86 и x86_64. Эти библиотеки были взяты из образов андроид от майкрософт. Есть аналогичный набор библиотек NDK, которые были взяты из образов андроид от гугла.
В данном примере я буду использовать houdini для Android 11, который идёт в штатной поставке waydroid. Там используется образ Lineage OS, но сути это не изменит.
Для начала скачиваем сами библиотеки. Например, отсюда https://github.com/supremegamers/vendor_intel_proprietary_houdini В данном случае нас будет интересовать содержимое каталога prebuilts.
( читать дальше... )
Здравствуйте, любители свежей олдятинки!
Провёл ревизию и выяснил, что есть вполне живые и работоспособные движки к классическим игрушкам. Вот некоторые примеры:
MOBA-игра Prime World от Nival «перезапустилась» в open source (с запретом на коммерческое использование). Официальный сервер игры был выключен в 2021 году.
Лицензия запрещает коммерческое использование – но добро пожаловать улучшать игру, комьюнити уже занимается этим. Как насчёт сборки для Линукс? Даже сервер сейчас работает на Windows, одна из текущих главных задач – перевод на Линукс, с чем вы можете помочь; также комьюнити испытывает потребность в более мощном Windows-сервере (пока не портировали) – вы можете помочь с этим.
Похоже, это первая open source MOBA.
Репозиторий: https://github.com/Nival-Pub/Prime-World, скоро должны публично форкнуть несколько комьюнити групп (сейчас форки приватны – группы конкурируют).
Комьюнити: https://vk.com/primeworldclassic
Там, если хотите, найдёте чат программистов.
Если вашу любимую игру не продают – возможно, пора написать создателям/издателю чтобы её тоже открыли – хоть запуск на современных системах можно чинить.
>>> Подробности
Всем привет! Я долго сопротивлялся, думая что «и так сойдет», но момент настал. Я в целом рандомный эникейщик, но дёрнуло меня собрать сервер для знакомых видеомонтажников на убунте. Делал это всё я первый раз, ранее с linux дел не имел, но было интересно. Сервер на Xeon v4 камне, 20 ядер. вполне приличный, как мне кажется, камушек. 256ГБ ДДР4 памяти. И вот им нужен объем и чтобы быстро по 10G Ethernet тудой-сюдой собирать проект на TV. Файлы все в основном большого размера, ну как… камера мотор… стоп снято. несколько секунд-минут видоса. Внутри сервака стоят 8 по 16ТБ SAS хардов. подключены к SAS-контрольке(по-моему 6G), но в ней не было RAID-уровней кроме 0 и 1(или вообще только 1), поэтому диски пришлось инициализировать каждый по одному и потом в убунте из них создать ZFS-пул. Создано, чтение-запись. всё хорошо. для кэша я в ZFS поменял ARC 1 уровня до 200 гигов. и поставил 5 ssd самсунг pm893 960gb в l2arc. вышло почти 5тб. Их я объединил в программный рэйд0 и создал в пуле соответствующую запись. кэш Online, всё хорошо. Насколько оно попадает в тот или иной кэш мне неизвестно, потому что мне сходу было тяжело разобраться в записях и прочитать их осмысленно. но прирост скорости монтажники почувствовали, на этом я и успокоился. Чуть позже к серваку приросла дисковая полка на 24 диска по 16ТБ, полка SAS, диски все SAS, но и тут гладко не вышло. диски покупались в 2 захода. получилось что первая партия на 144тб с 4К форматом, а остальные без него(не смогли найти идентичных в продаже). LSI MR9286CV-8e отказался создавать всех в один raid6. в итоге вышло как вышло. 144тб и 208тб и в убунте объединены во второй ZFS пул. этот пул - долговременное хранилище. архив, можно сказать. с него читают чтобы выкачать по FTP через файлзиллу и в общем то всё. основной движ в офисе происходит с тех 8 дисков, что стоят напрямую в серваке.
С предысторией я закончил. теперь к сути: когда сервер работает довольно долго (ну, положим… 20 дней), то начинаются какие то сложности со скоростью доступа. Свежезагруженный убунт дает по 10г сети скорость чтения/записи порядка 800 МБ/с через встроенную в davinci resolve прогу-бенчмарк диска. и всем это нравится. монтируется афигенно быстро, сразу 2-3-4 машины используют этот сервак и короче счастье. А вот по прошествии какого то времени начинаются странные странности. то падает чтение, а запись норм. то наоборот. то перестают подгружаться данные в проект. он их видит, но в давинчи передавать отказывает и висит-висит… вчера вот не удалось монтировать монтаж на одной из машин. проект видно, данные по самбе читаются и записываются, с авторизацией проблемы нет, а монтаж просто прекращается не начавшись. проверили что монтаж работает локалФС - локалФС, и локалФС - сервер(но не в обратную сторону).
Короче, я решил спросить совета у тех кто съел собак на тему ZFS. Понятно, что там и сям какие то костыли, и вообще нужно бы всё переделать, поменять IBM serveraid m5110 на что-то с лицензией raid5 и вообще чтобы 12G было. но в момент сборки сервера это прям был мега-ограниченный бюджет, поэтому и собирал это тип(я), которому было по фану, а не спец, которому нужно было многоденег(наверняка). И вот теперь это некий ворох проблем, которые нужно планомерно порешать. С чего начать, где и какими командами изменять параметры ZFS пула для оптимального использования с большими файлами? или лучший вариант это ребут сервера по расписанию? (так вообще кто-то делает или это дичь?)
Тема для самообразования, то ли в Web-, то ли в Development, то ли в Talks.
Есть железка (РЧ-усилистель), с управлением на контроллере Microchip PIC18F97J60-I/PF.
Неисправная, один из симптомов — не обрабатываются шаблоны веб-интерфейса (в браузере вижу имена переменных).
Содержимое микроконтроллера (128KB) мне вряд ли удасться прочитать (как?). Рядом с контроллером есть дополнительная микросхема памяти того же объёма с MPFS. В ней содержатся файлы веб-интерфейса, устроенные следующим образом:
foo.htm — шаблоны с HTML и вставками между символами ~. Вставки в основном имена переменных ~var~, но есть и включения ~inc:bar.inc~.
foo.htm.idx — бинарные, с содержимым похожим на массив значений переменных из foo.htm.
Например:
$ cat reboot.htm
<body>
<center>
<h2><font color="blue">You have set DHCP to be ~DHCPEN~. </font><h2>
<h2><font color="blue">Restart Unit to take effect.</font><h2>
<center>
</body>
<meta http-equiv="Refresh" content="3;url=config.htm">
$ hexdump -C reboot.htm.idx
00000000 41 00 00 00 f1 00 00 00 |A.......|
00000008
Вопросы: 1. На чём это написано и как работает? 2*. Почему не обрабатываются шаблоны?
Раньше мне помогал spoofdpi, а теперь, два дня назад, и он перестал работать. В интернете говорят, что и у goodbyedpi в этот момент проблемы возникли но их быстро решили. К сожалению, его нету под Linux. Были надежды на byeDPI но либо он тоже не справляется, либо я не могу найти подходящую команду для него. Хотя приложение ByeDPI на андроиде ещё работает. Так вот, кто какими решениями пользуется под Linux? v2ray, vpn, это всё конечно хорошо но своей VPS у меня нету, а публичные в 12 раз медленнее чем мой интернет.
Ещё примечание, я обычно предварительно скачиваю через yt-dlp а потом уже смотрю. Где-то говорили, что у кого-то youtube работает если включить протокол QUIC в браузере. Есть ли такая возможность в yt-dlp? Или может есть какая-то дополнительная программа, которая будет работать как прокси и будет трафик в QUIC превращать.
Дано: Сервер файлопомойка-торрентокачалка, торренты хранятся на двух hdd дисках объединенных mergerfs, система debian 12 на ссд, на всех накопителях ext4, гигабитная локальная сеть, планировщик дисков bfq, торрент клиент запущен через nice и ionice с минимальным приоритетом.
Когда при сильно активной раздаче просматриваешь фильмы на китайском tvbox по wifi через mxplayer из samba, воспроизводимый фильм подтормаживает, но если на сервере прочитать весь фильм целиком (что приведёт к загрузки файла в кэш) то фильм воспроизводится без тормозов.
Есть ли в linux какое-нибудь умное кеширование которое понимает что файл читают последовательно и начнёт упреждающе читать его в ОЗУ?
Или просто полностью загружать в кэш весь файл открытый определённым процессом?
Прошу экспертов ЛОРа помочь с решением данной проблемы.
В теме, посвященной «новым» браузерам, я упомянул недостатки протоколов Gemini и его упрощенного аналога Spartan. Представляю вашему вниманию еще один протокол, сделанный на коленке на основе вышеуказанных протоколов. Я ни на что не претендую и делаю это в качестве развлечения. Итак, я взял описание протокола Spartan и несколько подправил его. Протоколу дано временное название owl, чтобы обозначить его в ссылках. Временное - потому что с таким названием есть нечто, относящееся к NFT, а также игровой движок. И вот результат:
Описание протокола
1. Обзор
Протокол Owl - прикладной протокол передачи данных, попытка собрать нечто среднее из протоколов Gemini и Spartan. В качестве фундамента для Owl использован протокол Spartan.
Протокол использует для передачи данных TCP, и является текстовым. Подобно Gemini, Owl может использовать для шифрования TLS с схемой аутентификации TOFU и поддерживает пользовательские сертификаты для аутентификации. Как и в случае Spartan, для Owl в документах gemtext допустимо использование строки "=:" для пользовательского ввода, а также Owl имеет сходную модель запросов.
Owl использует 5 видов статусов в ответе на запрос: "Успешно выполненный запрос", "Перенаправление", "Ошибка сервера", "Ошибка клиента", "Необходимость в сертификате клиента".
Если шифрование не используется, то в URL протокол указывается как owlet://
Стандартный порт для owl - 288, для owlet - 289. Протокол является синхронным, в ответ на запрос клиента сервер передает ответ, после чего при статусе ответа "Успешно выполненный запрос" клиент передает данные (при их наличии), затем данные передает сервер (при их наличии).
2. Запросы.
Запрос клиента к серверу в Owl представляет собой строку текста в кодировке UTF-8, которая предстает в следующем виде
URL [символ горизонтальной табуляции] [опциональный блок, используемый для получения части данных] [размер блока данных в байтах] CRLF [блок данных - передается серверу после получения ответа со статусом успешно выполненного запроса]
[опциональный блок, используемый для получения части данных] = [диапазон в байтах в виде двух чисел разделенных символом "дефис" или числа и символа точки][символ пробела]
Блок данных в конце запроса является опциональным, при его отсутствии размер блока данных должен быть указан как "0". Тип данных может быть как бинарным, так и текстовым или смешанным. Клиент не указывает тип данных, сервер должен сам его определить исходя из контекста.
Порт в url указывается, если он отличается от порта по умолчанию. Размер запроса без данных не должен превышать 1024 байт.
Примеры запросов:
-- Скачивание txt файла
owl://example.com/1.txt 0
-- Отправка данных серверу (комментарий к статье на русском языке)
клиент: owl://example.com/articles/1/comment 20
сервер: 2 gemini/text; lang=ru
клиент: Привет мир!
сервер: [текст статьи с комментариями]
-- Отправка данных серверу (комментарий к статье на английском языке)
клиент: owl://example.com/articles/1/comment 12
сервер: 2 gemini/text; lang=en
клиент: Hello world!
сервер: [текст статьи с комментариями]
--Отправка на сервер музыкального файла
клиент: owl://example.com/upload/music.ogg 1205328
сервер: 2 none 0
клиент: [бинарные данные]
--Запрос статьи от сервера, использующего нестандартный порт
owl://example.com:90/articles/1 0
Также клиент может запросить от сервера только часть данных, указав диапазон в байтах в виде двух чисел разделенных символом "дефис". Использовать символ точки вместо второго числа можно, если данные необходимо получить частично начиная с байта указанного первым числом и до конца данных.
Примеры запросов:
owl://example.com/music/spring.mp3 14721-872345 0
owl://example.com/music/spring.mp3 14721-. 0
3. Ответ на запрос
Ответ сервера состоит из одной строки в кодировке UTF-8 и имеет следующий вид:
-- Код ответа 2 - "Успешно выполненный запрос"
2 [символ горизонтальной табуляции] [тип данных] [дополнительный опциональный блок] CRLF [данные от сервера]
Дополнительный опциональный блок в ответе содержит символ горизонтальной табуляции и следующее за ним число, указывающее на размер данных от сервера в байтах.
Данные от сервера клиенту начинают передаваться после завершения получения данных от клиента, если таковые имеются.
Сервер может в некоторых ситуациях не передавать данные в ответ на запрос клиента. В этом случае ответ сервера будет выглядеть следующим образом:
сервер: 2 none 0
В этом случае соединение будет закрыто при завершении получения данных от клиента или сразу после ответа сервера при отсутствии клиентских данных.
-- Код ответа, начинающийся на 3 - "Перенаправление"
При этом код может быть расширен до 30 (Временное перенаправление) или 31 (Постоянное перенаправление), однако это не является обязательным. URL может быть как абсолютным, так и относительным по отношению к URL, использованным в запросе клиента.
3 [символ горизонтальной табуляции] URL CRLF
-- Код ответа, начинающийся на 4, указывает на ошибку клиента. Ответ содержит человекочитаемый текст, объясняющий характер ошибки.
4 [символ горизонтальной табуляции] [сообщение об ошибке] CRLF
--Код ответа, начинающийся на 5, указывает на ошибку сервера. Ответ содержит человекочитаемый текст, объясняющий характер ошибки.
5 [символ горизонтальной табуляции] [сообщение об ошибке] CRLF
--Код ответа, начинающийся на 6, указывает на необходимость в сертификате клиента (передается на этапе установления соединения с шифрованием в рамках протокола TLS), в этом случае клиент повторяет запрос, но предоставляет сертификат. Если клиент предоставил сертификат, но все равно получил этот ответ, это означает, что сертификат не был принят, в этом случае ответ может содержать человекочитаемый текст, объясняющий характер ошибки.
Код этой ошибки может быть получен только при использовании шифрования.
6 [символ горизонтальной табуляции] [при необходимости - сообщение об ошибке] CRLF
Примеры запросов и ответов на них
клиент: owl://example.com/helloworld.txt 0
сервер: 2 text/plain; charset=utf-8 12
сервер: Hello world!
owl://example.com/helloworld.txt 0
3 owl://example2.com/helloworld.txt
owl://example.com/helloworld.txt
4 Неправильно составлен запрос
owl://example.com/helloworld.txt 0
5 Внутренняя ошибка сервера
owl://example.com/helloworld.txt 0
6 Неверный сертификат
4. Формат документа.
Owl использует в качестве предпочтительного тот же формат документов, что и Spartan - модифицированный text\gemini.
В частности, от стандартного text/gemini формат документов Spartan отличается наличием дополнительной строки ":=" для ввода пользовательских данных. Вид вводимых данных (текст, файл) определяется клиентом.
=:[пробел]<URL>[пробел человекочитаемое представление ссылки]
5. URL
Структура URL для owl напоминает структуру URL для http.
scheme://userinfo@host:port/path;parameters?query#fragment
Согласно стандартам пробелы в URL должны быть представлены как "%20", однако протокол способен работать с "настоящим" пробелом, поэтому его появление в запросе не должно быть расценено как ошибка.
Соответствия URL запросам
owl://example.com => owl://example.com 0
owl://example.com/1 => owl://example.com/1 0
owl://example.com?a=1&b=2 =>
owl://example.com 7
a=1&b=2
owl://example.com/my%20file.txt =>
owl://example.com/my%20file.txt 0
Если вы дочитали до этого момента, то от вас требуется критика, пожелания, а возможно, свой вариант протокола. Воспринимайте данный протокол как нечто несерьезное, планов построить свою гипертекстовую сеть у меня нет. Что касается самого протокола, у меня есть сомнения в отношении правильности некоторых решений. Во-первых, в том как формируется запрос для получения части данных. Во-вторых, следует ли использовать табуляцию для разделения разных элементов в запросах и ответах. В третьих, как следует поступать с пробелом в URL.
| следующие → |