LINUX.ORG.RU

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

Открыто публичное бета-тестирование ОС Аврора.

Форум — Talks

По ссылке на сайт компании доступна регистрация на бета-тестирование ОС Аврора. Ранее это была Sailfish OS/Sailfish OS RUS/MeeGo/Maemo.

Насколько я понял, там предлагается жителям Москвы (это, как я понимаю, непременное условие) во временное пользование мобильный телефон Inoi R7 обзор характеристик на ixbt с предустановленной ОС Аврора. Либо, если как и в моём случае, у Вас уже есть такой телефон, то установка ОС на него.

Сразу отвечу на ряд пока ещё невысказанных вопросов.

  1. Нет, я лично не аффилирован ни как с компанией ОМП. Мне за пиар и прочую рекламу денег не платят.

  2. У меня есть (и давно) Inoi R7. Да, доволен в общем и целом. Хотя есть недостатки.

  3. Самый жирный минус Inoi R7 – железо 2014г. Хотя, то что там внутри Linux в полный рост и Qt, делает этот аппарат более-менее пригодным к использованию даже в 2021г. Терминал и ssh там по дефолту в наличии.

Для особо желающих есть HADK, так что, есть успешные эксперименты по установке Sailfish (Аврору пока не пробовал, но механика там сходная) на разные устройства, включая Raspberry Pi 4 и аналоги.

  1. Linux здесь при том, что внутри телефона да, Linux. Со всеми втекающими-вытекающими. Интерфейс на основе Qt/QML. Есть открытые компоненты и есть закрытые. Как правило, закрытое это то, что начинается со слова Silica-, но документация есть и достаточно вменяемая.

Если кто-то любит systemd просто до слёз и жить без него не может, то там оно есть. Сразу.

  1. Среда разработки – модифицированный QtCreator. Собственно, SDK есть и доступен. В остальном – Qt с QML и некоторым количеством привязанных компонент из специфичного набора разработчика.

  2. Несомненный плюс – управление. После управления жестами в Sailfish, при переходе к Андроиду регулярно не покидает мысль – «да как вы вообще этим пользоваться умудряетесь…». Просто и естественно.

Ну, в общем, вот так. Думаю, разработчикам это будет полезно даже в качестве просто опыта. Кому что интересно – спрашивайте, чем могу помогу, на что знаю как ответить, отвечу, но скорости ответа не гарантирую.

«Политико-маркетинговые» вопросы, типа сколько распилили-попилили-откатили прошу адресовать не мне.

Подробности

Добавлено.

Прошу прощения. Поправил пару «косяков» и накидал малость ссылок до кучи.

Перемещено Shaman007 из russia

 , , ,

Moisha_Liberman ()

Не могу не поделится.

Форум — Talks

https://radio.garden/listen/radio-kamchatka-live/aO2h8YLi

Linux ту при том, что это точно не на винде ))

 

dem ()

KeePassX мёртв, да здравствует KeePassXС!

Форум — Security

В теме Как вы храните пароли? увидел, что немало людей пользуются KeePassX, который уже не развивается, и обновления вряд-ли получит.

В связи с этим хочу обратить ваше внимание на прогрессивный community-форк KeePassXC, в котором, помимо баг-фиксов, добавлены следующие фичи:

  • Auto-Type on all three major platforms (Linux, Windows, macOS)
  • Twofish encryption
  • YubiKey challenge-response support
  • TOTP generation
  • CSV import
  • Command line interface
  • DEP and ASLR hardening
  • Stand-alone password and passphrase generator
  • Password strength meter
  • Using website favicons as entry icons
  • Merging of databases
  • Automatic reload when the database was changed externally
  • KeePassHTTP support for use with PassIFox in Mozilla Firefox, chromeIPass in Google
  • Chrome and Chromium and passafari in Safari.

 ,

Chaser_Andrey ()

Главная проблема Linux на десктопе

Форум — Talks

Братишка, я тебе покушать принёс: https://www.nngroup.com/articles/computer-skill-levels/

[Ъ]
Проведено масштабное исследование различных навыков работы с информацией на 215942 респондентах в возрасте от 16 до 65 лет из 33 развитых стран. В числе прочих рассматривались навыки работы с компьютером. Результат: 95% людей не способны решать даже примитивные задачи если для этого требуется несколько шагов со сменой контекста, использование инструментов (таких, как функция сортировки), а так же обобщение и фильтрация информации. 25% вообще не способны использовать компьютер.
Картинка.
[/Ъ]

[Ъ²]
95%: now official!
[/Ъ²]

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

 ,

Axon ()

Немного о логировании в Java

Форум — Development

Поделюсь небольшим трип-репортом о путешествии в увлекательный мир Java

Встретился сегодня с логгерами в Жабе.
Проблема: логгер работает, но ничего не пишет.
Заметка отвечает на вопрос - почему.

0) При старте вижу, что log4j запускается, но использует реализацию NOP, т.е. ничего не делающую. Привычным движением добавляю в мавеновские зависимости джарку бриджа slf4j-log4j... и не происходит ничего. Долго копаюсь в зависимостях, понимаю что конфиг совершенно стандартный, и дело вероятно не в нем. Надо в thinking out of the box, а снаружи коробки у нас только Tomcat, JDK и операционка. Операционка явно не при чем, Томкат после тщательной инспекции - тоже не при чем, остается только JDK. И тут оказывается, что...

1) Крипто Про в своих зависимостях тащит commons-logging. (Понятно что истории, которые начинаются со слова «Крипто Про» ничем хорошим не продолжаются, так что можно вот прямо тут и закрыть эту заметку.) Так вот, Крипта требует положить джарку с commons-logging прямо внутрь JDK/JRE/lib/ext, Карл!. Иначе ничего не работает. То есть, оно зовет логгер прямо из другой джарки внутри jre/lib/ext, поэтому перенести зависимость на commons-logging из JDK в war-файл нельзя, это тупо не заработает. А Другой софт такого подвоха не ждет, и начинает писать логи куда попало. У меня отвалились все логи. Предположение в том, что оно не читает мое log4j.properties (единый файл на весь проект), и теперь нужно заставить его увидеть сей файл.

2). Одна штука все же работает. Это Apache CXF. Копаюсь в потрохах CXF. Там логгер берется не стандартным спосбом-однострочником, а через какой-то LoggerUtils. Открываю, а там адовый метод на три экрана чистейшей лапши из try-catch и if-return'ов. Общий смысл (кажется) - он пытается угадать, какая у нас сейчас система логирования, и подложить костылей. Причем там есть перлы типа обложенного проверками получения значения примитивной интовой переменной, значение которой дальше нигде не используются. Может быть они таким образом расчитывают на интерцепторы, которые перехватят геттер этой переменной (создание такого интерцептора кажется весьма больной идеей, но все таки - там каждая строчка облита кровью жертв, чьи баги фиксят эти костыли). Либо создатели портяны давно уже не совсем понимают ее содержимое, и на всякий случай не трогают. Ах да, комментариев в портяне нет. В общем, запасной вариант на черный день, логирование через кусок магии и jul без конфигов и без ничего у нас есть, но пользоваться им не хочется. Но копание в CXF приводит к мысли, что на самом деле не работает всего лишь переходник с jul на log4j.

3) Дальше иду разбираться как таки заставить работать commons -logging параллельно с log4j и slf4j. Оказывается, тут надобно впилить log4j и slf4j, и потом поверх два костыля - бридж из jul в slf, и бридж из slf в log4j. Вместе они начинают работать в такой цепочке: jul -> slf-> log4j. Что само по себе выглядит как чудовище с восемью ногами. Но они все равно не работают в этой связке. При их включении (сделать котрое можно только зафорсив compile scope на slf - контринтуитивно, учитывая что проблемный класс находится в совсем другой джарке) отваливается даже то, что раньше логировалось через магическую портяну из CXF.

4) Идем разбираться, как же работает log4j. Внутри обнаруживается чудная особенность: он при инициализации берет первый же попавшийся в classpath объект класса чототам-StaticBinder, и использует его как мост до реальной реализации логгера. Причем если этих StaticBinder'ов несколько, то работать будет максимум один (о чем у них честно сообщено в глубинах документации на сайте, но другими словами). Т.е. если захочется, нельзя написать, например, аггрегатор этих StaticBinder'ов (чтобы потом выбирать нужный по ситуации), ибо он вступит в конфликт с аггрегируемым.

5) Дальше смотрим, что делает таки этот Binder. А он делает класслоадер и засасывает туда всякие адпатеры да мосты. Но в конце концов подсасывается класс Hierarchy, который В СТАТИЧЕСКОМ БЛОКЕ, не в конструкторе, инициализирует сам себя. Т.е. например, фиг мы Спрингом (или чем-то еще) по-человечески можем вмешаться в эту вакханалию. Чтобы переопределить этот кусок логики придется копипастой писать свой StaticBinder, беря за основу мост slf4j-log4j, и создавать в нем какую-то другую копипастаную Hierarchy. Вот тебе и ООП. Ну в любом случае, вот и нашли виновника торжества, место которое ломает конфиг.

6) Дальше смотрим, что он делает в секции, может как-то можно подсунуть нужный файл конфига? Ну и видим, что он там есть: там написана некая негибкая лапша, которая вначале ищет В ЛЮБОМ МЕСТЕ класспаса файл log4j.xml, потом если предыдущий файл не найден - опять же в любом месте log4j.properties, а потом смотрит на system property где можно указать оверрайд.
Но мы не можем воспользоваться результатом работы этой лапши:
а) Этот чудный getResources ВСЕГДА находит какой-нибудь log4j.xml внутри ирерахии, т.к. их куча понапихана в библиотеках-зависимостях. Единственный способ не попасть в эту ветку лапши - это указать какой-нибудь оверрайд в system property. Таким образом, в ветку когда оно подцепляет из класспаса log4.properties оно на практике не попадает НИКОГДА. Они сами запутались в своих ifах, что в общем неудивительно...
б) Если вписать system property с путем до файла, оно работает. Но он конструирует его тупо с помощью стандартного класса URL. Т.е. его нельзя указать относительно, например ${catalina.home}/conf/log4j.properties - насколько понимаю, URL не умеет в $-плейсхолдеры (берущие данные из system properties, как можно было бы сделать в случае Спринга). И протокола classpath: по-умолчанию URL не умеет. Да даже если бы умел, оно все равно не подходит, см. следующий пункт.
в) Случай на черный день - вписать system property с абсолютным путем до файла. Но это плохая идея, т.к. повлияет не только на текущее приложение, а вообще на все варки, задеплоенные в Томкате.

Сейчас есть следующие идеи:
z) Покопаться внутри лапши, может туда можно как-то хитро подсунуть относительный путь
x) Попробовать написать свою реализацию протокола classpath: для URL. Но тут возникает проблема в порядке загрузки говнокода. Нужно как-то более-менее гарантировано сделать загрузку этого протокола раньше, чем инициализируется первый логгер (по сути, первый StaticBinder). Иначе есть шанс, что взмах крыльев бабочки в цоде на другой стороне Земляшки разнесет все логироваие к чертям.
c) Написать свой StaticBinder, вызвать там свою Hierarchy, конечно с обильной копипастой из первоисточника чтобы что-нибудь не поломать по дороге, но по пути поправить обнаруженные несправедливости, н-р инициализацию логгера сделать в виде паттерна-стратегия (вместо статического блока)

Вообще, может я чего не понял и просто ламер, всё-таки иногда все эти пирамиды из переходников работают... Интересно, почему... Но я вот тут мимо крокодил, и по крайней мере _выглядят_ все эти пирамиды как адовое рукожопие, какая-то плохо документированная лапша. Склеенная на изоленту (у которой истек срок годности году эдак еще в 1998. Написанная редкими специалистами по PHP, простите - ООП.

 , , ,

stevejobs ()

Восстановление Fedora

Форум — Admin

Подскажите, а есть ли готовый софт, с помощью которого готовую установленную fedora 23 можно превратить в сценарий kickstarter для неё же? Типа, вот пакеты, архивы домашних директорий и настроек, можно развернуть в другом месте.

 

shimon ()

Return of Dr. Destructo 1.0 — ремейк Island of Dr. Destructo с открытым исходным кодом

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

Некоторое время назад, состоялся релиз игры Return of Dr. Destructo, ремейка игры 1987 года с ZX Spectrum, известной как Island of Dr. Destructo или просто DESTRUCTO. Игра представляет собой достаточно простую аркаду, в которой необходимо сбивать вражеские самолёты, и ронять их на цель уровня - корабль, замок, остров и т.п. - пока она не утонет.

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

Игра доступна для Windows, Linux и OS X с сайта игры, а также в виде исходного кода (код - лицензия MIT; ресурсы - CC-BY-SA).

Скриншоты и видео

Статья про некоторые подробности разработки на Хабре

>>> Сайт игры

 , , ,

anonymous ()

Что это за хрень?! (картинка)

Форум — Talks

https://yadi.sk/i/m9IA6Zf9g9fGD

Что это за колбочки в которых цифры меняются?
Я такое много где видел. В фильмах разных. В каких-то околонаучных передачах. Что это? На вид что-то в духе ламп (тех самых теплых ламповых ламп вместо диодов). Но как в них могут цифры то меняться?

Или везде где я видел - это была анимация\графика?

 

dk- ()

Киньтесь кто-нибудь, пожалуйста, скриптом LorTreeView

Форум — Talks

Userscripts.org что-то последнее время не работает, а поюзать лортривью очень уж хочется. Киньтесь, если у кого он завалялся.

//«Почистил» огнелиса, так что все дополнения и скрипты слетели..

sudo cast sdio

Перемещено Pinkbyte из linux-org-ru

Zhbert ()

Запилите кто-нибудь нормальный обзор Rust

Форум — Development

Коллеги, а не мог бы кто-нибудь из вас запилить нормальное сравнение Rust с плюсами? В последнее время rust то и дело упоминают как будущего убийцу с++, вот мне и стало интересно. Но изучать новый язык у меня сейчас времени нет, а все обзоры и сравнения (вот последнее на хабре: http://habrahabr.ru/post/225507/) сводятся к следующему:

Возьмем пример стандартного кода на с++

$ cat test.cpp
int main()
{
    *((int*)nullptr) = 0xdeadbeef;
}
Давайте его запустим, и посмотрим, что получится:
$ g++ -std=c++0x -o testcpp test.cpp && ./testcpp
Segmentation fault
Как видите, с++ позволяет выстрелить себе в ногу!
А теперь давайте посмотрим, что будет, если этот же код попытаться скомпилировать rust:
rust -o testrust test.cpp
test.cpp:1:1: 1:4 error: expected item but found `int`
test.cpp:1 int main()
           ^~~
Смотрите, компилятор rust не скомпилировал этот код и сохранил нам ногу! ergo, rust - убийца с++.

Очевидно, что сравнивая ошибки в синтетических двухстрочниках, ничего показать нельзя. Хотелось бы увидеть какую-нибудь задачу на примере из нескольких десятков строк, хорошо решенную на с++ (то есть без саботажа и попыток продемонстрировать убогость плюсов), краткий обзор проблем в коде, которые в с++ не решаются, потом реализация той же задачи на rust, в которой эти проблемы решены, а новых не добавилось.

Если где-то есть уже что-то подобное в сети, киньте ссылку.

UPD: нашел очень качественное сравнение с++ и go (http://kidoman.io/programming/go-getter.html).
tl;dr: товарищ сравнивал производительность, в качестве демонстрационной программы использовал трассировщик лучей. В первой серии go победил после множества оптимизацй, во второй серии с++ после таких же оптимизаций одолел go на одном ядре, в третьей серии в с++ впилили многопоточность, и он разорвал go пополам.
Стоит обратить внимание, что рейтрейсер на c++ в этом примере написан без единого new/delete.
Буду очень признателен, если кто-то напишет подобное сравнение с++ с rust, а еще лучше - если портирует трассировщик из примера выше на rust о объяснит, почему он лучше (там уже на несколько других языков портировали).

 , ,

ddos3 ()

кино не для всех

Форум — Talks

вот например смешарики. дико доставляют и мне и дитю.

а еще? наши? или «их», но чтоб с приличным переводом?

 

Rastafarra ()

А я вот бросил курить!

Форум — Talks

Я в прошлом году замутил с той девушкой, в которую влюбился. С Алёной, первой фактической женой разошёлся, теперь мы снова только друзья, Аня ушла от меня ещё раньше. Всё стало хорошо, кроме того, что я стал в квартире(до этого всегда жил в частных домах). Но тут на новый год Кристина(моя новая девушка) решила бросить курить и меня подбила на это. Я по-началу был очень растроен, но потом вспомнил что влюбился в неё ещё до того как узнал, что она курит. Решил всё таки попытаться бросить с ней. Она курила очень мало, 2-3 сигареты в день, максимум 5, а я уже шмалял по 2 пачки тонкого Донского Табака(толстый совсем испортился, одни отходы с химией). Первые 3 дня мне было очень тяжело, а ей наоборот лёгко(у неё то физической зависимости нету), но она меня поддерживала. Потом меня уже отпустило, через неделю физической ломки уже не было совсем, но психологически тянуло покурить нас обоих. Впрочем продержались, сейчас конечно тоже тянет покурить, но не так сильно. Что самое интресное у меня на некурящих не вставал, но тут другое дело, Кристина очень сексуальна. И вот я уже месяц и 3 дня не курю, из положительных последствий могу отметить, что у меня обострилось обоняние и я теперь запах выхлопных газов от Икаруса чувствую гораздо лучше, правда запах из мусорных баков тоже стал сильнее.

 

filosof ()

Интернет - это круто! Посоветуйте иностранных радиостанций

Форум — Talks

Интернет - это круто! Можно слушать радио, знакомые по большим городам, и даже иностранные! Русскоязычные нашёл на http://moskva.fm/ Посоветуйте чего-нибудь иностранного. С музыкой, и желательно без политики. Приветствуются также ссылки на онлайн трансляции русскоязычных любительских радиостанций, желательно не Flash.

 ,

ZenitharChampion ()