RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 210
[>] Рендеринг в MAPS.ME
habra.15
habrabot(difrex,1) — All
2015-07-21 13:00:02


![][1] Всем привет! Сегодня я бы хотел рассказать о рендеринге, который не имеет отношения к компьютерным играм, анимационным фильмам или промышленным системам проектирования. Речь пойдет о движке для рендеринга карт в реальном времени для проекта MAPS.ME. В данном посте я опишу общие принципы работы движка и некоторые грабли, на которые мы наступили (и те, которые успешно обошли). Если вы занимаетесь рендерингом больших объемов данных, в особенности картографического характера, наш опыт, надеюсь, будет полезен в ваших проектах или, по крайней мере, любопытен. Всех заинтересовавшихся прошу под кат. [Читать дальше →][2]

[1]: https://habrastorage.org/files/439/fbd/f8a/439fbdf8aacc42a785f8b6215632f628.png
[2]: http://habrahabr.ru/post/262903/#habracut

[>] Строим стенд производительности на примере сервера Set Retail 10
habra.15
habrabot(difrex,1) — All
2015-07-21 13:00:02


![][1] Привет. Хочу вам рассказать, как мы шли по дороге понимания производительности нашей системы Set Retail 10. А именно, как мы учились измерять производительность, и какими способами отслеживали ее изменения. Для тестирования мы построили стенд производительности, и теперь на несколько дней запускаем на нём нагрузочные тесты. На этапе проработки тестового стенда мы сломали много копий о щиты ожесточённых споров. Но нам удалось найти ответы на самые главные вопросы — что и как делать, и в какой последовательности. Буду рад, если наш опыт станет полезен и вам. [Читать дальше →][2]

[1]: https://habrastorage.org/files/24b/2ec/77d/24b2ec77d7684f358cfd4cd698aef071.jpg
[2]: http://habrahabr.ru/post/262709/#habracut

[>] OData REST API — мелкие хитрости (часть 2)
habra.15
habrabot(difrex,1) — All
2015-07-21 13:30:02


Продолжаем серию постов об особенностях использования протокола OData (см. [предыдущий пост][1]). [Читать дальше →][2]

[1]: http://habrahabr.ru/company/databoom/blog/262937/
[2]: http://habrahabr.ru/post/263167/#habracut

[>] Руки прочь от консоли!
habra.14
habrabot(difrex,1) — All
2014-11-08 20:30:03


![image][1] Любой организм стремится к гомеостазу. То есть к стабильности, предсказуемости, спокойствию. Это означает, что любая встряска, любое резкое изменение порождает стресс. Особенно, если в 3 часа ночи, особенно если сразу надо что-то с этим делать, разбираться, чинить… Кому знакома ситуация, когда что-то очень важное (база данных, финансовый сервис, айпад генерального) ВДРУГ перестают работать. Это всегда происходит вдруг… А вы как назло, отвечаете своей головой за это важное. Большинство людей, включая меня, в этот момент испытывают реальный стресс. Сильный и опасный. _Вспоминаю случаи, когда мы делали по ночам работы по настройке сетевой безопасности РАО ЕЭС России, а потом нам звонили «срочно-все\_сломалось-чините!». Сколько косяков я мог избежать, если бы не ломился сразу вбивать команды с колотящемся сердцем… Сколько оправданий можно было бы не придумывать. Ведь стыдно признаться в своей поспешности и глупости…_ [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/f79/7ab/e49/f797abe49c328ecfe26857b829bb1c66.jpg
[2]: http://habrahabr.ru/post/242629/#habracut

[>] Аудит безопасности сайта глазами заказчика
habra.15
habrabot(difrex,1) — All
2015-07-21 16:00:02


![][1] В этом топике я хочу рассказать, как проходит коммерческий аудит безопасности сайта, в чем отличие от bounty-программ и «свободного рисерча». [Читать дальше →][2]

[1]: https://habrastorage.org/files/563/375/c07/563375c07ae54e2d8f5aa14913214847.jpg
[2]: http://habrahabr.ru/post/263085/#habracut

[>] Синхронизация музыки и игровых событий на Unity
habra.14
habrabot(difrex,1) — All
2014-11-08 21:30:03


![image][1] _Пример редактора уровня в игре._ Если вы когда либо играли в игры типа Guitar Hero, Osu или Bit Trip Runner вы знаете, как сильно погружает в «поток» простая зависимость геймплея от музыки играющей на фоне. Удивительно, что таких игр, на самом деле не так уж и много. Кроме того, такая синхронизация может быть полезна для создания спецэффектов, но тем не менее почти нигде не встречается, кроме обозначенных выше игр типа rhythm. Вот и я решил воспользоваться таким бесхитростным приемом в собственной игре, а также поделиться наработками. Я постарался описать конструкцию, удобную как для программирования большого количества игровых событий, так и работающую как можно более оптимальным образом. Применить которую можно почти в любой игре, возможно и вам она пригодится, если вы занимаетесь их разработкой. [Читать дальше →][2]

[1]: http://habrastorage.org/files/485/187/f4f/485187f4f1b44908972cc4bb39a06822.png
[2]: http://habrahabr.ru/post/242631/#habracut

[>] Руки прочь от консоли
habra.14
habrabot(difrex,1) — All
2014-11-08 22:30:02


![image][1] Любой организм стремится к гомеостазу. То есть к стабильности, предсказуемости, спокойствию. Это означает, что любая встряска, любое резкое изменение порождает стресс. Особенно, если в 3 часа ночи, особенно если сразу надо что-то с этим делать, разбираться, чинить… Кому знакома ситуация, когда что-то очень важное (база данных, финансовый сервис, айпад генерального) ВДРУГ перестают работать. Это всегда происходит вдруг… А вы как назло, отвечаете своей головой за это важное. Большинство людей, включая меня, в этот момент испытывают реальный стресс. Сильный и опасный. _Вспоминаю случаи, когда мы делали по ночам работы по настройке сетевой безопасности РАО ЕЭС России, а потом нам звонили «срочно-все\_сломалось-чините!». Сколько косяков я мог избежать, если бы не ломился сразу вбивать команды с колотящемся сердцем… Сколько оправданий можно было бы не придумывать. Ведь стыдно признаться в своей поспешности и глупости…_ [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/f79/7ab/e49/f797abe49c328ecfe26857b829bb1c66.jpg
[2]: http://habrahabr.ru/post/242629/#habracut

[>] [Перевод] Пишите чистый код с Реактивными Расширениями (Reactive Extensions)
habra.14
habrabot(difrex,1) — All
2014-11-09 05:00:03


_Если у вас есть некий процесс, который может выполняться долго и возвращать несколько промежуточных результатов с течением времени, то Реактивные Расширения (**.NET Framework Reactive Extensions**) позволят вам упростить код и лучше управлять им._ ![чистый код с реактивными расширениями][1] В большинстве случаев вы просто вызываете метод и получаете результат на выходе. Но некоторые процессы устроены по-другому. Например, метод может выполняться в течение продолжительного промежутка времени. Или, что хуже, метод не только выполняется долго, а ещё и нерегулярно возвращает какие-то промежуточные результаты во время исполнения. Конечно, в том числе и для этого, в .NET Framework есть события, с помощью событий один объект может вызвать метод второго объекта, передавая некоторую информацию, в тот момент времени, когда это необходимо. Но есть решение этой проблемы по-лучше, чем использования событий, — Реактивные Расширения. Если у вас есть процесс, работающий долго и время от времени возвращающий промежуточные результаты, то Реактивные Расширения помогут вам обрабатывать такие результаты всякий раз, когда они приходят. Код от использования Реактивных Расширений вместо событий не только становится проще, но вы ещё получаете более богатую функциональность (например, вы можете использовать LINQ для отсеивания любых ненужных данных). [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/4cf/f37/dee/4cff37dee24402a5c5e3c33a5f2c0eb1.jpg
[2]: http://habrahabr.ru/post/242613/#habracut

[>] [Из песочницы] Автоматическое определение тональности текста (Sentiment Analysis)
habra.15
habrabot(difrex,1) — All
2015-07-21 16:00:02


За недолгое время моего процесса обучения я понял одну вещь – знаниями нужно делиться. Осознал я это давно, но лень перебороть и найти время не всегда получается. Речь в этой статье пойдет про использование различных методов машинного обучения для решения проблем, связанных с обработкой естественного языка (NLP). Одной из таких проблем является автоматическое определение эмоциональной окраски (позитивный, негативный, нейтральный) текстовых данных, то есть анализа тональности (sentiment analysis). Цель этой задачи состоит в определении, является ли данный текст (допустим обзор фильма или комментарии) положительным, отрицательным или нейтральным по своему влиянию на репутацию конкретного объекта. Трудность анализа тональности заключается в присутствии эмоционально обогащенного языка — сленг, многозначность, неопределенность, сарказм, все эти факторы вводят в заблуждение не только людей, но и компьютеров. ![][1] На хабре уже не раз появлялись статьи связанные с определением тональности [1][2], [2][3], [3][4]. Да и вообще, эта тема является одной из самых обсуждаемых во всем мире в последнее время [1, 2, 3, 4]. Сразу обговорю, что в этой статье особо никаких новшеств вы не найдете, данный материал скорее всего может послужит туториалом для новичков в сфере машинного обучения и NLP, коим я и являюсь. Основной же материал, который я использовал вы можете найти [по этой ссылке][5]. Весь исходный код вы можете найти [по этой ссылке][6]. Итак, в чем же состоит проблема и как ее решить? [Читать дальше →][7]

[1]: http://www.dataweave.in/img/xmen_sentiment.png
[2]: http://habrahabr.ru/post/149605/
[3]: http://habrahabr.ru/post/247299/
[4]: http://habrahabr.ru/post/146903/
[5]: https://www.kaggle.com/c/word2vec-nlp-tutorial
[6]: https://github.com/wendykan/DeepLearningMovies/blob/master/
[7]: http://habrahabr.ru/post/263171/#habracut

[>] Резервное копирование виртуальных машин в среде гипервизора QEMU/KVM
habra.14
habrabot(difrex,1) — All
2014-11-09 22:00:03


Как известно, бэкапы нужно делать, мало того, нужно делать их так, чтобы потом с них можно было развернутся. Особенно это касается виртуальных машин (ВМ). Рассмотрим, как можно сделать бэкап виртуальных дисков машины в среде QCOW/KVM. Основных проблем здесь две: во-первых, нужно получить консистентый (целостный) бэкап, т.е. если у нас есть СУБД или другое ПО, которое активно использует собственный кэш на запись, то перед бэкапом его нужно попросить сбросить кэш и заморозить запись на диск, иначе данные-то в снэпшот попадут, но не те, и при восстановлении СУБД может не понять такой финт. Второй вопрос — производительность ВМ в режиме снэпшота, неплохо было бы, что бы ВМ не слишком тормозила, когда мы снимаем копию, и не зависала бы, когда мы удаляем снэпшот. Сразу дам ответ на первый вопрос — чтобы получить консистентный бэкап, нужно перед созданием бэкапа выключить ВМ средствами гостевой ОС, тогда бэкап точно получится целостным. Если вас устраивает такая ситуация — статью можно дальше не читать. Если же нет — прошу под кат. [Читать дальше →][1]

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

[>] Хакеров из Anonymous или Китая заподозрили в атаке на Нью-Йоркскую биржу
habra.15
habrabot(difrex,1) — All
2015-07-21 16:30:02


[![][1]][2] Недавно мы писали о причинах [масштабных технологических сбоев][3] на биржах. В начале июля 2015 года на Нью-Йоркской фондовой бирже (NYSE) произошла серьезная [авария][4], в результате которой торги были остановлены на несколько часов. Представители торговой площадки объяснили случившееся ошибкой в работе электронной системы биржи. СМИ заявили о причастности к сбою хакеров из Anonymous или Китая. [Читать дальше →][5]

[1]: https://habrastorage.org/files/d8a/dc2/3ff/d8adc23ff3d2496bab2fc0c2b7800714.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/263203/
[3]: http://habrahabr.ru/company/itinvest/blog/262757/
[4]: http://www.ibtimes.co.uk/nyse-suspends-all-trading-all-open-orders-will-be-cancelled-1509970
[5]: http://habrahabr.ru/post/263203/#habracut

[>] [Перевод] Кодинг для журналистов: 10 концепций программирования, которые важно понять
habra.15
habrabot(difrex,1) — All
2015-07-21 16:30:02


_Привет, Хабр! Задача нашего образовательного проекта [Хекслет][1] — помочь тем, кто решил стать программистом. Но очень часто людям требуется лишь короткий ликбез, простое объяснение основных понятий «на пальцах». Например, современным журналистам, не имеющим прямого отношения к информационным технологиям. Сегодня мы публикуем перевод статьи британского журналиста Пола Брэдшоу, в которой даются простые объяснения десяти важным концепциям мира кодинга._

#### 1\. Переменные (Variables)

![][2] _Переменные — это что-то вроде контейнеров, которые в разное время могут вмещать различные предметы. Фото Вольфганга Лоньена._ Переменная — это один из базовых элементов программирования. Вкратце, это способ сослаться на что-то так, чтобы можно было использовать эту ссылку в строке кода. Примеры:

* Вы можете создать переменную, чтобы хранить чей-то возраст, и назвать её «age»
* Вы можете создать переменную, чтобы хранить имя пользователя, и назвать её «username»
* Вы можете создать переменную, чтобы посчитать, как часто что-то происходит, и назвать её «counter»
* Вы можете создать переменную, чтобы хранить расположение какого-либо элемента, и назвать её «index»

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

[1]: https://ru.hexlet.io/?utm_medium=blog&utm_source=habr&utm_campaign=translation
[2]: https://habrastorage.org/files/d21/ee7/8d3/d21ee78d379a49ccaa9f3415c4e4985d.jpg
[3]: http://habrahabr.ru/post/263191/#habracut

[>] Microsoft выпустила внеплановое security-обновление для Windows MS15-078
habra.15
habrabot(difrex,1) — All
2015-07-21 16:30:02


Microsoft выпустила обновление [MS15-078][1], которое закрывает критическую Remote Code Execution (RCE) уязвимость во всех версиях Windows (CVE-2015-2426). Во второй раз за этот месяц обновлению подлежит системная библиотека Windows Adobe Type Manager Library (Atmfd.dll). Атакующие могут удаленно исполнить код в системе с использованием специальным образом сформированного файла шрифтов OpenType, который может быть размещен на вредоносном веб-сайте. ![][2] Начиная с этого месяца компания перестала поддерживать Windows Server 2003, поэтому MS15-078 адресуется для только для систем Windows Vista+. Мы рекомендуем пользователям как можно скорее установить данное обновление. [][3]

[1]: https://technet.microsoft.com/en-us/library/security/ms15-078.aspx
[2]: http://habr.habrastorage.org/post_images/f1c/317/064/f1c3170644a18be60161ed0b987b6b74.jpg
[3]: http://habrahabr.ru/post/263129/#habracut

[>] [Перевод] Релиз Visual Studio 2015 и .NET 4.6
habra.15
habrabot(difrex,1) — All
2015-07-21 18:00:02


![][1]Мы рады вам сообщить что Visual Studio 2015 и .NET 4.6 [доступны для загрузки][2]. Эти два релиза являются большим шагом вперед и предоставляют разработчикам новые инструменты, которые повышают их производительность и дают возможность создавать различные приложения для множества платформ. Уже сейчас вы можете [загрузить Visual Studio 2015][3] и узнать возможности этого инструментария с помощью [60+ видео][4].




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

[1]: http://habrastorage.org/getpro/habr/post_images/dc2/e30/b96/dc2e30b96cce28d0acf781e909f06be2.png
[2]: https://www.visualstudio.com/ru-ru/downloads
[3]: https://www.visualstudio.com/ru-ru/downloads
[4]: https://channel9.msdn.com/VisualStudio
[5]: http://habrahabr.ru/post/263217/#habracut

[>] Взломан сайт AshleyMadison.com
habra.15
habrabot(difrex,1) — All
2015-07-21 18:30:03


![image][1] Сайт любителей адьюльтера AshleyMadison.com был взломан хакером или группой хакеров, именующих себя The Impact Team. В сеть утекли не только данные порядка 37-40 миллионов клиентов (в основном из США и Канады), но и финансовая, и внутрення информация. Исполнительный директор компании Avid Life Media (ALM) Ноель Бидерман (Noel Biderman), которая управляет данным сайтом, в воскресенье вечером подтвердил ресурсу KrebsOnSecurity взлом, заявив, что его компания в срочном порядке работает над тем, что бы убрать компрометирующую информацию из свободного доступа. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/475/84d/74b/47584d74b45db5ef4e7050324bba7d87.png
[2]: http://habrahabr.ru/post/263147/#habracut

[>] Регулярные выражения
habra.14
habrabot(difrex,1) — All
2014-11-09 23:00:03




#### Содержание



* [Введение][1]
* [Величины, типы и операторы][2]
* [Структура программ][3]
* [Функции][4]
* [Структуры данных: объекты и массивы][5]
* [Функции высшего порядка][6]
* [Тайная жизнь объектов][7]
* [Проект: электронная жизнь][8]
* [Обработка ошибок][9]
* [Регулярные выражения][10]
* Модули
* Проект: язык программирования
* JavaScript и браузер
* Document Object Model
* Обработка событий
* Проект: игра-платформер
* Рисуем на Canvas
* HTTP
* Формы и поля ввода
* Проект: Paint
* Node.js
* Проект: веб-сайт по обмену умениями
* [Песочница для кода][11]

_Некоторые люди, столкнувшись с проблемой, думают: «О, а использую-ка я регулярные выражения». Теперь у них есть две проблемы. Джейми Завински Юан-Ма сказал: «Требуется большая сила, чтобы резать дерево поперёк структуры древесины. Требуется много кода, чтобы программировать поперёк структуры проблемы. Мастер Юан-Ма, «Книга программирования»_ Инструменты и техники программирования выживают и распространяются хаотично-эволюционным способом. Иногда выживают не красивые и гениальные, а просто такие, которые достаточно хорошо работают в своей области – к примеру, если их интегрируют в другую успешную технологию. В этой главе мы обсудим такой инструмент – регулярные выражения. Это способ описывать шаблоны в строковых данных. Они создают небольшой отдельный язык, который входит в JavaScript и во множество других языков и инструментов. Регулярки одновременно очень странные и крайне полезные. Их синтаксис загадочен, а программный интерфейс в JavaScript для них неуклюж. Но это мощный инструмент для исследования и обработки строк. Разобравшись с ними, вы станете более эффективным программистом. [Читать дальше →][12]

[1]: http://habrahabr.ru/post/240219/
[2]: http://habrahabr.ru/post/240223/
[3]: http://habrahabr.ru/post/240225/
[4]: http://habrahabr.ru/post/240349/
[5]: http://habrahabr.ru/post/240813/
[6]: http://habrahabr.ru/post/241155/
[7]: http://habrahabr.ru/post/241587/
[8]: http://habrahabr.ru/post/241776/
[9]: http://habrahabr.ru/post/242609/
[10]: http://habrahabr.ru/post/242695/
[11]: http://eloquentjavascript.net/code
[12]: http://habrahabr.ru/post/242695/#habracut

[>] [Перевод] «Eppur si muove!»* или Работаем с таймзонами в Python
habra.14
habrabot(difrex,1) — All
2014-11-10 00:30:04


На нашей планете Земля, в одно и то же время, в разных географических точках планеты может быть разное время суток. Это следствие того, что наш мир — вращающийся геоид, а не плоский диск, а что наша Солнечная система имеет только одну звезду — Солнце. Ещё со школы всем известно о часовых поясах, и все мы встречались с их проявлениями в реальной жизни («Московское время – 15 часов, в Петропавловске-Камчатском – полночь», джетлаг при дальних перелётах, и т.д.). К несчастью, часовые пояса всего лишь частично основаны на физических особенностях нашего мира, и при компьютерных вычислениях приходится учитывать другие, порой неожиданные, нюансы. \* «И всё-таки она вертится!» — крылатая фраза, которую якобы произнёс Галилео Галилей, покидая процесс инквизиции после отречения от своего убеждения в том, что Земля вращается вокруг Солнца. В нашем случае, увы, это вращение приводит ко всем этим «замечательным» проблемам с часовыми поясами. Что общего у этой статьи и Галилео? Да, в общем-то, ничего. Боюсь, что если бы наш мир был центром вселенной, нам всё равно пришлось бы иметь дело с таймзонами. Будем считать заголовок моей оплошностью, которую я уже не могу исправить (хотя я могу). [Читать дальше →][1]

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

[>] Catberry.js: Flux и веб-компоненты
habra.15
habrabot(difrex,1) — All
2015-07-22 11:00:03








# О чём речь?

Этим постом я планирую начать целый цикл статей об изоморфном фреймворке [Catberry.js][1]. В этих статьях я, как автор, подробно расскажу о внутреннем устройстве фреймворка, какие у него есть уникальные возможности, опишу некоторые рецепты и лучшие практики по разработке проектов на нём. Вы могли видеть обзорную [статью][2] о Catberry.js, написанную еще в ноябре 2014. С тех пор много чего изменилось: фреймворк шагнул на две мажорных версии, обрел новые подходы и архитектуру, основанную на Flux и веб-компонентах. Про Flux есть неплохой перевод статьи на [хабре][3]. А про [веб-компоненты][4] думаю стоит упомянуть, что их не так давно стали активно продвигать ребята из Google и создали реализацию под именем [Polymer][5]. В Catberry есть своя реализация этих двух подходов со своими особенностями, о которых и хочется рассказать в этом посте. Если вам любопытно узнать подробности реализации фреймворка с таким вот странным именем и логотипом, прошу под кат. [Читать дальше →][6]

[1]: http://catberry.org/
[2]: http://habrahabr.ru/company/2gis/blog/242909/
[3]: http://habrahabr.ru/post/249279/
[4]: http://webcomponents.org/
[5]: https://www.polymer-project.org/1.0/
[6]: http://habrahabr.ru/post/262949/#habracut

[>] [Перевод] Киски: Рефакторинг. Часть вторая или лечение зависимостей
habra.15
habrabot(difrex,1) — All
2015-07-22 17:30:03


![image][1] Этот перевод является [продолжением][2] цикла статей про рефакторинг от Matthias Noback.

#### Мир не так надежен, чтобы на него опираться

Во время юнит тестирования нет необходимости в том, чтобы внешняя среда была вовлечена в сам процесс тестирования. Выполняя реальные запросы к базе данных, HTTP запросы или же запись в файлы, вы замедляете тесты, так как эти операции непредсказуемы. Например, если сервер, к которому вы совершаете запросы во время тестирования упал или же ответил не лучшим образом — юнит тест упадет даже в том случае, если все остальное работает верно. Это плохо, так как юнит тесты должны падать только тогда, когда код выполняет что-то, чего он делать не должен. Как можно было заметить в прошлой статье, оба класса (CachedCatApi и RealCatApi) зависят от внешних факторов. Первый из них записывает файлы в файловую систему, второй — делает реальные HTTP запросы, в то время как эти моменты довольно низкоуровневые и для них не используются правильные инструменты. Более того, в этих классах не учитывается большое количество пограничных случаев. Оба класса могут быть лишены подобных зависимостей и для этого достаточно того, чтобы новые классы инкапсулировали все эти низкоуровневые детали. Например, мы запросто можем убрать вызов file\_get\_contents() в другой класс с названием FileGetContentsHttpClient.

class FileGetContentsHttpClient
{
public function get($url)
{
return @file_get_contents($url);
}
}


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

[1]: https://habrastorage.org/getpro/habr/post_images/389/bf3/282/389bf3282a848b64b37aa11a60bce887.jpg "Franz Marc - Girl with cat II, 1912"
[2]: http://habrahabr.ru/post/262995/
[3]: http://habrahabr.ru/post/263139/#habracut

[>] [Из песочницы] Перевод книги «Пахан/шкворень/авторитет (Kingpin)». Глава 34. «DarkMarket»
habra.15
habrabot(difrex,1) — All
2015-07-22 18:00:02


Начало и план перевода тут: [«Шкворень: школьники переводят книгу про хакеров»][1]. «Глава 34» была выбрана участником летнего лагеря, который пожелал остаться анонимным, в качестве самостоятельно проекта. _(Любое сходство с «правилом 34» является случайным)_

#### DarkMarket

Парень сидит на жестком полированном деревянном стуле и злобно смотрит в камеру. На фоне облезлой штукатуренной стены, он в одних трусах и держит в руках табличку. На ней большими буквами написано: «МОЕ НАСТОЯЩЕЕ ИМЯ — МЕРТ ОРТАК. Я КРЫСА, СВИНЬЯ, Я РЕПОРТЕР МЕНЯ ПОИМЕЛ CHA0.» Появление этого фото на форуме DarkMarket в мае 2008-го заставило Муларского спешно вернуться в комнату коммуникаций NCFTA. Командному центру было бы полезно знать, что один из админов Мастера Сплинтра похитил и пытал информатора. ![][2] _Если у кого есть рекомендации, как что-то перевести лучше, в конце поста приведен оригинал главы_ [Читать дальше →][3]

[1]: http://habrahabr.ru/post/261491/
[2]: https://habrastorage.org/files/f08/ee5/73a/f08ee573a3d44214abdefeaebe5c64ba.jpg
[3]: http://habrahabr.ru/post/263293/#habracut

[>] Выразительный JavaScript: Регулярные выражения
habra.14
habrabot(difrex,1) — All
2014-11-10 01:00:04




#### Содержание



* [Введение][1]
* [Величины, типы и операторы][2]
* [Структура программ][3]
* [Функции][4]
* [Структуры данных: объекты и массивы][5]
* [Функции высшего порядка][6]
* [Тайная жизнь объектов][7]
* [Проект: электронная жизнь][8]
* [Обработка ошибок][9]
* [Регулярные выражения][10]
* Модули
* Проект: язык программирования
* JavaScript и браузер
* Document Object Model
* Обработка событий
* Проект: игра-платформер
* Рисуем на Canvas
* HTTP
* Формы и поля ввода
* Проект: Paint
* Node.js
* Проект: веб-сайт по обмену умениями
* [Песочница для кода][11]

_Некоторые люди, столкнувшись с проблемой, думают: «О, а использую-ка я регулярные выражения». Теперь у них есть две проблемы. Джейми Завински Юан-Ма сказал: «Требуется большая сила, чтобы резать дерево поперёк структуры древесины. Требуется много кода, чтобы программировать поперёк структуры проблемы. Мастер Юан-Ма, «Книга программирования»_ Инструменты и техники программирования выживают и распространяются хаотично-эволюционным способом. Иногда выживают не красивые и гениальные, а просто такие, которые достаточно хорошо работают в своей области – к примеру, если их интегрируют в другую успешную технологию. В этой главе мы обсудим такой инструмент – регулярные выражения. Это способ описывать шаблоны в строковых данных. Они создают небольшой отдельный язык, который входит в JavaScript и во множество других языков и инструментов. Регулярки одновременно очень странные и крайне полезные. Их синтаксис загадочен, а программный интерфейс в JavaScript для них неуклюж. Но это мощный инструмент для исследования и обработки строк. Разобравшись с ними, вы станете более эффективным программистом. [Читать дальше →][12]

[1]: http://habrahabr.ru/post/240219/
[2]: http://habrahabr.ru/post/240223/
[3]: http://habrahabr.ru/post/240225/
[4]: http://habrahabr.ru/post/240349/
[5]: http://habrahabr.ru/post/240813/
[6]: http://habrahabr.ru/post/241155/
[7]: http://habrahabr.ru/post/241587/
[8]: http://habrahabr.ru/post/241776/
[9]: http://habrahabr.ru/post/242609/
[10]: http://habrahabr.ru/post/242695/
[11]: http://eloquentjavascript.net/code
[12]: http://habrahabr.ru/post/242695/#habracut

[>] Jump Start в PowerShell (часть II)
habra.14
habrabot(difrex,1) — All
2014-11-10 11:30:03


Кто, если не ты? Когда, если не сейчас? ![][1] В предыдущей части мы научились запускать PowerShell, разобрались с политикой выполнения сценариев. Поняли, что такое командлеты, знаем, как передавать их по конвейеру и как получить их свойства. Узнали, что PowerShell имеет огромный Help. В этой части мы разберёмся с переменными, узнаем, что они за типы и как к ним обращаться, как их сравнивать и выводить всевозможными способами. Обязательно разберёмся с циклами и напишем несколько функций. [Читать дальше →][2]

[1]: //habrastorage.org/files/20d/9ff/e70/20d9ffe70e974951aa8ef25c750e81a0.png
[2]: http://habrahabr.ru/post/242445/#habracut

[>] Простейший SMTP сервер для разработок
habra.14
habrabot(difrex,1) — All
2014-11-10 11:30:03


Для ленивых и не желающих возиться, сдувать пыль с бубна по настройке exim4/postfix/sendmail предлагается простейший сборщик почты написанный на Python. Его работа заключается в сборе всей почты, посылаемой этому фейковому smtp серверу и складывании её в указанную папку /tmp/mails в виде файлов писем nobody@mail.local.1 с порядковым номером. [Читать дальше →][2]

[1]: #link1
[2]: http://habrahabr.ru/post/242647/#habracut

[>] Новая профессия с первой попытки или искренность на собеседовании
habra.14
habrabot(difrex,1) — All
2014-11-10 12:30:04


Приходилось ли вам или вашим знакомым/друзьям полностью менять свою профессию? Как вы/они это делали? А в каких условиях и за какое время? С каким бекграундом по новой желаемой профессии вы пришли на первое собеседование? **Примем следующие условия:**

1. Тяжелая финансовая ситуация (семье нужны деньги)
2. Кризис в стране. На текущей работе резкое уменьшение зарплаты. Кризис. Финансов меньше, проектов меньше, премий тоже меньше.
3. У других работодателей похожая ситуация.
4. Необходимо как можно скорее сменить профессию.
5. Бекграунд по новой профессии есть, но он не очень велик/глубок.

Если конкретнее, то нужно было сменить профессию на веб-программиста. Не спорю, что порог входа в такую профессию не очень велик. Но а если цели еще вот такие:

1. Устроиться в нормальную, стабильную фирму, а не в ту, «куда возьмут».
2. Чтобы были отличные перспективы, мощный и умный коллектив.
3. Чтобы была возможность очень быстро расти и развиваться.

Можно создать очень привлекательное резюме. И пытаться произвести впечатление на работодателя всякими-разными способами. А может, просто быть искренним? Поделюсь своим опытом. [Читать дальше →][1]

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

[>] Как в Яндексе используют PyTest и другие фреймворки для функционального тестирования
habra.14
habrabot(difrex,1) — All
2014-11-10 18:00:04


Всем привет! Меня зовут Сергей, и в Яндексе я работаю в команде автоматизации тестирования сервисов монетизации. Перед каждой командой, которая занимается задачами автоматизации тестирования, встает вопрос: «Какой [фреймворк|инструмент] выбрать для написания своих тестов?» В этом посте я хочу помочь вам на него ответить. Если быть конкретнее, речь пойдет об инструментах тестирования на языке Python, но многие из идей и выводов можно распространить на другие языки программирования, поскольку подходы часто не зависят от конкретной технологии. [![][1]][2] В Python существует множество инструментов для написания тестов и выбор между ними неочевиден. Я опишу интересные варианты использования PyTest и расскажу о его [плюсах|минусах|неявных возможностях]. В статье вы найдёте развёрнутый пример использования [Allure][3], который служит для создания простых и понятных отчётов автотестов. Также в примерах будет применяться фреймворк для написания матчеров — [Hamcrest][4] для Python. Надеюсь, что в итоге, те, кто сейчас в поиске инструментов для тестирования, смогут на основе изложенных примеров быстро внедрить функциональное тестирование в своем окружении. Те же, кто уже использует какой-то инструмент, смогут узнать новые подходы, варианты использования и концепции. [Читать дальше →][5]

[1]: //habrastorage.org/files/54e/5d1/310/54e5d1310790471ca78a084c7b15879a.png
[2]: http://habrahabr.ru/company/yandex/blog/242795/
[3]: http://habrahabr.ru/company/yandex/blog/232697/
[4]: http://hamcrest.org/
[5]: http://habrahabr.ru/post/242795/#habracut

[>] [Из песочницы] Yield в CodeGear RAD Studio (Delphi 2007 for Win32)
habra.14
habrabot(difrex,1) — All
2014-11-10 18:30:03


Привет хабр! Понадобилось внезапно портировать программу с C# на Delphi. В программе на C# активно использовался [yield][1]. Погуглив просторы интернета в надежде не заниматься изобретением велосипеда, удалось найти реализацию yield для Win32 на базе [фиберов][2] для [Embarcadero Delphi 2009][3] и выше, но вот беда — требовалось сделать порт под CodeGear RAD Studio для версии Delphi 2007, в которой ещё отсутствовали [обобщённые типы][4] и [анонимные методы][5]. Менять версию Delphi на более позднюю было нельзя и поэтому пришлось переписать найденную реализацию yield для более ранней версии. Взяв [исходник юнита][6] с реализаций yield для Delphi 2009 и выше за авторством [Andriy Gerasika][7] я его переделал для Delphi 2007. [Читать дальше →][8]

[1]: http://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx
[2]: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682661%28v=vs.85%29.aspx
[3]: http://www.embarcadero.com/products/delphi
[4]: https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BE%D0%B1%D1%89%D1%91%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#Object_Pascal
[5]: https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%D0%BD%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F
[6]: http://cdn.gerixsoft.com/sites/gerixsoft.com/files/DelphiYield.zip
[7]: mailto:andriy.gerasika@gerixsoft.com
[8]: http://habrahabr.ru/post/242737/#habracut

[>] АНБ выложило на GitHub утилиту для обеспечения сетевой безопасности
habra.15
habrabot(difrex,1) — All
2015-07-22 20:00:02


[![][1]][2] Агентство национальной безопасности (АНБ) США выпустило open-source инструмент для обеспечения сетевой безопасности госорганизаций и коммерческих компаний. Система называется SIMP (Systems Integrity Management Platform), ее код размещен в [репозитории АНБ на GitHub][3]. В официальном [пресс-релизе][4] ведомства говорится, что этот инструмент призван помочь компаниям защитить свои сети от хакерских атак. [Читать дальше →][5]

[1]: https://habrastorage.org/files/e81/a3a/215/e81a3a2155a54074a3285cd1f4982ab8.jpg
[2]: http://habrahabr.ru/company/pt/blog/263305/
[3]: https://www.nsa.gov/applications/links/notices.cfm?address=https://github.com/nationalsecurityagency
[4]: https://www.nsa.gov/public_info/press_room/2015/NSA_Shares_Cyber_Tool.shtml
[5]: http://habrahabr.ru/post/263305/#habracut

[>] [Перевод] Поиск по геному с помощью Wolfram Language (Mathematica) и HadoopLink
habra.15
habrabot(difrex,1) — All
2015-07-22 21:00:02






Перевод поста Пола-Жана Летурно (Paul-Jean Letourneau) "[Searching Genomes with Mathematica and HadoopLink][1]". Код, приведенный в статье, можно скачать [здесь][2].

----

_Примечание: этот пост написан как продолжение поста [Большие массивы данных в Mathematica с HadoopLink][3]_.

----

**Примечание переводчика**: автор данной статьи под термином _геном_ понимает всю совокупность генов некоторого структурного элемента живой материи. Это несколько отличается от стандартных определений, близких по смыслу, в которых подразумевается либо вся совокупность генов конкретного вида (Ridley, M. (2006). Genome. New York, NY: Harper Perennial), либо полный набор генетических инструкций, которые можно найти в клетке (). В данном посте будем пользоваться представлением автора.

----

В моём предыдущем [посте][4] я описал, как писать алгоритмы **MapReduce** ([вики][5]) в [_Mathematica_][6] с помощью пакета [_HadoopLink_][7]. Теперь давайте копнём немного глубже и напишем более серьёзный алгоритм **MapReduce**. Я уже писал раньше о некоторых [занятных возможностях в сфере геномики в Wolfram|Alpha][8]. Если вам это интересно, вы даже можете осуществлять [поиск по человеческому геному][9] определённых последовательностей ДНК. Биологам часто требуется найти расположение фрагмента ДНК, которые они нашли в лаборатории, для определения того, какому животному принадлежит этого фрагмент, или из какой он хромосомы. Давайте используем _HadoopLink_ для создания геномной поисковой системы! [Читать дальше →][10]

[1]: http://blog.wolfram.com/2014/02/21/searching-genomes-with-mathematica-and-hadooplink/
[2]: http://blog.wolfram.com/data/uploads/2014/02/hadooplink-part2.cdf
[3]: http://blog.wolfram.com/2013/07/31/mathematica-gets-bigdata-with-hadooplink/
[4]: http://blog.wolfram.com/2013/07/31/mathematica-gets-bigdata-with-hadooplink/
[5]: https://ru.wikipedia.org/wiki/MapReduce
[6]: http://www.wolfram.com/mathematica/
[7]: https://github.com/shadanan/HadoopLink
[8]: http://blog.wolframalpha.com/2010/03/10/did-you-know-that-wolframalpha-knows-your-dna/
[9]: http://www.wolframalpha.com/examples/GenomicsAndMolecularBiology.html
[10]: http://habrahabr.ru/post/263307/#habracut

[>] [Из песочницы] Перевод книги «Kingpin». Глава 34. «DarkMarket»
habra.15
habrabot(difrex,1) — All
2015-07-22 23:00:02


Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про [«одного своего знакомого»][1]. Начало и план перевода тут: [«Шкворень: школьники переводят книгу про хакеров»][2]. «Глава 34» была выбрана участником летнего лагеря, который пожелал остаться анонимным, в качестве самостоятельно проекта. _(Любое сходство с «правилом 34» является случайным)_

#### DarkMarket

Парень сидит на жестком полированном деревянном стуле и злобно смотрит в камеру. На фоне облезлой штукатуренной стены, он в одних трусах и держит в руках табличку. На ней большими буквами написано: «МОЕ НАСТОЯЩЕЕ ИМЯ — МЕРТ ОРТАЧ. Я КРЫСА, СВИНЬЯ, Я РЕПОРТЕР(СТУКАЧ) МЕНЯ ПОИМЕЛ CHA0.» Появление этого фото на форуме DarkMarket в мае 2008-го заставило Муларского спешно вернуться в комнату коммуникаций NCFTA. Командному центру было бы полезно знать, что один из админов Мастера Сплинтра похитил и пытал информатора. ![][3] _Если у кого есть рекомендации, как что-то перевести лучше, в конце поста приведен оригинал главы_ [Читать дальше →][4]

[1]: https://en.wikipedia.org/wiki/Max_Butler
[2]: http://habrahabr.ru/post/261491/
[3]: https://habrastorage.org/files/f08/ee5/73a/f08ee573a3d44214abdefeaebe5c64ba.jpg
[4]: http://habrahabr.ru/post/263293/#habracut

[>] [Перевод] Как программируют слабовидящие программисты?
habra.15
habrabot(difrex,1) — All
2015-07-23 04:00:03







Это действительно не статья. Это компиляция самых интересных, на мой взгляд, ответов на заглавный вопрос: «» из обсуждения на Quora.com.


Ответы людей меня сильно впечатлили. Я никогда не думал, что люди сталкиваются с  проблемами и не только не отчаиваются, а мужественно и смело эти проблемы преодолевают, сохраняя при этом оптимизм и радость к жизни. Это поразительно.
Как совсем другом, особом, вебе, где специально обученные разработчики всё для них подготовили и по вечерам все вместе танцуют под луной.
Это не так. не так.
Нет никаких специально обученных разработчиков.
Нет никакого особого веба.
Веб один и он общий для всех. И никаких других разработчиков, кроме нас с вами, в нём нет. И именно мы с вами несём за него ответственность.
Именно мы с вами — те люди, которые делают его таким, как он есть. Именно из наших с вами рук пользователи получают иным образом ограничены. Это — социальная ответственность, хотим мы этого или нет.
Давайте же делать веб чуточку лучше, доступнее для всех и каждого, и пусть никто не уйдёт обиженным.



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

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

[>] [Перевод] Алгоритмы разума
habra.15
habrabot(difrex,1) — All
2015-07-23 13:30:04




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

Так говорит Арам Харроу (Aram Harrow), профессор физики Массачуссетского технологического в своей статье [«Почему сейчас самое подходящее время для изучения квантовых вычислений»][1]. Он считает, что с научной точки зрения энтропия не могла быть полностью изученной, пока технология парового двигателя не дала толчок к развитию термодинамики. Квантовые вычисления появились из-за потребности имитировать квантовую механику на компьютере. Так и алгоритмы человеческого разума могут быть изучены с появлением нейронных сетей. Энтропия используется во многих областях: например, при [смарт кропе][2], в [кодировании][3] видео и изображений; в [статистике][4]. [![image][5]][6] [Читать дальше →][7]

[1]: http://arxiv.org/abs/1501.00011
[2]: https://i.onthe.io/crop
[3]: http://habrahabr.ru/company/io/blog/261651/
[4]: https://onthe.io/learn+%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B+%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F+%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85+%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA
[5]: https://habrastorage.org/getpro/habr/post_images/e04/35e/403/e0435e40358c0c2e7406ece92db73d1c.jpg
[6]: http://habrahabr.ru/company/io/blog/263229/
[7]: http://habrahabr.ru/post/263229/#habracut

[>] Winium.Desktop: Selenium для desktop-приложений под Windows
habra.15
habrabot(difrex,1) — All
2015-07-23 13:30:05


![][1] Привет, меня зовут Глеб, и я занимаюсь автоматизацией тестирования в 2ГИС. Больше года назад я писал о нашем инструменте [Cruciatus][2] — с его помощью мы тестируем UI desktop-приложений под Windows. Cruciatus отлично решает задачу доступа к контролам, но тесты пишутся строго на C#. Это мешает шарить знания и опыт между тестировщиками под разные платформы: mobile, web и desktop. Решение мы увидели в Selenium — пожалуй, самом известном инструменте для автоматизации тестирования. В этой статье я расскажу, как мы скрестили Cruciatus и Selenium и как тестировать интерфейс Windows desktop-приложений с помощью привычных Selenium-биндингов. [Читать дальше →][3]

[1]: https://habrastorage.org/files/a3d/f42/5eb/a3df425ebf264451a05d9c801f556e5e.jpg
[2]: http://habrahabr.ru/company/2gis/blog/220337/
[3]: http://habrahabr.ru/post/263347/#habracut

[>] Почему программировать легко
habra.15
habrabot(difrex,1) — All
2015-07-23 13:30:05


Прочитал я тут на Хабре отличную статью [«Почему программировать так тяжело?»][1] и сразу проникся к ней симпатией. «Боже мой!» — подумал я. Наконец-то можно показать толковый и взвешенный текст некоторым моим знакомым, считающим меня высокооплачиваемым бездельником, объяснить родственникам, что это за работа такая — «кнопки целый день тыкать» и предоставить защитившим кандидатские диссертации друзьям доказательства того, что и я тут тоже не коровам хвосты кручу в рабочее время. «Какая прекрасная статья!» — думал я. Наконец-то кто-то понял всю суть работы программиста и объяснил её сложность понятным языком! И лишь одной малюсенькой детали в этой статье не хватало. Правды. ![][2] Правды о том, что программировать легко и приятно, что сложности надуманы, а плюсы работы — недооценены. И я думаю стоит исправить эту несправедливость, написав такую статью. И нет, я не буду тут скатываться в трёп о высоких зарплатах, востребованности на рынке и высокой мобильности. Это всё ведь не о программировании, это о стиле жизни программиста, что не совсем то. А мы ведь на Хабре, а не на Мегамозге каком-то, поэтому давайте рассмотрим именно программирование, во всей его завораживающей красоте и устрашающей мощи! [Читать дальше →][3]

[1]: http://habrahabr.ru/company/hexlet/blog/260949/
[2]: https://habrastorage.org/files/b4f/c0d/e77/b4fc0de770054e8eba83b7ca6e51aeea.png
[3]: http://habrahabr.ru/post/263331/#habracut

[>] [recovery mode] Перевыпускаем сертификат с SHA-2 — если Webnames не идет к Магомету…
habra.14
habrabot(difrex,1) — All
2014-11-10 19:30:02


![][1]Как было [объявлено 5 сентября 2014 года][2], разработчики браузера Chromium уже не очень жалуют алгоритм хеширования SHA-1. Сам вид адресной строки браузера будет давать понять посетителям https-сайтов, «закрытых» такими сертификатами, что с сайтом что-то «не те». Вид строки будет меняться со временем, давая время для более-менее плавного перехода, а в конце сертификаты с SHA-1 перестанут считаться вообще сколько-нибудь безопасными: ![][3] [Читать дальше →][4]

[1]: //habrastorage.org/files/554/c73/837/554c73837b8a4c758c3ce9af81683177.png
[2]: http://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html
[3]: //habrastorage.org/files/7fc/0a7/83b/7fc0a783becc4f7e8176cb188165d9dc.png
[4]: http://habrahabr.ru/post/242799/#habracut

[>] network manager + автоматизация http-логина в wifi
habra.14
habrabot(difrex,1) — All
2014-11-10 22:00:04


Пост будет коротким, но очень полезным. abstract: Есть масса wifi-хот-спотов, которые просят сделать какую-нибудь глупость при подключении. Ввести пароль в http-форме, поставить чекбокс «согласен с продажей почки в обмен на интернет» и т. д. Это задалбывает, особенно, если из wifi периодически выкидывает. В посте предлагается простое решение для автоматизации логина с помощью хуков Network Manager.

## Подготовка

Нам надо понять куда кого как посылать, чтобы оно заработало. Ставим firebug или любой другой похожий плагин. Включаем, идём в вкладку 'net', включаем **persistent** (это важно), логинимся. Получаем вот такое: ![][1] Находим POST (если их несколько — методом перебора и комбинирования), выбираем copy as curl, сохраняем куда-нибудь на будущее. Дальше находим uuid нашего коннекта — в файле /etc/NetworkManager/system-connections/our\_wifi. Пишем скрипт (всё ниже — от рута) в каталоге /etc/NetworkManager/dispatcher.d/, например, /etc/NetworkManager/dispatcher.d/02-**our\_wifi**-auto [Читать дальше →][2]

[1]: //habrastorage.org/files/d3f/0a2/2e1/d3f0a22e168b4697be55c538d7080fd5.png
[2]: http://habrahabr.ru/post/242819/#habracut

[>] [Перевод] Рушим капчу SilkRoad 2.0
habra.14
habrabot(difrex,1) — All
2014-11-10 23:30:04


![][1] _Эта статья является продолжением моего предыдущего топика. Вы просили, и я публикую._ Для начала: я был крайне удивлен, что код из первой статьи действительно побеждал капчу SilkRoad. Люди реально стали интересоваться темным интернетом, и, как Вы знаете, появился SillRoad 2.0 после закрытия первого его товарища (хотя второй, тоже недавно был закрыт). О взломе капчи мы поговорим с Вами под катом. [Читать дальше →][2]

[1]: //habrastorage.org/files/5ff/316/0af/5ff3160afa964a19b572ee245ef01ecb.png
[2]: http://habrahabr.ru/post/241263/#habracut

[>] «Never say never» или Работаем с таймзонами правильно
habra.14
habrabot(difrex,1) — All
2014-11-11 00:30:04


Эта статья рассказывает о проблемах, которые поджидают программиста, работающего с часовыми поясами. В теории, вроде, всё хорошо, просто и понятно, но жизнь — штука сложная, и на практике, порой, возникают совершенно неожиданные ситуации. **TL;DR: Работа с таймзонами — это боль и унижение. Никогда не работайте с таймзонами!** Итак, [все][1] [кругом][2] [твердят][3] вам, что при получении времени от пользователя нужно сразу же переводить его в UTC, работать со временем нужно только в UTC и хранить время тоже нужно строго в UTC. Совет, на первый взгляд, выглядит разумным, и следование ему делает вашу жизнь проще… Если только ваша программа не предполагает сложной работы с датами. Записать в базу данных дату и время регистрации пользователя на сайте? Сохранить время отправки сообщения или дату создания заказа в интернет-магазине? Вывести сообщение в лог с указанием даты-времени? Используйте UTC и всё будет в порядке, можете даже не читать эту статью дальше. Любое текущее время можно совершенно спокойно конвертировать в UTC и забыть о проблемах. Но что, если мы хотим работать с временем в будущем? Или в прошлом? Например, если мы пишем сервис календаря, или сервис для отложенной отправки сообщений? [Читать дальше →][4]

[1]: http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/
[2]: http://habrahabr.ru/company/mailru/blog/242615/
[3]: http://asvetlov.blogspot.ru/2011/02/date-and-time.html
[4]: http://habrahabr.ru/post/242645/#habracut

[>] SpeechMarkup API — превращаем речь в данные
habra.14
habrabot(difrex,1) — All
2014-11-11 03:00:03


![][1] В статье пойдет речь о том, как из любого _запроса на естественном языке_ получить реальные данные, с которыми может работать ваше приложение. А именно, о [REST API сервиса SpeechMarkup][2], который преобразует обычную строчку текста в JSON со всеми найденными _смысловыми сущностями_ с конкретными данными в каждой из них. _Да-да, это та самая технология, которая лежит в основе любого голосового ассистента и используется в поисковиках._ Она позволяет однозначно интерпретировать запрос и «понять», о чем говорит пользователь, а затем вернуть вашему приложению результат в виде обычного набора данных. В статье я расскажу, для чего можно использовать данный API и приведу [небольшой пример работающего приложения][3]. [Читать дальше →][4]

[1]: //habrastorage.org/files/5ce/3d2/6b3/5ce3d26b3d804cae9fc86c074ea01d2c.png
[2]: http://markup.dusi.mobi
[3]: http://markup.dusi.mobi/demo/index.html
[4]: http://habrahabr.ru/post/242823/#habracut

[>] Установка, настройка и использование сканера уязвимостей сервера rkhunter
habra.14
habrabot(difrex,1) — All
2014-11-11 16:30:04


На хабре не раз было упомянуто приложение под названием rkhunter. Хотелось бы остановиться на нем по подробней. Rkhunter — это сканер различных видов локальных (потенциальных) уязвимостей (бэкдоров, эксплоитов и руткитов) со своей регулярно обновляемой базой. Он написан на bash и perl, поэтому будет работать под любой серверной ОС на базе unix без каких-либо проблем. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/1cc/706/cf5/1cc706cf5f1e4e2c8430118fc29495cf.gif
[2]: http://habrahabr.ru/post/242865/#habracut

[>] Интервью: Тим Мессершмидт, PayPal
habra.14
habrabot(difrex,1) — All
2014-11-11 18:00:13


![image][1] Многие читатели Хабра слушали доклад Тима Мессершмидта, который отвечает за связи PayPal с разработчиками в странах Европы, Ближнего Востока и Африки на прошедшей недавно конференции MBLTDev. Речь шла об аутентификации и сложностях, с которыми сталкиваются специалисты, пытаясь защитить пользовательские данные. Технический директор Redmadrobot Артур Сахаров [mc\_murphy][2] поймал Тима за кулисами мероприятия и поговорил с ним о безопасности, джейлбрейке и языках программирования. **В своем выступлении вы много говорили о том, что качество UX зачастую вступает в противоречие с безопасностью — в особенности, когда речь идет о “чувствительной” информации, как например, в банковских приложениях. Расскажите об этом, пожалуйста, поподробнее.** В PayPal мы применяем двухфакторную авторизацию: при подтверждении нового устройства используем его аппаратные идентификаторы и подтверждаем их одноразовыми кодами доступа, которые рассылаются через SMS. Когда пользователь регистрируется, ему по электронной почте также приходит письмо с просьбой подтвердить авторизацию. То есть мы предлагаем целый ряд решений в области безопасности помимо обычной регистрации и последующего входа по паролю. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/8f1/3f3/617/8f13f3617d6820cedd5b42ec2f90a7f0.jpg
[2]: http://habrahabr.ru/users/mc_murphy/
[3]: http://habrahabr.ru/post/242827/#habracut

[>] Получение root доступа к ONT Sercomm RV6688 методом замыкания контактов
habra.15
habrabot(difrex,1) — All
2015-07-23 14:00:04


Как-то раз захотелось автору чего-то нового на замену хорошему, и решил он подключиться к GPON от одного известного оператора. И была автору поставлена в квартиру волшебная коробочка, через которую можно было звонить по телефону, выходить в интернет и смотреть телевизор, а заведен в нее при этом настоящий оптический кабель. И зовут эту коробочку optical network terminal (ONT) Sercomm RV6688, сделана она по заказу этого самого оператора и раскрашена соответствующим логотипом. Работает коробочка. А автору не сидится, и опять захотелось чего-то большего, и решил он разобрать(ся), как же все это волшебство внутри коробочки получается и можно ли им тонко управлять. Но какое может быть волшебство без сюрпризов. [Читать дальше →][1]

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

[>] Стековое программирование с человеческим лицом
habra.14
habrabot(difrex,1) — All
2014-11-11 21:00:03


Думаю, многие из вас находили в интернете статьи и книги о стековом программировании и языке Forth. Сперва волна энтузиазма: как всё просто, логично, понятно и мощно! И почему же эти идеи имеют такое незначительное распространение? Почему так мало программистов реально используют языки вроде Форта? Через какое-то время подступает волна разочарования: да, интересная мысль, но как же тяжело читать исходный код, как же муторно ведётся работа с переменными, строками и дробными числами! Интересная игрушка, полезная группе байтослесарей, не более. ![image][1] Часто на этом всё и заканчивается. Но лично я никак не мог примириться с мыслью о том, что изящное конкатенативное программирование так и останется в тени других идей. Да, трудности с чтением исходного кода. Да, синдром одной строки. Да, каждый раз для понимания алгоритма приходится в воображении транслировать программу и представлять себе стек, читая исходный код. Но неужели это те недостатки, которые обязательно присущи стековым языкам и без которых стековое программирование перестало бы быть стековым? Неужели никак нельзя хотя бы сгладить подобные недостатки и облегчить жизнь программистам? Оказывается, можно и нужно! [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/e8a/3de/65e/e8a3de65e55f988c9e154f4ca5174be2.gif
[2]: http://habrahabr.ru/post/242821/#habracut

[>] Какие курсы вы хотели бы видеть в программе онлайн-обучения от Mail.Ru Group?
habra.15
habrabot(difrex,1) — All
2015-07-23 15:00:02


![][1] На протяжении последних полутора лет мы регулярно выкладываем в сеть видеозаписи курсов с наших образовательных проектов — Технопарка и Техносферы Mail.Ru, а с февраля этого года также постим их в нашем блоге на Хабре. [Методы тестирования web-приложений][2], [углубленное программирование на Java][3], [введение в Hadoop][4], [методы построения систем информационного поиска][5] — вот лишь несколько примеров последних тем, с которыми мы предлагали ознакомиться онлайн всем желающим. За это время мы получили от вас множество плюсов, позитивных отзывов, конструктивных предложений, а главное — примерно 6000 (да-да, это правда!) просьб превратить всю эту историю в полноценные онлайн-курсы. Сейчас мы активно размышляем над возможностью реализации такого проекта. Ведь у нас физически нет возможности принять в Технопарк и Техносферу всех желающих, и кроме того, далеко не всем нужно проходить эти программы полностью. А так в открытом доступе находились бы курсы по веб-разработке и анализу больших данных, которые любой желающий мог бы проходить в удобное время и в своем собственном темпе. Как нам это видится, онлайн-обучение IT-специалистов должно состоять из просмотра лекций и семинаров и, что особенно важно, выполнения практических заданий на проверку усвоенного материала. Ведь получить практические навыки можно, решая не просто тесты из десяти вопросов, а действительно нетривиальные задачи. Был бы вам полезен такой проект? И если да, какие курсы и дисциплины вы хотели бы видеть в учебной программе в ней первую очередь? Заявки и предложения ждем по адресу или мне в личку. Заранее спасибо вам за обратную связь! [][6]

[1]: https://habrastorage.org/files/020/14a/6e5/02014a6e5d8345ccbaaf21b5bc14d540.png
[2]: http://habrahabr.ru/company/mailru/blog/260105/
[3]: http://habrahabr.ru/company/mailru/blog/259125/
[4]: http://habrahabr.ru/company/mailru/blog/258045/
[5]: http://habrahabr.ru/company/mailru/blog/257119/
[6]: http://habrahabr.ru/post/263361/#habracut

[>] Почему непросто показать все цвета в одномерном пространстве, и сколько раз это можно сделать
habra.15
habrabot(difrex,1) — All
2015-07-23 17:30:07


Яндекс умеет подсказывать цвета по их названию и находить близкие к ним. Некоторое время назад эту подсказку (внутри себя мы называем такие штуки «колдунщиками») пришлось переделывать, чтобы она соответствовала виду поисковых результатов после их редизайна. И мы воспользовались этим поводом, чтобы поработать над ним всерьёз, — ведь оказалось, что расположить цвета линейно — очень нетривиальная задача. [![][1]][2] В этом посте я хочу рассказать, какую интересную алгоритмическую задачу, которая потребовала погружения в теорию цвета, нам пришлось решать почти всем Яндексом, чтобы сделать новый колдунщик таким, каким его задумала команда. [Читать дальше →][3]

[1]: https://habrastorage.org/files/f5b/6dd/251/f5b6dd251c324dbaa7da61b62e1249bb.png
[2]: http://habrahabr.ru/company/yandex/blog/263375/
[3]: http://habrahabr.ru/post/263375/#habracut

[>] [Перевод] Рефакторинг: выделяй метод, когда это имеет смысл
habra.15
habrabot(difrex,1) — All
2015-07-23 17:30:08


Сейчас уже сложно вспомнить тот момент, когда я впервые осознал, что выделять функции из больших кусков полезного кода, вообще-то, хорошая идея. То ли я получил это знание из [“Совершенного кода”][1], то ли из [“Чистого кода”][2] — сложно вспомнить. В целом, это не особенно важно. Мы все знаем, что должны разносить бизнес-логику по хорошо проименованным функциям. Самая длинная функция, которую я когда-либо видео в жизни была длиной в 5к строк. Я лично знаком с тем “программистом”, что написал тот код. Помню, как впервые встретил эту функцию. Не сложно предсказать, что моей первой реакцией было: “Какого чёрта!!! Кто произвёл на свет этот кусок дерьма???” Да, представьте себе, этот “программист” до сих пор слоняется тут в офисе, где я сейчас работаю над текущими проектами. Не хочу углубляться в эту историю, но хочу упомянуть, что та функция длиной в 5к строк была ядром программы, размером примерно в 150к строк. Разработка программы в конце концов зашла в тупик, из-за той ужасной функции, которая крайне негативно влияла на архитектуру приложения. В конце концов было принято решение о переписывании приложения с нуля. [Читать дальше →][3]

[1]: http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1
[2]: http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_2
[3]: http://habrahabr.ru/post/263371/#habracut

[>] [Из песочницы] Первый опыт участия в kaggle-конкурсе и работа над ошибками
habra.15
habrabot(difrex,1) — All
2015-07-23 17:30:08


Хочу поделиться опытом своего первого участия в kaggle конкурсе (учебный [Bag of Words][1]). И хотя мне не удалось достичь поражающих воображение результатов, я расскажу о том, как искала и находила способы улучшить примеры “учебника” (для этого сами примеры тоже кратко опишу), а также остановлю внимание на разборе своих просчетов. Должна предупредить, что статья будет интересна прежде всего новичкам в области text mining. Тем не менее, большинство методов я описываю кратко и упрощенно, давая при этом ссылки на более точные определения, поскольку цель моя — обзор практики, а не теории. К сожалению, конкурс уже завершился, но прочитать материалы к нему все равно может быть полезно. Ссылка на код к статье [тут][2]. [Читать дальше →][3]

[1]: https://www.kaggle.com/c/word2vec-nlp-tutorial
[2]: https://github.com/Jaylla/NlpKaggleTraining
[3]: http://habrahabr.ru/post/263399/#habracut

[>] [Из песочницы] Snipper — маленький помощник программиста
habra.15
habrabot(difrex,1) — All
2015-07-23 19:00:03


**Snipper** — простое, консольное приложение, _написанное на PHP_, для удобного импорта фрагментов кода из популярного сервиса [GitHub Gist][1].

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

В один прекрасный день я понял, что порядком задолбался переписывать мелкие файлы конфигураций из проекта в проект и стал искать ответ на вопрос — как избавить себя от страданий и не добавить новых? Рассмотрев, как мне показалось, достаточное количество решений я взялся писать собственное консольное «приложение» для загрузки часто используемых файлов с кодом (речь идёт именно о файлах а не о работе с буфером обмена). Для хранения выбрал сервис от **GitHub**, так как в работе без него никак (готовых библиотек для работы с API великое множество), а для сипатичного внешнего вида — знакомый всем компонент [Console][2] из [арсенала Symfony][3]. [Что из этого получилось?][4]

[1]: https://gist.github.com/
[2]: http://symfony.com/doc/current/components/console/introduction.html
[3]: http://symfony.com/components
[4]: http://habrahabr.ru/post/263379/#habracut

[>] Билайн автоматически меняет html теги
habra.15
habrabot(difrex,1) — All
2015-07-23 22:00:04


[![][1]][2] [![][3]][4] _HTML код до и после работы Билайна. Найдите отличия!_ Недавно я написал две статьи про оператора связи Билайн: [Билайн автоматически добавляет тулбар с поиском Mail.Ru][5] [Билайн автоматически добавляет тулбар и изменяет дизайн сайтов][6] В тот раз изменения, которые вносил оператор связи никак не сказывались на работоспособности интернет страниц. Было неприятно, но сайты работали. Во второй раз [представитель Билайна подтвердила][7], что была "**программная ошибка**". Теперь оператор связи меняет переменную **src** у тега **iframe** и фреймы перестают работать! [Читать дальше →][8]

[1]: https://habrastorage.org/files/e8e/9a3/707/e8e9a3707cdb4e69b9cb6d06bf4945be.png
[2]: http://habrahabr.ru/post/263429/#habracut
[3]: https://habrastorage.org/files/438/f9d/334/438f9d3346d748b9a5551ed16d46b2ef.png
[4]: http://habrahabr.ru/post/263429/#habracut
[5]: http://habrahabr.ru/post/257133/
[6]: http://habrahabr.ru/post/262687/
[7]: http://habrahabr.ru/post/262687/#comment_8510733
[8]: http://habrahabr.ru/post/263429/#habracut

[>] Изоморфные JavaScript-приложения с Catberry.js
habra.14
habrabot(difrex,1) — All
2014-11-12 10:30:11


![][1] Catberry.js — это фреймворк для разработки изоморфных JavaScript-приложений на node.js с использованием модульной архитектуры и быстрых механизмов рендеринга. Этот фреймворк позволяет написать модуль приложения один раз и использовать его как на сервере для рендеринга страниц для поисковых роботов, так и в браузере для одностраничного приложения, запрашивая только данные для шаблонов. [Читать дальше →][2]

[1]: //habrastorage.org/files/635/80d/1f3/63580d1f3304402da4836ce103b81251.png
[2]: http://habrahabr.ru/post/242909/#habracut

[>] [Перевод] H.265/HEVC. Оптимизация под архитектуру Intel
habra.14
habrabot(difrex,1) — All
2014-11-12 13:00:03


![][1] Текущую ситуацию в области медиакодеков, можно описать буквально несколькими словами: простые решения себя исчерпали. С каждым годом материал для кодирования становится все сложнее, а требования к качеству результата – все выше. В этих условиях, когда лобовая атака уже не дает эффекта, особое значение приобретает оптимизация как кодирования, так и воспроизведения медиа под конкретные платформы с использованием их самых современных возможностей. Чего можно добиться такой оптимизацией, мы покажем на примере перспективного кодека Н.265. В качестве целевой платформы рассмотрим серверное решение Intel — процессор Xeon. [Читать дальше →][2]

[1]: //habrastorage.org/files/5c7/10e/83d/5c710e83da36455da640764f838bcc9c.png
[2]: http://habrahabr.ru/post/242781/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 210