RSS
Pages: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 41
[>] [Перевод] Intel® RealSense™. Работа с потоками необработанных данных
habra.14
habrabot(difrex,1) — All
2015-03-20 15:00:03


![][1] Разработчикам, которые интересуются возможностями, доступными при внедрении управления без помощи контроллеров в своих приложениях, достаточно ознакомиться с Intel RealSense SDK, сопутствующими примерами и ресурсами в Интернете. Если вы «погрузитесь» в это решение, то обнаружите широкий набор функций, позволяющих создавать совершенно новые, великолепные интерфейсы с использованием новых технологий. В этой статье мы поговорим о потоках различных необработанных данных, о доступе к ним и о способах их использования. За счет прямого доступа к необработанным данным мы не только сможем работать с метаданными, но и получим самый быстрый способ определять, что делает пользователь в реальном мире. [Читать дальше →][2]

[1]: //habrastorage.org/files/ef4/b5c/2e3/ef4b5c2e31f74a8c8bbaa1b8035bb08c.jpg
[2]: http://habrahabr.ru/post/253361/#habracut

[>] Разбор задач тренировочного warmup-раунда Russian Code Cup 2015
habra.14
habrabot(difrex,1) — All
2015-03-20 19:00:03






В воскресенье прошел тренировочный warmup-раунд Russian Code Cup. Первое место занял Михаил «mmaxio» Майоров из Перми. Второе — Игорь «kraskevich» Краскевич из Москвы. Третье — Валентин «ValenKof» Кофман из Москвы. Поздравляем победителей! Впереди квалификационные раунды чемпионата. Напоминаем, что первый квалификационный раунд состоится 28 марта в 18:00 мск, а регистрация на чемпионат проходит на сайте до начала третьего квалификационного раунда. Russian Code Cup — это возможность для русскоязычных программистов со всего мира проверить свои силы и продемонстрировать мастерство, решая оригинальные задачи различной сложности, а также заявить о себе экспертному IT-сообществу. Олимпиада проходит в три этапа: квалификационные раунды, отборочный тур и финал, — на каждом из которых участникам олимпиады предлагается от четырех до восьми разноплановых задач. Задания и техническую часть соревнования обеспечивают специалисты Mail.Ru Group и эксперты Университета ИТМО — соорганизатора Russian Code Cup. А сейчас разберемся с решением задач warmup-раунда. **Задача A. [Воздушные шарики][1] ** [Читать дальше →][2]

[1]: http://www.russiancodecup.ru/championship/round/34/problem/A/
[2]: http://habrahabr.ru/post/253401/#habracut

[>] Как я защищался от фишинга, и написал велосипед, но свой собственный
habra.14
habrabot(difrex,1) — All
2015-03-20 19:00:03


Во времена “дикого” интернета на почту приходило много спама, среди них было много фишинговых писем. Например: “Вам новое сообщение посмотрите по ссылке на сайте vkontate”; “Добавьте друзей на сайте Одноклассники”. Мама и другие родственники на это велись. Привязки к телефону тогда ещё не было, приходилось все время восстанавливать аккакунты, либо менять пароли. Наступил момент когда мне это надоело и захотелось решить проблему раз и навсегда. В голову пришла идея плагина типа [Web OF Trust][1], но было какое-то подозрение, что красный индикатор не остановит родных от ввода пароля на левых сайтах. Подумав немного, придумал другую идею, написал скриптик и поставил в хром. Родным сказал пользоваться только хромом, пароли нигде не вводить, если автоматически не входит — значит сайт поддельный, заходить на нужный сайт через закладки. Некоторым не выдал и вовсе их пароли :). [А теперь подробнее][2]

[1]: http://chrome.google.com/webstore/detail/wot/bhmmomiinigofkjcapegjjndpbikblnp
[2]: http://habrahabr.ru/post/253617/#habracut

[>] Анонимные платежи: Darkcoin или Bitcoin+Миксеры?
habra.14
habrabot(difrex,1) — All
2015-03-20 21:00:02


![image][1] Иногда важно сохранять не только свою личную анонимность, но также анонимность своих финансов. Когда вашим деньгам требуется анонимность — ошибки недопустимы. **ПОТРЕБНОСТЬ** Правительства многих стран результативно работают над установлением тотального мониторинга и контроля за движением денег как своих граждан, так и граждан других государств. Общественному мнению навязывается стереотип: «Если кто-то что-то скрывает, значит наверняка он — преступник, уклоняется от уплаты налогов, спонсирует терроризм или замешан в прочих грехах». В некоторых странах использование наличных, драгметаллов, криптовалют, офшоров и других инструментов, затрудняющих финансовый мониторинг, автоматически наводит на вас подозрения. Но здравый смысл подсказывает людям, что выражение «Деньги любят тишину» связано не с криминалом, а основано на элементарной бытовой осторожности. Никто в здравом уме не кричит о том, сколько у него в кармане денег, не пишет везде о размере своих доходов и не выставляет всем напоказ банковскую выписку с перечнем операций по карте. Организации также стараются не афишировать подробности своей финансовой деятельности, не публикуют списки клиентов с детализацией их заказов, ведь это как минимум расстроит клиентов и привлечет недоброжелателей (включая конкурентов). И если граждане высокоразвитых стран могут хотя бы надеяться, что финансовая слежка за ними ведется в неких национальных интересах, то в странах с высоким уровнем коррупции люди обоснованно опасаются того, что их приватная информация с высокой вероятностью попадет к людям с враждебными намерениями. Хорошо, я не буду углубляться в философию, а просто констатирую тот факт, что у большинства людей и бизнесов имеется желание (а зачастую — необходимость) сохранить анонимность своих финансов. И причина этого не в том, что они замышляют что-то плохое, а в том, что они сами не хотят стать жертвами чужих злонамеренных или преступных планов. [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/eb6/48e/309/eb648e309b82562708b1784770a014d1.png
[2]: http://habrahabr.ru/post/253623/#habracut

[>] Администрирование глазами C++ программиста
habra.14
habrabot(difrex,1) — All
2015-03-20 22:00:03


![][1] Продолжаем цикл пятничных статей "_X_ глазами C++ программиста" ([1][2], [$$][3]). В этот раз под катом вас ждут впечатления заядлого С++ программиста от мира администрирования. Боль, страдания, радости и прочие эмоции как всегда вынесены под спойлеры. Надеюсь будет интересно профессиональным администраторам посмотреть на потуги С++ника, ну а С++ разработчикам узнать для себя что-то новое. [Показывай конфиги][4]

[1]: http://habrastorage.org/files/f2c/cbd/603/f2ccbd603d5f47468351a0e569f7c963.jpg
[2]: http://habrahabr.ru/post/250825/
[3]: http://habrahabr.ru/post/252675/
[4]: http://habrahabr.ru/post/252675/#habracut

[>] Mirantis OpenStack 6.0: теперь с плагинами
habra.14
habrabot(difrex,1) — All
2015-03-21 08:30:02


_Авторы: Николай Марков, Илья Стечкин, Ирина Поволоцкая_ Неудержимо приближается глобальный OpenStack-саммит. Эта заоблачная тусовка проходит два раза в год в разных городах мира (в этот раз, например, чести принимать мероприятие удостоился [Ванкувер][1]) и дает возможность всем, кто так или иначе заинтересован в развитии экосистемы OpenStack, обменяться новостями и заодно определить, в каком направлении будет развиваться платформа. А кроме того, саммит дисциплинирует разработчиков, заставляя оперативно допиливать новые версии дистрибутивов, чтобы представить их почтеннейшему собранию. Mirantis — не исключение. [Читать дальше →][2]

[1]: https://www.openstack.org/summit/vancouver-2015/
[2]: http://habrahabr.ru/post/253613/#habracut

[>] [Перевод] Простое объяснение движения денег в банковской системе
habra.14
habrabot(difrex,1) — All
2015-03-21 16:00:01


**От переводчика:** _В последние месяцы в жизнь многих людей прочно вошли новости сферы финансов. Одна из недавних тем — возможное отключение России от [системы SWIFT][1]. Угроза выглядит очень серьезно, но что на самом деле грозит стране, если события будут развиваться по этому сценарию? Наш сегодняшний материал призван помочь разобраться с тем, как все устроено в глобальном мире финансов._ На прошлой неделе [статья опубликована в ноябре 2013] Twitter сошел с ума из-за того, что кто-то перевел почти 150 миллионов долларов за одну транзакцию в криптовалюте. Появление такого [твита][2] было в порядке вещей: [![][3]][4] _Транзакция 194 993 биткоинов стоимостью в 147 миллионов долларов порождает много тайн и спекуляций_ Было много комментариев о том, насколько дорого и сложно было бы это реализовать в обычной банковской системе, и, вполне возможно, что так оно и есть. Но при этом я обратил внимание вот на что: по своему опыту знаю, что почти никто не понимает, как на самом деле работают платежные системы. То есть: когда вы «перечисляете» денежные средства поставщику или «производите платеж» на чей-либо счет, как деньги переходят с _вашего_ счета на счета _других_? С помощью этой статьи я попытаюсь изменить ситуацию и проведу простой, но, надеюсь, не слишком упрощенный, анализ в этой области. [Читать дальше →][5]

[1]: https://meduza.io/cards/chem-grozit-rossii-otklyuchenie-ot-swift
[2]: https://twitter.com/coindesk/status/404039534444560384
[3]: //habrastorage.org/files/032/fe9/2cc/032fe92ccb1546e5a5bae1130a545035.png
[4]: http://habrahabr.ru/company/itinvest/blog/253675/
[5]: http://habrahabr.ru/post/253675/#habracut

[>] Пишем компонент движения для RTS в Unreal engine 4
habra.14
habrabot(difrex,1) — All
2015-03-22 16:00:03


Привет, меня зовут Дмитрий, программист из Snowforged Entertainment. Я только что закончил рефакторинг компонента движения кораблей для проекта Starfall Tactics — тактической игры в реальном времени, в которой игроки могут собрать свой собственный космический флот и повести его в бой. Компонент движения переписывался уже три раза, от релиза до начала разработки альфа версии. Было собрано множество граблей, как архитектурных, так и сетевых. Постараюсь подбить весь этот опыт и рассказать вам о: Navigation Volume, Movement component, AIController, Pawn. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253711/#habracut

[>] Pwn2Own 2015: итоги
habra.14
habrabot(difrex,1) — All
2015-03-22 22:30:03


Второй день Pwn2Own [завершился][1] успешной эксплуатацией уязвимостей во всех заявленных браузерах: Google Chrome, Microsoft IE11, Apple Safari, Mozilla Firefox. Информацию о первом дне соревнований мы размещали в [предыдущем][2] посте, там же была указана используемая конфигурация браузеров и ОС. В отличие от первого дня, на сей раз было продемонстрировано удаленное исполнение кода и в браузере Google Chrome. ![][3] Обновление для браузера Mozilla Firefox, которое устраняет продемонстрированные на контесте уязвимости уже было выпущено для пользователей. Обновления для других браузеров придут позднее. За два дня соревнования ресерчерам удалось заработать $557,500, причем успешному взлому подверглись все заявленные браузеры и плагины для них. [Читать дальше →][4]

[1]: http://h30499.www3.hp.com/t5/HP-Security-Research-Blog/Pwn2Own-2015-Day-Two-results/ba-p/6722884#.VQ7te-6sVgM
[2]: http://habrahabr.ru/company/eset/blog/253557/
[3]: //habrastorage.org/files/ed0/69c/ec0/ed069cec0dae42baaaa5a9d6d1dcd2e8.png
[4]: http://habrahabr.ru/post/253727/#habracut

[>] [Перевод] Скармливающие операторы в Perl 6
habra.14
habrabot(difrex,1) — All
2015-03-23 12:30:03


Программисты Perl 5 сталкивались с такой структурой в коде:

my @new = sort { ... } map { ... } grep { ... } @original;


Здесь данные идут справа налево, от массива `@original`, который скармливают в grep, который, в свою очередь, скармливает данные в map, а тот в sort, и в конце всё это присваивается массиву `@new`. Каждый из них принимает список в качестве аргумента. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253701/#habracut

[>] Ruby Together – фонд развития языка Ruby
habra.14
habrabot(difrex,1) — All
2015-03-23 12:30:03


![][1] Пару раз проскочив в условном Ruby Weekly, сайт инициативы Ruby Together не зацепил моего внимания, хотя должен был. Давайте разберемся, на что нам предлагают потратить свой трудовой доллар. [Ruby Together][2] — некоммерческая организация, занятая привлечением и распределением денег на развитие инфраструктуры языка Ruby. Уже сейчас под крылом организации находятся столпы экосистемы Ruby: гем [bundler][3], репозиторий [rubygems.org][4] и сам проект [rubygems][5]. Организация управляется [советом директоров][6], который состоит из хорошо знакомых всем рубистам имен: André Arko, Aaron Patterson ([интервью для хабра][7]), Steve Klabnik ([интервью для хабра][8], [«Как я нахожу время?»][9]), Sarah Mei, Terence Lee, Ines Sombra, Joel Watson. Индивидуальное членство в организации стоит $40 в месяц, корпоративное членство – $800. Взносы дают право голоса и ряд бонусов, о которых под катом. Для тех, кто просто хочет помочь проекту деньгами, существует статус «друга», без доступа к внутренним ресурсам и права голоса, с ежемесячным взносом $10, либо разовым взносом произвольной суммы. На текущий момент к проекту присоединились компании Stripe и Engine Yard, а также более 30 индивидуальных участников. [Принять участие][10]. [Читать дальше →][11]

[1]: //habrastorage.org/files/075/e73/0c9/075e730c98a04f03ab393b00c8b9d273.png
[2]: https://rubytogether.org/
[3]: http://bundler.io
[4]: https://rubygems.org
[5]: https://github.com/rubygems/
[6]: https://rubytogether.org/team
[7]: http://habrahabr.ru/company/railsclub/blog/236041/
[8]: http://habrahabr.ru/company/railsclub/blog/150734/
[9]: http://habrahabr.ru/post/161713/
[10]: https://rubytogether.org/join
[11]: http://habrahabr.ru/post/253703/#habracut

[>] Разбираемся с загрузкой ArchLinux по сети
habra.14
habrabot(difrex,1) — All
2015-03-23 12:30:03


В [предыдущей статье][1] мы подготовили базовую систему. Здесь мы создадим новую систему Arch Linux, способную загружаться по сети и автоматически запускать браузер Firefox, а между делом разберёмся с необходимой функциональностью загрузочного сервера. Потом настроим сам сервер и попробуем с него загрузиться. Всё произойдёт в точности, как на картинке, которую нашёл гугл по запросу «PXE»: ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/post/253256/
[2]: //habrastorage.org/files/d01/7d4/5c8/d017d45c8fa84b22929222d40306129b.png
[3]: http://habrahabr.ru/post/253573/#habracut

[>] Intel® Graphics Technology. Часть III: эффективные вычисления на графике
habra.14
habrabot(difrex,1) — All
2015-03-23 12:30:03






В комментариях к прошлому [посту ][1]был поднят весьма важный вопрос – а будет ли вообще выигрыш в производительности от выгрузки вычислений на интегрированную графику, по сравнению с выполнением только на CPU? Конечно, он будет, но нужно соблюдать определенные правила программирования для эффективных вычислений на GFX+CPU. В подтверждение моих слов, сразу представлю график ускорения, получаемого при выполнении вычислений на интегрированной графике, для различных алгоритмов и с разной долей вовлеченности CPU. На КДПВ мы видим, что выигрыш более чем весомый. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/intel/blog/250545/
[2]: http://habrahabr.ru/post/253425/#habracut

[>] [Из песочницы] Файловая система Linux полностью на tmpfs — скорость без компромиссов
habra.14
habrabot(difrex,1) — All
2015-03-23 14:00:02




#### Предыстория

Так сложилось, что уже пять лет мой раздел ntfs с операционной системой Windows располагается на рамдиске. Решено это не аппаратным, а чисто программным способом, доступным на любом ПК с достаточным количеством оперативной памяти: рамдиск создается средствами загрузчика grub4dos, а Windows распознаёт его при помощи драйвера firadisk. Однако до недавнего времени мне не был известен способ, как реализовать подобное для Linux. Нет, безусловно, существует огромное количество линуксовых LiveCD, загружающихся в память при помощи опций ядра toram, copy2ram и т. д., однако это не совсем то. Во-первых, это сжатые файловые системы, обычно squashfs, поэтому любое чтение с них сопровождается накладными расходами на распаковку, что вредит производительности. Во-вторых, это достаточно сложная каскадная система монтирования (так как squashfs — рид-онли система, а для функционирования ОС нужна запись), а мне хотелось по возможности простого способа, которым можно «вот так взять и превратить» любой установленный на жесткий диск Linux в загружаемый целиком в RAM. Ниже я опишу такой способ, который был с успехом опробован. Для опытов был взят самый заслуженный дистрибутив Linux — Debian. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253759/#habracut

[>] Приглашаем принять участие в Security Meetup 9 апреля
habra.14
habrabot(difrex,1) — All
2015-03-23 15:00:02


![][1] Приглашаем экспертов в области интернет-безопасности, а также всех интересующихся этой темой на наш очередной Security Meetup, который состоится в четверг, 9 апреля, в 19:30. Вечер обещает быть насыщенным интересной и актуальной информацией, в программе пять докладов об уязвимостях и различных аспектах их эксплуатации. [Читать дальше →][2]

[1]: //habrastorage.org/files/4f7/fd7/214/4f7fd72148bf4e0db37d409a66ea5a78.jpg
[2]: http://habrahabr.ru/post/253767/#habracut

[>] Использование технологии Microsoft Active Accessibility для доступа к содержимому браузера
habra.14
habrabot(difrex,1) — All
2015-03-23 15:30:03


Давайте придумаем решение вот такой-вот простенькой задачи. **Имеется**: браузер (IE, Chrome или Firefox), уже запущенный пользователем. **Требуется**: написать программу, которая получит URL, который в данный момент введён в адресной строке. Давайте подумаем, каким образом эту простенькую задачу решить НЕ получится: **1\.** FindWindow + GetWindowText




**2\.** Браузерное расширение, которое отдаст URL нашей программе (например, через запрос к localhost)




**3\.** Давайте напишем сниффер и посмотрим что там пользователь открывал




**4\.** Давайте воспользуемся [Remote Debugging Protocol][1] ну или каким-нибудь Selenium-ом




**5\.** Может быть, [хуки][2]?




**6\.** Скриншот окна браузера, определение положения адресной строки, распознавание текста с картинки!




**7\.** Ваш вариант А напишите в комментариях, какие ещё решения вам приходят в голову и мы подумаем, получится или нет. А теперь один из правильных ответов: мы воспользуемся уже старенькой, но весьма стабильной и поддерживаемой всеми браузерами во всех ОС с Win95 до Win10 технологией [Microsoft Active Accessibility][3], которая даст нам возможность не только получить текущий URL (при чём одинаковым образом для всех браузеров), но и вообще дать доступ ко всему контенту браузера — от самого родительского окна с его заголовком, меню, тулбаром, вкладками и до содержимого открытой веб-страницы вплоть до самого последнего её элемента. [Читать дальше →][4]

[1]: http://habrahabr.ru/company/infopulse/blog/217121/
[2]: http://habrahabr.ru/company/infopulse/blog/140456/
[3]: https://ru.wikipedia.org/wiki/Microsoft_Active_Accessibility
[4]: http://habrahabr.ru/post/253729/#habracut

[>] Как поймать то, чего нет. Часть вторая: снаряд и броня
habra.14
habrabot(difrex,1) — All
2015-03-23 16:30:02


Часть первая была посвящена выбору определения для понятия «вредоносная программа» и, вполне логично, что статья привлекла мало внимания — ну в самом деле, кому какая разница, какого цвета крыса — главное, чтобы кошка исправно их душила. Во второй части мы постараемся определить, чем же должен заниматься антивирус в локальной сети. Если кто-то еще думает, что антивирус должен ловить вирусы — просим под кат. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253769/#habracut

[>] [Из песочницы] Иглобрюх и дары «Жизни»
habra.14
habrabot(difrex,1) — All
2015-03-23 22:30:03


![][1] Многие программисты, по крайней мере моего поколения, знают игру «Жизнь», правила которой были предложены британским математиком Джоном Конвеем (John Conway) в 1970 году. Но что знают немногие, так это то, что она до сих пор активно развивается и радует новыми открытиями. Историей одного из таких открытий я хочу поделиться в этой статье. [Читать дальше →][2]

[1]: //habrastorage.org/files/9b2/b47/346/9b2b4734696a457897aa4c97abf4ecf0.gif
[2]: http://habrahabr.ru/post/253809/#habracut

[>] Электронная подпись в доверенной среде на базe загрузочной Ubuntu 14.04 LTS и Рутокен ЭЦП Flash
habra.14
habrabot(difrex,1) — All
2015-03-24 00:30:03


Процедура наложения электронной подписи, призванная обеспечить подтверждение целостности подписанного документа и его авторства, сама по себе может быть небезопасной. Основные атаки на ЭП — это кража ключа и подмена подписываемой информации, а также несанкционированный доступ к средству ЭП (например, USB-токену) посредством кражи его PIN-кода. Реализуются данные атаки различными способами и на различных уровнях. На уровне ОС это внедрение вредоносного ПО (вирусы, программы-шпионы, руткиты и т.п.), которое способно похищать ключи, PIN-коды и делать подмену документов посредством чтения и/или подмены данных в памяти системного процесса, используя различные механизмы «хака», заложенные в ОС. Если мы говорим о подписи в браузере, то к данным атакам добавляется возможность проведения атаки man-in-the-middle, направленной на модификацию подписываемых данных на web-странице или на кражу PIN-кода или на перехват secure token для возможности злоумышленнику прикинуться абонентом системы. Кроме того, на сайтах возможна атака типа CSS, обусловленная безалаберностью разработчиков сайта. Очевидно, что максимально защитить клиента при проведении процедуры ЭП возможно лишь комплексом мер. К данным мерам можно отнести:

* применение для электронной подписи криптографических смарт-карт/USB-токенов с неизвлекаемыми ключами
* использование правильной реализации протокола TLS на сайте
* правильное конфигурирование этой правильной реализации протокола TLS
* использование специальных аппаратных средств для визуализации подписываемых данных перед наложением подписи (trustscreen)
* корректная реализация браузерных плагинов и расширений, которые обеспечивают ЭП в браузере
* регламентирование процедуры подписи для пользователя с учетом встроенных в браузер механизмов безопасности
* проверка сертификата TLS-сервера пользователем перед ЭП
* запуск браузерных плагинов и расширений только на доверенном сайте (сейчас правильно настроенные браузеры предупреждают пользователя о запуске)
* ввод PIN-кода токена по запросу только доверенного сайта
* защита ОС от вредоносного ПО (создание доверенной среды)

Некоторое время назад наша компания выпустила новый [Рутокен ЭЦП Flash][1]. Это устройство «два в одном» — криптографический токен и управляемая FLASH-память в едином корпусе. При этом контроллер позволяется настраивать FLASH-память таким образом, что атрибуты настройки нельзя изменить без знания PIN-кода к устройству. В данной статье мы сделаем кастомную Ubuntu 14.04 LTS, в которую «упакуем» смарткарточные драйвера и [Рутокен Плагин][2]. Эту ОС запишем на FLASH-память Рутокен ЭЦП Flash (USB-live) и специальными средствами сделаем ее read-only, так, что без знания PIN-кода злоумышленник не сможет снять этот атрибут. Таким образом, получим загрузочное устройство, при загрузке с которого пользователь сразу получит возможность подписи документов в браузере на неизвлекаемых ключах в доверенной среде, целостность которой гарантируется управляющим контроллером USB-токена. [Читать дальше →][3]

[1]: http://www.rutoken.ru/products/all/rutoken-ecp-flash/
[2]: http://www.rutoken.ru/products/all/rutoken-plugin/
[3]: http://habrahabr.ru/post/253619/#habracut

[>] [Из песочницы] Стрелочные часы на CMake
habra.14
habrabot(difrex,1) — All
2015-03-24 02:30:03


![][1] Когда я устроился на новую работу, пришлось в ускоренном темпе осваивать новые для меня технологии, которые используются в данной компании. Одной из таких технологий стала система сборки [cmake][2], с которой мне раньше не приходилось сталкиваться. Эта система имеет свой встроенный язык для написания сборочных скриптов. Этот самый язык меня и заинтересовал. Вскоре я выяснил, что в нем есть возможность вычисления математических выражений, запись и чтение из файлов, запуск внешних процессов и другие интересные возможности, что навело меня на мысль воспользоваться этим языком в качестве основного ЯП и написать на нем что-нибудь осязаемое. Речь пойдет о том, как я писал стрелочные часы на языке cmake 2.8. [Читать дальше →][3]

[1]: //habrastorage.org/files/0f9/b59/429/0f9b59429cb041cca2fe1f101321981c.png
[2]: http://www.cmake.org/
[3]: http://habrahabr.ru/post/253813/#habracut

[>] Python Meetup 27.02.15: Hy и Toga
habra.14
habrabot(difrex,1) — All
2015-03-24 02:30:03


27 февраля состоялся очередной Python Meetup. В этот раз мы обсуждали:

* **Hy** — диалект, который позволяет Lisp-разработчикам использовать библиотеки Python, а Python’истам найти решение для некоторых проблем языка, например, отсутствия скобочек.
* **Toga** — библиотека построения интерфейсов на Python, которая с первого взгляда выглядит как простой и универсальный инструмент, но на деле имеет ряд недоработок.

Во время **Lightning Talk** участники делились опытом экспорта .doc-файлов и идеями использования AST для трансляции Python в Ruby, JavaScript, C++ и др. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/8b1/7f8/459/8b17f8459e4c48b29df7a80f200834f4.jpg
[2]: http://habrahabr.ru/post/253801/#habracut

[>] Не совсем известные решения по защите ИТ-инфраструктуры бизнеса
habra.14
habrabot(difrex,1) — All
2015-03-24 12:00:03


![][1] **Классический подход российского бизнеса сегодня** — это установка файрволла, затем после первых попыток направленных атак — системы защиты от вторжений. И дальше спать спокойно. На практике это даёт хороший уровень защиты только против скрипткидди, при любой более-менее серьёзной угрозе (например, от конкурентов или атаке от недоброжелателей, либо направленной атаке от иностранной группы промшипонажа) нужно что-то дополнительное, помимо классических средств. Я уже писал про профиль [типовой направленной атаки][2] на российское гражданское предприятие. Теперь расскажу о том, как меняется стратегия защиты в целом в нашей стране в последние годы, в частности, в связи со смещением векторов атак на 0-day и связанные с этим внедрения статических анализаторов кода прямо в IDE. Плюс пара примеров на сладкое — вы узнаете, что может твориться в полностью изолированной от Интернета сети и на периметре банка. [Читать дальше →][3]

[1]: //habrastorage.org/files/84e/fcd/4c2/84efcd4c25754134ac0c72573a6b5f89.jpg
[2]: http://habrahabr.ru/company/croc/blog/236411/
[3]: http://habrahabr.ru/post/253835/#habracut

[>] [Перевод] Сборка Krita под Linux для котанов
habra.14
habrabot(difrex,1) — All
2015-03-24 12:30:02


![][1] Наконец, перевод очередной статьи от Давида Ревуа — прекрасного художника, использующего свободное программное обеспечение, а также постоянного члена сообществ Krita Foundation и Blender Institute. Мастер делится с начинающими художниками инструкцией по сборке самой свежей версии графического редактора Krita из исходных кодов. Он считает, что этот процесс на самом деле не так сложен и заковырист, как кажется на первый взгляд. Все этапы прекрасно проиллюстрированы. Приобщайтесь! [Читать дальше →][2]

[1]: //habrastorage.org/files/c1b/e13/406/c1be13406c9a41789a0b134aacae3b05.jpg
[2]: http://habrahabr.ru/post/252289/#habracut

[>] Снифаем выходную ноду Tor’а и анализируем получившийся контент
habra.14
habrabot(difrex,1) — All
2015-03-24 13:30:02


![][1] Концепция «сеть поверх сети» появилась далеко не вчера. Еще в середине прошлого десятилетия «Хакер» писал о луковой и чесночной маршрутизации в лице Tor и I2P и даже публиковал обзоры соответствующего софта в рубрике «Шароwarez», но настоящий интерес к ним в обществе появился на волне известных инфоповодов и громких разоблачений последнего времени. Что же представляют собой даркнеты? Кто там живет? Чем они интересуются, чем дышат, что покупают и что продают? Попробуем разобраться с этим по-хакерски: с помощью снифера и прямого погружения. [Читать дальше →][2]

[1]: //habrastorage.org/files/13d/b31/0f5/13db310f5d1149c79a5df9da8750c2b6.jpg
[2]: http://habrahabr.ru/post/244485/#habracut

[>] Краткий курс компьютерной графики, аддендум: GLSL
habra.14
habrabot(difrex,1) — All
2015-03-24 15:30:06




# Очередная вводная статья для начинающих программировать графику реального времени

У меня когда-то возникла задача (быстро) визуализировать молекулы. Например, молекула может быть представлена просто как набор сфер навроде вот этого: ![][1] Конкретно этот вирус состоит из примерно трёх миллионов атомов. Вы можете скачать его модель на замечательном сайте [rcsb.org][2]. Это отличный топик для обучения шейдерам! [Читать дальше →][3]

[1]: https://hsto.org/files/1ef/256/c5c/1ef256c5c4fb4ddfa5de938d3f555e14.png
[2]: http://www.rcsb.org/pdb/explore.do?structureId=2BTV
[3]: http://habrahabr.ru/post/253791/#habracut

[>] Deconvolutional Neural Network
habra.14
habrabot(difrex,1) — All
2015-03-24 17:30:03


Использование классических нейронных сетей для распознавания изображений затруднено, как правило, большой размерностью вектора входных значений нейронной сети, большим количеством нейронов в промежуточных слоях и, как следствие, большими затратами вычислительных ресурсов на обучение и вычисление сети. Сверточным нейронным сетям в меньшей степени присущи описанные выше недостатки. Свёрточная нейронная сеть (англ. [_convolutional neural network_][1], _CNN_) — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном и нацеленная на эффективное распознавание изображений, входит в состав технологий глубокого обучения (англ. [_deep leaning_][2]). Эта технология построена по аналогии с принципами работы [зрительной коры][3] головного мозга, в которой были открыты так называемые простые клетки, реагирующие на прямые линии под разными углами, и сложные клетки, реакция которых связана с активацией определённого набора простых клеток. Таким образом, идея сверточных нейронных сетей заключается в чередовании сверточных слоев (англ. _convolution layers_) и субдискретизирующих слоев (англ. _subsampling layers_, слоёв подвыборки).[6] ![image][4] Рис 1. Архитектура сверточной нейронной сети Ключевым моментом в понимании сверточных нейронных сетей является понятие так называемых «разделяемых» весов, т.е. часть нейронов некоторого рассматриваемого слоя нейронной сети может использовать одни и те же весовые коэффициенты. Нейроны, использующие одни и те же веса, объединяются в карты признаков (_feature maps_), а каждый нейрон карты признаков связан с частью нейронов предыдущего слоя. При вычислении сети получается, что каждый нейрон выполняет свертку ([операцию конволюции][5]) некоторой области предыдущего слоя (определяемой множеством нейронов, связанных с данным нейроном). Слои нейронной сети, построенные описанным образом, называются сверточными слоями. Помимо, сверточных слоев в сверточной нейронной сети могут быть слои субдискретизации (выполняющие функции уменьшения размерности пространства карт признаков) и полносвязные слои (выходной слой, как правило, всегда полносвязный). Все три вида слоев могут чередоваться в произвольном порядке, что позволяет составлять карты признаков из карт признаков, а это на практике означает способность распознавания сложных иерархий признаков [3]. Что же именно влияет на качество распознавания образов при обучении сверточных нейронных сетей? Озадачившись данным вопросом, наткнулись на статью Мэттью Зайлера ([_Matthew Zeiler_][6]). [Читать дальше →][7]

[1]: http://en.wikipedia.org/wiki/Convolutional_neural_network
[2]: http://en.wikipedia.org/wiki/Deep_learning
[3]: https://ru.wikipedia.org/wiki/%D0%97%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BE%D1%80%D0%B0
[4]: https://hsto.org/files/96d/f26/8f5/96df268f5ede4c9687e6d2999510af19.png
[5]: http://en.wikipedia.org/wiki/Convolution
[6]: http://www.matthewzeiler.com/
[7]: http://habrahabr.ru/post/253859/#habracut

[>] [Перевод] Wolfram Data Drop — новый сервис Wolfram Research
habra.14
habrabot(difrex,1) — All
2015-03-24 17:30:03


_Перевод поста Стивена Вольфрама (Stephen Wolfram) "[The Wolfram Data Drop Is Live!][1]". Выражаю огромную благодарность [Кириллу Гузенко][2] за помощь в переводе._ Куда должны идти данные из [интернета вещей][3]? У нас есть отличная технология в [Wolfram Language][4] для интерпретации, визуализации, анализа запросов и прочих интересных вещей. Но вопрос в том, как должны все эти данные из подключённых к сети устройств и всех остальных источников попасть туда, где с ними можно делать всё вышеперечисленное? Сегодня мы запускаем то, что, на мой взгляд, является отличным решением данной проблемы: [Wolfram Data Drop][5]. [][6] Когда я впервые начал размышлять о Data Drop, я рассматривал его в основном как удобное средство перемещения различных данных. Но теперь, когда Data Drop создан, я понимаю что это гораздо больше, чем просто сервис для перемещения данных. В действительности, это важный этап в нашем непрекращающимся пути по интеграции вычислений и реального мира. Так что же такое Wolfram Data Drop? На функциональном уровне это универсальный агрегатор данных, предназначенный для получения и организации данных, получаемых с различных сенсоров, устройств, программ, людей или чего бы ты ни было. При том данные хранятся в облаке таким образом, что могут быть использованы для вычисления и обработки так, как будто они хранятся на самом устройстве (бесшовная интеграция вычислений и данных). [Читать дальше →][7]

[1]: http://blog.wolfram.com/2015/03/04/the-wolfram-data-drop-is-live/
[2]: http://vk.com/ld742
[3]: http://www.wolfram.com/internet-of-things/
[4]: http://www.wolfram.com/language/
[5]: https://datadrop.wolframcloud.com/
[6]: https://datadrop.wolframcloud.com/
[7]: http://habrahabr.ru/post/253873/#habracut

[>] [Из песочницы] Прощальная записка языку программирования
habra.14
habrabot(difrex,1) — All
2015-03-24 19:30:05


_В данной статье я бы хотел поделиться с сообществом «Хабрахабр» переводом статьи от Matthias Nehlsen“[«A farewell note to a programming language»][1]. Автор рассказывает о своем опыте разработки на Scala в стиле «Я к вам пишу – чего же боле?»_ ![][2] [Читать дальше →][3]

[1]: http://matthiasnehlsen.com/blog/2014/12/04/Farewell-Scala/
[2]: //habrastorage.org/files/390/c94/66a/390c9466a0004bbca3a5ca9ba023c79b.jpg
[3]: http://habrahabr.ru/post/253855/#habracut

[>] «Идеальный» кластер. Часть 3.1 Внедрение MySQL Multi-Master кластера
habra.14
habrabot(difrex,1) — All
2015-03-24 20:00:03




#### В продолжение цикла статей об «Идеальном» кластере хочу поделиться моим опытом развертывания и настройки Multi-Master кластеров MySQL.

![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/37c/7a9/c5c/37c7a9c5c5ed45a089429edb7259bb0a.jpg
[2]: http://habrahabr.ru/post/253869/#habracut

[>] [Из песочницы] Критическая уязвимость в безопасности на fl.ru
habra.14
habrabot(difrex,1) — All
2015-03-25 14:00:03




#### **1\. Пролог**

В последнее время в СМИ всё чаще стали появляться пёстрые заголовки о различных разоблачениях: начиная от выложенных в открытый доступ фотографий знаменитостей, заканчивая вскрытыми личными почтовыми ящиками крупных деятелей. Чего уж там говорить про повседневные будни в какой-нибудь рядовой компании, когда сотрудник использует один и тот же пароль для доступа к абсолютно всем ресурсам. Но сегодня речь пойдёт о менее ярком событии для общественности, но при этом намного более резонансном для тех, кто волею судеб работал и работает на fl.ru. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253943/#habracut

[>] e-Ticket misunderstanding
habra.14
habrabot(difrex,1) — All
2015-03-25 15:00:03


Привет! Все больше пассажиров пользуется электронными билетами — это факт. И многие из них состоят в различных бонусных программах и пытаются накопить мили как на земле так и в воздухе. Это прикольно. Для увеличения количества этих миль даже выпускают специализированные банковские карты, расплачиваясь которыми вы приумножаете этот баланс. Интересная особенность обнаружилась на сайте одного перевозчика. Давайте взглянем! [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252779/#habracut

[>] Сам себе Руссинович
habra.14
habrabot(difrex,1) — All
2015-03-25 15:00:03


_Вся информация предоставлена исключительно в образовательных целях, за использование ее в неблагочестивых намерениях ни автор, ни ктобы то ни было еще никакой ответственности не несут._ Согласно требованиям безопасности, да и просто здравой логике, любые мало-мальски важные данные нужно , но все же последствиям весьма неприятным; это — простительно рядовым пользователям, но никак не системным администраторам, программистам и уж тем более специалистам с именем — как ни как на кону репутация. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253939/#habracut

[>] Как стать автоматизатором тестирования?
habra.14
habrabot(difrex,1) — All
2015-03-25 18:00:02


![][1] Добрый день! Вчера, отвечая, кажется, в шестой раз на этот вопрос, твёрдо решил, что пришло время для написания статьи. Сразу отмечу – это исключительно моё видение, с которым, уверен, добрая половина мира автоматизаторов не согласится, – мой рецепт несколько сложнее, чем «почитать про тулзу», «поставить тулзу», «использовать тулзу», «написать в резюме, что умеешь пользоваться тулзой». Эта статья полезна не только для мануальных тестировщиков, желающих автоматизировать свои рутинные проверки, но и для бизнеса и HR-ов, которые ввиду отсутствия каких-либо общепринятых критериев, как правило, понятия не имеют кто есть QA Automation Engineer и в большинстве случаев принимают решение на основании «хороший человек». Бывает ещё хуже – руководитель/PM/etc… приходят к своим мануальным тестировщикам и говорят: «слушай, а может мы автоматизируем наше тестирование – это сэкономит нам кучу времени и денег. Скажи, какие книги тебе нужны и какие курсы». **0\. Начнём с ошибок, которые не надо допускать:**

* Дайте мне книгу умную, которая всё за меня сделает
* Дайте мне курсы платные, которые всему меня научат
* Дайте мне форумы специализированные, которые ответят мне на все интересующие вопросы
* Дайте мне сертификацию полезную, с которой меня везде примут

Это всё хорошо, но лишь в дополнение к рецепту, который описан ниже. Ни в коем случае нельзя с этого начинать. [Читать дальше →][2]

[1]: //habrastorage.org/files/e38/141/bef/e38141befed44702bae02ca8ef61b3ac.jpg
[2]: http://habrahabr.ru/post/253867/#habracut

[>] Как сделать светобудильник на основе Arduino
habra.14
habrabot(difrex,1) — All
2015-03-25 18:30:02


Привет, Хабр! Работа и жизнь постоянно подбрасывают новые задачки, с каждым днём их количество умножается. Будет ли легче? Нет. Это – жизнь. Остается лишь придумывать подходящее решение или брать на вооружение имеющийся опыт. На Хабре не раз публиковались статьи и заметки об эффективной работе, управлении временем и прочих вещах. Некоторые советы я использую, некоторые – не получается. В принципе, более или менее четкий режим дня помогает быть эффективным и бодрым. Но не всегда получается начать день в запланированное время. Одна из причин – в темноте наш головной мозг выделяет гормон сна — мелатонин. Чтобы проснуться легко и быть бодрым нужен свет, который способствует уменьшению количества мелатонина в организме. И тогда просыпаешься бодрым и отдохнувшим. Но осенью и зимой светает поздно, а летом плотные шторы не впускают солнечные лучи в комнату. Да и раньше запланированного тоже вставать не хотелось бы, если говорить про лето. Так что берем тему под контроль и управляем рассветом в собственном доме самостоятельно, по индивидуальному графику, т.е. делаем светобудильник. И вот что получилось:




[Читать дальше →][1]

[1]: http://habrahabr.ru/post/253957/#habracut

[>] Google усилит безопасность веб-браузера Chrome для Windows
habra.14
habrabot(difrex,1) — All
2015-03-25 18:30:02


Разработчики веб-браузера Google Chrome обещают отказаться от услуг [печально известного][1] драйвера win32k.sys на современных версиях Windows 8+. Речь идет о т. н. sandboxed процессах, в контекстах которых исполняется и отображается код веб-страниц. Chrome использует специальную схему безопасности для своего браузера (sandbox), на основе запуска каждой создаваемой вкладки в контексте отдельного процесса, которому запрещено выполнять критические функции ОС за счет т. н. Deny SID в маркере доступа этих процессов, а также ограничений, которые налагаются специальным объектом задания. ![][2] Сам драйвер win32k.sys используется веб-браузером, как и любыми другими GUI-приложениями в Windows, для рисования окон и элементов GUI. Chrome рисует GUI своих веб-страниц из одного процесса, который называется брокером, но при этом прочие sandboxed-процессы не нуждаются в его услугах, однако, все равно вынуждены его использовать. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/eset/blog/248977/
[2]: //habrastorage.org/files/949/765/921/94976592178c4ce280221dae37172754.png
[3]: http://habrahabr.ru/post/253991/#habracut

[>] [Перевод] Создаем собственную метеостанцию, интегрированную с Wolfram Cloud
habra.14
habrabot(difrex,1) — All
2015-03-25 18:30:02


Недавно [Стивен Вольфрам анонсировал сервис Wolfram Data Drop][1], который является отличным инструментом для загрузки любых типов данных с любого устройства. Я покажу как можно использовать Wolfram Data Drop с самодельной метеостанцией, для создания которой нам понадобятся лишь простое железо и несколько строчек кода. Эта метеостанция будет производить измерения температуры каждую секунду, и каждую минуту производить выгрузку среднего за эту минуту значения в Wolfram Data Drop. Таким образом, будет получаться 60 точек на графике температура– время каждый час, 1440 точек в сутки. Используя эти данные и [Wolfram Programming Cloud][2], можно изучать изменения температуры с течением времени. К примеру, можно выяснить, сколько раз за день температура достигала определённых минимальных и максимальных значений, когда температура изменялась наиболее быстро. С помощью этих данных можно даже составлять прогнозы. Быть может, у кого-то даже получится сделать более точные предсказания, чем у местной метеостанции! [Читать дальше →][3]

[1]: http://habrahabr.ru/company/wolfram/blog/253873/
[2]: http://www.wolfram.com/programming-cloud/
[3]: http://habrahabr.ru/post/253925/#habracut

[>] DlangUI — кросплатформенный GUI для D (Часть 1)
habra.14
habrabot(difrex,1) — All
2015-03-25 18:30:02


Мне нравится язык D. Давно слежу за его развитием. Для D есть несколько GUI библиотек и биндингов, но я решил изобрести свой велосипед. Хочу рассказать о своём проекте [DlangUI][1]. Надеюсь, что он кому-нибудь будет полезен. ![][2] На КДПВ скриншот DlangIDE — приложения, написанного на DlangUI.

## Особенности:

* Кроссплатформенность — поддерживаются Windows, Linux, Mac OSX; легкость портирования на другие платформы
* Написан на D — легкорасширяемый
* Использование Layouts для позиционирования элементов интерфейса
* Масштабирование шрифтов и иконок в приложении в зависимости от разрешения экрана
* Поддержка Unicode
* Интернационализация — поддержка перевода UI на несколько языков
* Аппаратное ускорение с помощью OpenGL (опционально)
* Возможность отрисовки виджетов поверх OpenGL сцены (например, для UI в игре)
* Небольшой размер исполняемого файла
* Внешний вид интерфейса настраивается с помощью тем (две стандартные темы — светлая и темная)
* Встраивание ресурсов в исполняемый файл
* Открытый исходный код, под лицензией Boost License 1.0

[Подробности][3]

[1]: https://github.com/buggins/dlangui
[2]: //habrastorage.org/files/54f/b63/b5a/54fb63b5a87749e18bfb6f0777fc2c08.png
[3]: http://habrahabr.ru/post/253923/#habracut

[>] [Перевод] Perl 6 и последовательности Маркова
habra.14
habrabot(difrex,1) — All
2015-03-26 00:30:03


Рассмотрим одну нечисловую последовательность, основанную на использовании [цепей Маркова ][1]в тексте. Следующий символ последовательности будет случайным образом определяться на основе двух предыдущих. Распределение следует шаблону, содержащемуся в исходном тексте.

use v6;
use List::Utils;

my $model-text = $*IN.slurp.lc;
$model-text .=subst(/<[_']>/, "", :global);
$model-text .=subst(/<-alpha>+/, " ", :global);

my %next-step;
for sliding-window($model-text.comb, 3) -> $a, $b, $c {
%next-step{$a ~ $b}{$c}++;
}

my $first = $model-text.substr(0, 1);
my $second = $model-text.substr(1, 1);
my @chain := $first, $second, -> $a, $b { %next-step{$a ~ $b}.roll.key } ... *;
say @chain.munch(80);


После инициализации в коде чётко видны три части. [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/Цепь_Маркова
[2]: http://habrahabr.ru/post/253917/#habracut

[>] [Перевод] Perl 6 и умное соответствие
habra.14
habrabot(difrex,1) — All
2015-03-26 11:00:02


Помните ли вы [статью про оператор последовательностей ][1]в Perl 6? Последним аргументом он принимает ограничение, которое останавливает генерацию последовательности. К примеру

1, 2, 4 ... 32; # 1 2 4 8 16 32
1, 2, 4 ... * > 10; # 1 2 4 8 16


В первом случае используется числовое сравнение. Во втором запись \* > 10 интерпретируется как замыкание -> $x \{ $x > 10 \}. Оператор последовательностей выполняет «волшебное» сравнение в зависимости от типа соответствия. Это сравнение называется «умным соответствием» («smartmatching»), и эта концепция появляется во многих местах Perl 6. Примеры: [Читать дальше →][2]

[1]: http://habrahabr.ru/post/253047/
[2]: http://habrahabr.ru/post/254029/#habracut

[>] Плохо документированные особенности Linux
habra.14
habrabot(difrex,1) — All
2015-03-26 11:00:02




> Привздохнув, произнесла:
>
>
>
> «Как же долго я спала!»

![image][1] Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на _stackoverflow_, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания. Все примеры относятся к Linux, хотя многие из них справедливы для других \*nix систем, я просто взял за основу самую активно развивающуюся ОС, к тому же ту, которая у меня перед глазами и где я могу быстро проверить предлагаемый код. Обратите внимание, в заголовке я написал «плохо документированные» а не «малоизвестные», поэтому тех кто в курсе прошу выкладывать в комментариях ссылки на **членораздельную** документацию, я с удовольствием добавлю в конце список. [Читать дальше →][2]

[1]: //habrastorage.org/files/ddd/a95/15b/ddda9515b1e9414f8baf11fc782a688e.jpeg
[2]: http://habrahabr.ru/post/253811/#habracut

[>] Как я спас несколько жизней оптимизацией и немного о работе в Zeptolab
habra.14
habrabot(difrex,1) — All
2015-03-26 12:00:03


Привет! [23derevo][1] перед выступлением на Mobius попросил рассказать меня немного о процессе клиентской разработки в Zeptolab. ![][2] Начну с того, что мы пишем на C++ и на своём фреймворке, от любого клиентского устройства нам нужен только контекст OpenGL. Дальше мы с нуля строим свой интерфейс, свои контролы и так далее. Соответственно, чтобы взять девелопера в команду, в теории, ему достаточно знать плюсы. На практике это немного не так. [Читать дальше →][3]

[1]: http://habrahabr.ru/users/23derevo/
[2]: //habrastorage.org/files/5d5/481/c50/5d5481c50ef64895b185a6537706b1fd.jpg
[3]: http://habrahabr.ru/post/254009/#habracut

[>] Как могла бы выглядеть поддержка JSON в современном С++
habra.14
habrabot(difrex,1) — All
2015-03-26 14:00:02


Хорошо в плане поддержки JSON живётся программистам на Javascript — _по какому-то невероятному стечению обстоятельств_ там JSON входит в спецификацию самого языка: есть JSON — есть объект. Удобно. Неплохо дело обстоит и в языках, где JSON не входит в сам язык, но поддерживается стандартной библиотекой (Python, Ruby): импортируешь модуль — и готово. Жизнь программистов на С++ никогда не была особо простой — поддержки JSON у нас нет ни на уровне языка, ни в стандартной библиотеке. И не будет, возможно, никогда. «Тоже мне проблему нашел!» — скажут мне опытные коллеги — «Её там и не должно быть, С++ поставляется без „батареек“. Для решения этой задачи мы...» и вот здесь они разделятся на два лагеря: **1\.** «Мы используем большой фреймворк (boost, Qt, POCO, другой), который применяется во всех наших проектах и умеет 150 000 разных вещей, в том числе и JSON.» **2\.** «Мы придерживаемся подхода в котором для каждой задачи применяется своя легковесная библиотека. В частности, для JSON мы уже 150 000 лет назад выбрали отличную библиотеку %JSON\_LIB%, которая прекрасно работает.» Да, всё так и есть. Вот только…

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





Плох он вот этой частью: "...150 000 лет назад выбрали отличную библиотеку...". Скорее всего речь идёт о чём-то, что начинало писаться чуть-ли не во времена DOSа и, без сомнения, работает, но при этом, пытаясь быть совместимым со всеми платформами и стандартами языка совершенно отстаёт от прогресса. Да, всё компилируется и работает, даже тесты проходит. Но библиотека совершенно не знакома с такими вещами, как ключевое слово auto, range-based циклы, строковые литералы, raw-строки, конструкторы перемещения, списки инициализации и прочие классные вещи, делающие код одновременно более эффективным и более легко читаемым. А ведь у библиотеки, созданной годы назад, есть обязательства по обратной совместимости, а значит просто так взять и добавить это всё она не может.



**Давайте немного помечтаем. ** А что, если бы JSON вошел в стандартную библиотеку нового стандарта С++? Что, если бы он был написан в терминах С++11\\14 и без требований обратной совместимости со старыми стандартами языка? Что, если бы синтаксис этого модуля попытались бы сделать максимально приближенным к родному для JSON использованию «а-ля Javascript», но в том же время сохранить дух С++ (эффективность, минимальное потребление памяти, совместимость с STL)? Что, если бы его можно было включить в проект одним инклюдом и не беспокоиться о его сборке и линковке? Как бы это всё выглядело и работало? И у нас есть ответ на этот вопрос! Давайте посмотрим на [JSON-библиотеку][1] для С++ написанную в соответствии со всеми этими принципами, ну и вообще написанной людьми для людей, а не чужими для хищников, как это обычно бывает. [Читать дальше →][2]

[1]: https://github.com/nlohmann/json
[2]: http://habrahabr.ru/post/254075/#habracut

[>] Задачи по алгоритмам
habra.14
habrabot(difrex,1) — All
2015-03-26 15:30:03


Добрый день. На первом курсе бакалавриата Академического университета читается годовой курс алгоритмов. Каждая лекция сопровождается семинаром, на котором мы разбираем алгоритмические задачи. Практические семинары проходят в небольших группах. В этом семестре я читаю лекции и веду практику у одной из групп. Сегодня хочу поделиться с Вами двумя задачами с этих семинаров. **Задача 1.** На прямой даны n отрезков, нужно выбрать максимальное по размеру подмножество непересекающихся. **Задача 2.** На окружности даны n дуг (отрезков), нужно выбрать максимальное по размеру подмножество непересекающихся. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/254093/#habracut

[>] PowerShell: за гранью
habra.14
habrabot(difrex,1) — All
2015-03-26 16:00:03


Какие бы хвалебные оды не пелись в адрес PowerShell, всегда найдется тот, кто подбросит дегтя в боченок с медом. Нет, я не имею в виду себя, так как в виду своей природы мне непонятны все эти словесные перепалки между людьми, культивирующими те или иные операционные системы, командные шеллы и прочее, — еще ничто из того, что было бы создано человеком, не было совершенным, да и вряд ли таковое когда-либо случится, так как нельзя удержать в поле зрения абсолютно все аспекты предмета, не говоря уже о том, что в некоторых из них человек может оказаться не сведущ вовсе. Предмет — всего лишь средство в достижении поставленой цели, насколько эффективно он используется — это уже вопрос рационального подхода к его характеристикам. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/254081/#habracut

[>] В Android обнаружена опасная уязвимость
habra.14
habrabot(difrex,1) — All
2015-03-26 16:00:03


Компания Palo Alto Networks [сообщила][1] об обнаружении опасной уязвимости в компоненте установщика приложений (_PackageInstaller_) Android версий <5. Эта уязвимость схожа с уязвимостью Masque для iOS, о которой мы писали [здесь][2], и позволяет устанавливать одно приложение поверх другого, причем это новое приложение получит доступ ко всем данным предыдущего. Речь идет об установке приложений из стороннего магазина приложений, а не из Google Play, поскольку, только при таком сценарии злоумышленники могут воспользоваться уязвимостью. ![][3] По подсчетам Palo Alto Networks, уязвимость охватывает 49,5% всех устройств, которые работают под управлением Android. Сам эксплойт был успешно протестирован на следующих версиях Android: 2.3, 4.0.3-4.0.4, 4.1.X, и 4.2.x. Уязвимыми являются некоторые прошивки с версиями Android 4.3. Для Android 4.4 эта уязвимость уже была устранена. [Читать дальше →][4]

[1]: http://researchcenter.paloaltonetworks.com/2015/03/android-installer-hijacking-vulnerability-could-expose-android-users-to-malware/
[2]: http://habrahabr.ru/company/eset/blog/243279/
[3]: //habrastorage.org/files/f95/f81/3fa/f95f813fa42049e6a6c973b85ff5b000.png
[4]: http://habrahabr.ru/post/254061/#habracut

[>] Наручные часы на основе Arduino, созданные на 3D-принтере за один субботний вечер
habra.14
habrabot(difrex,1) — All
2015-03-26 17:30:02


В прошлой публикации я рассказал, как сделать начинку для [светобудильника на основе Arduino][1]. Сегодня же поделюсь описанием другого простого решения. Дело в том, что захотелось создать на 3D-принтере что-то для себя, индивидуальное, личное, не слишком примитивное, и что бы радовало. Была выбрана идея — сделать наручные часы. И польза от них есть, и выглядят необычно. В итоге сделал все на одном дыхании и всего за несколько часов. Получился неплохой аксессуар. Судите сами. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/company/masterkit/blog/253957/
[2]: //habrastorage.org/files/285/3b2/7d7/2853b27d70e843a2802341aed65898d1.jpg
[3]: http://habrahabr.ru/post/254099/#habracut

[>] Превращение Android телефона в сетевую SQL базу данных (MyMobileSQLServer — Utesov)
habra.14
habrabot(difrex,1) — All
2015-03-26 17:30:02


Недавно я начал делать очередной проект для мобильных устройств. Его побочным продуктом стало приложение, с помощью которого можно развернуть сетевую базу данных на любимом Android телефоне, планшете и т.п… Предлагаемое решение является сетевым провайдером SQLite базы данных. Приложение многопользовательское, каждый пользователь имеет свою БД, которая недоступна другим пользователям. Код открытый, лицензия Apache 2.0. Для демонстрации заявленных возможностей написано простое приложение которое позволяет делать SQL запросы на сервер и получать результаты их выполнения, его код рассмотрим здесь. Время освоения — 10 минут. Для тестирования достаточно одного устройства (если используется два и более, то необходимо WiFi подключение). Поехали! ![image][1] _Кадр из к\\ф «Весёлые ребята» (доработанный)_ [Читать дальше →][2]

[1]: http://habrastorage.org/files/63e/3d4/84f/63e3d484ff9d4b74bc9a65dfce62b6dc.png
[2]: http://habrahabr.ru/post/254021/#habracut

[>] [Из песочницы] Большое обзорное тестирование языков программирования
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Недавно очередной раз отработал со студентам 2-го курса 2-семестровую дисциплину «Алгоритмические языки». Обзорно рассмотрели несколько дюжин языков программирования. Один из студентов, Вадим Шукалюк, захотел получше с ними познакомиться, получить более четкое представление о каждом из них. Посоветовал ему провести небольшое исследование. Чем и увлёк. Предлагаю свой отчёт по проделанной за несколько месяцев вместе с ним работе. У каждого языка программирования есть свои достоинства и недостатки. Одна из важнейших характеристик транслятора с любого языка — это скорость исполнения программ. Очень трудно или даже невозможно получить точную оценку такой скорости исполнения. Ресурс Х, тикль, бэш. Исследовались как собственно скорость исполнения нескольких небольших, но трудоёмких алгоритмов, так и:

* качество оптимизации некоторых трансляторов;
* особенности при работе с процессорами Intel и AMD;
* предельное число рекурсивных вызовов (ёмкость стека).

[Читать дальше →][1]

[1]: http://habrahabr.ru/post/254121/#habracut

[>] Настройка Linux кластера на Shared DAS и ZFS
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Этим материалом мы открываем цикл статей, посвященных [технологии Shared DAS][1] и ее использованию в ОС GNU\\Linux. В первой статье цикла описывается создание простейшего двух-узлового кластера высокой надежности и создание на его базе отказоустойчивой iSCSI-СХД с ZFS. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/company/etegro/blog/215333/
[2]: //habrastorage.org/files/a07/47e/ed1/a0747eed1984499e8d40fbf93a2a20b8.png
[3]: http://habrahabr.ru/post/254083/#habracut

[>] Как избежать разыменования нулевого указателя, на примере одного исправления в ядре Linux
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Идея в следующем. Чтобы не было разыменование нулевого указателя, нужно, чтобы не было нулевого указателя. Ваш КО. Так сложилось, что однажды я исправил небольшую проблему в ядре Linux, но это была не текущая ветка ядра, а стабильная. В текущей на тот момент эту проблему тоже исправили, но по другому. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/254097/#habracut

Pages: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 41