RSS
Pages: 1 ... 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 ... 210
[>] [Из песочницы] Синтезатор речи «для роботов» с нуля
habra.16
habrabot(difrex,1) — All
2016-07-18 20:30:05


![image][1]

Давным-давно посетила меня идея создать синтезатор речи с «голосом робота», как, например, в песне Die Roboter группы Kraftwerk. Поиски информации по «голосу робота» привели к историческому факту, что подобное звучание синтетической речи характерно для вокодеров, которые используются для сжатия речи (2400 — 9600 бит/c). Голос человека, синтезированный вокодером, отдает металлическим звучанием и становится похожим на тот самый «голос робота». Музыкантам понравился данный эффект искажения речи, и они стали активно его использовать в своем творчестве.
[Подробнее про реализацию синтезатора речи.][2]

[1]: http://imageshack.com/a/img921/1627/ka1M5p.png
[2]: https://habrahabr.ru/post/305868/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] JIT-компилятор оптимизирует не круто, а очень круто
habra.16
habrabot(difrex,1) — All
2016-07-19 00:00:09


Недавно Лукас Эдер [заинтересовался в своём блоге][1], способен ли JIT-компилятор Java оптимизировать такой код, чтобы убрать ненужный обход списка из одного элемента:


// ... а тут мы "знаем", что список содержит только одно значение
for (Object object : Collections.singletonList("abc")) {
doSomethingWith(object);
}

Вот мой ответ: JIT может даже больше. Мы будем говорить про HotSpot JVM 64 bit восьмой версии. Давайте рассмотрим вот такой простой метод, который считает суммарную длину строк из переданного списка:


static int testIterator(List list) {
int sum = 0;
for (String s : list) {
sum += s.length();
}
return sum;
} [Читать дальше →][2]

[1]: https://blog.jooq.org/2016/07/14/how-adding-a-unique-constraint-on-a-onetoone-relationship-helps-performance/
[2]: https://habrahabr.ru/post/305894/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Решение задачи «Оценка производительности» mlbootcamp.ru
habra.16
habrabot(difrex,1) — All
2016-07-19 01:30:06


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

На текущий момент первое место — 4.68%. Ниже хочу описать свой путь к 6.69% (а это уже 70+ место).
[Читать дальше →][3]

[1]: http://mlbootcamp.ru/championship/7/
[2]: https://en.wikipedia.org/wiki/Mean_absolute_percentage_error
[3]: https://habrahabr.ru/post/305872/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест интересных событий из мира Java, и вокруг нее #6 (04.07.2016 — 17.07.2016)
habra.16
habrabot(difrex,1) — All
2016-07-19 09:00:05


![image][1]


## В этом выпуске


— JUnit 5 к нам приходит
— Сборка окончена: CMS будет удален из Java
— Java EE: Oracle прервал молчание
— В дебри JIT вместе с Azul
… и многое другое
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/467/db6/371/467db63713296cfa573c4719a308de95.jpg
[2]: https://habrahabr.ru/post/305890/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Доказываем корректность поиска диаметра дерева
habra.16
habrabot(difrex,1) — All
2016-07-19 13:00:43


Однажды на зачете мне попалась следующая задача. Придумайте алгоритм, находящий две вершины дерева с максимальным расстоянием друг от друга, и докажите его корректность. В тот момент я в принципе не знала, что у деревьев есть диаметр, радиус и много прочих вещей. Уже после зачета друг просветил меня, рассказав, что это за алгоритм, но без доказательства. Именно вопросом о доказательстве долгое время была забита моя голова. После прочтения нескольких статей, стало понятно, что материал не уляжется, пока самостоятельно себе не объясню все практически на пальцах (может, и читателю придется по вкусу). Перейдем от демагогии к сути.

Диаметр дерева — это максимальное расстояние между двумя вершинами в дереве. Алгоритм поиска состоит в двух запусках BFS. Первый идет от произвольной вершины дерева, во время обхода насчитываются расстояния от текущей вершины до всех других. Затем из них выбирается самая удаленная. Из нее делается второй запуск BFS. Насчитываются новые расстояния. Максимальное среди них и будет диаметром.

Почему этот простой с виду алгоритм работает корректно?
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/305912/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Запускаем Angluar2 c Visual Studio 2015
habra.16
habrabot(difrex,1) — All
2016-07-19 13:00:43


![здесь лежит поле из граблей][1]

Не так давно меня заинтересовала проблема миграции приложений, написанных с первым Angular.js на второй. Кстати, эта статья должна была быть именно об этом. Но вмешался случай. До этого я поднимал Angular2 только на Node.js. А тут, поскольку я в основном работаю из-под Visual Studio, я решил запустить его из-под нее. Когда я пришел в себе после всех ударов граблей, по которым мне пришлось пройти, я решил выделить развертывание Angular2 под Visual Studio 2015 в отдельную статью. И что-то мне подсказывает, что лишней она не будет.
[Ну-с, давайте скальпель!][2]

[1]: https://habrastorage.org/files/176/b18/5c8/176b185c82f940469e0b2ae33c18c24b.jpg
[2]: https://habrahabr.ru/post/305818/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Стандартизация записей
habra.16
habrabot(difrex,1) — All
2016-07-19 13:00:43


![][1]


> Я волком бы выгрыз бюрократизм!
> Владимир Маяковский

Рассмотрим в этой статье проблему стандартизации записей. Стандартизация, прежде всего, нужна при импорте миллионов записей, накопившихся за десятилетия. Данные, имеющие разную кодировку страниц из разных автоматизированных систем, собираются в единую базу информационной системы. В таком случае, обращение к функциям чтения строк по ascii, типа QRchar себя не оправдывает, поскольку формат Юникода от записи к записи отличается. К тому же кириллица в словах часто бывает перемешана с цифрами и латиницей (например, когда вместо 'ч' пишется '4'). При этом прямая циклическая замена цифр и латиницы на кириллицу в строке невозможна, так как цифры с латиницей встречаются в и обозначениях.

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

[1]: https://habrastorage.org/files/112/c1c/ee2/112c1cee2456438bae7f735f48542970.jpg
[2]: https://habrahabr.ru/post/304576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Путь длиною в React
habra.16
habrabot(difrex,1) — All
2016-07-19 14:00:04


В [VoxImplant][1] мы используем React.js и TypeScript для всех новых фронтенд-проектов. Но стараемся не зацикливаться на выбранных инструментах и внимательно смотрим по сторонам – не летит ли орел, не ползет ли змея, не случилось ли что интересное у других фреймворков. Недавно нам попалась статья, автор которой подробно и вдумчиво сравнивает React с Ember. И, да, у него большой опыт работы и с первым, и со вторым (а не как это обычно бывает). Предлагаем вашему вниманию адаптированный, и, надеемся, легко читаемый, перевод.
[Читать дальше →][2]

[1]: http://voximplant.com
[2]: https://habrahabr.ru/post/305756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Создание собственного приложения для обработки графов в Giraph
habra.16
habrabot(difrex,1) — All
2016-07-19 14:00:04


![][1]
[Be my friend][2] by oosDesign

Перед крупными интернет-компаниями часто встают такие сложные задачи, как обработка больших данных и анализ графов социальных сетей. Помогают в их решении фреймворки, но сперва необходимо проанализировать возможные варианты и выбрать подходящий. В лаборатории при [Техносфере Mail.Ru][3] мы изучаем эти вопросы на реальных примерах из проектов Mail.Ru Group (myTarget, Поиск Mail.Ru, Антиспам). Задачи могут быть как сугубо практические, так и с исследовательской составляющей. По мотивам одной из таких задач и появилась эта статья.

Во время сборки и запуска своего первого проекта на Giraph сотрудники лаборатории анализа данных Техносферы Mail.Ru столкнулись с рядом проблем, в связи с чем родилась идея написать краткий туториал, как же собрать и запустить свой первый Giraph-проект.

В этой статье мы расскажем, как создавать свои приложения под фреймворк Giraph, который является надстройкой над популярной системой обработки данных Hadoop.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/ad2/9bd/86b/ad29bd86b882487c93d816dc9cf66793.jpg
[2]: http://oosdesign.deviantart.com/art/Be-my-friend-325695363
[3]: https://sphere.mail.ru/pages/index/
[4]: https://habrahabr.ru/post/305924/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] «Ближе к народу»: Нужно ли руководителю разбираться в программировании
habra.16
habrabot(difrex,1) — All
2016-07-19 15:30:06


[][1]

/ фото [Sean Hagen][2] [CC][3]

_Мы в **[1cloud][4]** постоянно работаем над оптимизацией взаимодействия наших специалистов и стараемся перенимать опыт коллег. Это дает свои плоды и в виде постов на Хабре.

На прошлой неделе мы подготовили сразу два холиварных материала по теме: дали **[6 «вредных» советов разработчикам ][5]** и пару ценных **[рекомендаций на тему общения][6]** их коллегам по цеху.

Сегодня мы решили поднять вопрос о необходимости наличия (как минимум) базовых знаний и навыков программирования у тех, кто руководит современной компанией (так или иначе использующей ИТ-решения)._ [Читать дальше →][7]

[1]: http://habrahabr.ru/company/1cloud/blog/305908/
[2]: https://www.flickr.com/photos/rebelcan/5620714879/in/photolist-9yFCHe-7tZznH-bwAkPw-a21xsV-iVFdKS-gviyEK-df6AZg-7nmBT7-cWJF5L-qUhghQ-potMq6-7JSsK7-4YBYem-oJ7CvD-azBq9t-ap7jH2-agkne2-exUmqZ-bd8cpa-dvUaHo-7XF2SN-tkozj6-tkoTRB-eRxNHL-x45uYi-tkrThR-tkrCMt-tk7c8G-tkokkV-t3Mh9d-t3VzNg-ti3yNu-9zzaEG-8QGHg1-96yt1f-8HUzk3-ajGzr8-7GfPPJ-5WScru-azeG54-7YeNVz-4Gihem-atGDcX-aksSJe-4ct9DP-bR8zzc-mBzRPP-aCkHmY-851Vgq-a4PpJs
[3]: https://creativecommons.org/licenses/by-sa/2.0/
[4]: https://new.1cloud.ru
[5]: https://habrahabr.ru/company/1cloud/blog/305352/
[6]: https://habrahabr.ru/company/1cloud/blog/304694/
[7]: https://habrahabr.ru/post/305908/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Использование механизма SRR в приложениях разработанных на Qt для QNX
habra.16
habrabot(difrex,1) — All
2016-07-19 16:00:05


![][1] Фреймворк Qt один из самых популярных и применяемых при разработке кроссплатформенных настольных и мобильных приложений. Эта популярность не могла рано или поздно не привести к использованию Qt в системах специального и ответственного назначения. Достаточно давно существует возможность разработки на Qt для [QNX Neutrino][2]. Библиотека Qt поддерживает платформу QNX, а среда разработки Qt Creator обеспечивает взаимодействие с системами на QNX. Однако QNX, как система в том числе и для встраиваемых решений, имеет в своём составе технологии, которые не требуются, а потому и отсутствуют в системах общего назначения. Ключевая для ОСРВ QNX функциональность, на которой построена сама система и на которую нередко опираются пользовательские задачи это [передача сообщений][3]. Об особенностях применения механизма SRR (Send/Receive/Replay), как ещё называют передачу сообщений в QNX, и о разработке двух примеров Qt-приложений — клиента и сервера — я и хотел бы рассказать сегодня.

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

[1]: https://habrastorage.org/files/682/504/ce7/682504ce727b402685cddd5020a78a07.jpg
[2]: https://habrahabr.ru/post/124656/
[3]: https://habrahabr.ru/post/127173/
[4]: https://habrahabr.ru/post/305680/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Научим практической безопасности: Летняя стажировка в Positive Technologies
habra.16
habrabot(difrex,1) — All
2016-07-19 20:00:05


[![][1]][2]

Мы в Positive Technologies не только занимаемся разработкой [продуктов][3], которые обеспечивают безопасность инфраструктуры многих компаний и государственных учреждений, но и активно помогаем развивать ИТ и ИБ отрасль нашей страны. Для этого мы открываем [офисы][4] разработки в разных городах, поддерживаем ВУзы в рамках образовательной программы[ Positive Education][5], делимся наработками в рамках программы [бесплатных вебинаров][6] и выступаем организаторами одной из самых ярких «хакерских» конференций Европы [Positive Hack Days][7].

В этом году мы решили пойти еще дальше и организовать летнюю практику для студентов, практиков информационной безопасности, HackQuest-еров и просто любителей ИБ. Итак, сегодня мы расскажем о летней стажировке в Positive Technologies по курсу «Основы практической безопасности». [Читать дальше →][8]

[1]: https://habrastorage.org/files/093/9ca/66b/0939ca66b8dc42acb8853df401ec687f.png
[2]: https://habrahabr.ru/company/pt/blog/305966/
[3]: http://www.ptsecurity.ru/products/
[4]: http://www.ptsecurity.ru/about/news/82332/
[5]: https://habrahabr.ru/company/pt/blog/238917/
[6]: http://www.ptsecurity.ru/research/webinar/
[7]: http://www.phdays.ru/
[8]: https://habrahabr.ru/post/305966/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Визуализация статистики ЕВРО-2016 с помощью Python и Inkscape
habra.16
habrabot(difrex,1) — All
2016-07-20 14:32:15


![][1]

Привет, Хабр!

Прошло чуть больше недели с окончания Чемпионата Европы 2016 во Франции. Этот чемпионат запомнится нам неудачным выступлением сборной России, проявленной волей сборной Исландии, потрясающей игрой сборных Франции и Португалии. В этой статье мы поработаем с данными, построим несколько графиков и отредактируем их в векторном редакторе Inkscape. Кому интересно — прошу под кат.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/79f/9b8/d6a/79f9b8d6ac0549f7b8a0fcaf1333e558.jpg
[2]: https://habrahabr.ru/post/305986/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player
habra.16
habrabot(difrex,1) — All
2016-07-20 14:32:17


![][1]

Компания Microsoft не оставляет попыток победить в бесконечной войне с эксплоитописателями, раз за разом реализуя новые техники по защите приложений. На сей раз разработчики операционной системы Windows подошли к решению данного вопроса более фундаментально, переведя свой взгляд на корень проблемы. Работа почти каждого эксплоита так или иначе нацелена на перехват потока исполнения приложения, следовательно, не помешало бы "научить" приложения следить за этим моментом.
Концепия Control Flow Integrity (целостность потока исполнения) была [описана ][2]еще в 2005 году. И вот, 10 лет спустя, разработчики из компании Microsoft представили свою неполную реализацию данного концепта — Control Flow Guard.



# Что такое Control Flow Guard



Control Flow Guard (Guard CF, CFG) — относительно новый механизм защиты Windows (exploit mitigation), нацеленный на то, чтобы усложнить процесс эксплуатации бинарных уязвимостей в пользовательских приложениях и приложениях режима ядра. Работа данного механизма заключается в валидации неявных вызовов (indirect calls), предотвращающей перехват потока исполнения злоумышленником (например, посредством перезаписи таблицы виртуальных функций). В сочетании с предыдущими механизмами защиты (SafeSEH, ASLR, DEP и т.д.) являет собой дополнительную головную боль для создателей эксплоитов.

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

[1]: https://habrastorage.org/files/040/77f/ee9/04077fee9ecb42068a68e783f05ece34.png
[2]: https://www.microsoft.com/en-us/research/wp-content/uploads/2005/11/ccs05-cfi.pdf
[3]: https://habrahabr.ru/post/305960/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Киберпреступная группа Carbanak связана с российской компанией в сфере безопасности?
habra.16
habrabot(difrex,1) — All
2016-07-20 14:32:18


_Brian Krebs написал у себя в блоге объёмный материал, который показывает интересный взгляд на то, кто и как связан с группой Carbanak, нашумевшей во взломе около 100 финансовых учреждений и похитивших около 1 миллиарда долларов США.

Ниже перевод данной статьи (замечания просьба писать в личные сообщения).
_

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

Группа Carbanak получила свое название от вредоносного банковского программного обеспечения, используемого в бесчисленных кибер-кражах. Данная группа, пожалуй, является самой известной за проникновение в банковские сети с помощью заражённых файлов Microsoft Office, используя затем этот доступ для выдачи наличных банкоматами. По оценкам Лаборатории Касперского, Carbanak-ом, скорее всего, украдено более 1 млрд. долл. США, – но, в основном, из российских банков.

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

[1]: https://habrastorage.org/getpro/habr/post_images/040/012/559/04001255982d34831f18c802dd90be02.png
[2]: https://habrahabr.ru/post/305998/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Интервью с мамой, банковским программистом на COBOL'е
habra.16
habrabot(difrex,1) — All
2016-07-20 17:30:06


![][1]
_Фото из Гугла, это не мама автора_



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



### Объясню немного



Мир банковского программного обеспечения — это другая вселенная. Она сильно отличается от той, к которой привыкло большинство из нас. Я публикую этот пост на [HN][2] и на [Reddit][3]. Публикую интервью не в виде вопросов-ответов, а в виде рассказа. Я добавил некоторые вопросы и ответы в нижнюю часть поста.



# 1991



Год, когда она начала внутреннее обучение в банке Nordea, который тогда назывался Nordbanken (Северный банк). В 2001 году его переименовали в Nordea. Во время обучения она должна была проходить различные тесты, в первую очередь тест IQ, чтобы показать, что она обладает интеллектом, достаточным для работы в этой области. Тест на психологическую устойчивость — что у неё достаточно нервов для этой специфической работы и тест на многозадачность, который она завалила с оценкой 22/100. Остальные тесты она прошла успешно и заняла одну из 16 доступных позиций.



Должность звучала «как программист [мэйнфреймов IBM][4] на языке [COBOL][5]», и до сих пор, уже 25 лет, моя мама работает на этой должности в том же банке.



Эта позиция в банке самая важная, по крайней мере, с технической точки зрения. Если, скажем, мама и члены её команды одновременно бросят работу, банк разорится в лучшем случае в течение нескольких недель. Её коллектив работает посменно с круглосуточной доступностью.

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

[1]: https://habrastorage.org/files/9dc/b29/ea8/9dcb29ea83c447f2862645207bec2578.jpg
[2]: https://news.ycombinator.com/item?id=12096250
[3]: https://www.reddit.com/r/programming/comments/4svbrm/interviewing_my_mother_a_mainframe_cobol/
[4]: https://en.wikipedia.org/wiki/IBM_mainframe
[5]: https://en.wikipedia.org/wiki/COBOL
[6]: https://habrahabr.ru/post/306046/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Знакомство с Veeam Agent for Linux
habra.16
habrabot(difrex,1) — All
2016-07-20 17:30:06


Как вы, возможно, уже знаете, в недалеком будущем увидит свет наш новый продукт — Veeam Agent for Linux. И уже сейчас все желающие могут оценить это решение в ходе анонсированной программы бета-тестирования. Чтобы получить доступ к бета-версии, нужно зарегистрироваться [здесь][1], и вы получите на email ссылку для скачивания. Обратите внимание, что период бета-тестирования закончится 1 сентября 2016 года – затем вы сможете установить уже релизную версию.

Итак, что же умеет бета? За ответом добро пожаловать под кат.

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

[1]: https://go.veeam.com/linux-ru
[2]: https://habrastorage.org/files/a71/2be/d38/a712bed3807a45108fdfdcd9ef127b73.png
[3]: https://habrahabr.ru/post/306032/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Компьютерное зрение для слепых людей. Применение Intel Edison
habra.16
habrabot(difrex,1) — All
2016-07-20 17:30:06


![][1]

Сотрудник компании Intel Paul Guermonprez решил совместить приятное с полезным: свой опыт разработчика он использовал для создания прототипа системы помощи плохо видящим людям средствами компьютерного зрения.В качестве аппаратной платформы он использовал очки [Pivothead SMART][2] с дополнительным модулем [Live Mod Set][3], построенным на базе Intel Edison. В настоящий момент система умеет:
* находить и считывать баркоды, произносить голосом их описания,
* определять цвета предметов и произносить их,
* подбирать цвета, подходящие к «увиденному» цвету,
* определять лица находящихся впереди, их относительное местоположение и расстояние до них, озвучивать эту информацию в стерео.
Под катом — информация об очках Pivothead SMART, инструкция по установке системы и видео, показывающее ее возможности.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/bd4/9b9/753/bd49b975380c4c07a1ed9755ae87742e.jpg
[2]: http://www.pivothead.com/smart/
[3]: http://shop.pivothead.com/smart-series/copy-of-live-smartmod-set/
[4]: https://habrahabr.ru/post/305728/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] C--. Первое знакомство
habra.16
habrabot(difrex,1) — All
2016-07-20 18:00:05


![][1] Процесс портирования и создания средств разработки программ для KolibriOS продолжается. По наиболее активно используемым языкам программирования мы публикуем статьи. Сегодня мы начинаем рассказывать о языке С--, вокруг которого сложилось активное сообщество в 2000-е годы. Подробности под катом.

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

[1]: https://habrastorage.org/files/0d6/194/f4b/0d6194f4bd54441b85acce5e6696e434.PNG
[2]: https://habrahabr.ru/post/303582/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Два в одном: USB хост и составное USB устройство
habra.16
habrabot(difrex,1) — All
2016-07-20 19:30:04


![image][1]




Не так давно, была опубликована статья [«Пастильда — открытый аппаратный менеджер паролей»][2]. Так как данный проект является открытым, то мы решили, что будет интересно, если мы будем писать небольшие заметки о процессе проектирования, о задачах, которые перед нами стоят и о трудностях, с которыми мы сталкиваемся.

Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
* быть USB хостом для клавиатуры, которая к ней подключается,
* быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
* быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.
Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/dd0/2c0/eb4/dd02c0eb4d844b25925c82ad37952f9e.jpg
[2]: https://habrahabr.ru/company/thirdpin/blog/305594/
[3]: https://habrahabr.ru/post/305602/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Релиз CLion 2016.2: удаленная отладка, поддержка формата Doxygen, новые возможности кодогенерации и многое другое
habra.16
habrabot(difrex,1) — All
2016-07-20 20:30:05


Привет, Хабр!

Чуть больше года прошло с момента первого релиза нашей кросс-платформенной IDE для разработки на C и C++. За это время у нас появились десятки тысяч пользователей, среди клиентов встречаются такие организации, как NASA и AirBnB, а самый популярный запрос в трекере набрал более 500 голосов. И кстати, мы не зря просим вас голосовать за те запросы, которые вам наиболее интересны или актуальны. Наша очередь задач на разработку зависит от вашего мнения и ваших голосов в первую очередь. Именно поэтому релиз 2016.2 включает в себя так много долгожданных возможностей!



А теперь обо всем по порядку.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/306028/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Стажер — находка для шпиона
habra.16
habrabot(difrex,1) — All
2016-07-21 00:00:03


Привет, Хабр.

Я студент профиля «информационная безопасность автоматизированных систем» и так сложилось, что мне не все равно на ИБ. Прекрасно понимая, что в этой области кроме знания ГОСТОВ, всевозможных документов, технической подкованности, английского, уверенности в себе и так далее-далее, мне понадобится еще и опыт работы; с начала совершеннолетия искались все возможные варианты этот опыт получить. Так же известно, что просто так заниматься безопасностью у себя в фирме никто не даст, а в консалтинге требовались по меньшей мере спецы на целый день, было принято решение идти работать в компанию обычным стажером. А там уже развиваться, искать контакты, связи, интересных людей и прочее. В конце концов опыт лишним редко бывает.

В общем, на данный момент заканчивается моя некоторая по счету практика в некоторой по счету компании. Все компании были российскими; наверное, это важное уточнение. Каждая компания занималась разработкой какого-то ПО, отвечающего за безопасность. Поработав в каждой компании, я не в состоянии унять огонь в груди, который появлялся, глядя на состояние корпоративной безопасности. Вы будете правы, если после прочтения скажете, что это просто юношеский максимализм и я хочу достичь идеала, и вообще ИБ — это очень скучно, программистом быть интереснее и так далее. Сразу оговорюсь, что во всех компаниях в мои обязанности входило тестирование разных продуктов. На собеседовании оговаривалось, что для начала я хочу только стажировку.

Теперь, когда мы знакомы, давайте начнем.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/306066/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вебинар 5: знакомство с Asterisk
habra.16
habrabot(difrex,1) — All
2016-07-21 00:30:06


![image][1]

Очередной вебинар от команды [Centos-admin.ru][2] пройдет в ближайшую пятницу, в 13-00 по московскому времени.

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

Приглашаем всех желающих 22 июля.

[Тут прямая ссылка на видео.][3]
[А тут ссылка для регистрации.][4]

Приходите! [][5]

[1]: https://habrastorage.org/getpro/habr/post_images/f4b/fc2/1bd/f4bfc21bdb6fdb569e1d1402b6abbcd3.jpg
[2]: http://centos-admin.ru
[3]: http://www.youtube.com/watch?v=SO9P0Ix70Lc
[4]: http://centos-admin.ru/webinar_join/18
[5]: https://habrahabr.ru/post/306038/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] GPS трекер на Qt, карта и трек
habra.16
habrabot(difrex,1) — All
2016-07-21 12:30:06


Решил попрактиковаться в программирование под Android на Qt. В качестве темы выбрал GPS трекер.
Набор функций этого трекера:


* снимать измерения с GPS приемника;
* экспортировать трек в GPX ([GPS eXchange Format][1]);
* выводить трек на карту;
* выводить время в пути, длину пути, среднюю скорость.

Под катом будет приведен пример работы с картой в QtQuick.


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

[1]: https://ru.wikipedia.org/wiki/GPX
[2]: https://habrahabr.ru/post/306076/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Команда PVS-Studio готовит технический прорыв, ну а пока перепроверим Blender
habra.16
habrabot(difrex,1) — All
2016-07-21 13:00:05


![PVS-Studio, Blender, C/C++][1]Статический анализ наиболее полезен при регулярных проверках. Особенно для таких активно развивающихся проектов как Blender. Пришло время проверить его вновь, и узнать, какие подозрительные места удастся найти на этот раз.


## Введение


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

Проект уже проверялся ранее. Результаты проверки версии 2.62 изложены в статье "[Проверка проекта Blender с помощью PVS-Studio][2]".

Со времени прошлой проверки размер исходного кода вместе с дополнительными библиотеками увеличился до 77 мегабайт. А его объём вырос до 2206 KLOC. На момент предыдущей поверки размер проекта составлял 68 мегабайт (2105 KLOC).
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/b16/1e1/8b1/b161e18b12d6a3e1d781c044c5e4e543.png
[2]: http://www.viva64.com/ru/b/0145/
[3]: https://habrahabr.ru/post/306104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Авторизация в VK для людей
habra.16
habrabot(difrex,1) — All
2016-07-21 14:00:05


## Что случилось?



Здравствуй, дорогой читатель. Если тебе хотя бы однажды доводилось работать с API Вконтакте и при этом писать все на `python`, вероятно, авторизация приложения заставила тебя сделать несколько приседаний, после которых ног либо не чувствуешь и падаешь в обморок, либо вкачиваешь квадрицепс и все же пробиваешь API, как Ван Дамм.



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



Далее я предлагаю рассмотреть небольшую библиотеку, позволяющую в одну строчку авторизовать свое приложение для конкретного пользователя и получить `access_token`. В конце статьи представлена ссылка на github-репозиторий этой библиотеки с quickstart'ом в `README`-файле.

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

[1]: https://habrahabr.ru/post/306022/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Настройка Nginx с Let's Encrypt на CentOS 7
habra.16
habrabot(difrex,1) — All
2016-07-21 20:00:05


Наверно, многие уже в курсе, что компания Let's Encrypt раздает бесплатные SSL-сертификаты на . Как же его получить и настроить на своем сервере под управлением CentOS 7 и Nginx?

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

[1]: https://habrastorage.org/getpro/habr/post_images/9b6/feb/d13/9b6febd139a5305b8abde49116011e31.jpg
[2]: https://habrahabr.ru/post/306128/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Уязвимость HTTPoxy позволяет перенаправлять http-запросы веб-приложений
habra.16
habrabot(difrex,1) — All
2016-07-21 20:30:06


[![][1]][2]

18 июля была опубликована информация о наборе уязвимостей, получившем название HTTPoxy. Используя его, злоумышленники могут подменять переменную окружения HTTP\_PROXY, что позволяет им перенаправлять http-запросы к веб-приложениям на свои ресурсы.

Уязвимость была выявлена при участии разработчика компании Vend Доменика Шайрлинка (Dominic Scheirlinck), который в своем блоге на Medium [рассказал][3] о том, как она была обнаружена его коллегами в ходе разбора одного из тикетов, поступившем в службу поддержки. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/6ac/3af/503/6ac3af5038146542ed30de98af52d628.png
[2]: https://habrahabr.ru/company/pt/blog/306176/
[3]: https://medium.com/we-build-vend/how-the-internets-biggest-blind-spot-lead-to-a-15-year-old-security-vulnerability-a2a6f6218a71#.rlbstynge
[4]: https://habrahabr.ru/post/306176/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Прикручиваем к Nginx патч для динамического размера TLS records от Cloudflare
habra.16
habrabot(difrex,1) — All
2016-07-21 20:30:06


Если вы используете Nginx для терминации TLS-трафика, то можете улучшить время ответа сервера с помощью патчей от Cloudflare. Подробности под катом.
![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/files/d87/a37/ae9/d87a37ae971a4e309d85311a059fb167.png
[2]: https://habrahabr.ru/post/306142/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Самообучение шахматной программы
habra.16
habrabot(difrex,1) — All
2016-07-21 23:30:05


Здравствуй, Хабр!

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

К сожалению, непосредственная подстановка скорректированных значений для фигур не усилила программу автора — во всяком случае, больше, чем в рамках статистической погрешности. Применение же исходного метода «в лоб» к другим параметрам оценочной функции давало несколько абсурдные результаты, алгоритм оптимизации явно нуждался в некоторой доработке. Тем временем, автор решил, что очередной релиз его движка станет заключительным в длинной серии версий, берущих своё начало в коде десятилетней давности. Была выпущена версия GreKo 2015, и дальнейшие изменения в ближайшем будущем не планировались.

![Картинка для привлечения внимания][2]

Всем интересующихся тем, что было дальше — после просмотра картинки для привлечения внимания добро пожаловать под кат. [Читать дальше →][3]

[1]: https://habrahabr.ru/post/254753/
[2]: https://habrastorage.org/getpro/habr/post_images/eae/66d/0ed/eae66d0ed4c217b894c9fd0b8c3c661b.jpg
[3]: https://habrahabr.ru/post/305604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сравниваем реализацию языков Python и Ruby по плотности ошибок
habra.16
habrabot(difrex,1) — All
2016-07-22 11:30:06


Какой язык программирования начать учить: Python или Ruby? Что из них лучше? Django или Ruby on Rails? Такие вопросы можно часто встретить на IT форумах всего мира. Я же предлагаю сравнить не сами языки, а их эталонные реализации: CPython и MRI. О том, какие ошибки в их интерпретаторах смог найти PVS-Studio, и пойдёт речь в этой статье.

![][1]

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

[1]: https://habrastorage.org/files/600/377/31a/60037731a3ee4b1481dee18f380705ad.png
[2]: https://habrahabr.ru/post/306204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Безопасность железных дорог из открытых источников
habra.16
habrabot(difrex,1) — All
2016-07-22 12:30:05


![][1]


#### **Введение**



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

В самом начале хочется сделать несколько важных уточнений. Потенциальные векторы атак, которые будут рассмотрены в разделе 4, определены только на основе информации из открытых источников. Кроме того, данная статья рассматривает ситуацию в целом на железных дорогах разных стран мира без привязки к конкретной стране. Однако, в частности, мы уточнили некоторые данные по предложенным в статье векторам атак у наших российских коллег из Центра Кибербезопасности РЖД: работы по устранению возможных векторов атак ведутся, а по некоторым проблемы частично устранены. Также стоит обратить внимание, что автор не имеет возможности дать полное техническое заключение о безопасности высокоскоростных поездов из-за отсутствия доступа к системе и возможности проведения полноценных практических экспериментов на железной дороге.

В этой статье будет представлен обзор некоторых систем безопасности, которые могут применяться на современных высокоскоростных поездах. Количество таких платформ растет, они становятся все сложнее. При этом, они строятся на основе известных технологий, включая Ethernet, CAN, RS-485. Все чаще начинают применяться различные ПЛК и промышленные компьютеры под управлением ОС Windows/Linux/QNX. Кроме того, растет популярность систем, использующих радиоканал (как пример – GPS/ГЛОНАСС, GSM-R,Wi-FI).

В связи с этим возникает вопрос – безопасно ли создание огромной системы на основе «модулей», которые хорошо знакомы возможным злоумышленникам?
[Читать дальше →][2]

[1]: https://habrastorage.org/files/d6b/1b8/841/d6b1b884131e42c1ac615d590964fa45.jpg
[2]: https://habrahabr.ru/post/306182/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Strata + Hadoop 2016 review
habra.16
habrabot(difrex,1) — All
2016-07-22 14:00:04


![][1]

В последний год в Badoo стали очень активно использовать связку Hadoop + Spark и построили свою систему сбора и обработки десятков миллионов метрик при помощи Spark Streaming.
Для того чтобы расширить наши знания и познакомиться с последними новинками в этой сфере, в конце мая этого года разработчики отдела BI (Business Intelligence) отправились в Лондон, где проходила очередная конференция серии Hadoop + Strata, посвященная широкому спектру вопросов в области машинного обучения, обработки и анализа больших данных.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/cef/c0e/d76/cefc0ed76fd94abfb4b71df4d06ef1dc.jpg
[2]: https://habrahabr.ru/post/306208/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Один пиксель вместо тысячи слов
habra.16
habrabot(difrex,1) — All
2016-07-22 14:00:04


![][1]

Пару месяцев назад, отдыхая от реализации [новых возможностей][2] вроде q\_auto и g\_auto, я прикалывался в нашем командном чате по поводу того, как различные форматы хранения изображений будут сжимать однопиксельную картинку. В ответ Orly, редактор блога, попросил меня написать пост об этом. Я сказал: «Конечно, почему бы и нет. Но это будет очень короткий пост. Ведь что можно рассказать про один пиксель».

Похоже, я был сильно неправ.


# Что можно сделать с одним пикселем?


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

В отзывчивом веб-дизайне однопиксельные картинки используются как временные заглушки в ожидании загрузки страницы. Большинство браузеров не поддерживают [HTTP Client Hints][3], поэтому некоторые варианты с отзывчивыми изображениями ждут полной загрузки страницы, чтобы подсчитать актуальный размер картинок, а затем заменяют однопиксельные картинки нужными изображениями при помощи JavaScript.

![][4]
_Сломанная картинка_
[Читать дальше →][5]

[1]: http://res-2.cloudinary.com/cloudinary/image/upload/c_fill,w_770/one_pixel_image_comparison_hexdhump.png
[2]: http://cloudinary.com/blog/introducing_smart_cropping_intelligent_quality_selection_and_automated_responsive_images
[3]: http://httpwg.org/http-extensions/client-hints.html
[4]: https://habrastorage.org/getpro/habr/post_images/8bd/634/568/8bd6345685a2e107ac2a13d940e1e742.png
[5]: https://habrahabr.ru/post/306210/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Промышленные системы управления — 2016: уязвимость и доступность
habra.16
habrabot(difrex,1) — All
2016-07-22 15:00:05


[![][1]][2]

Автоматизированные системы управления технологическими процессами (АСУ ТП, ICS) используются в наши дни повсеместно — от «умных домов» до атомных электростанций. Однако сложная организация таких систем, требование непрерывности технологического процесса и возможность доступа к АСУ ТП через всеобщий Интернет делают их легкоуязвимыми для хакерских атак.

При этом количество уязвимых компонентов АСУ ТП из года в год не снижается. Практически половина выявленных в 2015 году уязвимостей имеет высокую степень риска, причем наибольшее количество уязвимостей найдено в продуктах самых известных производителей. В частности, повсеместно в АСУ ТП используются словарные пароли и пароли по умолчанию, что позволяет без труда получить к ним доступ и перехватить управление.

Такие выводы содержатся в исследовании компании Positive Technologies, в котором проанализированы данные об уязвимостях АСУ ТП за период с 2012 по 2015 год, а также данные о доступности компонентов АСУ ТП через Интернет в 2015 году. Ниже представлены основные результаты этого исследования. [Читать дальше →][3]

[1]: https://habrastorage.org/files/117/4ec/3bd/1174ec3bd171409b8fedfcf7d84282bf.jpg
[2]: https://habrahabr.ru/company/pt/blog/306202/
[3]: https://habrahabr.ru/post/306202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 29: утечка на форуме Ubuntu, прокси-уязвимость в PHP, Go и Python, 276 заплаток Oracle
habra.16
habrabot(difrex,1) — All
2016-07-22 15:00:05


![][1]14 июля в Canonical узнали, что кто-то владеет (возможно и пытается продать) базой логинов и паролей двух миллионов пользователей [форумов][2] Ubuntu. Расследование быстро показало, что информация похожа на правду, после чего форумы были просто временно отключены. Надо сказать, это очень правильный ход, хотя в другой компании и в другой ситуации на него могли бы и не решиться: как же так, ведь все узнают, что у нас проблемы с безопасностью, а так может никого и не взломают. Собственно, мы все это знаем благодаря подробному [описанию инцидента][3] на сайте разработчиков Ubuntu, так что вроде бы все закончилось хорошо.

Или нет? Утечка (подробное описание событий в этой [новости][4]) началась со эксплуатации уязвимости в плагине [Forumrunner][5], установленного на vBulletin, при помощи SQL-инъекции. Атака стала возможной из-за использования устаревшей версии плагина. Инъекция открыла доступ на чтение ко всей базе данных форума, но, как утверждает Джейн Сильбер, директор Canonical, взломщику удалось скачать только часть пользовательской базы с «устаревшими» паролями, которые к тому же были захешированы с солью.

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

[1]: https://habrastorage.org/files/408/0d3/56f/4080d356fd854d9aa016930f71986b6b.jpg
[2]: https://ubuntuforums.org/
[3]: https://insights.ubuntu.com/2016/07/15/notice-of-security-breach-on-ubuntu-forums/
[4]: https://threatpost.ru/two-million-passwords-breached-in-ubuntu-hack/17294/
[5]: http://www.forumrunner.net/
[6]: https://habrahabr.ru/post/306190/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Modern Code. Программируй современно
habra.16
habrabot(difrex,1) — All
2016-07-22 16:00:06


![][1]

По программированию написано много хороших книг. Однако профессиональный ландшафт разработчика сейчас меняется так стремительно, что печатная литература не всегда успевает вовремя: появляются новые программные средства и аппаратные компоненты, внедряется поддержка прогрессивных технологий, на «железо» переносится всё больше программных функций… как уследить за этим профессиональным калейдоскопом, как не отстать от жизни? Intel предлагает свое решение этой проблемы.

Программа [Modern Code][2] — это обучающая платформа в режиме реального времени, позволяющая разработчику оставаться в курсе последних событий в программировании. Программа состоит из трех частей:
[Читать дальше →][3]

[1]: https://habrastorage.org/files/458/953/b38/458953b385b344e5b820e64ea5901fb2.jpg
[2]: https://software.intel.com/en-us/modern-code
[3]: https://habrahabr.ru/post/306018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Любовь, похожая на код
habra.16
habrabot(difrex,1) — All
2016-07-22 16:00:06


Женские вкусы — штука изменчивая. Судить можно хотя бы по популярным песням. Вспомните: «Парней так много холостых, а я люблю женатого», потом «Любите, девушки, простых романтиков, отважных лётчиков и моряков», в 90-е — «А я люблю военных, красивых, здоровенных...крутых и всяких деловых», в начале 2000-х — «Робот, робот, робот, я тебя люблю, мы так хотели…» Хотя, погодите, всё началось ещё в далёком 1965 году — тогда Алла Пугачёва пела «Неужели в две тысячи первом году нам заменят сердца на транзисторы?… Робот - это выдумка века. Я прошу, ну попробуй, стань опять человеком…» И вот настала очередь создателей роботов и приложений — программистов и инженеров. «Мой парень-программист» из мемов и забавных записок в ЖЖ превратился в социальное явление. Попробуем разобраться, почему это произошло, на что способны программисты и какой он, идеальный мужчина XXI века? [Читать далее][1]

[1]: https://habrahabr.ru/post/306212/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Stackoverflow запустил раздел «Документация»
habra.16
habrabot(difrex,1) — All
2016-07-22 16:00:06


Вчера произошло достаточно значимое событие на рынке разработки. Точнее в сфере поддержки и сопровождении программных продуктов. StackOverflow запустил раздел [документация][1]. Почему это важно?

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

[1]: http://stackoverflow.com/documentation
[2]: https://habrahabr.ru/post/306234/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн-конференция RuHaxe 5: «AS4 это Haxe»
habra.16
habrabot(difrex,1) — All
2016-07-23 23:00:04


![ruhaxe logo][1]Завтра, в воскресенье 24 июля в 15:00 по Москве состоится пятая онлайн-конференция русскоязычного Haxe сообщества. Как и на прошлых конференциях, можно будет не только посмотреть и послушать доклады на темы технологий, связанных с Haxe, но и задать любые вопросы их авторам.

Эта конференция может быть особенно интересна программистам на ActionScript, которые находятся в поиске путей для своего профессионального развития, т.к. одна из главных тем **«AS4 — это Haxe» или переводим ActionScript программиста на новый уровень** посвящена тому, почему одним из лучших вариантов этого пути может стать Haxe.

Если вы пока не знаете, что такое Haxe, можно прочитать [краткое описание][2], а затем посмотреть [слайды][3] и [запись доклада][4] с недавнего выступления [Даниила Коростелева][5] в компании Невософт.

Под катом подробнее о темах докладов:
[Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/d1b/58b/a0d/d1b58ba0d1455deed0e1af67e9fa3d4b.jpg
[2]: http://haxe.ru/about-haxe
[3]: http://slides.com/nadako/nevosoft_haxe_talk#/
[4]: https://www.youtube.com/watch?v=91WgYdNW8t0
[5]: https://twitter.com/nadako
[6]: https://habrahabr.ru/post/306266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Мониторинг проектов с помощью месенджера на примере Nagios и Telegram, с разбором факапов из жизни Highload 24x7
habra.16
habrabot(difrex,1) — All
2016-07-24 14:00:06


![][1]
_Рисунок: Маргарита Закиева
_

**Что будет под катом:
**
* Базовые настройки Nagios в связке с Telegram.
* Общая концепция нашего с коллегами мониторинга проектов.
* Разбор граблей, на которые мы успели наступить при работе с этой системой.
**Наша статья будет полезна для тех, кто:
**
* Недоволен информативностью своего текущего мониторинга.
* Испытывает ежедневную боль ниже спины с оповещениями о проблемах.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/148/e26/62c/148e2662cf3e49ab987722dc34864059.png
[2]: https://habrahabr.ru/post/306272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн-конференция RuHaxe 5
habra.16
habrabot(difrex,1) — All
2016-07-24 15:30:07


![ruhaxe logo][1]Уже сегодня, в воскресенье 24 июля в 15:00 по Москве состоится пятая онлайн-конференция русскоязычного Haxe сообщества. Как и на прошлых конференциях, можно будет не только посмотреть и послушать доклады на темы технологий, связанных с Haxe, но и задать любые вопросы их авторам.

**Update**: изменения в составе участников. SlavaRa не сможет выступить из-за внезапно возникших обстоятельств. Вместо него Ярослав Сиваков расскажет про создание [NanoFL][2] и возможности, которые предоставляет этот редактор разработчикам и аниматорам.

Если вы пока не знаете, что такое Haxe, можно прочитать [краткое описание][3], а затем посмотреть [слайды][4] и [запись доклада][5] с недавнего выступления [Даниила Коростелева][6] в компании Невософт.

Под катом подробнее о темах докладов:
[Читать дальше →][7]

[1]: https://habrastorage.org/getpro/habr/post_images/d1b/58b/a0d/d1b58ba0d1455deed0e1af67e9fa3d4b.jpg
[2]: http://nanofl.com
[3]: http://haxe.ru/about-haxe
[4]: http://slides.com/nadako/nevosoft_haxe_talk#/
[5]: https://www.youtube.com/watch?v=91WgYdNW8t0
[6]: https://twitter.com/nadako
[7]: https://habrahabr.ru/post/306266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В поисках чистой архитектуры (1-я часть) — Swift 3.0
habra.16
habrabot(difrex,1) — All
2016-07-24 16:00:05


![image][1]

Приветствую уважаемых жителей Хабрахабра!

Не так давно я стал замечать, что мой код становится громоздким и даже в рамках одного контроллера мне все сложней удержать в голове то, что в нем происходит. Как следствие, на выходе не всегда ожидаемый результат, что я хотел реализовать, так как мозг “замылился” и я легко могу упустить существенную деталь. А после, ручной анализ кода, работа с отладчиком и так далее… Да что уж говорить, доходило до абсурда, при сборке приложения xcode падал замертво и я даже не успевал понять, что случилось в приложении! Нужно было что то менять и думать над архитектурой, так как я не хочу всю свою карьеру писать плохоподдерживаемый код…

Кому интересен вопрос архитектуры приложения, добро пожаловать под кат! [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/03e/db5/88d/03edb588d3e71f640952384271c5ba87.png
[2]: https://habrahabr.ru/post/306206/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Oracle, обход мутирующих таблиц
habra.16
habrabot(difrex,1) — All
2016-07-24 17:00:05


![][1]
Рис.1 – художники мутанты ниндзя черепашки

Мутирование таблиц (ошибка ORA-04091) возникает, если в триггере уровня строки выполняется изменение или чтение данных из той же самой таблицы, для которой данный триггер должен был сработать.

Рассмотрим два способа обхода данной ситуации. Первый – через пакет – древний, как удар маваши гери с разворота, смотрится эффектно, но долго готовится и сложен в исполнении. Второй – более свежий и простой – с использованием составных триггеров.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/7c4/6a1/8e6/7c46a18e661d42bcbb7f2f728380d6e3.jpg
[2]: https://habrahabr.ru/post/306280/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Троллейбус из буханки или alias analysis в LLVM
habra.16
habrabot(difrex,1) — All
2016-07-24 20:00:05


![][1]_В преддверии очередной конференции C++ Siberia, я решил выложить на всеобщее оборзрение запись [доклада][2] с [февральской конференции C++ Russia][3], проходившей в городе-герое Санкт-Петербурге._

Зачастую, знакомство с алиасингом в C++ у многих программистов начинается и заканчивается одинаково: **-fno-strict-aliasing**. На вопросы новичка, более опытные коллеги отвечают в стиле: «не трогай! а то все сломаешь!». Новичок и не трогает.

В докладе была сделана попытка заглянуть под капот компилятора и понять, что же там, внутри. Что такое алиасинг, где он может быть полезен и какие реальные преимущества дает. Тема была рассмотрена и со стороны программиста и со стороны разработчика компилятора. А по сему, вопрос «зачем?» был центральным.

В докладе вы найдете:

* Код Quake3
* Магическую константу 0x5F3759DF
* Много ассемблера
* Много IR кода LLVM
* Rust, Java и даже Fortran[Читать дальше →][4]

[1]: https://habrastorage.org/files/5dd/edd/b8e/5ddeddb8e6f941d098d08582010f6181.png
[2]: http://meetingcpp.ru/?page_id=1020
[3]: http://meetingcpp.ru/?page_id=936
[4]: https://habrahabr.ru/post/306294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Извлечение ключа из токена с неизвлекаемым ключом
habra.16
habrabot(difrex,1) — All
2016-07-25 11:00:05


![][1]

Довольно часто при оформлении сертификатов ключей электронной подписи можно наблюдать навязчивый пиар токенов с неизвлекаемым ключом. Продавцы из удостоверяющих центров уверяют, что, купив у них [СКЗИ КриптоПРО CSP][2] и токен с неизвлекаемым ключом ([Рутокен ЭЦП][3] или [JaCarta ГОСТ][4]), мы получим сертифицированные СКЗИ, обеспечивающие 100%-ную защиту от кражи ключей с токена. Но так ли это на самом деле? Для ответа на этот вопрос проведем простой эксперимент… [Читать дальше →][5]

[1]: https://habrastorage.org/files/601/c18/1ef/601c181ef1184408994f73cd5a54650c.jpg
[2]: http://www.cryptopro.ru/products/csp
[3]: http://www.rutoken.ru/products/all/rutoken-ecp/
[4]: http://www.aladdin-rd.ru/catalog/jacarta/gost/
[5]: https://habrahabr.ru/post/306034/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Рефлексивное метапрограммирование на Go: цикл for each средствами пакета reflect
habra.16
habrabot(difrex,1) — All
2016-07-25 12:00:03


Для многих программистов, которые используют или желали бы использовать Go на практике, отсутсвие механизмов параметрического полиморфизма в языке является большой печалью. Но не все так плохо как может показаться на первый взгляд.



Конечно в Go нельзя писать обобщенные программы, например в стиле C++ templates, которые бы практически не влияли на затраты процессорного времени. Такого механизма в языке нет и, вполне возможно, что не предвидится.



С другой стороны, язык представляет довольно мощный встроенный пакет `reflect`, которой позволяет производить рефлексию как объектов, так и функций. Если не ставить быстродействие во главу угла, то с помощью этого пакета можно достигать интересных и гибких решений.



В этой статье я покажу как реализовать `for each` в виде типонезависимой рефлексивной функции.


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

[1]: https://habrahabr.ru/post/306304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Делаем многоканальную полнодуплексную рацию
habra.16
habrabot(difrex,1) — All
2016-07-25 13:30:03


Однажды к нам постучись за помощью – сделать сервис-рацию. После продолжительных поисков клиенту не удалось найти подходящее решение, поэтому он обратился в [VoxImplant][1]. Нам стало интересно, что же он там такое задумал и сможем ли мы реализовать его задумку на своей платформе. Нам редко удавалось найти сценарий, который на ней сделать невозможно. В общем, пообщались мы, все внимательно выслушали и пошли писать код. Рация должна была уметь подключаться к нескольким каналам одновременно (аналогично частотам в аналоговых рациях), а также давать возможность говорить в один из подключенных каналов + было желательно отображать активность в канале. Под катом рассказ о том, как мы сделали этот сервис за несколько часов. [Читать дальше →][2]

[1]: https://voximplant.ru/
[2]: https://habrahabr.ru/post/305306/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 10 ошибок, приводящих к оверинжинирингу ПО
habra.16
habrabot(difrex,1) — All
2016-07-25 13:30:03


Несколько вещей гарантированно будут увеличиваться со временем: расстояния между звёздами, энтропия вселенной и бизнес-требования к ПО. Многие статьи пишут «Не усложняйте!», но не пишут почему или как это сделать. Вот вам 10 ясных примеров.


##### 1\. Инженерам виднее


Мы, инженеры, считаем себя умнейшими людьми. Ну, поскольку мы создаём разные штуки. И эта ошибка часто приводит к оверинжинирингу. Если вы спланировали и построили 100 модулей — Бизнес всегда попросит у вас 101-ый, о котором вы никогда не задумывались. Если вы соберётесь с силами и решите 1000 проблем — они придут к вам и выложат на стол 10 000 новых. Вы считаете, что у вас всё под контролем, а на самом деле вы даже не представляете, в каком направлении вас завтра поведёт дорога.
![image][1]
За мои 15 лет работы программистом я ещё ни разу не видел, чтобы Бизнес выдал законченные и стабильные раз и навсегда требования к ПО. Они всегда меняются, расширяются. И это природа бизнеса, а не ошибки людей, управляющих им.

**Мораль**: Казино (бизнес) всегда побеждает
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/06b/ebd/72e/06bebd72e1649243465601c95497d844.png
[2]: https://habrahabr.ru/post/306328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дорабатываем HTTP-кеширование в Django
habra.16
habrabot(difrex,1) — All
2016-07-25 15:00:04


[![image][1]][2]
В этой заметке речь пойдет о [HTTP-кэшировании][3] ([перевод][4]) и его использовании совместно с фреймворком Django. Мало кто будет спорить с утверждением о том, что применение HTTP-кэширования — очень правильная и разумная практика разработки веб-приложений. Однако именно в этом функционале Django содержит ряд ошибок и неточностей, которые очень сильно ограничивают практическую пользу от такого подхода. Например, до сих пор актуален баг [\#15855][5], заведенный в апреле 2011 года, который может приводить к очень неприятным ошибкам в работе веб-приложения.


## Middleware vs. explicit decorator


В Django есть два стандартных способа включения HTTP-кэширования: через активацию **UpdateCacheMiddleware**/**FetchFromCacheMiddleware**, либо через декорирование функции представления при помощи декоратора **cache\_page**. У первого способа имеется один существенный недостаток — он включает HTTP-кэширование для всех без исключения представлений (view) проекта, зато второй содержит тот самый баг #15855. Если бы не этот баг, то вариант с использованием cache\_page являлся бы более предпочтительным. Плюс, такой вариант хорошо согласуется с важнейшим из постулатов [The Zen of Python][6], что «явное лучше неявного». [Читать дальше →][7]

[1]: https://habrastorage.org/files/ea8/e35/828/ea8e3582889040839d40c1ba58b738a9.png
[2]: https://habrahabr.ru/company/redmadrobot/blog/305774/
[3]: https://www.mnot.net/cache_docs/
[4]: https://habrahabr.ru/post/203548/
[5]: https://code.djangoproject.com/ticket/15855
[6]: https://www.python.org/dev/peps/pep-0020/
[7]: https://habrahabr.ru/post/305774/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 ... 210