LINUX.ORG.RU

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

Android, зонды, безопасность, СПО, паранойя

Форум — Mobile

Disclaimer1: Проблема с данным маном в том, что местной аудитории, например, плевать на ведроид, а тому же 4pda наплевать на фанатичный СПО и избавление от зондов. Рискнем и запостим здесь.

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

Уровень прошивки

Практически все стоковые прошивки на сегодняшний день идут с gapps (Google Apps). Что же это за зверь:

  • Любое приложение (даже не требуещее никаких прав) может с ним общаться.
  • Gapps имеют доступ к сети.
  • Gapps позволяют Google в любой момент установить/удалить с вашего телефона любое приложение.
  • Gapps постоянно держат открытое сетевое соединение с серверами гугла (для нужд push-нотификаций).
  • Gapps — нереальное огромное количество кода. Стоковый образ (если верить opengapps) будет весить около 700Мб.

ААААА, как это удолить этот рассадник потенциальных уязвимостей и жора батарейки?

Сложный вопрос, на самом деле. Есть три варианта действий:

  • Новый и простой, и профитный способ. Появилась прошивка «LingeageOS for microG». Если ваше устройство поддерживает её, просто ставьте её и наслаждайтесь. Fdroid+MicroG+пуши+signature spoofing+unlp+OTA-обновления из коробки
  • Самый простой способ. Если ваш андроид достаточно старый (на достаточно новом не удастся отключить самый главный компонент gapps), из Настройки->Приложения отключите все, связанное с Google (особенно, Google Service Frameworks):
    • root не требуется;
    • push-уведомления работать не будут;
    • на устройстве останется огромная и потенциальная куча гугловского дерьма, хоть и менее активная.
  • Способ посложнее. Накатываем root и вручную удаляем все пакеты и библиотеки, требуемые гуглу:
    • требуется root и разблокировка загрузчика;
    • минимальное количество зондов без смены прошивку на полностью опенсорсную;
    • увы, в последних версиях андроида вам, скорее всего, придется оставить несколько пакетов (вроде GoogleSetupWizard), иначе система не загрузится.
  • Самый профитный способ. Ставим альтернативную прошивку (или мотаем до следующей секции и покупаем устройство с пгавославной прошивкой без зондов из коробки). Наслаждаемся.
    • Требуется root, разблокировка загрузчика, шаманство и местами смена устройства.

Я тут начал наслаждаться, но вдруг понадобились пуши, да и Uber требует зонды. Что делать?

Вдоль

Попробовать поставить MicroG, свободную реализацию клиентской части гуглозондов. Самая больная часть: помимо собственно MicroG вам нужно будет запилить себе Signature Spoofing. Коротко говоря, это обход защитного механизма, не позволяющего прикидываться gapps'ами кому попало. Для этого необходимо либо патчить прошивку при помощи Xposed/Needle/Haystack, либо использовать совместимую прошивку (смотрите список, по ссылке, их стало очень много). Все подробности по той ссылке.

MicroG позволяет завести пуши, сервисы геолокации (со множеством бекендов, ищите nlp location backend в f-droid) и большое количество софта (когда я в последний раз тыкал, работали даже покемоны).

Уровень софта

Без гуглозондов жить есть!

https://f-droid.org/ — каталог с опенсорсным софтом.

Предлагаю вам следующий список приложений, способный заменить типичный набор проприетари из типичной вендорской прошивки. Аналогичный список: https://github.com/Datenschutz/awesome-FOSS-apps

  • Yalp store. Позволяет ставить приложения из Google Play (да, иногда это все-таки нужно), в том числе через общий аккаунт. Не требует зондов.
    • Позволяет так же выкачивать купленные приложения (но не факт, что они заработают: они при работе могут проверять лиценизию через gapps, возможно, тут может помочь microg).
    • Альтернативно, воспользуйтесь моим решением для выкачивания софта прямо в свой репозиторий f-droid.
  • K-9 Mail. Почтовый клиент.
  • DAVDroid. Синхронизация контактов с owncloud/nextcloud.
  • Gadgetbridge. Синхронизация с умными часами и браслетами (pebble, mi band и некоторые другие)
  • NewPipe. Клиент для YouTube. Умеет воспроизводить видео в фоновом режиме как музыку, загружать файлы.
  • Odyssey. Просто материальный музыкальный плеер, но в последнее время очень нужный, т.к. вендоры повадились заменять в прошивке плеер на Google Music.
  • Набор простых и красивых затычек для различных приложений — simple mobile tools.
  • Файрволл AFWall+ файрволл (имеет Xposed модуль для расширения возможностей)
  • Amplify Battery Extender.
  • DNS66.
  • KDE Connect.
  • OpenKeychain.
  • OpenVPN FOSS.
  • Картография и навигация: Maps.Me (приз симпатий от комментаторов), OsmAnd (приз глюкалова от меня, но щито поделать).
  • Список стал очень жирным. Пока новые элементы не добавляю, думаю над критериями включения в него софта.

Если вы будете ставить проприетарный софт, помните о следующем:

  • Желательно зайти в настройки приложения и вручную запретить доступ ко всем ненужным разрешениям, дабы не промахнуться в нужный момент.
  • Отключите приложению фоновый доступ к сети (если у вас свежий Android) или вообще доступ к сети (если у вас стоит файрволл).
  • Малвари вроде «Сбербанк Онлайн» вообще лучше создать отдельный аккаунт на телефоне.
  • Яндексовским приложениям нельзя давать доступ к местоположению. Вообще никаким — все сливают.
  • Проприетарь может читать названия аккаунтов, даже не принадлежащих ей. Называйте их максимально обще, т.е. вместо «sportloto@syncserver.com» делайте «contacts sync».

Права суперпользователя

Читая васянский 4pda вы часто можете увидеть «ну и накатываем SuperSU.zip». Не делайте этого. Есть прекрасный опенсорсный superuser, совместимый со свежими ведроидами. Нужно лишь поставить zip (используйте beta на android >=6) и apk.

Если ваша прошивка основана на LineageOS, то все еще проще. Где-то рядом с загрузками в директории extra должен валяться zip, включающий встроенные и интегрированные в прошивку права суперпользователя. Профит.

XPosed

XPosed — опенсорсный фреймворк для низкоуровневых хаков.

  • Не доступен для свежих андроидов.
  • Позволяет заставить не увидеть root всякие «Сбербанки Онлайн».
  • Имеет кучу некрофильских и неопенсорсных модулей. Осторожнее.
  • Легким движением руки может окирпичить прошивку.
  • Полезные модули:
    • PlayPermissionsExposed
    • YouTubeAdAway (но все-таки советую использовать NewPipe, LightTube, WebTube, SkyTube или MiniTube. Тысячи их!)
    • XPrivacy — по своей сути это «песочница» для любого, даже системного, ПО. Xprivacy применяет правила ко всему ПО. Эти правила можно создавать самому или качать готовые. То есть, к примеру, если установлено нечто местами полезное, но попутно показывающее свою рекламу, Xprivacy можно просто запретить этому ПО доступ в сеть. Или если очередная косынка хочет интернет, список контактов, доступ к микрофону и камере, то с Xprivacy это легко и просто запрещается конкретно этой гадости и она даже будет при этом работать не имея доступа к тому, что ей будет запрещено.

Уровень устройства

Тут тоже всё плохо. Выбор:

  • Рандомный флагман с хорошей поддержкой LineageOS (CyanogenMod). Поддержка, вероятно, будет хорошей, секьюрити-апдейты будут приходить долго (например, для htc desire hd цианоген обновлялся до самого конца — декабря 2016 года), но вот версия андроида, скорее всего, застрянет. Обычно дорого. Можно искать по списку официально поддерживаемых линейкой устройств.
  • OneplusOne / Wileyfox Swift 1. Поставлялись с CyanogenOS, имеют хорошее коммьюнити разработчиков, будут долго обновляться в софтовой части. В железной — все плохо. 1+1 уже довольно старый и хорошие запчасти купить сложно. Wileyfox изначально имел несколько проблем, в т.ч. слабенькую батарейку. Компенсируется ценой, местами можно найти новое в продаже. Довольно бюджетно.
  • Fairphone 2. Очень дорого, очень хорошо. Но это в теории, как там на практике — хз, не пользовался, отпишитесь.
  • Рандомный телефон с официальным портом los. Сойдет, главное, чтобы фатальных багов в порте не было. Долгой жизни порта не ждите.
  • Рандомный телефон с васянским los. Совсем плохо, но если телефон уже куплен, ничего не поделать.
  • Рандомный телефон с васянским ведроидом, основанным на стоковой прошивке / без исходников / проч. Лучше такое не ставить, а подготовить прошивку самостоятельно, смотрите выше и ниже.

Следует также заметить, что:

  • Существует несколько устройств с CyanogenOS, без доступной Cyanogenmod. В комплекте идут сервисы microsoft, gapps и много разной другой блотвари. Исходники обычно зажабены. Пример устройств: Wileyfox Spark, Wileyfox Swift 2(|+|x).
  • Выбирая устройство, так же загляните на его страничку на 4pda. Ресурс хоть и васянский, но очень полезный: можно увидеть список доступных прошивок, FAQ по типичным проблемом, список самых вероятных заводских проблем (которые можно проверить еще перед покупкой).

Уровень физической безопасности

Для чего нужна физическая безопасность:

Допустим, ваш девайс попал в руки злоумышленнику.

  • Во-первых, вы хотите, чтобы он не имел никакой возможности прочитать важные файлы с вашего телефона (кейз ФБ-1).
  • Во-вторых, вы хотите узнать, не добавил ли он кейлоггеров в ваш загрузчик (кейз ФБ-2).

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

Я бы на вашем месте на это не рассчитывал.

  • Аппаратные защиты часто не надежны и опираются на принципах безопасности через неясность, в них переодически находят уязвимости
  • На прекрасных, казалось бы, телефонах Xiaomi вы не сможете разблокировать загрузчик, если с Xiaomi что-либо случится: разблокировка производится с участием интернета при помощи (работающей только под Windows) программы, требующей их аккаунта и доступа к интернету. У HTC похожая ситуация, но в несколько более мягких условиях.
    • Скорее всего, это доставит неудобств именно вам, а не злоумышленнику
  • Всякие проприетарные системы полнодискового шифрования тоже не выдерживают проверок специалистами.

Выводы:

  • Для хранения ваших секретных файлов в безопасности от ФБ-1 используйте, к примеру, Secrecy.
  • «Таблеток» от ФБ-2 на сегодняшний день нет. Промбируйте телефон при помощи скотча и волос и не расставайтесь с ним.
  • Лучше все-таки не хранить никакие важные данные на телефоне.

Модули сотовой связи

В каждом мобильном телефоне, почти каждом планшете есть GSM-модуль мобильной связи. Это —

  • Фактически отдельное устройство, обычно имеющее максимальный доступ к процессору, памяти и переферии. Зачем это делают — черт знает. Возможны исключения, нужно уточнять в каждом отдельном случае.
  • Идентифиционный модуль, который постоянно разговаривает с воздухом.
  • Куча проприетарного кода, который никто не анализировал. В тех немногих случаях, когда анализировали — находили кучу всего интересного.
  • Работает это все на протоколах, местами разработанные в 80-х годах.

Так что тут все настолько плохо, что я даже предложить ничего не могу. Страдайте.

Вроде, все, что хотел сказать. Выдыхаю

 , , , ,

derlafff
()

Intel ME отключение.

Форум — General

https://wiki.gentoo.org/wiki/Sakaki's_EFI_Install_Guide/Disabling_the_Intel_M...

Тут инструкцию выкатили.
Кто-нибудь уже пробовал? Главное каковы критерии успешности?

 ,

Deleted
()

Beta

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

Цветовая схема была построена на базе этой.

>>> Просмотр (2560x1440, 1440 Kb)

 bw,

zezic
()

Рабочее место шифропанка

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

Привет всем! Хочу показать своё домашнее рабочее место, а также место, где хостится бОльшая часть ресурсов http://www.cypherpunks.ru

Главная часть — два компактных сервера от ETegro Technologies. Xeon процессор (чтобы поддерживать ECC память), 16 GB ECC RAM. В каждом из них корзина для 4-х hot-swap SATA дисков, но в серверах только по два диска (2-3 TB) в ZFS зеркале. В одном сервере ещё и 100 GB Kingston SSD для L2ARC кэша. Всё это соединено гигабитной сетью не связанной с Интернетом. Один из серверов выступает в качестве шлюза к Интернету — для него отдельный 100 Mbps коммутатор стоит. Есть ещё какой-то дешёвый WiFi мост, но он не включался уже много месяцев, так как вся связь между компьютерами только по Ethernet. Серверы запитаны от ИБП. К одному из серверов подключён монитор, выводящий кой какой мониторинг.

К этом подключается рабочий ноутбук — Dell Latitude 3470: довольно дешёвый, с вполне сносными характеристиками (Intel i5 на архитектуре SkyLake, 8 GB RAM, 120 GB Kingston SSD). Так как работа за самим ноутбуком (его монитором и клавиатурой) довольно редка, то претензий к качеству экрана, клавиатуры и тачпада нет никаких (любое дерьмо сгодится). Обклеен наклейками: Bradi Cerebri Ectomia, GNU, FSF, EFF, FSFE тематика — с ними работает субъективно получше. К нему подключён USB хаб на четыре порта, но, к сожалению, его не видно за монитором. Full HD 27" Монитор подключается по HDMI (в ноутбуке нет DisplayPort) и крепится на кронштейне с газпатроном — легко сделать повыше/пониже, если хочется работать стоя. Обязательно наличие Beastie — BSD системы без него... я даже не пробовал как они без него работают, ибо сомнения.

Основной элемент без которого я бы вообще не рискнул работать — тактильная механическая клавиатура. Можно поменять серверы и взять какую-нибудь лажу, можно ноутбук 10 летней давности, можно много чего — но без тактильной клавиатуры жизни нет, в принципе, вообще. Так как всё программирование проходит в редакторе, вся почта проходит в редакторе, даже набор формочек в броузере проходит в редакторе... то интерфейс между мной и редактором должен быть первостепенной важности. В данном случае это Filco Majestouch 2 с MX Blue переключателями. Абсолютно никаких к ней нареканий. Справа от неё трэкбол Kensington Expert — 4 больших полноценных кнопки, большой с хорошей инерцией шарик и колесо прокрутки вокруг него.

Работа немыслима без хорошей музыки в ушах. Asus Essence One MkII USB звуковая карта, Beyerdynamic A1 усилитель и Beyerdynamic DT990 Pro наушники — идеально под это подходят. В данный момент ноутбук ещё и заряжает сотовый телефон: OpenPhoenux (GTA4), служащий на ура уже много лет. Всё это размещается на столе Ergostol Duo — его высота может регулироваться электрическим приводом, пуль управления которого рядом с сотовым телефоном. Можно буквально все выходные провести в стоячем положении за ним. Но пришлось приобрести кронштейн для монитора — в сидячем и стоячем положении у него должна быть разная высота.

Что касается ПО, то на всех серверах и ноутбуке или HardenedBSD (в том числе в виртуалках) или FreeBSD. Все файловые системы это только ZFS (ну кроме флешек которые нужно сувать в чуждые ОС). Самое важное и ценное с точки зрения конфиденциальности расположено на зашифрованных GELI разделах: AES-XTS режим, но без явной аутентификации, ибо, так как внутри раздела ZFS, то изменить данные не получится, не нарушив целостности ФС. Трафик между серверами шифруется IPsec-ом, между ноутбуком GoVPN-ом. На шлюзе в качестве firewall: ipfw и ядерный встроенный в него NAT (к сожалению приходится иметь дело с IPv4). Касательно серверного ПО не буду вдаваться в подробности.

На ноутбуке в качестве оконного менеджера — DWM. Терминал — st. Шрифты — Inconsolata LGC. Почти всё автоматически запускается под Tmux — несколько буферов обмена, scrollback буфер с большой историей и возможностью поиска, табы, скриптование. БОльшую часть времени провожу в Vim редакторе. Почта читается в Mutt. В качестве IRC клиента — irssi, Jabber/XMPP — Bitlbee, Tox — Toxic. RSS/Atom новости сыпятся в почту через rss2email Python программу, хотя когда-то очень любит Newsbeuter. Музыка слушается Cmus-ом. На одном из серверов мультимедиа библиотека, доступ к которой идёт через NFS. На одном из серверов запущен почтовый — почта сыпется не в mailbox, а в NNCP который сохраняется в своём буфере исходящих сообщений письма для ноутбука. Когда он подключается к серверам, то забирает/отправляет всё что накопилось. Если нужно сбросить на серверы бэкапы или какие-то данные для хранения, то, опять же, все они отправляются в NNCP набор утилит чтобы fire-and-forget-ом пересылать большие объёмы данных когда появляется связанность машин.

>>> Просмотр (1296x774, 144 Kb)

 ,

stargrave
()

Eclipse IDE 4.7 (Oxygen)

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

Состоялся релиз Eclipse IDE 4.7 (Oxygen Edition). Изменения коснулись более 80 проектов, входящих в Eclipse Foundation.

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

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

 , ,

Yilativs
()

Подскажите CMSку моей мечты

Форум — Web-development

Сразу скажу, не уверен, что такое вообще существует в природе, ибо требования у меня противоположны всему, что сейчас воспринимается как мейнстрим. В общем, нужна CMS для сайтов, которые заведомо _не_ относятся (и никогда не будут относиться) к категории «высоконагруженных». При этом имеются два совершенно категорических требования:

1) свободное распространение и использование без ограничений (в том числе без всяких обязательных ссылок и т.п.)

2) ничего тьюринг-полного на стороне клиента; JS, HTML5, CSS3 запрещены под страхом смертной казни, то есть если CMS генерит что-то из перечисленного, то она не рассматривается вообще, вот то есть даром не нужна; в идеале — генерит XHTML и использует мелкий CSS-файлик на десяток классов;

Кроме того, есть ещё несколько более мягких, но тоже существенных пожеланий:

3) Язык реализации. В идеале она вообще должна быть написана на C или C++ с использованием минимума (лучше — zero) внешних библиотек, но такого, скорее всего, не бывает. PHP я терпеть ещё готов, Perl с его системой библиотек и dependecny hell — уже с трудом, что касается Питона, Руби, Джавы и прочей экзотики — мне проще будет её самому написать. Или без сайта обойтись.

4) Хранилище. Идеальная с моей точки зрения CMS не использует никакие СУБД вообще от слова совсем, то есть даже SQLite. Для хранения всего и вся — обычные текстовые файлы в обычных директориях.

5) Кастомизация. Сменные темы, среди которых есть что-нибудь лёгкое и НЕ привязанное к конкретной ширине экрана.

При этом она должна обязательно поддерживать настраиваемую навигацию, блоки, появляющиеся на определённых страницах (на всех или на некоторых), а также пользовательские комментарии (крайне желательно, чтобы пользователи могли заходить со своими OpenID — да, я имел в виду именно OpenID, а не OAUTH).

Если кто видел что-то подобное, киньте ссылочку :-)

 

Croco
()

Как грамотно выпустить форк LGPL-софтины под лицензией AGPL?

Форум — Talks

Доброй ночи, ЛОР.

Итак, есть некая софтина под лицензией LGPLv3, которую я собираюсь форкнуть, так как автор категорически не хочеть чистить кодовую базу и переводить на C++11, вместо этого у него куча шлака C++0x с кучей собственных велосипедов, и даже форкнутый boost ради поддержки старого продакшена.

Я знаю, что нельзя накладывать дополнительные ограничения на LGPL или GPL, потому я не могу перелицензировать существующий код.

Однако, LGPL совместим с AGPL, и я могу в проект добавить свой AGPL код и распространять целый форк под лицензией AGPL.

Как грамотно указать, что оригинальный код под LGPL, а все нововведения - под AGPL?

Как быть с файлами, в которых явно указана лицензия LGPL? Как туда вносить изменения под другой лицензией?

 , ,

anonymous00
()

Моя попытка добавить модерн в Xfce...

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

Добрый вечер и сразу начну оправдываться :)

Коньки не нужно
Возможно, но к ним привык да и мне удобно. (Да, я забыл подправить цвет по обоину)

Нафига ascii-арт в .bashrc?
Просто я нигде не видел такого, даже на Unixporn, вот и запилил у себя.

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

Вообще пытался добиться некоего минимализма, но судя по всему у меня это не вышло.

Еще скрины
Браузер: http://imgur.com/eWIohkb
Кастомизировал как мог.

Файловый менеджер и Атом: http://imgur.com/yka4NuJ
Тут нечего комментировать.

Clear: http://imgur.com/BIi4GpV

Спасибо за внимание.

>>> Просмотр (1680x1050, 1142 Kb)

 ,

parsec
()

Программа по математике

Форум — Talks

Где можно найти приличную программу по математике, для того что бы заполнить пробелы по школьной программе?

Язык Русский или Английский.

 

shuck
()

Red Flat Awesome

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

Примерно год назад решил попробовать awesome. Хотелось чего-то максимально кастомизируемого, но более монолитного и системонезависимого. Данный wm показался интересным в этом плане, так что вооружившись напильником попытался сделать на его основе годное, согласно своим представлениям, окружение.

Еще скриншоты: традиционный с окнами[1] и все остальные[2][3][4][5][6][7].

На панели можно увидеть

  • Модифицированный taglist на самописных виджетах.
  • Набор индикаторов: иконка меню и оповещалка об обновлениях в одном, раскладка клавиатуры, регулятор громкости, почта, кастомный layoutbox. На громкости висит простенький виджет для моего любимого exaile[2], layoutbox умеет меню выбора режима тайлинга[2].
  • Сильно перепиленный tasklist[4][5]. Приложения обозначаются трехбуквенными алиасами, окна одного класса группируются в один значок. При наведении подсказка с полным именем или списком группы, по правой кнопке менюшка управления окном.
  • Специальный виджет для минитрея, точками обозначено количество приложений в трее. По клику/хоткею является собственно сам минитрей.
  • Индикаторы ресурсов - выдрал код из vicious и прикрутил свои визуалы. Была задумка сделать нескучные всплывающие виджеты с системной инфой, как раньше было у меня в доке, но энтузиазм закончился уже на первом, показывающем топ процессов[3]. Даже его не допилил до конца, память отображает криво.
  • Часы.

Виджеты на рабочем столе - перенес свои луа скрипты от коньков на базу awesome. Тут нет готовых датчиков, но на помощь снова приходит vicious. В целом средствами осома такие штуки пилить даже удобнее, ибо тру модульность и интерактивность. Зависимые от сети вещи подключены через модификацию asyncshell. Может быть имело смысл все через него пускать, но поздновато осознал насколько это нужная и полезная штука, лень переделывать.

Для пущего уюта установил uselessgap тайлинг от Lain. Сделал активные грани экрана. Немного переписал awful.menu, добавив автоскрытие, возможность вставлять неиндексируемые элементы(заголовки, разделители), автоматическую расстановку хоткеев и еще по мелочи[2][4]. На базе menubar запилил запускалку приложений[3] в стиле synapse, очень нравится такой визуал. Сильно скучал по классическому альттабу, даже накостылял кое-что, но потом некто Joren Heit выкатил няшный Familiar Alt Tab. Скрестив его и свои наработки получил такую переключалку[5][6]. Адским костылем с помощью asyncshell и rsvg-convert прикрутил адекватное масштабирование векторных иконок, заодно добавив смену цвета на лету. Сделал подсказку по хоткеям[7], как сами знаете где, с интерактивной подсветкой (пока без модификаторов).

Многое еще нужно допиливать, но надежда завершить все это и нормально оформить изрядно подтаяла за прошедшее время, так что решил вбросить то что есть, в сыром виде. Все скрипты можно посмотреть здесь. Пользуясь случаем, хочу поблагодарить unlog1c за его конфиги, некоторые вещи откровенно позаимствовал оттуда.

Awesome 3.5.6, compton, тема gtk - Boje, иконки ACYL, шрифты play и prototype.

>>> Просмотр (1920x1080, 123 Kb)

 ,

Worron
()

О XML-программистах

Форум — Development

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

Девятое Правило Гринспуна, о котором он сознательно предпочел умолчать

Любая более-менее крупная программа на Java или C# является программой на XML

Вобщем, в один прекрасный день, работая на C#, я написал на XML-конфиг некоторых приблуд для UI. Это смотрелось настолько элегантно и красиво, и кастомизировалось настолько проще, по сравнению с обычным хардкодом, что я долго лелеял идею о том чтобы воткнуть подобное еще куда-либо в проект.

Не так давно, такой шанс появился, и я перевел в декларативное описание на XML воркфлоу основных бизнес-процессов системы.

Получилось опять же крайне неплохо, но потом я посидел и подумал.

А что если эти два конфига объединить в один XML?

Ой, стойте, но тогда ведь получается, что туда же можно перенести и разнообразные простые валидаторы и предикаты действий по бизнес-логике? Описание геттеров/сеттеров и простой арифметики - не такое уж сложное занятие, тем более проект и так в System.Reflection по уши.

Черт! Но вообще-то ведь и сложные тоже не проблема - ведь они явлются в 99% случаев не более чем SQL/HQL-запросами, которые никто не мешает хранить в конфигах.

Ух, а ведь если подумать еще - то туда же можно перенести и сами действия по бизнес-логике, не так ли?

Но ведь можно пойти и дальше. Из XML можно вообще-то говоря даже и генерировать модель данных для всей логики системы! И ведь это не просто бредовая идея - такое отчасти давно уже делается стандартными средствами .Net-платформы, например тем же Entity Framework.

И тут я задался вопросом - а зачем нам тогда вообще большая часть кода на C#? Сторонние библиотеки мы ведь точно так же можем вызывать из интерпретатора XML.

Вон оно как все отлично то выходит.

Хм, правда что-то эта модель несколько, скажем так, раздулась.

Вот бы, конечно, написать более высокоуровневый интерпретатор XML чтобы он нам генирировал наш XML из декларативного описания другим XML?

И тут меня осенило. Где-то я это уже видел. Может быть в одной книжке, давно забытой на полке? Или в старой статье семьдесят мохнатого года?

Вспомнив окончательно, я просто расплакался.

Итак:

Вторая Теорема Лавсана

Каждый XML-программист (то есть любой продвинутый java/c#-программист) в конечном итоге доходит до лиспа, просветляется и плачет.

Дискач.

 , ,

lovesan
()

Clearlooks

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

GTK+2: Clearlooks-Phenix
GTK+3: Clearlooks-Phenix
Qt4: QtCurve-Clearlooks

Под Qt5 тоже есть QtCurve, но у меня под 5 только nomacs (в котором темка видна только в меню, когда его открываешь) да wpa_gui (который проще пересобрать под Qt4, тогда и выглядит идентичнее).

Привык видеть на панельке определённые индикаторы, поэтому чтобы помещались кнопки окон, вынес кнопки запуска приложений на панель слева.

termite с vim'ом, чисто ЛОР, этот же скриншот, скриншот с курсором: Imgur.

>>> Просмотр (1366x768, 195 Kb)

 

batekman
()

Книге по разработке интерфейса и гайды.

Форум — Development

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

 , ,

aptyp
()

Кастомный Notion WM + Arch + vim(ну почти) + distribution.pl

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

Собсно с момента предыдущего поста ничего вроде как не изменилось, просто захотелось постануться.

  • notion wm, с моими патчами
  • arch linux
  • скрипт, который выплевывает выданные vim'ом esc-последовательности.
  • distribution.pl — гистограммы в шелле
  • tmux + python powerline + tmux-saver(или как там его, для сохранения сессий)
  • dzen2 две штуки
  • zsh + syntax highligting кастомный

Ну и всё это добро как обычно на https://github.com/neg-serg?tab=repositories

>>> Просмотр (1920x1200, 963 Kb)

 , ,

e7z0x1
()

Nootka 1.2.5

Новости — Мультимедиа
Группа Мультимедиа

Nootka — это свободная программа, которая помогает начинающим гитаристам изучать традиционную нотную запись.

В новой версии исправлена совместимость с Qt 5.6+. Кроме того, с недавних пор программа доступна для устройств на Android.

>>> Подробности на русском

 ,

anonymous
()

Написал небольшую книгу для C/C++ программистов

Новости — Документация
Группа Документация

Здравствуйте. Меня зовут Андрей Карпов. Сфера моих интересов - язык C/C++ и продвижение методологии статического анализа кода. На протяжении пяти лет я являюсь Microsoft MVP в номинации Visual C++. Основная цель моих статей и работы, сделать код программ немножко безопасней и качественней. Буду рад, если эта мини-книга научит вас писать более надежный код и предостережет от некоторых типовых ошибок. Немало полезного здесь можно будет почерпнуть и тем, кто занимается написанием стандартов кодирования для своих компаний.

Немного истории. Не так давно я создал ресурс, на котором делился различными полезными советами по программированию на языке С++. Ресурс не собрал ожидаемое количество подписчиков, поэтому я не вижу смысла приводить здесь на него ссылку. Сайт просуществует какое-то время, после чего уйдет в небытие. А вот советы достойны сохранения. Поэтому я доработал, пополнил эти советы и объединил их в единый текст. Желаю приятного чтения.

UPD: PDF-версия: https://yadi.sk/i/RCHauHFBr2cSs

P.S. Пользуясь случаем приглашаю всех желающих последовать за мной в Twitter: @Code_Analysis.

>>> Главный вопрос программирования, рефакторинга и всего такого

 , , , ,

Andrey_Karpov_2009
()

Arch Linux и GNOME 3.20: попытка переосмысления и ухода от дефолта

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

Внешний вид GNOME по-умолчанию начал разочаровывать. Ужасно чёрный текст в Adwaita, общее ощущение какой-то недопиленности, особенно заметное в GTK2-приложениях (окончательно расстроил вид Pidgin и новые вкладки). Пришлось всё-таки попытаться слепить что-то более приятное для глаз, что пока устраивает. По концепции панелей ничего не поменялось, но, возможно, кому-то может пригодиться конфигурация внешнего вида:

  • GTK: Flat-Plat (немного перекрашенная)
  • Shell: Arc-Dark (немного исправленная)
  • Значки: Numix Circle
  • Шрифты: Roboto Condensed

Дополнительные снимки: GTK 2 & GTK 3 приложения, Rhythmbox и меню уведомлений (Rhythmbox обвешан плагинами для попытки придать ему приятный вид, GNOME-style, а в меню уведомлений теперь можно им управлять), Firefox - единственное приложение, у которого пришлось оставить Adwaita-тему, потому как других адекватных нету, режим обзора, пустой рабочий стол с Леночкой.

По сути, ничего оригинального или сверхъестественного, но от скуки было решено поделиться этим добром. Заодно хочу спросить - может кто-нибудь знает что-то похожее на вытянутые condensed-шрифты, но для терминала? Встречался только M+ (не помню, какой именно), но его читать было печально.

>>> Просмотр (1600x900, 1096 Kb)

 ,

fludardes
()

Сможет ли GNU/Linux стать доминирующей настольной ОС в ближайшие 15 лет

Голосования — Голосования
  1. Конечно, всё к этому и идет 380 (34%)

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

  2. GNU/Linux никогда не превысит 10% 298 (26%)

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

  3. Спрос на настольные ОС исчезнет 232 (21%)

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

  4. Нет, GNU/Linux не настольная ОС 182 (16%)

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

  5. Виртуализация и облака 151 (13%)

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

  6. Как другая ОС основанная на Linux 121 (11%)

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

  7. Сможет, если ... (тут ваш комментарий) 102 (9%)

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

  8. Нет, так как не хватает... (тут ваш комментарий) 82 (7%)

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

  9. Другое (ваш комментарий) 38 (3%)

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

  10. За это время GNU/Linux исчезнет 31 (3%)

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

Всего голосов: 1617, всего проголосовавших: 1131

splinter
()

Xfce 4.12

Галерея — Скриншоты
  • Дистрибутив - Gentoo.
  • Среда рабочего стола - Xfce 4.12
  • Оконный менеджер - Xfwm4
  • Композитный менеджер - Compton.
  • Файловый менеджер - PCManFM,Thunar.
  • Эмулятор терминала - Xfce4-terminal.

Обновленная среда рабочего стола Xfce 4.12 оказалась ничуть не хуже своего предшественника Xfce 4.10.

>>> Просмотр (1280x1024, 258 Kb)

 , ,

Dontes
()

Python в научных вычислениях

Новости — Документация
Группа Документация

Доктор физико-математических наук Андрей Грозин прочитал цикл лекций об использовании Python в целях ликвидации безграмотности среди студентов, аспирантов и прочих. Презентации были приготовлены для представления в среде Jupyter. Видеоматериалы лекций с разрешения лектора доступны под свободной лицензией CC-BY-SA. Исходные видеофайлы будут выложены в торрентах позже.

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

>>> YouTube

 ,

Evgueni
()