RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 210
[>] [Перевод] Реализация поискового движка с ранжированием на Python (Часть 2)
habra.15
habrabot(difrex,1) — All
2015-07-31 14:30:06


_В [предыдущей части][1] мы построили индекс, но мы всё ещё не можем выполнять запросы по нему. Про это я и расскажу в этой статье._

#### Выполнение запросов к индексу

Итак, есть два типа запросов, которые мы хотим обработать: стандартные запросы, где по крайней мере одно из слов в запросе появляется в документе и запросы с фразой, где все слова запроса встречаются в документе в том же порядке. Однако, прежде чем мы начнем, я бы рекомендовал обработать запрос так же, как мы обрабатывали документы, когда строили индекс, преобразовывая все слова, делая все буквы строчными и удаляя знаки препинания. Я не буду вдаваться в это, так как это тривиально, но это должно быть сделано перед выполнением запроса. _Примечание: во всех примерах кода ниже, каждая функция будет принимать в переменную с именем ‘invertedIndex’, которая генерируется в предыдущей части статьи._ Мы собираемся реализовать стандартные запросы в первую очередь. Простой способ реализовать их — разбить запрос на слова (маркеры, как описано выше), получить список за каждое слово, документы в которых они встречаются, а затем объединить все эти списки. Вот как мы выполним запрос для одного слова: [Читать дальше →][2]

[1]: http://habrahabr.ru/post/263823/
[2]: http://habrahabr.ru/post/263913/#habracut

[>] [Перевод] Очисти код свободными монадами
habra.15
habrabot(difrex,1) — All
2015-08-02 01:30:04


_От переводчика: Это вольный перевод статьи [«Purify code using free monads»][1] Габриэля Гонзалеса, посвященный использованию свободных монад для представления кода как синтаксического дерева с последующей управляемой интерпретацией. На хабре имеются другие статьи Габриэля — [«Кооперативные потоки с нуля в 33 строках на Хаскеле»][2] и [«Чем хороши свободные монады»][3]. Все замечания переводчика выделены курсивом. По всем замечаниям, связанным с переводом, обращайтесь в личку._ Опытные программисты на Хаскеле часто советуют новичкам делать программы настолько [чистыми][4], насколько это возможно. _Функция называется чистой, если она детерминированная (возвращаемое значение однозначно определяется значениями всех формальных аргументов) и не имеет побочных эффектов (то есть не изменяет состояние среды исполнения). В классической математике, λ-исчислении и комбинаторной логике все функции чистые._ Чистота предоставляет множество практических преимуществ:

* можно формально доказать какие-то свойства написанного кода,
* кроме того, можно легко обозревать код и сказать, что он делает,
* наконец, можно прогнать через [QuickCheck][5].

Для демонстрации я буду использовать такую простенькую программу `echo`:

import System.Exit

main = do x <- getLine
putStrLn x
exitSuccess
putStrLn "Finished"

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

[1]: http://www.haskellforall.com/2012/07/purify-code-using-free-monads.html
[2]: http://habrahabr.ru/post/195274/
[3]: http://habrahabr.ru/post/254715/
[4]: https://ru.wikipedia.org/wiki/Чистота_функции
[5]: http://hackage.haskell.org/package/QuickCheck
[6]: http://habrahabr.ru/post/263959/#habracut

[>] Python Meetup 31.10.14: асинхронность и soft skills
habra.14
habrabot(difrex,1) — All
2014-11-19 14:00:03


Meetup. Так получилось, что последняя пятница месяца выпала как раз на 31 октября. Это, конечно, не могло не сказаться на формате проведения встречи. Духи играли с техникой, а наши докладчики рассказывали об асинхронной работе в JavaScript и Python, преимуществах open source ERP и CRM системы Odoo и жаловались, как же не просто быть хорошим программистом, но плохим человеком. [Читать дальше →][1]

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

[>] Mosh — SSH с блекджеком и роумингом
habra.14
habrabot(difrex,1) — All
2014-11-19 15:00:03


На Хабре [пару лет назад][1] уже упоминали Mosh, но, кажется, есть смысл напомнить хабражителям об этой великолепной программе, которая, вполне возможно, станет для кого-то одним из самых приятных открытий и облегчит жизнь. Забегая наперед, сразу спойлер — для mosh **не нужны** права суперпользователя, он **не является демоном**, и не занимается аутентификацией и шифрованием (это остается на плечах ssh). Разработали его в MIT, активно развивают, и поддерживают для всех платформ и дистрибутивов. ![][2] Чем же mosh лучше традиционного ssh-client, какие проблемы решает и почему вы, скорее всего, на него перейдете? [Читать дальше →][3]

[1]: http://habrahabr.ru/post/141912/
[2]: //habrastorage.org/files/35c/3dc/e8d/35c3dce8dd8a429da99742db364fb275.png
[3]: http://habrahabr.ru/post/243651/#habracut

[>] Анти-DDoS Voxility: чему нас научила война пиццерий
habra.14
habrabot(difrex,1) — All
2014-11-19 15:00:03


Вы даже не представляете, какие драмы могут разворачиваться в такой мирной, казалось бы, отрасли, как торговля пиццей. В одной из них довелось поучаствовать и нам, как облачному провайдеру: в декабре 2013 года «Империя пиццы» — один из клиентов [Cloud4Y][1] и крупнейшая сеть доставки пиццы в Москве и Московской области, начала интенсивную экспансию на новые территории, на которых уже присутствовали другие игроки. ![][2] _И у пиццы есть тёмная сторона_ Все бы ничего, но имперская ценовая политика в сфере предоставления услуг быстрого питания для его конкурентов имела демпинговый характер. Началась война на всех фронтах, и вскоре в ход пошли DDoS-атаки. [Читать дальше →][3]

[1]: http://cloud4y.ru/
[2]: //habrastorage.org/files/47b/1fb/f41/47b1fbf41fb946caa3306f69f2f6388a.jpg
[3]: http://habrahabr.ru/post/243647/#habracut

[>] [Из песочницы] Удобное удаленное управление консолью linux из-под Windows
habra.14
habrabot(difrex,1) — All
2014-11-19 15:00:03


Итак, друзья, некоторое подмножество нас (людей) так или иначе испытавает необходимость удаленного управления компьютером (как правило, сервера) на linux (способ может сработать и в BSD, и в Mac OS X, но я не пробовал) при помощи ssh. Другое подмножество использует Windows в качестве ОС на основной рабочей машине. К пересечению этих подмножеств обращена моя статья. UPD:_У меня часто спрашивают, зачем же всё, описанное в статье, надо. Всё просто: 1. Сохранение подключения при обрыве связи. Этот пункт для меня самый важный и сыграл решающую роль в том, чтобы взяться за настройку такой системы. Дело в том, что я живу в общежитии с очень-очень нестабильным интернетом, и обрывы связи у меня (в плохие дни) могут происходить поминутно. А putty требует последовательности действий, чтобы переподключиться каждый раз 2. Сохранение сессии. Зачастую, единственной задачей при подключении к серверу стоит: зайти в одну и ту же директорию и написать git pull. Чтобы каждый раз не вспоминать путь к этой директории, нужно сохранение сессии 3. Терминал поддерживает вкладки. Самое главное, что данный терминал можно использовать также и для cmd, и для PS, и для git bash консоли. Поэтому, не придется держать несколько разных терминалов открытыми. 4. Плюсы tmux: многооконность в одной сессии и split Не спорю, часть из этого можно решить другими средствами Как же получить комфортный remote access к bash из-под Windows? _ ![image][1] [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/249/406/2f0/2494062f01435f2734140f6f4b0779b8.png
[2]: http://habrahabr.ru/post/243613/#habracut

[>] Apple выпустила iOS 8.1.1
habra.14
habrabot(difrex,1) — All
2014-11-19 15:30:03


Компания выпустила набор обновлений для своих продуктов, в т. ч. iOS 8.1.1 (APPLE-SA-2014-11-17-1), закрыв ряд уязвимостей в компонентах мобильной ОС с формулировкой "_This release includes bug fixes, increased stability and performance improvements for iPad 2 and iPhone 4S_". Всего было закрыто девять уязвимостей в различных компонентах, включая браузерный движок WebKit и сервис блокировки экрана Lock Screen. Кроме этого, специально для iPad 2 & iPhone 4S были исправлены недоработки ОС, которые приводили к быстрой разрядке аккумулятора при использовании Wi-Fi, а также проблемы с подключением устройства по Bluetooth. ![][1] Список исправленных уязвимостей представлен ниже. [Читать дальше →][2]

[1]: //habrastorage.org/files/9af/0a8/824/9af0a88241f446398e92d900f325c9f1.png
[2]: http://habrahabr.ru/post/243585/#habracut

[>] Управление разработкой программного продукта на основе рисков
habra.15
habrabot(difrex,1) — All
2015-08-02 14:00:02


![image][1] Эта статья адресована тем, кто имеет отношение к разработке программного продукта. Понимание принципов управление процессом разработки не менее важно, чем фактические знания технологий программирования. Статья не адресована только тем, кто хочет стать или работает руководителем проекта (Project Manager), Понимание принципов управления принесет пользу на любой должности и в любой команде. [Читать дальше →][2]

[1]: https://habrastorage.org/files/5ed/bb1/b08/5edbb1b080d84d0eaca1092606ab5cb5.png
[2]: http://habrahabr.ru/post/263969/#habracut

[>] Вероятностное программирование
habra.15
habrabot(difrex,1) — All
2015-08-02 20:30:03


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




Лекция была прочитана Борисом [hr0nix][1] Янгелем на факультете компьютерных наук, открытом в Высшей школе экономики при поддержке Яндекса. Сам Борис окончил ВМиК МГУ и Школу анализа данных Яндекса. Работал в Microsoft Research Cambridge в группе [Кристофера Бишопа][2] над фреймворком [Infer.NET][3]. Сейчас Борис — ведущий разработчик поиска Яндекса. Под катом — расшифровка рассказа. [Читать дальше →][4]

[1]: http://habrahabr.ru/users/hr0nix/
[2]: https://en.wikipedia.org/wiki/Christopher_Bishop
[3]: http://research.microsoft.com/en-us/um/cambridge/projects/infernet/
[4]: http://habrahabr.ru/post/263991/#habracut

[>] Генераторы непрерывно распределенных случайных величин
habra.15
habrabot(difrex,1) — All
2015-08-02 21:00:03




> Генератор случайных чисел во многом подобен сексу: когда он хорош — это прекрасно, когда он плох, все равно приятно (Джордж Марсалья, 1984)

Популярность стохастических алгоритмов все растет. Многие из них базируются на генерации большого количества различных случайных величин. Далеко не всегда равномерно распределенных. Здесь я попытался собрать информацию о быстрых и точных генераторах случайных величин с известными распределениями. Задачи могут быть разными, разными могут быть и критерии. Кому-то важно время генерации, кому-то — точность, кому-то — криптоустойчивость, кому-то — скорость сходимости. Лично я исходил из предположения, что мы имеем некий базовый генератор, возвращающий псевдослучайное целое число, равномерно распределенное от 0 до некого RAND\_MAX

unsigned long BasicRandGenerator() {
unsigned long randomVariable;
// some magic here
...
return randomVariable;
}


и что этот генератор достаточно быстрый. Я имею ввиду, что дешевле сгенерировать с десяток случайных чисел, нежели чем посчитать логарифм или возвести в степень одно из них. Это могут быть стандартные генераторы: std::rand(), rand в MATLAB, Java.util.Random и т.д. Но имейте ввиду, что подобные генераторы редко подходят для серьезной работы. Зачастую они проваливают разные статистические тесты. А также, помните, что вы полностью зависите от них и лучше использовать свой собственный генератор, чтобы иметь представление о его работе. В статье я буду рассказывать об алгоритмах, суть которых должна быть понятна каждому, кто хоть иногда сталкивался с теорией вероятностей. Совсем необязательно быть знакомым с теорией меры, как правило, достаточно примерно понимать, что из себя представляют функция распределения и функция плотности распределения:



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

#### Равномерное распределение





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

[1]: https://habrastorage.org/files/ccb/249/991/ccb24999157e4f0d9b268e4b6bb7374d.png
[2]: http://habrahabr.ru/post/263993/#habracut

[>] ФП8: Абсолютный клон
habra.15
habrabot(difrex,1) — All
2015-08-03 00:00:04


Ладно, вы не можете сделать интересную оригинальную игру, но вы не умеете даже делать клоны. А почему? Да всё очень просто — вы не умеете копировать. Не цените гениальное высказывание Леонардо да Винчи: кто умеет копировать, тот умеет делать. В чём же секрет правильного клона и почему большинство клонов из рук вон плохи? [Читать дальше →][1]

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

[>] [Перевод] Реализация поискового движка с ранжированием на Python (Часть 3)
habra.15
habrabot(difrex,1) — All
2015-08-03 12:00:02


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

#### Ранжирование результатов запросов

Заключительным шагом в построении поискового движка является создание системы для ранжирования документов по их релевантности к запросу. Это наиболее сложная часть, поскольку она не имеет прямого технического решения: она требует творчества и вашего собственного взгляда. В этой мы реализуем TF-IDF ранжирование (от англ. TF — term frequency (частота слова) и IDF — inverse document frequency (обратная частота документа)), которое является одним из простейших способов сортировки наших документов. В этой части не будет никакого кода, но вы можете изучить финальную версию движка на [GitHub][2]. Мы только изучим теорию TF-IDF, а его реализация довольно проста, причем большая часть работы делается во время построения индекса. Так что, термин «частота» является первой частью нашей систему ранжирования? Ну, это именно то, что приходит на ум, когда вы его слышите: количество раз, которое встречается каждое слово в конкретном документе. Термин частота, как метрика, не учитывает запрос: он предполагает, что документ — это просто амбивалентный набор маркеров, и точное представление о нём можно получить всего лишь пересчитав, сколько раз каждый маркер (слово) встречается. Это не совсем точное предположение, но оно широко используется в области классификации документов. Формально, он больше известен как модель “мешок слов”. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/263913/
[2]: https://github.com/logicx24/Text-Search-Engine
[3]: http://habrahabr.ru/post/263983/#habracut

[>] Bitcoin на пределе? Ждут ли криптовалюту тяжелые времена
habra.15
habrabot(difrex,1) — All
2015-08-03 12:30:02


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

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

[>] Антивирусы под прицелом #2: взлом BitDefender и серьезные уязвимости в Symantec
habra.15
habrabot(difrex,1) — All
2015-08-03 13:00:03


[![][1]][2] Не так давно мы [писали][3] о том, что британские спецслужбы взламывали антивирусные продукты «Лаборатории Касперского», а исследователи из Google (Project Zero) — нашли серьезную уязвимость в продукте ESET NOD32. И надо сказать, что проблемы антивирусных компаний на этом не закончились. 31 июля СМИ растиражировали новость о [хакерской атаке][4], которая привела к краже учетных данных пользователей продуктов BitDefender, кроме того, в этот же день появилась информация об обнаружении целого ряда [серьезных уязвимостей][5] в защитном софте компании Symantec. [Читать дальше →][6]

[1]: https://habrastorage.org/files/160/748/790/1607487907744266876fa9672d8285df.png
[2]: http://habrahabr.ru/company/pt/blog/264013/
[3]: http://habrahabr.ru/company/pt/blog/261075/
[4]: http://thehackernews.com/2015/07/bitdefender-hacked.html?m=1
[5]: http://codewhitesec.blogspot.in/2015/07/symantec-endpoint-protection.html?m=1
[6]: http://habrahabr.ru/post/264013/#habracut

[>] [Из песочницы] Eskimo — Node.js бойлерплэйт для создания прототипов
habra.14
habrabot(difrex,1) — All
2014-11-19 15:30:03


[Эскимо][1] — новый Node.js бойлерплэйт для быстрого прототайпинга (MVP). Даже если интернет заполнен разными бойлерплэйтами и фрэймворками, на нынешний день отсутствует современный, модульный и минимальный бойлерплэйт для запуска прототипов (специально для строительства rapid minimal product-ов «RMVP's»). Проект создается с малого, одним человеком, но потом, под влиянием вкладчиков, он растет до непредсказуемых размеров. Поиск в Google и GitHub про Nodejs бойлерплэйт и Nodejs фрэймворк дает сотни результатов. Но многие из этих запускателей проектов не имеют автоматизации для развертывания и тестирования продуктов. Некоторые игнорируют практику фронт-энда и не используют [Bower][2], [Bootstrap][3], [Font Awesome][4], [S3/CloudFront][5], [clustering][6] и [LESS][7]. И ни один бойлерплэйт или фрэймворк не внедрили инъекцию зависимостей с помощью [электролита][8], за исключением [Эскимо][9] и проекта [Джареда Хэнсона][10]. [Читать дальше →][11]

[1]: http://eskimo.io/
[2]: http://bower.io/
[3]: http://getbootstrap.com/
[4]: http://fontawesome.io/
[5]: https://aws.amazon.com/
[6]: http://nodejs.org/api/cluster.html
[7]: http://lesscss.org/
[8]: https://github.com/jaredhanson/electrolyte
[9]: http://eskimo.io
[10]: https://github.com/jaredhanson
[11]: http://habrahabr.ru/post/243579/#habracut

[>] Многофакторный LastPass
habra.15
habrabot(difrex,1) — All
2015-08-03 14:00:05


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

[1]: https://habrastorage.org/files/c76/83e/0ff/c7683e0fffaa4f8aa53bb40122eff9f4.png
[2]: http://habrahabr.ru/post/263963/#habracut

[>] Взгляд из Японии на аномалии российского трафика, ошибки ARM TrustZone, взлом смартфонов через NFC — что было на PacSec
habra.14
habrabot(difrex,1) — All
2014-11-19 15:30:04


Одна из известнейших в Японии конференций по информационной безопасности [PacSec][1] состоялась 12 и 13 ноября в Токио. Конференция проводится уже в 12-й раз вместе с [AVTOKYO][2] — менее формальной хакерской тусовкой с интернациональным лозунгом «No drink, no hack». По западным меркам PacSec невелика: в этом году она собрала меньше 200 человек, что тяжело сравнивать с посещаемостью того же PHDays IV, где участвовало 2500. [![image][3]][4] _Отдавая дань «[New Rose Hotel][5]» праотца киберпанка Уйльяма Гибсона, докладчики Positive Technologies не удержались и протестировали капсульный отель_ На конференции присутствовали звездные спикеры с уже известными докладами: Карстен Ноль (Karsten Nohl) представил работу «Bad USB: об аксессуарах, обратившихся во зло» ([Bad USB — On Accessories that Turn Evil][6]), Брайан Горенк и Мэтт Молиньяве из HP (Brian Gorenc, Matt Molinyawe) выступили с исследованием «Взрываем сотик: строим свой фаззер для SMS и MMS» ([Blowing up the Celly — Building Your Own SMS/MMS Fuzzer][7]). [Читать дальше →][8]

[1]: https://twitter.com/PacSecjp
[2]: http://www.avtokyo.org/
[3]: http://habrastorage.org/getpro/habr/post_images/d79/8f4/fd7/d798f4fd7bd8e90dba2841e6c4530a91.jpg
[4]: http://habrahabr.ru/company/pt/blog/243627/
[5]: http://lib.ru/GIBSON/hotelru.txt
[6]: http://habrahabr.ru/post/239305/
[7]: http://www.defcon.org/images/defcon-22/dc-22-presentations/Gorenc-Molinyawe/DEFCON-22-Brian-Gorenc-Matt-Molinyawe-Blowing-Up-The-Celly.pdf
[8]: http://habrahabr.ru/post/243627/#habracut

[>] Пара слов о кэшировании данных при чтении и смартпойнтерах
habra.14
habrabot(difrex,1) — All
2014-11-19 15:30:04


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

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

[>] AccelEpi, или Как EPAM помогла в тестировании лекарств против эпилепсии
habra.15
habrabot(difrex,1) — All
2015-08-03 16:00:05


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

[1]: https://habrastorage.org/files/3ce/6d6/2ae/3ce6d62aeeae4ad4a226feb128a41206.jpg
[2]: http://habrahabr.ru/post/264031/#habracut

[>] NGFW. Часть 3 – Демонстрация защиты от DDoS
habra.15
habrabot(difrex,1) — All
2015-08-03 16:30:03


Атаки типа распределённый отказ в обслуживании (DDoS) атак по-прежнему находятся в верхних строках анти-рейтинга. DDoS-атаки против коммерческих организаций доказали свою эффективность в срыве бизнеса и привлечения внимания компании. Например, за счет использования массивных бот-сетей, собранных из скомпрометированных компьютеров, хакеры запустили ряд получивших широкую огласку и весьма разрушительных DDoS-атак против американских банков. Ниже представлен пример защиты от атак типа [отказ в обслуживании с использованием заражённых вредоносным ПО компьютеров][1] при помощи [HP NGFW][2]. Для тестирования этой возможности межсетевого экрана был собран стенд, представленный на рисунке ниже. [![][3]][4] __ [Читать дальше →][5]

[1]: http://www.darkreading.com/attacks-and-breaches/us-bank-hack-attack-techniques-identified/d/d-id/1108089
[2]: http://habrahabr.ru/company/hp/blog/262123/
[3]: https://habrastorage.org/files/fbd/8d9/d14/fbd8d9d14729492fa0d0e4be7c211438.png
[4]: http://habrahabr.ru/company/hp/blog/264047/
[5]: http://habrahabr.ru/post/264047/#habracut

[>] Прошиваем роутер Upvel UR UR-313N4G на OpenWRT
habra.15
habrabot(difrex,1) — All
2015-08-03 16:30:03


![][1] Как-то раз, еще до скачков курса доллара, мне понадобился очень дешевый SOHO-роутер. Требования — 5 портов, NAT и Wi-Fi, не помешал бы и USB. Выбор пал на [Upvel UR-313N4G][2], который в те времена стоил в Citilink’е смешные 860 рублей. Роутер был куплен и выполнял свои обязанности вполне сносно, стабильно зависая раз в неделю. Кроме того, не работал проброс портов, ну и что, он не больно сильно был нужен. К тому же в Web-интерфейсе был доступ к командной строке, так что в критичных случаях можно было просто написать iptables -A PREROUTING -j DNAT и наслаждаться работающими портами до следующего зависания. Впрочем, большего я от коробочки за такую смешную цену я не ждал. Потом кое-что в моей жизни поменялось и роутер лег на дальнюю полку, а его заменил TP-Link TR-ML3420. Надо сказать, TR-ML3420 отлично работает под OpenWRT и никаких проблем с ним не возникает, а вот роутеры Upvel официально не поддерживаются OpenWRT чуть менее, чем полностью (из всего модельного ряда — только два роутера). Когда стало ясно, что Upvel UR-313N4G мне уже не жалко, я решил попробовать поставить на него OpenWRT. Основная задача — заставить работать 3G-модем Megafon M21-4, он же Huawei E3531. Надо сказать, что опыт прошивки роутеров на OpenWRT у меня был, как через Web-интерфейс, так и через UART, но он сводился к “выберите файл для прошивки и молитесь” или “наберите эти три команды в консоли и молитесь”. На этот раз мне хотелось разобраться, почему вводятся именно такие команды, ну и вообще получить общее представление об архитектуре MIPS, с которой я до этого не работал. Тут, конечно, нужно отметить, что читать этот материал _отцам_, разрабатывающим Gigabit Ethernet карты на FPGA и пишущим видеодрайверы для Mali-400, будет, наверное, смешно — они все это и так давно знают. [Читать дальше →][3]

[1]: https://habrastorage.org/files/a0b/6fc/ec4/a0b6fcec40e840e1a9d286230687af07.png
[2]: http://www.upvel.ru/items/ur-313n4g.html
[3]: http://habrahabr.ru/post/264025/#habracut

[>] [recovery mode] Стипендиальные правительственные программы по всему миру. Часть 1
habra.15
habrabot(difrex,1) — All
2015-08-03 16:30:03


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

[1]: https://habrastorage.org/files/e73/fbc/0bb/e73fbc0bb62b4706beb2d5ba0d1dfaed.jpg
[2]: http://habrahabr.ru/post/263961/#habracut

[>] [Из песочницы] Борьба с «плохими» URI, спамерами и php-шеллами — личный опыт
habra.15
habrabot(difrex,1) — All
2015-08-03 16:30:03


Полагаю, все веб-программисты проходят в той или иной степени одинаковый путь. Я основываюсь на своем личном опыте. Для меня в начале постижения этой науки создание сайта было на первом месте. Только по прошествии значительного времени я осознал, что сайты еще и вскрывают. Прочитав, как это делается, я удивился, на сколько просто по неопытности превратить свой сайт в «проходной двор» и стал уделять безопасности определенное внимание. По крайней мере я стал фильтровать входные параметры страниц. На втором этапе я с удивлением обнаружил, что существуют такие звери, как PHP-shell. В этом мне помог Касперский, когда заблокировал доступ к моему столь любимому сайту. Следующим откровением было то, что вскрыть могут не только вас, но и хостинг. При этом шеллы появляются на вашем сайте с удивительной регулярностью, неизвестно откуда и делают, естественно, что хотят. Например, редактируют файлы **.htaccess** и закрывают их редактирование для всех, в том числе и для владельца. Все эти откровения в свое время забрали огромное количество суббот и воскресений и потребовали перехода на рерайтинг урлов, создание развернутой системы анализа входных параметров на подозрительные слова и выражения (здесь я, кстати, потерпел некоторое фиаско), создание лога параметров, передающихся методом пост, системы оповещения о подозрительных событиях, происходящих на сайте, и, наконец, разрешения запуска только скриптов со специфическим префиксом в имени, чтобы никакой другой скрипт типа **template.php** или **wso2.php** не запускался. Что же нужно иметь ввиду и что можно сделать для создания относительно безопасного сайта? [Читать дальше →][1]

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

[>] Способы передачи финансовых данных #2: протокол FAST
habra.14
habrabot(difrex,1) — All
2014-11-19 16:00:03


[![image][1]][2] В одном из прошлых топиков мы рассмотрели [протокол FIX][3], который был создан для передачи финансовой информации и автоматизации коммуникаций на фондовом рынке. Однако этот протокол оказался не самым идеальным инструментом в условиях все увеличивающихся объёмов финансовых данных, поэтому в качестве его развития был создан новый стандарт — протокол FAST (FIX Adapted for STreaming). Сегодня мы поговорим об этой технологии. [Читать дальше →][4]

[1]: http://habrastorage.org/getpro/habr/post_images/4b6/3d9/708/4b63d970876a4ce8dd45b7585795d48d.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/243657/
[3]: http://habrahabr.ru/company/itinvest/blog/242789/
[4]: http://habrahabr.ru/post/243657/#habracut

[>] Bitcoin на пределе? Почему криптовалюту ждут тяжелые времена
habra.15
habrabot(difrex,1) — All
2015-08-03 18:30:02


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

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

[>] Уязвимость в Android < 5.0 (ObjectInputStream)
habra.14
habrabot(difrex,1) — All
2014-11-19 17:00:05


Как сообщает Jann Horn в рассылке [Full Disclosure][1], в Android 5.0 включили патч, который исправляет уязвимость в объекте java.io.ObjectInputStream. До этого патча java.io.ObjectInputStream не проверял, является ли объект сериализируемым, перед его де-сериализацией. Атакующему достаточно создать экземпляр любого класса с конструктором без параметров и наполнить его поля случайными значениями. При срабатывании сборщика мусора, у этого экземпляра будет вызван метод finalize. В конечном итоге, если передать этот экземпляр в сервис system\_service через Intents с Bundles, произойдет перезапись указателя на адрес, подконтрольный злоумышленнику, и если ему удастся записать нужный payload на этот адрес, код атакующего выполнится с привилегиями system\_service. [Читать дальше →][2]

[1]: http://seclists.org/fulldisclosure/2014/Nov/51
[2]: http://habrahabr.ru/post/243663/#habracut

[>] Назад в будущее – Декапсуляция
habra.15
habrabot(difrex,1) — All
2015-08-03 20:00:05






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

* Влияние программной архитектуры на потребление памяти и производительность;
* Различия при работе в 32 и 64 битных режимах;
* Различия между указателями и индексами массива;
* Влияние выравнивания данных внутри классов/структур;
* Влияние кеша процессора на производительность;
* Оценка стоимости поддержки ООП в языках высокого уровня;
* Признание факта необходимости учитывать низкоуровневые особенности платформы даже при разработке на языках высокого уровня.

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

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

[>] Безопасность 4G: захватываем USB-модем и SIM-карту с помощью SMS
habra.14
habrabot(difrex,1) — All
2014-11-19 22:30:03


[![image][1]][2] Телеком-операторы активно рекламируют быструю и дешевую 4G-связь. Но насколько она защищена, знают немногие. Экспертам Positive Technologies в процессе исследования безопасности 4G-коммуникаций удалось найти уязвимости в USB-модемах, позволяющие взять под контроль компьютер, к которому подключён модем, а также аккаунт абонента на портале мобильного оператора. Кроме того, атаки на SIM-карту с помощью бинарных SMS позволяют перехватить и расшифровать трафик абонента, либо просто заблокировать заданную «симку». [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/786/3ab/6fb/7863ab6fb663ac902f848d3aa16ce538.jpg
[2]: http://habrahabr.ru/company/pt/blog/243697/
[3]: http://habrahabr.ru/post/243697/#habracut

[>] Защита личных фотоснимков на телефонах Android
habra.14
habrabot(difrex,1) — All
2014-11-19 22:30:03


![][1] Как сделать личные фотографии на своем телефоне недоступными для посторонних? Как настроить телефон таким образом, чтобы при фотографировании конфиденциальные снимки автоматически записывались в криптоконтейнер? И как сохранить за собой возможность быстрого и удобного доступа к ним? [Читать дальше →][2]

[1]: //habrastorage.org/files/b3c/201/b13/b3c201b1364844a7bde795845e14a36a.jpg
[2]: http://habrahabr.ru/post/243463/#habracut

[>] [Перевод] Эффективный Django. Часть 2
habra.14
habrabot(difrex,1) — All
2014-11-20 13:00:02






_Продолжение перевода статей о Django с сайта [effectivedjango.com][1]. Наткнулся я на этот сайт во время изучения данного фреймворка. Информация размещенная на этом ресурсе показалась мне полезной, но так как нигде не нашел перевода на русский, решил сделать сие доброе дело сам. Этот цикл статей, как мне думается, будет полезен веб-разработчикам, которые делают только первые шаги в изучении Django._ [Приступить к чтению][2]

[1]: http://effectivedjango.com/
[2]: http://habrahabr.ru/post/242261/#habracut

[>] [Из песочницы] Изучаем WatchKit — создаем первое приложение для Apple Watch
habra.14
habrabot(difrex,1) — All
2014-11-20 17:00:03


Буквально пару дней назад Apple выпустила Xcode 6.2 с поддержкой iOS 8.2 beta и WatchKit. Данный фреймворк предназначен для взаимодействия с Apple Watch и разработки приложений для них. Впрочем, все не так просто. [Читать дальше →][1]

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

[>] [Из песочницы] Использование анонимных методов в Delphi
habra.14
habrabot(difrex,1) — All
2014-11-20 17:00:03


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

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

[>] [Перевод] Краткая история эволюции proof-of-work в криптовалютах. Часть 2
habra.15
habrabot(difrex,1) — All
2015-08-03 20:30:03


_Предлагаю вашему вниманию перевод статьи «[The Proof-of-Work in Cryptocurrencies: Brief History. Part 2][1]» Рэя Паттерсона (Ray Patterson) с сайта [Bytecoin.org][2]. «Краткая история эволюции proof-of-work в криптовалютах. Часть 1» находится [тут][3]._ ![][4]

## Скрещивание

К середине лета 2013 года в строю уже находилось больше сотни альткоинов, причем почти половина появилась именно за последние пару месяцев. Стоит ли говорить, что почти все «новички» были форками Litecoin и использовали scrypt? Другим трендом сезона стал новомодный Proof-of-Stake от PPcoin, так что комбинацию scrypt+PoS можно было назвать «стандартным набором начинающего алькоинера». Такая (количественная) популярность scrypt и начало экспоненциального роста сложности Bitcoin привели к простой мысли: scrypt-ASIC’и появятся в ту же секунду, как только это станет выгодно. И хотя гигантский ноябрьский пузырь – когда Bitcoin дошел до $1200 – еще не начал даже надуваться, поиски новой PoW функции начались снова. Как можно разнообразить стандартную хэш-функцию? Например… [Читать дальше →][5]

[1]: https://bytecoin.org/blog/proof-of-work-part-2/
[2]: https://bytecoin.org
[3]: http://habrahabr.ru/post/263769/
[4]: https://habrastorage.org/files/25f/e08/411/25fe08411e37431d8067c846372960ba.jpg
[5]: http://habrahabr.ru/post/264067/#habracut

[>] [Из песочницы] ASP.NET vNext приложение под Ubuntu
habra.14
habrabot(difrex,1) — All
2014-11-20 19:00:03


Я хочу рассказать про мой опыт развертывания ASP.NET vNext под Ubuntu 14.04. Сам я долгое время разрабатываю под Widows и дела с Unix системами если и имел, то вскользь и незаметно для меня и для Unix систем. Но, несмотря на это, новости о переводе части .Net в OpenSource с поддержкой Unix меня порадовали как повод для дальнейшего развития и расширения границ знаний. В результате недолгих мучений и исследований различных форумов и issue трекеров мне удалось то, что раньше казалось немыслимым. Код написанный на C#, который запускается в среде придуманной и разработанной в MS, который представляет из себя ASP.NET MVC приложение (!) заработал. [Читать дальше →][1]

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

[>] [recovery mode] 5 нажатий на экран терминала — и открывается любая папка
habra.15
habrabot(difrex,1) — All
2015-08-04 00:00:06


Не так давно я попробовал воспользоваться платёжным терминалом одного украинского банка. Всего лишь 5 безобидных нажатий на сенсорный экран открыли мне доступ к Windows Explorer этого терминала. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/b73/f29/129/b73f29129940490588987c9604a0b528.jpg
[2]: http://habrahabr.ru/post/264089/#habracut

[>] Прошиваем роутер Upvel UR-313N4G на OpenWRT
habra.15
habrabot(difrex,1) — All
2015-08-04 10:00:02


![][1] Как-то раз, еще до скачков курса доллара, мне понадобился очень дешевый SOHO-роутер. Требования — 5 портов, NAT и Wi-Fi, не помешал бы и USB. Выбор пал на [Upvel UR-313N4G][2], который в те времена стоил в Citilink’е смешные 860 рублей. Роутер был куплен и выполнял свои обязанности вполне сносно, стабильно зависая раз в неделю. Кроме того, не работал проброс портов, ну и что, он не больно сильно был нужен. К тому же в Web-интерфейсе был доступ к командной строке, так что в критичных случаях можно было просто написать iptables -A PREROUTING -j DNAT и наслаждаться работающими портами до следующего зависания. Впрочем, большего я от коробочки за такую смешную цену я не ждал. Потом кое-что в моей жизни поменялось и роутер лег на дальнюю полку, а его заменил TP-Link TR-ML3420. Надо сказать, TR-ML3420 отлично работает под OpenWRT и никаких проблем с ним не возникает, а вот роутеры Upvel официально не поддерживаются OpenWRT чуть менее, чем полностью (из всего модельного ряда — только два роутера). Когда стало ясно, что Upvel UR-313N4G мне уже не жалко, я решил попробовать поставить на него OpenWRT. Основная задача — заставить работать 3G-модем Megafon M21-4, он же Huawei E3531. Надо сказать, что опыт прошивки роутеров на OpenWRT у меня был, как через Web-интерфейс, так и через UART, но он сводился к “выберите файл для прошивки и молитесь” или “наберите эти три команды в консоли и молитесь”. На этот раз мне хотелось разобраться, почему вводятся именно такие команды, ну и вообще получить общее представление об архитектуре MIPS, с которой я до этого не работал. Тут, конечно, нужно отметить, что читать этот материал _отцам_, разрабатывающим Gigabit Ethernet карты на FPGA и пишущим видеодрайверы для Mali-400, будет, наверное, смешно — они все это и так давно знают. [Читать дальше →][3]

[1]: https://habrastorage.org/files/a0b/6fc/ec4/a0b6fcec40e840e1a9d286230687af07.png
[2]: http://www.upvel.ru/items/ur-313n4g.html
[3]: http://habrahabr.ru/post/264025/#habracut

[>] Третий лишний: как мы реализовали сбор почты с использованием OAuth 2.0
habra.15
habrabot(difrex,1) — All
2015-08-04 13:00:05


![][1] _«Может тебе еще и ключ от квартиры, где деньги лежат?»_ — примерно так выглядит нормальная реакция человека, у которого посторонний сервис требует пароль от основной почты. Тем не менее, большинству из нас регулярно приходится сообщать пароль сторонним сервисам. Сегодня я хочу рассказать о том, как мы реализовали процедуру авторизации при сборе писем с наших ящиков через OAuth 2.0, тем самым избавив пользователей Mail.Ru от необходимости доверять «ключи» от своей почты третьей стороне. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e2e/c7f/0fe/e2ec7f0fe147405286c37688a589536c.jpg
[2]: http://habrahabr.ru/post/264049/#habracut

[>] Создание игры на Blend4Web. Путь программиста
habra.15
habrabot(difrex,1) — All
2015-08-04 13:30:04


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

[1]: http://habrahabr.ru/post/263453/
[2]: http://habrahabr.ru/post/264115/#habracut

[>] [Перевод] Выразительный JavaScript: Document Object Model (объектная модель документа)
habra.14
habrabot(difrex,1) — All
2014-11-21 02:30:04


Когда вы открываете веб-страницу в браузере, он получает исходный текст HTML и разбирает (парсит) его примерно так, как наш парсер из главы 11 разбирал программу. Браузер строит модель структуры документа и использует её, чтобы нарисовать страницу на экране. Это представление документа и есть одна из игрушек, доступных в песочнице JavaScript. Вы можете читать её и изменять. Она изменяется в реальном времени – как только вы её подправляете, страница на экране обновляется, отражая изменения. [Читать дальше →][1]

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

[>] Just backup btrfs
habra.14
habrabot(difrex,1) — All
2014-11-21 03:00:04


К btrfs приглядывался давно, даже на дисках с различными медиа-данными использовал около года, но расширенной функциональностью этой замечательной файловой системы не пользовался. А вот появилось обновление — два новеньких SSD, было решено во время переноса системы заодно перейти на btrfs. Всё отлично — RAID0 для данных RAID1 для метаданных средствами файловой системы, сжатие на лету, корень в одном суб-томе (subvolume), домашняя папка в другом, веб-сайты в третьем. Всё это грузится прямо с UEFI в Linux EFI stub без GRUB и других загрузчиков, работает быстро и удобно. И вот дошло дело до снимков (snapshot), их я хотел использовать для резервных копий суб-томов средствами всё того же драйвера btrfs. Поиск выдает несколько релевантных решений, но одни решения слишком громоздки (синхронизация резервных копий, через сеть, создание каких-то репозиториев, вложенных потоков и т.д.) и навязывают свою архитектуру, другие не имеют адекватной ротации резервных копий (можно указать только один интервал и количество копий в нём). Решение принято — новому инструменту быть! [Читать дальше →][1]

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

[>] За один проход
habra.14
habrabot(difrex,1) — All
2014-11-21 07:00:03


За один проход. Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается. С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается. Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так: _**Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число**_ Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)\*(K+2)/2, и пропущенное число равно (K+1)\*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны с вычислением (K+1)\*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел. [Другие задачи][1]

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

[>] Как провести бенчмарк или кто быстрее, Слон или Селедка?
habra.14
habrabot(difrex,1) — All
2014-11-21 12:00:04


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

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

[>] [recovery mode] Адаптивное хеширование
habra.14
habrabot(difrex,1) — All
2014-11-21 13:30:03


![image][1] **Preview.** Эта идея уже очень давно мучала мой воспаленный криптографией мозг. **TL;DR** идея хеш функции которая генерируется на основе входных данных [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/7e5/ca3/2c3/7e5ca32c389f78f77a21a454ec9afecc.png
[2]: http://habrahabr.ru/post/243849/#habracut

[>] Вышел новый PyCharm 4: больше да лучше!
habra.14
habrabot(difrex,1) — All
2014-11-21 14:30:02


Всем пятничный привет от JetBrains! Мы рады рассказать вам, что на днях вышел новый PyCharm 4, который [уже доступен для скачивания][1]. С момента предыдущего релиза PyCharm 3.4 прошло ровно полгода, за это время мы поработали над разными подсистемами PyCharm'а, и теперь рады рассказать, что же интересного и важного появилось в новой версии PyCharm. В ней мы сделали упор на инструменты для научного программирования. Пожалуй, главной и долгожданной особенностью этого релиза является поддержка **IPython Notebook** прямо в PyCharm: [Читать дальше →][2]

[1]: http://www.jetbrains.com/pycharm/download
[2]: http://habrahabr.ru/post/243831/#habracut

[>] Отчет о конференции Firebird 2014
habra.14
habrabot(difrex,1) — All
2014-11-21 15:00:03


24-25 октября 2014 года в Праге прошла международная конференция по СУБД Firebird. Присутствовало 110 участников, 18 докладчиков представили 23 интересных презентации. Открывали конференцию ведущие разработчики СУБД Firebird Дмитрий Еманов и Влад Хорсун, с докладами о новых возможностях Firebird 3, который готовится к релизу в начале 2015 года, и Firebird 4 (2016). Наиболее важными новостями являются сокращение релизного цикла и фокус на отказоустойчивости и производительности. [Читать дальше →][1]

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

[>] [Перевод] Code contracts vs валидация входящих данных
habra.15
habrabot(difrex,1) — All
2015-08-04 14:30:02


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

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

[>] Исследователи создали червя, который может заражать прошивку Mac
habra.15
habrabot(difrex,1) — All
2015-08-04 14:30:02


[![][1]][2] Несколько месяцев назад исследователь Траммел Хадсон (Trammel Hudson) создал эксплойт под названием [Thunderstrike][3], который мог инфицировать компьютеры Mac через устройства, подключенные через разъем Thunderbolt. При подключении к зараженному компьютеру новых устройств червь записывался на них, таким образом под угрозой оказывались и другие машины. Apple исправила уязвимость в OS X версии 10.10.2, однако, как [сообщает][4] издание Wired, Хадсон и еще один ИБ-исследователь Ксено Кова (Xeno Kovah) разработали новую версию эксплойта и опубликовали буткит и червя, заражающего компьютеры Mac. [Читать дальше →][5]

[1]: https://habrastorage.org/files/914/9f0/db1/9149f0db10e7461c997517daaf220ff5.jpg
[2]: http://habrahabr.ru/company/pt/blog/264123/
[3]: http://arstechnica.com/security/2015/01/worlds-first-known-bootkit-for-os-x-can-permanently-backdoor-macs/
[4]: http://www.wired.com/2015/08/researchers-create-first-firmware-worm-attacks-macs/?mbid=social_twitter
[5]: http://habrahabr.ru/post/264123/#habracut

[>] Apple Watch. Что можно и чего нельзя в приложениях, разбор SDK
habra.14
habrabot(difrex,1) — All
2014-11-21 20:00:03


После официального анонса Apple Watch многие остались в недоумении — что же это такое, почему вокруг этого столько шума и действительно ли сдулся Apple. Было совершенно непонятно, зачем же эта штука нужна, что в ней такого особенного и чем она будет лучше других часов от конкурентов? Маркетинговая болтовня Тима Кука и попытки рисовать на этом девайсе не убедили совершенно.



Но при всем этом, есть понимание, что значительное количество людей купят это просто потому, что это Apple, а значит, есть потенциальный рынок, на котором, кто первый, тот и молодец. Для того, чтобы понять, что же на самом деле может это устройство и как это можно использовать, нам пришлось залезть в SDK сразу после его выхода. Результаты исследование несколько озадачили. [Читать дальше →][1]

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

[>] Уязвимости систем безопасности Министерства Обороны, ФСБ, ФСИН, АЭС, метрополитена и федеральных автодорог
habra.15
habrabot(difrex,1) — All
2015-08-04 15:00:07


![image][1] Все помнят историю, как [один видеоролик][2] послужил детонатором серии международных скандалов. Хакеры уже взломали [ракетную установку][3] (в учебных целях ), [систему ПВО][4] и [нефтяную компанию][5], а хакеры, порабощенные американскими спецслужбами, [отключили интернет в Сирии][6] и покопались в [Иранской атомной программе][7]. По данным исследования, даже системы на прочность (в учебных целях, естественно, и заблаговременно уведомив необходимых лиц). [Читать дальше →][10]

[1]: https://habrastorage.org/getpro/habr/post_images/905/b33/a57/905b33a57c2823c3f36d451b76c52fa6.jpg
[2]: http://www.youtube.com/watch?v=5rXPrfnU3G0
[3]: http://habrahabr.ru/company/pt/blog/260435/
[4]: http://habrahabr.ru/company/pt/blog/262459/
[5]: http://lukatsky.blogspot.ru/2015/07/blog-post_46.html
[6]: http://habrahabr.ru/post/233331/
[7]: http://habrahabr.ru/post/105964/
[8]: http://habrahabr.ru/company/pt/blog/233671/
[9]: http://habrahabr.ru/post/178501/
[10]: http://habrahabr.ru/post/262535/#habracut

[>] Проверьте Ваш сайт на попадание в Единый реестр запрещённых сайтов России
habra.15
habrabot(difrex,1) — All
2015-08-04 15:30:04


Сервис мониторинга работы сайтов [Host-tracker][1] обзавелся новой опцией – проверкой на попадание в Единый реестр запрещенных сайтов. ![][2] [Читать дальше →][3]

[1]: http://www.host-tracker.com
[2]: https://habrastorage.org/files/a73/b71/5ef/a73b715ef31c431a9523590552162858.jpg
[3]: http://habrahabr.ru/post/264071/#habracut

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