LINUX.ORG.RU

Избранные сообщения dataman

25 лет Linux.org.ru

 

Группа Linux.org.ru

25 лет назад, в октябре 1998 года, был зарегистрирован домен Linux.org.ru.

Просьба написать в комментариях, что бы вы хотели изменить на сайте, чего не хватает и какие функции стоит дальше развивать. Интересны и идеи по развитию, и мелочи, которые хотелось бы поменять, например, мешающие проблемы юзабилити и баги.

Кроме традиционного опроса, хотелось бы дополнительно отметить активных участников форума, которые провели на сайте большее количество дней (считаются те дни, в которые был написан хотя бы один комментарий или создан топик):

  1. @AP: 5613 дней
  2. @mky: 5492 дня
  3. @hobbit: 4489 дней
  4. @sin_a: 4484 дня
  5. @quickquest: 4477 дней
  6. @Evgueni: 4420 дней
  7. @Reset: 4321 день
  8. @Aceler: 4306 дней
  9. @iZEN: 3856 дней
  10. @i-rinat: 3855 дней
  11. @devl547: 3830 дней
  12. @I-Love-Microsoft: 3782 дня
  13. @grim: 3620 дней
  14. @Shadow: 3618 дней
  15. @maxcom: 3562 дней
  16. @Pinkbyte: 3519 дней
  17. @Nervous: 3487 дней
  18. @cvs-255: 3447 дней
  19. @atrus: 3430 дней
  20. @Zhbert: 3408 дней

>>> Подробности (linux.org.ru)

maxcom
()

В crengine-ng добавлена поддержка Markdown

 , ,

В crengine-ng добавлена поддержка Markdown
Группа Open Source

Вышла новая версия crengine-ng 0.9.4. Основное изменение — это поддержка файлов с разметкой Markdown.

Доступно на выбор две реализации: используя cmark или cmark-gfm, для этого добавлены соответствующие опции cmake USE_CMARK и USE_CMARK_GFM. Опция USE_CMARK_GFM включена по умолчанию.

cmark — https://github.com/commonmark/cmark

cmark-gfm — https://github.com/github/cmark-gfm

crengine-ng — форк CoolReader, нацеленный на развитие только библиотеки парсинга и рендеринга.

Сборки crqt-ng-1.0.4 с crengine-ng-0.9.4: https://gitlab.com/coolreader-ng/crqt-ng/-/releases/1.0.4

crqt-ng — форк CoolReader, нацеленный на развитие только программы для чтения, клиент на Qt.

Ебилды для Gentoo подготовлены.

>>> Релиз на gitlab (gitlab.com)

virx
()

Форк CoolReader: crengine-ng, crqt-ng, crwx-ng

 , , ,

Группа Open Source

За основу взят срез репозитория CoolReader от 2021-09-16.

Основные изменения в crengine-ng по сравнению с CoolReader 3.2.59 (некоторые из изменений отправлены в upstream)

( читать дальше... )

>>> Ссылка на репозитории (gitlab.com)

virx
()

Сколько каких реакций поставили под вашими сообщениями? (+юзерскрипт)

 , , violentmonkey, ,

// ==UserScript==
// @name        LOR count-reactions
// @match       https://www.linux.org.ru/notifications?filter=reaction
// @version     1.2
// @author      CrX
// @description Show reaction count on reactions notifications page
// @grant		    GM_xmlhttpRequest
// ==/UserScript==

var res = {"🤡": 0, "👍": 0, "👎":0, "🤦": 0, "🔥": 0, "😊": 0, "🤔": 0, "😱":0, "☕☕":0, "🪗": 0};
let newdiv = document.createElement("div");
newdiv.setAttribute("id", "scriptedReactions");
h1 = document.getElementsByTagName("h1")[0];
h1.parentNode.insertBefore(newdiv, h1.nextSibling);

function countReactions(pageDom) {
  Array.from(pageDom.getElementsByClassName('reaction')).forEach((e) => {
    for (var r in res) {
      if (e.innerText.search(r) != -1) { res[r]++; }
    }
  });
  let reacttext = "| ";
  var items = Object.keys(res).map(function(key) {
    return [key, res[key]];
  });
  items.sort(function(first, second) { return second[1] - first[1];});
  for (var r in items) {
    reacttext += items[r][0] + ": " + items[r][1] + " | ";
  }
  document.getElementById("scriptedReactions").innerHTML = reacttext;
}

function scrapePage(pageurl) {
  GM_xmlhttpRequest({
    method: "GET",
    url: pageurl,
    onload: function(response) {
      var parser      = new DOMParser ();
      var responseDoc = parser.parseFromString(response.responseText, "text/html");
      countReactions(responseDoc)
      let nextlink = responseDoc.querySelector('a[rel="next"]');
      if (nextlink) {scrapePage(nextlink);}
    }
  });
}

countReactions(document);
scrapePage(document.querySelector('a[rel="next"]'));

(upd: скрипт обновлён, исправлены неверные результаты, если в настройках количество уведомлений отлично от 100)

Добавляем в ViolentMonkey, или что там у вас. Идём на страницу уведомлений о реакциях, смотрим, сколько каких, прямо под заголовком страницы.

Можно копипастить сюда, у кого что.

Топ клоунов — это хорошо, но там только «лучшие из лучших». А что у вас? А баянов кто-нибудь уже успел насобирать?

Моё на момент написания сообщения: | 🤡: 31 | 👍: 322 | 👎: 16 | 🤦: 11 | 🔥: 62 | 😊: 61 | 🤔: 9 | 😱: 13 | ☕☕: 157 | 🪗: 0 |

CrX
()

В какой стране вы живёте (июнь 2022)?

 

Точная копия опроса: В какой стране вы живёте? («Есть мнение, что лоровцы где-то живут. Цель опроса – выяснить где. ») Мне кажется, имеет смысл спросить еще раз.

  1. Россия 636 (69%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Украина 66 (7%)

    *********************************

  3. Другая страна (за пределами ЕС) 66 (7%)

    *********************************

  4. Другая страна (ЕС) 42 (5%)

    *********************

  5. Беларусь 38 (4%)

    *******************

  6. Германия 21 (2%)

    **********

  7. Чехия 11 (1%)

    *****

  8. Казахстан 11 (1%)

    *****

  9. США 9 (1%)

    ****

  10. Нидерланды 9 (1%)

    ****

  11. Израиль 5 (1%)

    **

  12. Канада 3 (0%)

    *

  13. Исландия 3 (0%)

    *

  14. Швеция 2 (0%)

    *

  15. Ирландия 1 (0%)

  16. Венгрия 0 (0%)

Всего голосов: 923

crypt
()

В Си макро магии для строк подвезли

 , ,

https://github.com/skullchap/chadstr

int table = 13;
int id = 37; 
str test1 = str("SELECT * FROM ", table, " where person_id ", id);
str test2 = str(test1);         //copies test1 to test2
str test3 = str(test2, test1); // returns concat of test2 and test1

test2 = test1; // acceptable, but wrong since test2 now points to test1 not copies it.

str(*test1); // returns const char* to use in printf like functions
Ex: puts(str(*test1)); // prints test1
chadstr test1 = str("pineapple"); 
chadstr test1range = str((range)(test1, 3,6)); // neap

Судя по всему оно умеет интерполяцию строк (в тч и конкатенацию) а так же виртуальные ранжи. В исходном коде есть зачатки сборщика мусора.

Исходный код с кучей макро магии https://github.com/skullchap/chadstr/blob/master/chadstr.h.

bga_
()

Анонимный постинг закрыт

По результатам голосования модераторов анонимный постинг на сайт закрыт на полгода или до пересмотра данного вопроса

maxcom
()

Комментарии к профилям

 ,

Например, добавить раздел «Список комментариев к профилям пользователей» в https://www.linux.org.ru/user-filter.

Хотелось бы, а то не помню, как кого обозвал.

dataman
()

Вы теперь все так же пишете же ну?

 


auto main () -> int {
   return 0;
}

slackwarrior
()

Вульпекула

 еретики, ксеносы, ,

Настало время пятничного поста в /workspaces!

Сегодня на суд ЛОРа выставляется лежачее рабочее место под названием «Посадочный Модуль „Вульпекула“. (названный так по имени линейного корабля, участвовавшего в знаменитой атаке против ксеносов Сарути и предателей на 56-Изар).

Модуль представляет собой кронштейн из композиции двух дешевых икеевских стеллажей „Hyllis Shelving Unit“ и сложного деревянного выноса, закрепленного монтажной лентой, замками Bulat и пятью струбцинами, утяжеленного чугунными болванками, двух матрасов (один из них - медицинский), двух подушек, компьютеров Apple Mac Mini (MacOSX) и мощного самосбора (Linux), древней беспроводной клавиауры Logitech Cordless Desktop EX110 и трекпада Apple Magic Trackpad. Теоретически, монитор закреплен на легко вынимаемой из док-станции платформе (нужно всго лишь отстегнуть замки Булат и отвернуть струбцины).

На момент публикации модуль уже технически устарел и будет заменен на новый, который кроме кардинальных улучшений дизайна будет, возможно, содержать и принципиальные технические новшества типа автоматической авторизации по инсигнии Инквизиции. Перед уничтожением модуля, хотелось бы поделиться фотографиями с ЛОРом. Учтите, что все фотографии строго секретны, и после их просмотра, при опасности попадания вас в руки Хаоса, вы знаете что делать. Следи за собой и буть осторожен, юзернейм.

Вот краткая процедура сборки модуля.

( читать дальше... )

stevejobs
()

The Register: сравнение потребления ресурсов различных DE под Ubuntu

 , , ,

Группа Ubuntu Linux

Издание The Register произвело сравнение потребление сред рабочего стола в 2022 году на примере дистрибутива Ubuntu 22.04. В забеге участвовали:

( читать дальше... )

>>> Подробности на сайте The Register (theregister.com)

anonymous
()

Кто подскажет репозитории apt

 , ,

Скиньте пожалуйста файл /etc/apt/sources.list в нем хранятся все репы, хочу добавить их в пакмана

dr460nized
()

Как правильно копировать вывод терминала

 

Это — небольшая заметка для новичков. Модераторам — просьба закрепить.

В принципе, краткий ответ на вопрос «Как правильно копировать вывод терминала?» будет: www.linux.org.ru/help/markdown.md

Но многие новички видимо в принципе не могут работать с разметкой не WYSIWYG. А если тупо копировать текст, то получается каша, которую невозможно читать. Вставлять текст картинкой — вообще хуже некуда, этим вы заставляете человека, который всё же решился за вас поискать в Google (вообще, вы должны были это сделать перед обращением на форум) перепечатывать ошибки руками.

Итак, вот ситуация: вас попросили процитировать вывод какой-либо команды со своего компа. Для простоты, скажем,

lsb_release -a
Вот как это сделать правильно:

  1. Открываете свой эмулятор терминала и выполняете там эту самую команду: https://wampi.ru/image/RjF9fEZ
  2. Потом выделяете (банально зажатой левой кнопкой мыши) нужный вам вывод в терминале: https://wampi.ru/image/RjF9mSf
  3. Потом копируете этот вывод в буфер обмена или через хоткей (в большинстве терминалов Ctrl+Shift+C), или через банальное контекстное меню: https://wampi.ru/image/RjF9vby
  4. Потом, никак не модифицируя, просто вставляете в ответ: https://wampi.ru/image/RjF9wOk
  5. Потом добавляете 3 обратных апострофа ``` на строчку выше и на строчку ниже текста (обратный апостроф ` и апостроф ' — разные символы, не путайте, обратный апостроф часто находится на клавише с буквой Ё): https://wampi.ru/image/RjF93Wg
  6. Нажимаем кнопку «Предпросмотр» и о чудо — текст красиво и правильно выделен: https://wampi.ru/image/RjF9Fdt
  7. Можно нажимать внизу кнопку «Поместить», зная, что всё будет отображаться как надо и читаться легко.

Вообще, как видите, ничего сложного.

P.S. Ранее я неправильно писал названия символов и сам их путал, теперь вроде верно.

https://ru.wikipedia.org/wiki/Машинописный_обратный_апостроф

Vsevolod-linuxoid
()

генерация в консоли звуковой частоты в отдельном канале

 ,

Для начала вот пара примеров, которые мне либо помогают в работе, либо помогают засыпать :)

Генерация частоты 3150Hz

ecasound -i tone,sine,3150 -o alsa

Генератор успокаивающего шума

play -q -n synth brown band -n 1200 200 tremolo 0.05 80

А теперь вопрос — как бы сделать тоже самое, но только в один канал? Левый или правый по выбору. Без выкручивания баланса звука в системе. Особо любопытным - для настройки аудио.

hikikomori
()

Помогите вспомнить фамилию писателя фантаста

 , ,

Напомните мне у какого фантаста я такое вот читал?

Компьютеры достигли «квантового и энтропийного предела», так и назывались ЕМНИП «предельные компьютеры», дальнейшее наращивание мощностей «вглубь» стало невозможно. В результате вычислительная архитектура «окаменела» в этом «предельном» состоянии и стабилизировалась на сотни и тысячи лет.

На низком уровне софт тоже «окаменел» и «одичал», программисты его писавшие давно уже умерли, исходники утеряны, как «низкий уровень» работает никто уже давно не понимает и системно разобраться в наслоениях софта за десятки сотен лет тоже невозможно, так как софт «самомодифицирующийся», многократно изменялся и «мутировал».

Программирование осталось исключительно «прикладное», на абстрактно высоком уровне, но существует профессия «программный археолог», они разыскивают древние исходники, системные утилиты, пытаются реверсинженерить унаследованные пласты. Профессия считается «грязной» и криминальной, так как грань между «программным археологом» и «хакером» отсутствует.

«Хакер» в этом мире подобен магу, в том числе и тем что «системное» знание и понимание программной архитектуры у него отсутствует, да и взять его в упорядоченном виде неоткуда. Поэтому его приёмы мало отличаются от «заклинаний», и кто больше «заклинаний» знает — тот и круче. Собсно эти «заклинания» как раз и раскапываются «программными археологами». И особенную ценность имеют пропавшие сотни лет назад корабли и утерянные колонии, так как они могут содержать в своих носителях «изначальный» древний код и утилиты.

Jameson
()

Посоветуйте англоязычные аналоги Хабра

 ,

В основном меня интересуют статьи по вебу.

Для себя выделил:

На этом всё

CryNet
()

Посоветуйте выразительной фортепианной музыки.

Типа размашистого аккомпанимента к романсу. Можно заковырестый джаз. Интересует ещё импровизация, типа Кейта Джаррета, когда он шоколадок обжирается.

kiverattes
()

Установка и настройка Debian 11 для десктопа с netinstall (незавершенная заметка)

 , ,

Следовать ей в точности не обязательно, но может подсказать кому-то, как сделать хорошо. И она неполная, я и сам всего не знаю.

( читать дальше... )

Vsevolod-linuxoid
()

Debian ISO FastInstall — скрипт для ускорения установки Debian из ISO

 , , ,

Группа Debian

Стандартные ISO-образы Debian производят установку системы путём инсталляции всех необходимых пакетов через apt, вызывая fsync() на каждое действие с файлами (стандартное поведение apt/dpkg). Синхронизация состояния файлов значительно уменьшает скорость установки, особенно на медленных HDD.

Проблема с медленной установкой Debian не нова. Еще в 2014 году Petter Reinholdtsen представил eatmydata-udeb — скрипт, отключающий вызовы fsync() для установочного ПО. Однако его работа так и не была задействована по умолчанию в ISO-образах, а также не ускоряет небыстрый начальный этап установки базовых пакетов.

Debian ISO FastInstall ускоряет установку Debian из ISO путём корректной активации eatmydata на всех её этапах.
Скрипт добавляет недостающие файлы eatmydata, помещает скрипт-патчер и пересобирает классические и live ISO-файлы Debian, не изменяя содержимое deb-пакетов.

Пример установки Debian 10.6.0 amd64 из DVD-файла на виртуальной машине, на HDD, без кеширования записи.

  • Оригинальный файл: 1 час 44 минуты 20 секунд
  • Патченный файл: 10 минут 37 секунды

Совместимость скрипта проверена классических и live-файлах релизов Stretch, Buster и Bullseye, а также на образах non-free firmware.

>>> Подробности (bitbucket.org)

ValdikSS
()

Какими патчами вы патчите linux ядро?

 , ,

Интересно было бы услышать, какие патчи накладывают люди на своё ядро. Если вы не патчите ядро - не нужно говорить об этом в топике

Рекомендуемый формат:

  1. gcc https://github.com/omkhar/kernel_gcc_patch
  2. uksm https://github.com/dolohow/uksm
serg002
()