LINUX.ORG.RU

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

Сколько чашек кофе в день нужно выпивать при использовании Workrave?

Форум — Talks

Если делать, как иконка гласит.

Не приведёт ли это к кофейному отравлению?

Можно ли подать на разработчиков Workrave в суд за кофейное отравление, или ABSOLUTELY NO WARRANTY, как обычно?

 , ,

Moondancer ()

Ушат помоев в сторону крестолюбов

Форум — Development

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

Последние 7 лет я пишу сугубо на C, и только под Linux (да, да -std=gnu99 и accept4, dup3, __attribute__((cleanup(dtor))) и прочие приятности, позволяющие сделать волосы шелковистее на 15.5%) и не понимаю, для чего вообще нужен C++? То, что на сишке делается красиво и элегантно, в крестах напоминает соитие парализованных дцпшников (к сожалению, утерял картинку, но именно этот образ всплывает в голове, когда вижу очередную порцию крестолапши).

Давайте посмотрим на типичного C++ разработчика: он использует STL, boost, многие любят Qt (не только для GUI), якобы чтобы «писать кроссплатформенный код». В итоге болезный не знает током ни WinAPI, ни POSIX — ничерта. Он абсолютно не разбирается, как работает целевая система, для которой пишет код! Крестокодер просто не осознает, какой лютый ужас кроется за его любимыми iostream-ами, какое лютое говно лежит в boost::filesystem::path, насколько убого-низкоуровневым является boost::asio в 2016 году.

Только крестораб может эпично обосраться и просадить производительность, забыв передавать по ссылке параметры для «горячих» функций (то есть, просто забыв написать «&» в нужном месте).

Также эти убогие завистливо смотрят на type inference в языках, проектировавшихся не как «C на стероидах», и в ответ начинают лепить template и auto не к месту, от чего код адово пухнет и даже IDE перестает его понимать.

Серьезно, просто прекратите писать на этом языке. В следующий раз, начиная новый проект, выберите java (щютка)/go/swift/rust/c. Прекратите насиловать труп и отравлять зловонием все вокруг!

Перемещено true_admin из talks

 , , , ,

kawaii_neko ()

Оказывается, snprintf() таки небезопасна

Форум — Development

Не люблю я Си-шные строки, не люблю эти низкоуровневые пляски со строками. Но вот понадобилось сделать интерфейс с такими строками. На первый взгляд все выглядело кошерно. Но полезли баги, и я чего только не передумал, пока не додебажился до проблемы в snprintf().

Так вот, оказывается snprintf() не умеет писать строку саму в себя. Зачем это нужно? Ну вот например код:

// connectUrl - имя/IP сервера (поле класса)
// connectPort - порт сервера (поле класса)

bool TcpChannel::open(const char *url, int port)
{
    // Запоминаются URL и порт
    snprintf(connectUrl, TCP_CHANNEL_MAX_URL_LEN, url);
    connectPort=port;

    // Устанавливается соединение (возвращает void)
    tcpSocket->connectToHost(connectUrl, connectPort);
    ...
}

void TcpChannel::reConnect()
{
    ... всякая логика ...

    // Переустанавливается соединение
    open(connectUrl, connectPort);
}

Тут поле connectUrl из reConnect() передается в open() и должно записаться само в себя, то есть, вообще ничего не должно измениться по-хорошему. А вот болт. Первый байт строки будет обнулен и получится пустая строка. Не ожидал я такого. Как люди пишут на сях с такими строками - не понимаю.

 ,

Xintrea ()

PostgreSQL 10 вышел

Новости — Open Source
Группа Open Source

5 октября 2017 Всемирная группа разработки PostgreSQL объявила о выпуске PostgreSQL 10, новой версии реляционной системы управления базами данных с открытым исходным кодом.

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

«Наше сообщество разработчиков сфокусировано на развитии таких свойств системы, которые позволяют наиболее полно использовать возможности современных инфраструктур с распределённым характером нагрузки», — говорит Магнус Хагандер (Magnus Hagander), член основной команды Всемирной группы разработки PostgreSQL. — «Такие функции как логическая репликация и улучшенный параллелизм исполнения запросов отражают годы работы и демонстрируют постоянный фокус сообщества на обеспечении лидирующей роли PostgreSQL в условиях растущих технологических требований».

С появлением данного релиза меняется схема версий PostgreSQL, новый формат — «x.y». Это означает, что следующее минорная версия будет 10.1, а следующий мажорный релиз — 11.

Логическая репликация — фреймворк для распространения данных по модели «публикация/подписка»

Логическая репликация расширяет дополняет существующий набор видов репликации в PostgreSQL за счёт возможности передавать данные о модификации данных на уровне конкретной базы данных или на уровне таблиц в другие базы данных PostgreSQL. Пользователи теперь могут определять, какие именно данные нужно реплицировать. Кроме этого, появляется возможность выполнять переход на новые мажорные версии PostgreSQL без простоя и за счёт встроенных в ядро СУБД средств.

«Мы активно используем PostgreSQL, начиная с версии 9.3, и очень рады появлению версии 10, так как она содержит долгожданные возможности партиционирования и встроенной логической репликации. Это позволит нам использовать PostgreSQL в ещё большем количестве сервисов», — заявил Владимир Бородин, компания «Яндекс».

Декларативное партиционирование таблиц

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

Улучшенный параллелизм выполнения запросов

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

Кворум-коммит для синхронной репликации

В PostgreSQL 10 появился кворум-коммит для синхронной репликации, обеспечивающий гибкость процесса оповещения основной БД о том, что изменения успешно записаны на удалённые реплики. Администратор может теперь указывать, что если определённое число реплик получило информацию об изменении, данное изменение можно рассматривать как надёжно зафиксированное.

«Кворум-коммит для синхронной репликации в PostgreSQL 10 даёт нам больше вариантов расширять нашу инфраструктуру баз данных с временем простоя работы приложений, стремящимся к нулю. Это позволяет нам непрерывно выкатывать изменения и обновлять нашу инфраструктуру без необходимости объявления длительных периодов обслуживания», — сказал Курт Микол (Curt Micol), инженер инфраструктуры в компании Simple Finance.

Аутентификация SCRAM-SHA-256

SCRAM (The Salted Challenge Response Authentication Mechanism), описанный в RFC5802, определяет протокол безопасного хранения и передачи паролей за счёт использования специального фреймворка для более строгого сопоставления паролей. В PostgreSQL 10 представлена поддержка метода SCRAM-SHA-256, описанного в RFC7677. Данный подход является намного более безопасным, чем существующий метод аутентификации с использованием MD5.

>>> Подробности

 

postgresmen ()

gentoo просрали полимеры

Форум — Development

Гентушник - будь бдителен.

Я просто оставлю это здесь:

Reported - дата создания бага.
Status - по состоянию на 07 число 06 месяца 2017 года

ЗЫ: "Создавай баги" говорили они... Ну вот я собственно именно это и сделал.

 , , , ,

init_6 ()

Liberation Circuit 1.1

Новости — Игры
Группа Игры

Состоялся релиз Liberation Circuit 1.1 — свободной стратегии в реальном времени, отличающейся от многих конкурентов возможностью запрограммировать юнитов.

( Описание игры и основных изменений )

Репозиторий проекта на Github и скриншоты

Видео процесса игры

Руководство по игре

>>> Объявление о выпуске новой версии

 , , ,

the_electric_hand ()

Паника

Форум — Talks

Добра, ЛОР-пони.

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

У меня паника. Вроде, Debian Stable, из репозиториев лишь бекпорты, debian-multimedia и репа с темой «Arc», ничего подозрительного. Свой IP Я не раскидывал туда-сюда, да и на роутере поднят файерволл.

Файл был создан сегодня, в 21:07:55, когда Я не был за компьютером, и тогда он был просто заблокирован (стандартный экран блокировки гнома). Создан от моего юзера. Как такое могло произойти?

Понимая градус неадеквата - тема специально для толкcов, ежели нет - перенесите в нужный раздел.

 ,

HashDerpy ()

Тестирую компиляцию описания формата Kaitai Struct в диаграмму GraphViz

Галерея — Скриншоты

Сделали новую фичу в Kaitai Struct: раньше мы умели описания бинарных форматов файлов и пакетов смотреть в визуализаторе и компилировать в исходный код парсера на поддерживаемых языках программирования (к ним, кстати, медленно, но верно добавляются PHP и Perl), а теперь мы умеем еще и генерировать по описаниям форматов вот такие вот диаграммы.

На скриншоте - развернутая на фул-скрин схема базовых тестовых форматов стека OSI 2-4 уровней. Все начинается с pcap-файла (вне уровневой классификации), в который вложены фреймы формата Ethernet (2 уровень), в которые вложены IPv4-пакеты (3 уровень), в которые вложены либо TCP-сегменты (4 уровень), либо ICMP-пакеты (3 уровень). Таблички - классы. Жирные стрелки - включения типов один в другой, серые дуги - использования значений из какого-то поля в другом.

В правом верхнем углу - для сравнения - окошко с текстовым редактором, в котором видно, как выглядит исходник описания формата pcap в .ksy.

Схема получена абсолютно автоматически без каких-либо ручных правок и дорисовываний ровно за 2 шага:

1. Пачка файлов с описаниями форматов .ksy компилируется в graphviz:

ksc -t graphviz файлы.ksy

2. Полученный dot-файл банально обрабатывается graphviz:

dot -Tsvg <файл.dot -o файл.svg

Если стало интересно, вот еще пачка примеров:

>>> Просмотр (3840x2160, 223 Kb)

 , ,

GreyCat ()

Торрент клиент для сидбокса

Форум — General

Когда-то создавал тему Торрент клиент для высокой нагрузки, сейчас на сервере 5600 раздач в transmission/freebsd, переосмысливаю бытие...

Couldn't create socket: Too many open files (fdlimit.c:671)
sonewconn: pcb 0xfffffe01cdcf6188: Listen queue overflow: 193 already in queue awaiting acceptance

Первое это как раз захардкоженный лимит в 1024 файлов, о котором в прошлом треде упоминал si0. Второе это лимит сокетов, который я так и не смог увеличить штатными средствами: Переполнение очереди запросов в freebsd (Listen queue overflow)

Сейчас я в основном сидирую раздачи на закрытых трекерах и добиваюсь максимального аплода, который как раз в transmission не самый хороший. Решил попробовать deluge/linux, перевел половину раздач. Демон сам по себе жрет намного больше проца, но, судя по отзывам, это из-за более агрессивной манеры работы, которая как раз мне и нужна. А вот веб интерфейс умирает уже около первой тысячи. Гткашный гуй пока держит 2700 раздач, но выпадает при аномально высокой нагрузке. В тех же условиях transmission тоже тормозит, но хотя бы сохраняет управляемость через веб, обновляет где-то раз в минуту. У deluge еще какие-то странности с символами юникода, некоторые файлы в раздачах в упор не видит.

Какой клиент посоветуете для сидирования?

 , , ,

Lordwind ()

Больше красок, красивых и разных!

Галерея — Скриншоты

Хочу поделиться своим маленьким, но IMHO полезным, хаком.

Т.к. мне часто приходится коннектиться к куче разных хостов (и часто одновременно), то в одноцветных терминалах порой очень быстро начинаешь путаться. Захотелось их как-то разукрасить.

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

Так появилась эта маленькая поделка, вычисляющая цветовые параметры для xterm исходя из его параметров (конкретно использован CRC24 и tint/shade для fg/bg). К этому ещё маленький патч к uxterm и command term uxterm в ~/.cwmrc (если этого ещё нет). И вуаля, всё так, как хотелось. ;)

Всё это прозрачно работает с cwm (описание), где есть встроенный shortcut для коннекта по ssh: Meta-Dot, с подсказкой из ~/.ssh/known_hosts — очень удобно! Для этого, правда, надо отключить беcтолковое HashKnownHosts в конфиге ssh, иначе подсказка, конечно, работать не будет.

PS: Это уже многие годы моё рабочее, проверенное временем, окружение — ничего лишнего, никаких красивостей, только чистый функционал.

UPD: для cwm я таки запилил свой собственный форк — так, что бы без обойтись лишних патчей. Буду пытаться пропихнуть в upstream. ;) Может и в самом деле wm для админов выйдет.

>>> Просмотр (3840x1200, 527 Kb)

 , ,

beastie ()

Рабочее место учителя сельской школы

Галерея — Рабочие места

Работаю в средней школе учителем информатики, труда и черчения. Это мое рабочее место. В классе 15 рабочих станций для школьников + 1 для учителя и ноутбук учителя. Ноут ношу в кабинет труда, когда там уроки. Журнал только в электронном виде уже 5 лет.

На компьютерах школьников крутится Fedora 22 + Gnome 3. Для учебы используем LibreOffice 4.4, GIMP, Inkscape, MyPaint, Bluefish, Brackets, Gedit. У нас нет привязки к конкретному ПО. Школа сама выбирает. На FOSS перешли из-за кризиса 2008. MS дорого! Так и остались. Экзамены можно делать на продуктах MS или FOSS. Задачи присылают в doc/xls/etc., docx/xlsx/etc. и odt/ods/etc.

На компьютере учителя Windows 7. В Autodesk Inventor делаю чертежи для труда. На ноуте Fedora 23 (сегодня обновил, на фото F22). Думаю, что в течение 2 недель обновимся и в классе. CloneZilla FTW!

Из IT тут еще камера для документов (не знаю как по-русски). Очень удобно в реальном времени показывать процесс черчения! Можно записывать видео. Шрифты дефолтные + сглаживание посредством Fedy. Обоина в классе загружается при старте со школьного FTP. Есть нехитрый Bash-скрипт. Каждый месяц скачиваю новую с smashingmagazine.com.

p.s. sorry my bad russian

>>> Просмотр (2448x2448, 751 Kb)

 , ,

cyxob_lv ()

Суровая красноглазая gentoo и такой удобный CentOS 7

Форум — Talks

Итак rpm based CentOS 7, энтерпрайз во все поля. Первая мысль - „Сволочи верните мне мои глаза!“. Чтоб получить вменяемые шрифты надо ставить левые репы (я повторяю сраные левые репы потому-что в официальных я этого вообще не нашел) где добрые люди собрали fontconfig и freetype с патчами infinality.

Ладно поехали дальше - b43, broadcom-sta, nvidia-drivers? Нет CentOS о них не слышал. И опять же спасибо левым репам потому что в официальных этого НЕТ. И ладно хрен с ними с broadcom и nvidia но что не так с b43? Фирмварь у нее несвободная или что? А сам модуль но без фирмвари что тоже религия не позволяет? Ладно rpmbuild --rebuild && профит и поехали дальше.

Дальше я захотел mpv! Ага щаааз... В общем если кратко то опять же пользуясь исключительно официальными репами это решается НИКАК. В поисках того как же получить ffmpeg из официальных реп нахожу этот шедевр ffmpeg wiki:CompilationGuide/Centos ЛОЛЧТО? ./configure && make && make install вы ничего там не попутали? К примеру вы там LFS/SlackWare с CentOS не попутали?

Короче чтоб в CentOS получить mpv-0.6.0 нужны опять же сраные левые репы, ровные руки и gentoo-шный скилл сборки помноженный на rpm, rpmbuild.

А теперь ВНИМАНИЕ сравнение с наколенной, красноглазой gentoo:

  • Патчи infinality изкоробки.
  • b43 изкоробки.
  • Фирмварь для b43 тоже изкоробки.
  • broadcom-sta изкоробки.
  • nvidia-drivers изкоробки.
  • ffmpeg изкоробки.
  • libav изкоробки.
  • mplayer изкоробки.
  • mplayer2 изкоробки.
  • mpv изкоробки.

„Изкоробки“ в данном случае означает что ничего левого вообще подключать не нужно а достаточно выполнить emerge <пяпя>.

 , ,

init_6 ()

Мой клон YubiKey с блэкджеком: SkeletonKey-R1

Галерея — Рабочие места

На картинке виден первый собранный и даже работающий прототип сабжа. Оный все же удалось сделать достаточно узким, чтобы он не мешал воткнутому в соседний порт кабелю. Слоупочта сингапура в этот раз прослоупочила и плат я ждал больше месяца. Предыстория: В РФ не завезли юбикеев, я психанул и запилил свой. Как только отлажу фирмварю - выложу все в опенсорс и сделаю детальное описание.

Кастую интересовавшихся: Krieger_Od, true_admin

Фичи:

  • 4 кнопки на каждую из которых можно повесить действие
  • Аппаратный генератор случайных данных на зенер-диоде
  • 2 RGB светодиода, которые можно использовать для уведомлений/moodlight/etc
  • Встроенный загрузчик для обновления фирмвари по USB

На каждую кнопку можно повесить один из трех режимов:

  • Режим YubiKey-OTP
  • Режим Replay (отправка по нажатию на кнопку записанной последовательности клавишь)
  • Режим генерации «красивых» хостнеймов (Если вдруг подведет фантазия)

Главный косяк первой ревизии - нужен корпус. Мембранные кнопки без корпуса полное УГ, сама мембрана легко может отвалиться, для нажатия надо придерживать снизу что может «навести» на соседние кнопки.

DR_SL, твои навыки моделлинга во FreeCAD'е все еще так же круты, как и раньше?

>>> Просмотр (2048x768, 555 Kb)

 , ,

ncrmnt ()

Руководство по проектированию библиотеки на C++

Форум — Development

 

nerdogeek ()

Какой язык относительно легче изучается: японский или корейский?

Форум — Talks

Хорошо владею 2 славянскими языками, а также английским, базовым испанским латинской Америки и совсем начальным кхмерским.

Есть желание и возможность изучить японский или корейский язык, кто пробовал оба или в процессе изучения, какой из этих языков (+ письмо, это важно для письменного общения) относительно легче поддается изучению?

Чье письмо читаемее? Какой легче для слуха? Какой язык в целом проще?

 , ,

redhat ()

Много опенсурса от DARPA

Форум — Talks

Там список категорий, при переходе в категорию - списки проектов. Открыты не все, но исходники для многих проектов есть. Много интересного, наслаждайтесь: http://www.darpa.mil/opencatalog/

 , ,

XVilka ()

Хочу научиться паять

Форум — Talks

Доброго времени суток, ЛОР.

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

В связи с чем вопрос: а какой паяльник-то покупать или как его хотя бы выбирать? Ни разу в руках его не держал, о процессе имею весьма смутное представление.
Для чего он мне нужен? А чёрт его знает, может, из ардуин всё тех же вундервафли лепить, может, технику какую дома починить. Просто хочу научиться хотя бы. Чего посоветуете?

UPD Важное уточнение: желательно, чтобы продавалось в мск и можно было взять буквально на днях; подарок же мне, любимому, а днюха совсем скоро.

 

Deleted ()

Вся современная DRAM-память не надёжна

Форум — Talks

http://www.opennet.ru/opennews/art.shtml?num=41340

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

loop:
       mov X, %eax  ; Читаем значения адресов X и Y, 
       mov Y, %ebx  ; сохраняем значения в регистрах и кэше
       clflush (X)  ; Чистим содержимое кэша
       clflush (Y)
       mfence       ; Убеждаемся, что данные точно вычищены из кэша
       jmp loop

Причина в том, что при частом чтении соседних ячеек памяти заряд конденсатора может слишком сильно упасть и цикла регенерации оказаться недостаточно для его восстановления. Утверждается, что эта проблема характерна для всей совремённой DRAM-памяти, особенно для выпущенной позже 2011 года.

 , ,

anonymous_incognito ()

Разукрашка

Галерея — Скриншоты

После прочтения поста вспомнил свои прошлогодние затеи с раскрашиванием терминалов. Заново прочитал это и это, немного перепелил вывод скрипта под себя.

Скрипт автоматом генерирует цветовую схему для терминалов и GTK2/3, настроен под тёмную гамму. Я использую для этих наркоманств угловатую тему Mist, но вы можете перепилить под ту же более симпатичную и аккуратную oomox, сделать опцию для светлого оформления и терминалов (или, если хотите, я могу).

( Ну и как работает твоя развалюха? )

Скрипт

Mist-Colorized

PNG

>>> Просмотр (2715x1207, 1342 Kb)

 , , , ,

zezic ()

Управляем освещением в GNU/Linux

Галерея — Скриншоты

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

На скриншоте видно web-интерфейс для адаптера, нарисованный за 40 минут c использованием html, css, javascript и php. Управляемый свет не только спасает от необходимости лишний раз отрывать пятую точку опоры от кресла, но и помогает просыпаться по утрам. Найденный опять же на github скрипт отслеживает состояние будильника на nokia n9, посылает сигнал profilematic, который в свою очередь просит сервер запустить скрипт из верхней левой части терминала на скриншоте. Теперь будильник на телефоне будит меня не только звуком, но еще и светом.

Посмотреть как оно работает можно на видео (12,7 МБ).
Скачать исходники моей кривой поделки на php отсюда.
Посмотреть скриншот в оригинальном разрешении здесь.

В будущем планирую использовать еще больше диммеров, проложить провода для PIR датчиков и фотодиодов, соединить все это с GPIO на Raspberry Pi, которая сейчас работает в роли кухонного медиацентра, и сделать настоящий умный свет с обратной связью и линуксом. Но все это будет потом, и никак не раньше лета, а сейчас самое время запостить скриншот на ЛОР и идти спать.

>>> Просмотр (3000x844, 756 Kb)

 

Deleted ()