NASA воссоздало потерянную запись высадки человека на Луну
http://top.rbc.ru/society/17/07/2009/316098.shtml?print я просто оставлю это здесь.
http://top.rbc.ru/society/17/07/2009/316098.shtml?print я просто оставлю это здесь.
Начал таки мучать свой i3 и менять шрифт. Terminus мне таки очень нравится, а иконки удобно брать из AwesomeFont. Вот только отдельно fa-music не показывается по сути: http://imgur.com/a/dFjAk сверху показывается как какие-то 2 цифровые восьмерки. Случайная выборка 15 других иконок работает в терминусе. На других шрифтах (DejaVu, Awesome очевидный) иконка отображается корректно. Это можно как-то починить?
Disclaimer1: Проблема с данным маном в том, что местной аудитории, например, плевать на ведроид, а тому же 4pda наплевать на фанатичный СПО и избавление от зондов. Рискнем и запостим здесь.
Disclaimer2: Все описанное является суммой наклопленного мной опыта вперемешку с моим личным мнением. Пишите комменты, будем улучшать-дополнять-чинить
Уровень прошивки
Практически все стоковые прошивки на сегодняшний день идут с gapps (Google Apps). Что же это за зверь:
ААААА, как это удолить этот рассадник потенциальных уязвимостей и жора батарейки?
Сложный вопрос, на самом деле. Есть три варианта действий:
Я тут начал наслаждаться, но вдруг понадобились пуши, да и 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
Если вы будете ставить проприетарный софт, помните о следующем:
Права суперпользователя
Читая васянский 4pda вы часто можете увидеть «ну и накатываем SuperSU.zip». Не делайте этого. Есть прекрасный опенсорсный superuser, совместимый со свежими ведроидами. Нужно лишь поставить zip (используйте beta на android >=6) и apk.
Если ваша прошивка основана на LineageOS, то все еще проще. Где-то рядом с загрузками в директории extra должен валяться zip, включающий встроенные и интегрированные в прошивку права суперпользователя. Профит.
XPosed
XPosed — опенсорсный фреймворк для низкоуровневых хаков.
Уровень устройства
Тут тоже всё плохо. Выбор:
Следует также заметить, что:
Уровень физической безопасности
Для чего нужна физическая безопасность:
Допустим, ваш девайс попал в руки злоумышленнику.
Сразу скажу: всё плохо. Вам может показаться, что заботливые производители позаботились о вас, залочив загрузчик вашего телефона и не позволяя его разблокировать, не удалив все данные с телефона.
Я бы на вашем месте на это не рассчитывал.
Выводы:
Модули сотовой связи
В каждом мобильном телефоне, почти каждом планшете есть GSM-модуль мобильной связи. Это —
Так что тут все настолько плохо, что я даже предложить ничего не могу. Страдайте.
Вроде, все, что хотел сказать. Выдыхаю
Привет!
Порекомендуйте, пожалуйста, сборники задач по программированию толковые в том смысле, что задачи были бы отобраны и более или менее отранжированы по уровню (такое, в частности, встречается в книжках). Известные книжки: Кормен и Cracking the coding interview. Что можно посмотреть ещё? Сайты также интересуют, хотя качество содержимого как правило страдает (одинаковые задачи, заносы по уровню). Где можно посмотреть задачи, специфичные для данного языка (C\C++)?
Теперь даже ни гугл карты в браузере, ни гугл карты обычные, ни какие-либо другие карты не могут определить мое местоположение.
Теперь показывает что я под Красноярском, хотя я не там.
Что я делал: удалил все гугловские приложения - 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
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. В двух словах — это две совершенно разные разработки, ставящие перед собой разные цели и достигающие их разными способами. Подробнее здесь и здесь.
Я тут с начала октября пишу свою реализацию с Compile-time рефлексии, и у меня в итоге появились первые результаты работы. Что в ней есть:
Я пока не делал документацию, и оформление кода хромает. Но это все уже активно пилится. Зависимости: 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.
Требуется из расширения Node.js на C++ периодически вызывать колбэк в Node.js. Оказалось, что это страшная боль в пятой точке, благодаря чудесной архитектуре v8. Насколько я понял, вызывать нодовские колбэки можно только из главного потока libuv. Если сами события, по которым должен осуществляться вызов, генерируются в других потоках, то делается это примерно так: http://stackoverflow.com/questions/36987273/callback-nodejs-javascript-functi... Вопрос: как это делать эффективно, если само событие генерируется сторонней библиотекой, при этом в качестве параметра передаётся большой массив данных, который и нужно прокинуть колбэку? Копировать этот массив и временно сохранять копию? Сторонняя библиотека, генерирующая событие, тоже с v8, но другой версии нежели в node.js. Или же можно как-то вызвать колбэк из другого потока?
Посоветуйте толковые книги на русском/английском по Си++.
Чтобы был нормальный перевод и содержание.
У меня где-то лежит каталог с O'Reilly, надо бы посмотреть среди них. Ещё что-то брал по акции «книга за 1 рубль» в books.ru
В двух словах - я старпёр, который изучал Си/Си++ в 1996-1997 году по книжкам:
* В.В.Подбельский Язык Си++ (Финансы и статистика)
* Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система
* немного смотрел русский перевод Керниган-Ритчи в бумажном виде в библиотеке когда интернетов не было, а свою книгу купить - стипендия не позволяла
* в 2004-2005 году читал книгу Страуструп Б. Дизайн и эволюция С++
Все эти книги читал в бумажном варианте.
По работе писал только на Си с классами и на Паскале с классами (+Делфи). Сейчас хотел бы по-изучать Си++, чтобы понимать современный код. Какие книги посоветуете? Интересует компактное изложение фундаментальных основ, желательно - на русском языке. Или что-то не очень тяжёлое на английском (чтобы не надо было переводить каждое слово со словариком). Надеюсь, понятно объяснил. Спасибо.
Просто я встретил на днях код вида
A::B::C::D ..., и понял, что пора догонять поезд. На университетских знаниях 20-летней давности сейчас делать почти нечего. Хочу перестать заниматься быдлокодерством, и начать осваивать современные знания.
Ещё - есть ли краткая табличка с основными различиями в стандартах (Comparison table/list)? Или лучше просто прочитать для начала Wikipidia:C++11, и составлять такую таблицу самому?
За что браться не следует однозначно новичку, что освоить для быстрого JFF-эффекта, если хорошо знал в своё время Си с классами? Нравится концепция namespaces. Ещё хотелось бы впоследствии плавный переход на какую-то функциональщину, чтобы знания по современному Си++ пригодились. Какие концепции/подходы есть общие?
Выбор стоит среди следующего:
- Boost test
- Google test
- CppUnit.
Есть какие-то особые преимущества у каждого из них? Целевые платформы x86 и arm.
https://pp.vk.me/c636922/v636922263/2e61c/gvwdk5QiAJM.jpg https://pp.vk.me/c637924/v637924251/16c37/ntEoYx_Uc4w.jpg
Собственно, понибудь поедет? Фест тепло-ламповый, в отличии от поньвентов имени ЧСВ Олдбоя типа ПРК и РБК. Из музла ожидаются Броникони, Пони Пржевальского и возможно Грифон Раш на пару с БА.
Собсно, если Qt используется уже, для случая когда нужен постоянно живущий тред. Каковы доводы в пользу первого и второго?
Коллеги, у меня немного специфичное желание, но думаю поймете.
Мы делаем софт и пакуем его в deb и rpm пакеты.
Пишем мы на эрланге и платформозависимая часть на C обновляется очень редко, поэтому платформозависимая часть (сборка эрланга, пара либ) лежит просто в архиве, который подкладывается при сборке пакета.
Пакеты я собираю вообще под маком и всё нормально работает.
Пришел клиент и ноет, что ему нужна винда. Я конечно всё сказал про винду, но поскольку он принес денег, надо ему помочь конечно.
Инсталяторов полно, но может есть что-то, что позволит так же собирать пакеты из под линукса/мака? Один раз под виндой собрать эрланг, положить в архив и потом просто распаковывать при сборке?
Здравствуйте все, кто читает сие.
Сабж : имеется прилога, к полям есть подписи(когда мышом наводишь на QLabel, то снизу появляется окно поясняющее). Подписи довольно большие как по мне, и поэтому разумно их хранить в каком-то файле, а при загрузке просто подгружать в нужные переменные и всё, а не хранить всё это разбросанным по исходнику.
Что я придумал : сделаем файл, который всё это будет хранить, потом парсер будет подгружать всё это в нужные места программы и всё будет вроде как работать. Файл будем хранить прямо в самом бинарнике, благо qt позволяет это легко сделать.
Но у меня возникло несколько вопросов: 1) А какие есть другие способы реализации того, что я описал выше? А то чую, что велосипед это дикий.
2) Как при таком хранении строк реализовать перевод посредством tr() из qt? tr() работает с файлами-ресурсами проекта?
Жду дельных предложений. Заранее спасибо.
Nuitka — компилятор языка Python, транслирующий код в представление на C++. Скомпилированные версии Python-скриптов показывают в тесте pystone на 258% большую производительность, чем при выполнении их с помощью CPython. Поддерживаются Python2 и Python3.
Основным новшеством данной версии является полная поддержка Python 3.5 и coroutines, также оптимизирована производительность и исправлены ошибки.
>>> Подробности
Доктор физико-математических наук Андрей Грозин прочитал цикл лекций об использовании Python в целях ликвидации безграмотности среди студентов, аспирантов и прочих. Презентации были приготовлены для представления в среде Jupyter. Видеоматериалы лекций с разрешения лектора доступны под свободной лицензией CC-BY-SA. Исходные видеофайлы будут выложены в торрентах позже.
( читать дальше... )
>>> YouTube
Суть следующая. Есть железка raspberry pi, в ней стоит raspbian (Debian 8 arm). На железке настроена точка доступа wifi (hostap). Как мне в pythone или хотя бы в баше (или в си) отловить событие подключения к точке доступа определенного клиента?
PS: Может и не через wifi это отлавливать, а через dhcp server. PPS: Хочу что бы при появлении моего телефона в радиусе действия точки гирлянда на елочке загоралась.
В конце прошлого века жил-был режиссёр L, и довелось ему снять культовую фантастическую трилогию S. Не то чтобы она была какой-то необычной, но уже очень скоро она обросла большим количеством фанатов. И не просто фанатов, но творческих людей, которые писали книги — полноценные книги, а не фанфики — рисовали комиксы и делали игры. Вселенная, описанная в фильме, ширилась. Тогда как в оригинале было описано всего несколько лет из её жизни, благодаря людям, которых бы сейчас назвали «гиками», мы могли узнать, образно говоря, что произошло через 10, 100, тысячу лет до и после событий, показанных в оригинале. Книги писались, игры выпускались, комиксы рисовались, и даже мультфильмы снимались — всё было замечательно. Потому L пришло в голову снять ещё одну трилогию, которая бы описывала события до трилогии оригинала. Сказано — сделано, и как сделано! Да, были небольшие расхождения с книгами и прочей продукцией, которую называли «расширенной вселенной», но они были совершенно незначительны. Всё прошло мягко. Фанаты хорошо встретили фильм. И снова заиграла старая шарманка, и снова вселенная росла как на дрожжах, и все были рады.
И не было бы печали, если бы не великая и ужасная компания D, снимающая мультфильмы для детей, решила не подзаработать немного денег, и киностудия L была выкуплена с потрохами. Сразу стало ясно, что грядут перемены. И они настали. В не предвещавший беды день D попросту объявила, что вся «расширенная вселенная», все многочисленные книги, комиксы, игры, мульфильмы, и много чего другого, ересью, не достойной внимания. Все труды, тысячи человекочасов, всё было отметено прочь. Не существует никакой расширенной вселенной, говорили они, только в оригинальных трилогиях заключена правда, говорили они. Это было огромным ударом. Нет, конечно, нашлись и довольные, но истинный фанат S никогда это не простит — они погубили целую вселенную!
Но всё это было бы бессмысленно, если бы великий и ужасный D не решил заработать на S денег. Его цель была простой: воспользовавшись крайне широко известной узнаваемостью бренда S, снять новый, приторно-«Dшный». Естественно, по своему новому сценарию, отбросив все наработки. И плевать, что в книгах уже давно было описано, что во вселенной произойдёт — после покупки L и того самого плевка фанатам им было всё равно. Они хотели денег и ради денег пошли на всё, ради денег они пожертвовали огромной армией фанатов. Обыватель всё сожрёт. Обыватель не знает, что за пределами фильмов что-то было, обыватель наивно примет новый фильм за чистую правду. И пойдёт в кинотеатры. И заплатит. И сожрёт много проходного дерьма (в лице ужаснейшего мультсериала и тошнотворных комиксов, которые и рядом не стояли с тем, что был раньше), которое D выпустило в дополнение к фильму, дял его обслуживания. И будет покупать брелочки-флешечки с новыми героями, и не поймёт, что всё это — большой фарс, затеянный исключительно ради прибыли.
Основано на реальных событиях, имена изменены.
А в чём мораль? А мораль такова: капитализм убивает искусство. Капитализму плевать на людей. Ему нужны деньги.
Пару дней тут в перерывах посидел и набросал простенькую игрушку на питоне в консольном режиме. Для работы нужен 2-ой питон.
Скачать отсюда - https://bitbucket.org/pi11/spaceship/
Скрин - http://spacehacker.pi11.ru/screen.png
Всего 10-ть уровней. А дальше все будет по другому. Пишите в тему, если что-то не работает.
Нашел earthvpn. Со скидкой получилось 200 рублей по текущему курсу, промо код на скидку - WELCOME. Пока полет нормальный.
Для тех, кто хочет совсем анонимно для оплаты использовать миксеры.
Просьба постить также свои «открытия сезона». В связи с сами знаем чем тред нуждается в прикреплении.
| ← предыдущие | следующие → |