LINUX.ORG.RU

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

AwesomeFont fa-music и xof4 Terminus

Форум — General

Начал таки мучать свой i3 и менять шрифт. Terminus мне таки очень нравится, а иконки удобно брать из AwesomeFont. Вот только отдельно fa-music не показывается по сути: http://imgur.com/a/dFjAk сверху показывается как какие-то 2 цифровые восьмерки. Случайная выборка 15 других иконок работает в терминусе. На других шрифтах (DejaVu, Awesome очевидный) иконка отображается корректно. Это можно как-то починить?

 , ,

JAkutenshi
()

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
()

Задачи по программированию

Форум — Development

Привет!

Порекомендуйте, пожалуйста, сборники задач по программированию толковые в том смысле, что задачи были бы отобраны и более или менее отранжированы по уровню (такое, в частности, встречается в книжках). Известные книжки: Кормен и Cracking the coding interview. Что можно посмотреть ещё? Сайты также интересуют, хотя качество содержимого как правило страдает (одинаковые задачи, заносы по уровню). Где можно посмотреть задачи, специфичные для данного языка (C\C++)?

 , , , ,

dann
()

Удалил все местоположение

Форум — Mobile

Теперь даже ни гугл карты в браузере, ни гугл карты обычные, ни какие-либо другие карты не могут определить мое местоположение. Теперь показывает что я под Красноярском, хотя я не там.
Что я делал: удалил все гугловские приложения - hangouts, google play, google gmail, google services и т.д. ...

Вот скриншот экрана http://rgho.st/6qYnkCccZ
Удалил все отслеживание с помощью скрипта

rm -rf /system/app/CarHomeGoogle.apk
rm -rf /system/app/ChromeBookmarksSyncAdapter.apk
rm -rf /system/app/ConfigUpdater.apk
rm -rf /system/app/FaceLock.apk
rm -rf /system/app/GenieWidget.apk
rm -rf /system/app/Gmail.apk
rm -rf /system/app/GmsCore.apk
rm -rf /system/app/GoogleBackupTransport.apk
rm -rf /system/app/GoogleCalendar.apk
rm -rf /system/app/GoogleCalendarSyncAdapter.apk
rm -rf /system/app/GoogleContactsSyncAdapter.apk
rm -rf /system/app/GoogleFeedback.apk
rm -rf /system/app/GoogleLoginService.apk
rm -rf /system/app/GoogleNow.apk
rm -rf /system/app/GoogleNowVoiceSearch.apk
rm -rf /system/app/GooglePartnerSetup.apk
rm -rf /system/app/GoogleQuickSearchBox.apk
rm -rf /system/app/GoogleServicesFramework.apk
rm -rf /system/app/GoogleTTS.apk
rm -rf /system/app/LatinImeTutorial.apk
rm -rf /system/app/LatinImeDictionaryPack.apk
rm -rf /system/app/MarketUpdater.apk
rm -rf /system/app/MediaUploader.apk
rm -rf /system/app/NetworkLocation.apk
rm -rf /system/app/OneTimeInitializer.apk
rm -rf /system/app/Phonesky.apk
rm -rf /system/app/PlayStore.apk
rm -rf /system/app/SetupWizard.apk
rm -rf /system/app/Talk.apk
rm -rf /system/app/Talkback.apk
rm -rf /system/app/Vending.apk
rm -rf /system/app/VoiceSearch.apk
rm -rf /system/app/VoiceSearchStub.apk
rm -rf /system/etc/permissions/com.google.android.maps.xml
rm -rf /system/etc/permissions/com.google.android.media.effects.xml
rm -rf /system/etc/permissions/com.google.widevine.software.drm.xml
rm -rf /system/etc/permissions/features.xml
rm -rf /system/etc/preferred-apps/google.xml
rm -rf /system/etc/g.prop
rm -rf /system/addon.d/70-gapps.sh
rm -rf /system/framework/com.google.android.maps.jar
rm -rf /system/framework/com.google.android.media.effects.jar
rm -rf /system/framework/com.google.widevine.software.drm.jar
rm -rf /system/lib/libfilterpack_facedetect.so
rm -rf /system/lib/libfrsdk.so
rm -rf /system/lib/libgcomm_jni.so
rm -rf /system/lib/libgoogle_recognizer_jni.so
rm -rf /system/lib/libgoogle_recognizer_jni_l.so
rm -rf /system/lib/libfacelock_jni.so
rm -rf /system/lib/libfacelock_jni.so
rm -rf /system/lib/libgtalk_jni.so
rm -rf /system/lib/libgtalk_stabilize.so
rm -rf /system/lib/libjni_latinimegoogle.so
rm -rf /system/lib/libflint_engine_jni_api.so
rm -rf /system/lib/libpatts_engine_jni_api.so
rm -rf /system/lib/libspeexwrapper.so
rm -rf /system/lib/libvideochat_stabilize.so
rm -rf /system/lib/libvoicesearch.so
rm -rf /system/lib/libvorbisencoder.so
rm -rf /system/lib/libpicowrapper.so


upd. все-таки gps test определил координаты... http://rgho.st/87kbvj445

 , , , местоположение

w1nner
()

Обновился инструмент для работы с агентами в C++: SObjectizer 5.5.0

Форум — Development

SObjectizer — это реализация модели акторов для C++, позволяющая программировать на C++ с использованием работающих на разных нитях агентов, общающихся между собой посредством сообщений. SObjectizer существенно упрощает разработку событийно-ориентированных приложений, для параллельной и независимой обработки событий в которых требуется многопоточность и/или распределенность. SObjectizer использовался для создания как для мелких утилит, так и серьезных распределенных приложений, работающих под большой нагрузкой в режиме 24x7.

Последние несколько лет SObjectizer развивается на SourceForge как OpenSource проект под BSD-лицензией. Подробнее об истории, текущем состоянии и направлении движения SObjectizer можно прочитать здесь.

Версия 5.5.0 является результатом очередного, очень значимого этапа развития проекта.

Главное отличие v.5.5.0 от предыдущих версий — это отсутствие зависимости от ACE Framework. Т.е. теперь ACE в коде ядра SObjectizer не используется вообще, для SObjectizer достаточно наличия стандартной библиотеки C++11. Это означает, что SObjectizer уменьшился в размере, нужно меньше времени на сборку SObjectizer-проектов, упрощается поддержка различных компиляторов и платформ. В частности, эта версия SObjectizer тестировалась посредством MSVS2013 (Windows), GCC 4.8/4.9 (Windows, Linux), Clang 3.5.0 (Linux).

Из более мелких изменений можно отметить прямую поддержку std::chrono при работе с отложенными/периодическими сообщениями, а так же небольшое изменение названий некоторых классов/функций (с сохранением старых имен для обеспечения совместимости). Более подробная информация о нововведениях в v.5.5.0 доступна в соответствующем разделе Wiki проекта. Так же увеличилось количество страниц с описаниями базовых вещей SObjectizer.

Версия 5.5.0 может быть загружена из раздела Files или получена из Subversion-репозитория.

Примечание. Этот релиз содержит только ядро SObjectizer (т.е. проект so_5). Никакие другие подпроекты (вроде so_log или so_sysconf) в релиз не включены. Возможно, сборка SObjectizer Assembly со всеми подпроектами будет сформирована и опубликована позже (если она действительно кому-то потребуется).

PS. Анонс делается просто для того, чтобы уведомить, что такой проект есть, живет, развивается. Доступен под BSD-лицензий, т.е. даром, в том числе и для коммерческих проектов. Это не просьба сделать code review. И не попытка кому-то что-то «продать».

PPS. Специально для желающих постебаться над синтаксисом и посравнивать программирование на C++ с Perl-ом. Вот классический пример Hello, World. В традиционном, ООП-шном варианте, с созданием класса агента и переопределением виртуальных методов (хотя есть и более модерновый вариант, с использованием С++ных лямбда-функций):

#include <iostream>

// Main SObjectizer header files.
#include <so_5/all.hpp>

// Definition of an agent for SObjectizer.
class a_hello_t : public so_5::rt::agent_t
{
	public:
		a_hello_t( so_5::rt::environment_t & env )
			: so_5::rt::agent_t( env )
		{}

		// A reaction to start of work in SObjectizer.
		virtual void
		so_evt_start() override
		{
			std::cout << "Hello, world! This is SObjectizer v.5."
				<< std::endl;

			// Shutting down SObjectizer.
			so_environment().stop();
		}

		// A reaction to finish of work in SObjectizer.
		virtual void
		so_evt_finish() override
		{
			std::cout << "Bye! This was SObjectizer v.5."
				<< std::endl;
		}
};

int
main( int, char ** )
{
	try
	{
		// Starting SObjectizer.
		so_5::launch(
			// A function for SO Environment initialization.
			[]( so_5::rt::environment_t & env )
			{
				// Creating and registering single agent as a cooperation.
				env.register_agent_as_coop( "coop", new a_hello_t( env ) );
			} );
	}
	catch( const std::exception & ex )
	{
		std::cerr << "Error: " << ex.what() << std::endl;
		return 1;
	}

	return 0;
}

PPPS. Специально для желающих узнать, чем SObjectizer лучше libcppa/CAF. В двух словах — это две совершенно разные разработки, ставящие перед собой разные цели и достигающие их разными способами. Подробнее здесь и здесь.

 , , ,

eao197
()

Compile-time рефлексия на c++1z

Форум — Development

Я тут с начала октября пишу свою реализацию с Compile-time рефлексии, и у меня в итоге появились первые результаты работы. Что в ней есть:

  • Счетчики методов/переменных
  • Получение/присвоение переменных через индекс
  • Поиск переменных по имени
  • Получение типа переменной
  • статичные переменные
  • Получение имени класса
  • запуск методов через индекс
  • получение типа возвращаемого значения метода, получение типов входных аргументов
  • константный методы
  • статичные методы
  • Поиск методов по имени
  • попытка запустить кучу методов (там кортеж из индексов на вход идёт) с данными аргументами, неудача не ведет к ошибки компиляции(sfinae)
  • Получение имени переменной/метода

Я пока не делал документацию, и оформление кода хромает. Но это все уже активно пилится. Зависимости: boost.hana, boost.type_index (только в первом примере используется). Из С++1z: Поддержка if constexpr (), std::conjunction.

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

Ссылка на проект

Первый пример

Второй пример

Скриншот выхлопа первого примера

Скриншот выхлопа второго примера

P.S: Да макросы и не красиво, но с таким функционал без них никак не обойтись.

P.S.S: В файле utils можно убрать namespace std {...} если у Вас std::is_*_v уже в стандартной библиотеке определены.

P.S.S.S: лицензия GPLv3.

 , ,

maxis11
()

Node.js & Callbacks

Форум — Development

Требуется из расширения Node.js на C++ периодически вызывать колбэк в Node.js. Оказалось, что это страшная боль в пятой точке, благодаря чудесной архитектуре v8. Насколько я понял, вызывать нодовские колбэки можно только из главного потока libuv. Если сами события, по которым должен осуществляться вызов, генерируются в других потоках, то делается это примерно так: http://stackoverflow.com/questions/36987273/callback-nodejs-javascript-functi... Вопрос: как это делать эффективно, если само событие генерируется сторонней библиотекой, при этом в качестве параметра передаётся большой массив данных, который и нужно прокинуть колбэку? Копировать этот массив и временно сохранять копию? Сторонняя библиотека, генерирующая событие, тоже с v8, но другой версии нежели в node.js. Или же можно как-то вызвать колбэк из другого потока?

 , ,

asaw
()

Посоветуйте толковые книги на русском/английском по Си++ (Cxx11)

Форум — Development

Посоветуйте толковые книги на русском/английском по Си++.
Чтобы был нормальный перевод и содержание.
У меня где-то лежит каталог с O'Reilly, надо бы посмотреть среди них. Ещё что-то брал по акции «книга за 1 рубль» в books.ru

В двух словах - я старпёр, который изучал Си/Си++ в 1996-1997 году по книжкам:
* В.В.Подбельский Язык Си++ (Финансы и статистика)
* Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система
* немного смотрел русский перевод Керниган-Ритчи в бумажном виде в библиотеке когда интернетов не было, а свою книгу купить - стипендия не позволяла
* в 2004-2005 году читал книгу Страуструп Б. Дизайн и эволюция С++

Все эти книги читал в бумажном варианте.

По работе писал только на Си с классами и на Паскале с классами (+Делфи). Сейчас хотел бы по-изучать Си++, чтобы понимать современный код. Какие книги посоветуете? Интересует компактное изложение фундаментальных основ, желательно - на русском языке. Или что-то не очень тяжёлое на английском (чтобы не надо было переводить каждое слово со словариком). Надеюсь, понятно объяснил. Спасибо.

Просто я встретил на днях код вида

A::B::C::D ...
, и понял, что пора догонять поезд. На университетских знаниях 20-летней давности сейчас делать почти нечего. Хочу перестать заниматься быдлокодерством, и начать осваивать современные знания.

Ещё - есть ли краткая табличка с основными различиями в стандартах (Comparison table/list)? Или лучше просто прочитать для начала Wikipidia:C++11, и составлять такую таблицу самому?

За что браться не следует однозначно новичку, что освоить для быстрого JFF-эффекта, если хорошо знал в своё время Си с классами? Нравится концепция namespaces. Ещё хотелось бы впоследствии плавный переход на какую-то функциональщину, чтобы знания по современному Си++ пригодились. Какие концепции/подходы есть общие?

 ,

Mirage1_
()

Что там с юнит-тестами..?

Форум — Development

Выбор стоит среди следующего:
- Boost test
- Google test
- CppUnit.

Есть какие-то особые преимущества у каждого из них? Целевые платформы x86 и arm.

 ,

UVV
()

Кониебрик

Форум — Talks

https://pp.vk.me/c636922/v636922263/2e61c/gvwdk5QiAJM.jpg https://pp.vk.me/c637924/v637924251/16c37/ntEoYx_Uc4w.jpg

Собственно, понибудь поедет? Фест тепло-ламповый, в отличии от поньвентов имени ЧСВ Олдбоя типа ПРК и РБК. Из музла ожидаются Броникони, Пони Пржевальского и возможно Грифон Раш на пару с БА.

 ,

svr4
()

std::thread vs QThread

Форум — Development

Собсно, если Qt используется уже, для случая когда нужен постоянно живущий тред. Каковы доводы в пользу первого и второго?

 ,

UVV
()

Собрать msi installer под оффтоп из под линукса

Форум — Development

Коллеги, у меня немного специфичное желание, но думаю поймете.

Мы делаем софт и пакуем его в deb и rpm пакеты.

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

Пакеты я собираю вообще под маком и всё нормально работает.

Пришел клиент и ноет, что ему нужна винда. Я конечно всё сказал про винду, но поскольку он принес денег, надо ему помочь конечно.

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

 , ,

max_lapshin
()

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

Форум — Development

Здравствуйте все, кто читает сие.

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

Что я придумал : сделаем файл, который всё это будет хранить, потом парсер будет подгружать всё это в нужные места программы и всё будет вроде как работать. Файл будем хранить прямо в самом бинарнике, благо qt позволяет это легко сделать.

Но у меня возникло несколько вопросов: 1) А какие есть другие способы реализации того, что я описал выше? А то чую, что велосипед это дикий.

2) Как при таком хранении строк реализовать перевод посредством tr() из qt? tr() работает с файлами-ресурсами проекта?

Жду дельных предложений. Заранее спасибо.

 ,

zamazan4ik
()

Релиз Nuitka 0.5.17

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

Nuitka — компилятор языка Python, транслирующий код в представление на C++. Скомпилированные версии Python-скриптов показывают в тесте pystone на 258% большую производительность, чем при выполнении их с помощью CPython. Поддерживаются Python2 и Python3.

Основным новшеством данной версии является полная поддержка Python 3.5 и coroutines, также оптимизирована производительность и исправлены ошибки.

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

 

escobar
()

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

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

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

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

>>> YouTube

 ,

Evgueni
()

Чем или как отловить событие «подключения wifi клиента к точке»

Форум — Development

Суть следующая. Есть железка raspberry pi, в ней стоит raspbian (Debian 8 arm). На железке настроена точка доступа wifi (hostap). Как мне в pythone или хотя бы в баше (или в си) отловить событие подключения к точке доступа определенного клиента?

PS: Может и не через wifi это отлавливать, а через dhcp server. PPS: Хочу что бы при появлении моего телефона в радиусе действия точки гирлянда на елочке загоралась.

 ,

arsik
()

Желание заработать денег всё губит

Форум — Talks

В конце прошлого века жил-был режиссёр L, и довелось ему снять культовую фантастическую трилогию S. Не то чтобы она была какой-то необычной, но уже очень скоро она обросла большим количеством фанатов. И не просто фанатов, но творческих людей, которые писали книги — полноценные книги, а не фанфики — рисовали комиксы и делали игры. Вселенная, описанная в фильме, ширилась. Тогда как в оригинале было описано всего несколько лет из её жизни, благодаря людям, которых бы сейчас назвали «гиками», мы могли узнать, образно говоря, что произошло через 10, 100, тысячу лет до и после событий, показанных в оригинале. Книги писались, игры выпускались, комиксы рисовались, и даже мультфильмы снимались — всё было замечательно. Потому L пришло в голову снять ещё одну трилогию, которая бы описывала события до трилогии оригинала. Сказано — сделано, и как сделано! Да, были небольшие расхождения с книгами и прочей продукцией, которую называли «расширенной вселенной», но они были совершенно незначительны. Всё прошло мягко. Фанаты хорошо встретили фильм. И снова заиграла старая шарманка, и снова вселенная росла как на дрожжах, и все были рады.

И не было бы печали, если бы не великая и ужасная компания D, снимающая мультфильмы для детей, решила не подзаработать немного денег, и киностудия L была выкуплена с потрохами. Сразу стало ясно, что грядут перемены. И они настали. В не предвещавший беды день D попросту объявила, что вся «расширенная вселенная», все многочисленные книги, комиксы, игры, мульфильмы, и много чего другого, ересью, не достойной внимания. Все труды, тысячи человекочасов, всё было отметено прочь. Не существует никакой расширенной вселенной, говорили они, только в оригинальных трилогиях заключена правда, говорили они. Это было огромным ударом. Нет, конечно, нашлись и довольные, но истинный фанат S никогда это не простит — они погубили целую вселенную!

Но всё это было бы бессмысленно, если бы великий и ужасный D не решил заработать на S денег. Его цель была простой: воспользовавшись крайне широко известной узнаваемостью бренда S, снять новый, приторно-«Dшный». Естественно, по своему новому сценарию, отбросив все наработки. И плевать, что в книгах уже давно было описано, что во вселенной произойдёт — после покупки L и того самого плевка фанатам им было всё равно. Они хотели денег и ради денег пошли на всё, ради денег они пожертвовали огромной армией фанатов. Обыватель всё сожрёт. Обыватель не знает, что за пределами фильмов что-то было, обыватель наивно примет новый фильм за чистую правду. И пойдёт в кинотеатры. И заплатит. И сожрёт много проходного дерьма (в лице ужаснейшего мультсериала и тошнотворных комиксов, которые и рядом не стояли с тем, что был раньше), которое D выпустило в дополнение к фильму, дял его обслуживания. И будет покупать брелочки-флешечки с новыми героями, и не поймёт, что всё это — большой фарс, затеянный исключительно ради прибыли.

Основано на реальных событиях, имена изменены.

А в чём мораль? А мораль такова: капитализм убивает искусство. Капитализму плевать на людей. Ему нужны деньги.

 , , , ,

the_electric_hand
()

Игра spacehacker! Пре-альфа! Linux-only.

Форум — Talks

Пару дней тут в перерывах посидел и набросал простенькую игрушку на питоне в консольном режиме. Для работы нужен 2-ой питон.

Скачать отсюда - https://bitbucket.org/pi11/spaceship/

Скрин - http://spacehacker.pi11.ru/screen.png

Всего 10-ть уровней. А дальше все будет по другому. Пишите в тему, если что-то не работает.

 , ,

pi11
()

Давайте делиться в треде дешевым vpn за биткоины

Форум — Talks

Нашел earthvpn. Со скидкой получилось 200 рублей по текущему курсу, промо код на скидку - WELCOME. Пока полет нормальный.

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

Просьба постить также свои «открытия сезона». В связи с сами знаем чем тред нуждается в прикреплении.

 , ,

neirolog2014
()

Вышла утилита NoAds 0.4 для вырезания рекламы из Android-приложений

Форум — Mobile

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

Пересборка очень проста: ./noads-linux --repack path/to/file.apk

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

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

Попробовать чистые приложения

Перемещено splinter из android

 ,

noads
()