RSS
Pages: 1 ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ... 210
[>] [Перевод] Улучшение сетевой безопасности с помощью Content Security Policy
habra.15
habrabot(difrex,1) — All
2015-11-25 13:30:03


![][1] Content Security Policy (CSP, политика защиты контента) — это механизм обеспечения безопасности, с помощью которого можно защищаться от атак с внедрением контента, например, межсайтового скриптинга (XSS, cross site scripting). CSP описывает безопасные источники загрузки ресурсов, устанавливает правила использования встроенных стилей, скриптов, а также динамической оценки JavaScript — например, с помощью eval. Загрузка с ресурсов, не входящих в «белый список», блокируется. [Читать дальше →][2]

[1]: https://habrastorage.org/files/de7/dad/f55/de7dadf55b794ee5ba1af9f773cd6cf9.jpg
[2]: http://habrahabr.ru/post/271575/#habracut

[>] Тестировщик в ответе за всё
habra.15
habrabot(difrex,1) — All
2015-11-25 14:30:02







Так объясняют про тестирование в компании [Edison][1]. Недавно я участвовал в профориентационном лагере для школьников. Меня попросили рассказать про Хабр и про то, какие есть ИТ-специальности и что будет в будущем. ![][2] Как школьнику рассказать кто такой тестировщик и зачем нужен процесс тестирования? Я как-то выкрутился, но чувство незавершенности осталось и по сей день. На Хабре шикарно умеют объяснять [почему трава зеленая][3] или почему [программист это супергерой][4]. Если бы вы объясняли 10-ти класснику, кто такой тестировщик, как бы вы описали этот процесс? _(Есть замечательная книга [Сеймура Пейперта][5] «Переворот в сознании: Дети, компьютеры и плодотворные идеи», где рассказывается о том, как сформировать в мышлении детей хорошие стратегии отладки, но эта книга достойна отдельной статьи ->)_ «Пугать надо» — посоветовали мне бывалые. Ну что ж, сделал подбоку самых сочных программистских ошибок. **Ошибка №1** 22 июля 1962 Года. Неудача при запуске первого американского спутника к Венере «Mariner 1» случилась из-за ошибки в программе на языке Фортран – в операторе цикла вместо запятой программист поставил точку: _правильный оператор DO 50 I = 12,525 оператор с ошибкой DO 50 I = 12.525 _ «Умный» компилятор не выдал ошибку, а интерпретировал данную конструкцию как оператор присваивания. В результате, станция массой 202,8 кг при взлете спустя 293 сек ракета отклонилась от курса и произошла авария. Но это ложь. Есть легенда (впрочем, неподтвержденная), что подобная ошибка была в одной из программ НАСА для вычисления орбиты, однако это программа использовалась в проекте Меркурий, а не Маринер, и эта ошибка была исправлена до запуска корабля. На самом деле Nasa заявило: Ошибка появилась при ручном переводе символа в спецификации программы наведения. Писавший пропустил макрон или надчёркивание в ![image][6] что значит «n-ое сглаживание значения производной радиуса R по времени». Без функции сглаживания, обозначаемой макроном, программа воспринимала нормальные небольшие изменения скорости как очень серьёзные, что вызывало лишние поправки, сбивавшие ракету с курса. Затем ракета была уничтожена офицером курсовой безопасности. Но и это (возможно) ложь. [пруф — [«Самый дорогой дефис в истории»][7]] Кто виноват? Тестировщики недосмотрели. [Читать дальше →][8]

[1]: http://www.edsd.ru/
[2]: https://habrastorage.org/files/c39/d01/695/c39d0169553b4cb78da789db5b28a3c3.jpg
[3]: http://habrahabr.ru/post/237133/
[4]: http://habrahabr.ru/company/prodlenka/blog/250373/
[5]: https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%B9%D0%BF%D0%B5%D1%80%D1%82,_%D0%A1%D0%B5%D0%B9%D0%BC%D1%83%D1%80
[6]: https://habrastorage.org/getpro/habr/post_images/22e/11f/1af/22e11f1af96326e63814f35c7fd0fe6e.png
[7]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%B8%D0%BD%D0%B5%D1%80-1#.C2.AB.D0.A1.D0.B0.D0.BC.D1.8B.D0.B9_.D0.B4.D0.BE.D1.80.D0.BE.D0.B3.D0.BE.D0.B9_.D0.B4.D0.B5.D1.84.D0.B8.D1.81_.D0.B2_.D0.B8.D1.81.D1.82.D0.BE.D1.80.D0.B8.D0.B8.C2.BB
[8]: http://habrahabr.ru/post/271495/#habracut

[>] [Из песочницы] Генетический алгоритм — наглядная реализация
habra.14
habrabot(difrex,1) — All
2015-04-02 19:00:02


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

#### Кратко об алгоритме

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

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

[>] Пишем почтовый адрес, как человеки
habra.14
habrabot(difrex,1) — All
2015-04-02 19:00:02


![][1] Мне совершенно непонятна выгода от удобного интерфейса. Да, он красивый, с ним проще работать. Но как посчитать материальную пользу? Пять лет назад в аэропортах звучал синтезированный голос, объявляя прилёты и вылеты с разорванной интонацией после каждого слова. Иногда даже отличалась скорость речи для разных слов. И вот пару недель назад я заслушивался новыми объявлениями о вылетах. Было чувство, что их целиком записал профессиональный диктор, который всю жизнь учился на эту роль. Интерфейс стал лучше, он стал более натуральным. Стал ли я от этого больше летать? Вряд ли. Может, у меня появилось предпочтение между аэропортами? Не думаю, что это настолько важный момент. Тем не менее, зачем-то люди потратили время и деньги на приведение объявлений к естественному виду. И это очень круто! Мне нравится естественное представление информации автоматизированными системами, как будто с вами общается живой человек. Мне кажется, что это мелкие детали, которые формируют отношение к вашему продукту в целом. И если это отношение положительное, то вас будут выбирать в дальнейшем и рекомендовать друзьям. В статье я расскажу, как показывать адрес одной строкой так, будто его написал человек. Я не могу с уверенностью сказать, что, прочитав статью, вы увеличите прибыль. Но мне бы очень хотелось, чтобы как можно больше систем писали адреса красиво. Все правила, описанные ниже, мы выработали сами. Большинство из них используем или скоро подключим на [dadata.ru][2]. [Итак...][3]

[1]: //habrastorage.org/files/011/b0f/639/011b0f639f69491e9e4cbaf41656297f.jpg
[2]: http://dadata.ru
[3]: http://habrahabr.ru/post/254757/#habracut

[>] [Из песочницы] Несмешная первоапрельская шутка от разработчиков Magic Lantern
habra.14
habrabot(difrex,1) — All
2015-04-02 20:00:02


[Magic Lantern][1] (ML) — неофициальная прошивка для фотоаппаратов Canon, которая обеспечивает повышенную функциональность (например, dual-iso, стекинг по фокусу, raw-видео, тонкая настройка параметров съемки и многое другое). Прошивка устанавливается непосредственно на flash-карту, что позволяет безболезненно удалить ее или обновить простой заменой файлов. На хабре уже были [публикации][2] по данной прошивке, поэтому подробно расписывать преимущества и порядок установки я не буду. Расскажу, как попался на неявную и несмешную первоапрельскую шутку от разработчиков данной прошивки. Все описанные действия производились с использованием камеры Canon 650D со стоковой (1.01) прошивкой. **28 марта.** Началось все тогда, когда жажда исследования чего-то нового накопилась до критической массы и в сети была случайно обнаружена информация о возможности автоматической съемки фокус-стека на моем фотоаппарате. Но данные возможности требовали установки неофициальной прошивки Magic Lantern. Быстрый поиск показал, что:

* текущая прошивка фотоаппарата не поддерживает текущие сборки ML;
* для модели 650D нет стабильной сборки, есть только ночные билды;
* некоторые функции ML в 650D не работают/работают криво;
* авторы предупреждают, что можно закирпичить фотоаппарат неверными действиями по прошивке.

После чего фотоаппарат был успешно перепрошит на последнюю официальную версию для Canon 650D 1.04. И строго по инструкции, со сбросом всех настроек и полным форматированием карты, был установлен последний ночной билд Magic Lantern (от 28 марта). [Читать дальше →][3]

[1]: http://www.magiclantern.fm/
[2]: http://geektimes.ru/post/127511/
[3]: http://habrahabr.ru/post/254769/#habracut

[>] Будильник в технодизайне — настольные часы на основе Arduino
habra.14
habrabot(difrex,1) — All
2015-04-02 21:00:01


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

[1]: http://habrahabr.ru/company/masterkit/blog/254099/
[2]: http://3d.masterkit.ru/shop/3d-printers/1889560
[3]: //habrastorage.org/files/a24/660/924/a246609249454e5699e0a284dd15375e.jpg
[4]: http://habrahabr.ru/post/254739/#habracut

[>] [Перевод] Нам нужны не столь мощные языки программирования
habra.15
habrabot(difrex,1) — All
2015-11-25 16:00:03


![][1] Сегодня многие системы и языки программирования позиционируются как «мощные». Нельзя сказать, что это плохо. Почти каждый из нас считает это положительным свойством. Но в этом посте я хочу донести такую точку зрения, что во многих случаях нам нужны **менее мощные** языки программирования и системы. Но прежде чем продолжить, уточню: здесь будет мало оригинальных, моих собственных размышлений. Я буду излагать ход мыслей, возникший по прочтении книги Дугласа Хофштадтера «[Гёдель, Эшер, Бах][2]», которая помогла мне собрать воедино разрозненные идеи и мысли, бродившие в голове. Также большое влияние на нижеизложенный материал оказали [пост][3] Филипа Вадлера и [видеозапись][4] с конференции Scala. Ключевая мысль такова: _Каждое увеличение выразительности возлагает дополнительную нагрузку на всех, кто хочет понять сообщение._ И я хочу лишь проиллюстрировать эту точку зрения с помощью примеров, которые будут ближе и понятнее сообществу программистов на Python. [Читать дальше →][5]

[1]: https://habrastorage.org/files/a17/2ab/7af/a172ab7af3864e61a6ae1e1bb2f93c8c.jpg
[2]: https://ru.wikipedia.org/wiki/Гёдель,_Эшер,_Бах
[3]: http://wadler.blogspot.co.uk/2006/03/rule-of-least-power.html
[4]: https://www.youtube.com/watch?v=TS1lpKBMkgg&t=28m32s
[5]: http://habrahabr.ru/post/271585/#habracut

[>] Как Уитфилд Диффи помог Бобу и Алисе обмануть Еву
habra.14
habrabot(difrex,1) — All
2015-04-02 21:00:01


[![][1]][2] Многие специалисты полагают, что концепция Диффи до сих пор является самым большим шагом вперед за всю историю криптографии. В 1976 году Уитфилд Диффи и его соавтор, стэнфордский профессор Мартин Хеллман, опубликовали научную работу «New Directions in Cryptography». В исследовании был представлен алгоритм обмена ключами, который и сегодня широко используется в криптографических приложениях. [Читать дальше →][3]

[1]: //habrastorage.org/files/9ea/ef2/0fb/9eaef20fbee249eeb8bf2a0981ddb3ae.png
[2]: http://habrahabr.ru/company/pt/blog/254751/
[3]: http://habrahabr.ru/post/254751/#habracut

[>] [Перевод] Вычисляемые знания по анатомии в Wolfram Language
habra.15
habrabot(difrex,1) — All
2015-11-25 18:00:03






_Перевод поста Keiko Hirayama "[Dissecting the New Anatomy Content in the Wolfram Language][1]". Код, приведенный в статье, можно скачать [здесь][2]. Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][3] за помощь в переводе и подготовке публикации_

----

Тело человека является предметом изучения с самого начала человеческой истории. Современные научные направления в анатомии и физиологии происходят из симбиоза искусства и анатомии, возникшего в эпоху ренессанса. В начале 16-го века [Леонардо да Винчи][4] одним из первых представил достаточно подробные и точные эскизы человеческого тела и его структур. В 1543 году [Везалий][5] опубликовал знаменитый учебник _De Humani Corporis Fabrica (О строении человеческого тела)_ с красивыми иллюстрациями оного. Имея современные технологии в нашем распоряжении, мы можем представлять данные по физиологии и анатомии в вычислимом формате. С помощью [Wolfram|Alpha][6] мы создали для всех возможность легко изучить то, как отдельные анатомические структуры связаны друг с другом в организме человека, а также исследовать как целые системы органов, так и их микроскопические составляющие. ![][7] [Читать дальше →][8]

[1]: http://blog.wolfram.com/2015/11/11/dissecting-the-new-anatomy-content-in-the-wolfram-language/
[2]: http://blog.wolfram.com/data/uploads/2015/11/Dissecting-the-New-Anatomy-Content-in-the-Wolfram-Language-Blog.cdf
[3]: http://habrahabr.ru/users/kirillguzenko/
[4]: http://www.wolframalpha.com/input/?i=Leonardo+da+Vinci+
[5]: http://www.wolframalpha.com/input/?i=Vesalius
[6]: http://www.wolframalpha.com/
[7]: https://habrastorage.org/files/a37/6f7/bcf/a376f7bcfc8a435dbc6f2a039e4b1c60.gif
[8]: http://habrahabr.ru/post/271643/#habracut

[>] А можно ли не платить за панель? Красивое совершенство
habra.15
habrabot(difrex,1) — All
2015-11-25 18:00:03


Не так давно нами была запущена услуга [облачных VPS][1]. За счет полного root-доступа к виртуальному серверу и своей небольшой стоимости она стала довольно популярной среди наших клиентов. Кто-то переезжал на облачные VPS с [виртуального хостинга][2], так как клиентам было важно иметь именно доступ суперпользователя, а кто-то хотел использовать своим выделенный IP-адрес и не делить его с недобросовестными соседями. Даже были такие пользователи, которые съезжали на виртуальные облачные серверы с недорогих [«дедиков»][3], так как в условиях жесткой экономии приходилось как-то пытаться сохранить проекты от закрытия и продолжать быть постоянно онлайн. ![][4] Если говорить о большинстве наших услуг хостинга, то в стоимость практически всех из них включена лицензия панели управления ISPmanager, чего не скажешь об облачных VPS. Учитывая цену данных виртуальных серверов — это и не удивительно. Но многие наши клиенты хотели и вместе с такой бюджетной услугой иметь возможность использовать удобную панель управления хостингом, но при этом мало кто готов был оплатить лицензию разработки той же компании ISPsystem — [ISPmanager][5], которая довольно популярна в рунете. Здесь их позицию понять можно, и после того как обращения в нашу поддержку по данному вопросу участились — мы решили составить свой обзор бесплатных панелей управления хостингом. Те, кому это интересно — милости просим под хабракат… [Читать дальше →][6]

[1]: http://ua-hosting.company/vps?language=russian
[2]: http://ua-hosting.company/hosting?language=russian
[3]: http://ua-hosting.company/servers?language=russian
[4]: https://habrastorage.org/files/460/f5c/0dd/460f5c0ddec8460498f055844da5a9b6.jpg
[5]: https://www.ispsystem.ru/software/ispmanager
[6]: http://habrahabr.ru/post/271673/#habracut

[>] Развод на миллион — афёра от старых знакомых
habra.14
habrabot(difrex,1) — All
2015-04-02 21:30:02


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

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

[>] [Перевод] Sidechains: насколько многогранны криптовалюты?
habra.15
habrabot(difrex,1) — All
2015-11-25 18:30:03


_Публикую перевод статьи «[Sidechains: How Many Sides Does a Cryptocurrency Have?][1]» Рэя Паттерсона (Ray Patterson) с сайта [Bytecoin.org][2]._

## Не существует «самой лучшей» криптовалюты

Bitcoin прекрасен, Bytecoin прекрасен, Doge прекрасен. Все криптовалюты прекрасны (ну, или давайте на секундочку представим, что это так). Вы можете расплатиться биткойнами за сэндвичи в Сабвэй, использовать Bytecoin для частных покупок, посылать Dogecoin своим друзьям в качестве подарков, и так далее. То есть, вы можете использовать особенности каждой из криптовалют для подходящего случая. Но — вот досада — вам не понравилось бы таскаться с дюжиной кошельков для каждой из этих монет. Естественно, вы можете просто собрать другую криптовалюту, которая будет сочитать в себе все лучшие «фичи». Что-то вроде стандрата для криптовалют. Погодите… Это мне что-то напоминает.



Конечно, такой подход возможен… теоретически. Но на практике это становится невыполнимым. Во-первых, идея «самого лучшего» крайне субъективна. Не всем кажется, что функция «demurrage»(плата за простой монетки в кошельке) у Freicoin – довольно полезная функция. Выбор стандарта из всевозможных вариаций Proof of Work также стало было колоссальным испытанием. Во-вторых, некоторые вещи просто не могут сочетаться в принципе: представьте себя на месте сервиса, который должен принимать во внимание миллион функций всего-навсего ОДНОЙ криптовалюты. Стали бы вы ее принимать? В конце концов, это просто крайне сложно с технической точки зрения — содержать все внедрённые инновации и обновления разных проектов.

## Преумножая альткойны

Вот вам иная точка зрения. Представьте себя счастливым разработчиком криптовалюты. Вы изобрели новую функцию и теперь хотите её протестировать в реальных условиях. Вы не можете слепить всё на скорую руку и закинуть на рынок (ваш проект крайне важен для вас), но вы не можете протестить новую «фичу» без реальных пользователей. Что делать? Вы хотите, чтобы ваша криптовалюта получила эту функцию (и люди бы стали ей пользоваться) и одновременно сомневаетесь в ней, ведь в случае критической ошибке люди потеряют свои средства. [Читать дальше →][3]

[1]: https://bytecoin.org/blog/sidechains/
[2]: https://bytecoin.org
[3]: http://habrahabr.ru/post/271669/#habracut

[>] [Из песочницы] Поразрядная сортировка с человеческим лицом
habra.15
habrabot(difrex,1) — All
2015-11-25 18:30:03


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

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

[>] Завершен аудит кода TrueCrypt
habra.14
habrabot(difrex,1) — All
2015-04-02 21:30:02


Сайт Open Crypto Audit Project сообщает о завершении второй стадии аудита кода популярного открытого средства шифрования TrueCrypt, разработчики которого 28 мая 2014 года [очень странно покинули сцену][1], посоветовав переходить на BitLocker — решение для шифрования данных от Microsoft. По сути, аудит кода завершен, ребятам из OCAP осталось только написать финальный документ с выводами. Согласно результатам аудита, никакой закладки в TrueCrypt 7.1a нет. Аудиторы отметили только 4 потенциально нехороших места, которые не приводили к компрометации каких-либо данных при обычных условиях:

1. Отсутствие проверки подлинности зашифрованных данных в заголовке тома
2. Смешивание ключевого файла происходит не криптографически устойчивым образом
3. Реализация AES может быть уязвима к атаке по времени
4. CryptAcquireContext может оказаться неинициализированным без сообщений об ошибке

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

[1]: http://habrahabr.ru/post/224491/
[2]: http://habrahabr.ru/post/254777/#habracut

[>] Критическая уязвимость в компьютерах Dell позволяет хакерам получать доступ практически к любым данным: Как защититься
habra.15
habrabot(difrex,1) — All
2015-11-25 18:30:03


[![][1]][2] 22 ноября 2015 года в сеть [попала][3] информация о критической уязвимости, которой подвержен целый ряд продуктов компании Dell (вот [упоминание][4] о ней на Хабре). Первым на ошибку обратил внимание программист Джо Норд, который [описал][5] ее в своем блоге. Разработчик сообщил, что приобрел ноутбук Dell Inspiron 5000, на котором был предустановлен корневой сертификат безопасности под названием eDellRoot Проблема заключается в том, что закрытый ключ этого корневого сертификата хранится на самом компьютере, что открывает злоумышленникам широкие возможности по проведению атак типа «человек посередине» (man in the middle). [Читать дальше →][6]

[1]: https://habrastorage.org/files/1f2/a07/427/1f2a07427d1a49d1bd61ed991eb0dcc5.jpg
[2]: http://habrahabr.ru/company/pt/blog/271649/
[3]: https://www.reddit.com/r/technology/comments/3twmfv/dell_ships_laptops_with_rogue_root_ca_exactly/
[4]: http://habrahabr.ru/post/271511/
[5]: http://joenord.blogspot.in/2015/11/new-dell-computer-comes-with-edellroot.html
[6]: http://habrahabr.ru/post/271649/#habracut

[>] [Перевод] Машинное обучение как способ анализа микроструктуры рынка и его применение в высокочастотном трейдинге
habra.15
habrabot(difrex,1) — All
2015-11-25 19:30:02


[![][1]][2] В этой статье мы рассмотрим способы применения машинного обучения в сфере высокочастотного трейдинга (HFT) и анализа микроструктурных данных. Машинное обучение – это замечательный раздел информатики, использующий модели и методы из статистики, теории алгоритмов, теории вычислительной сложности, искусственного интеллекта, теории управления и огромного числа других дисциплин. Основным объектом исследования машинного обучения являются эффективные алгоритмы, позволяющие создать хорошие предсказательные модели на основании больших наборов данных – именно поэтому оно так хорошо подходит для решения задач высокочастотного трейдинга: заключения сделок и расчета показателя «альфа». [Читать дальше →][3]

[1]: https://habrastorage.org/files/69c/f07/334/69cf073343e34df8957c7111eea62a4c.png
[2]: http://habrahabr.ru/company/itinvest/blog/271555/
[3]: http://habrahabr.ru/post/271555/#habracut

[>] Юные хакеры 414s
habra.15
habrabot(difrex,1) — All
2015-11-25 22:00:03


Название команды 414s звучит так, словно это какая-то модная рок-группа 80-х. Но герои данной истории прославились вовсе не музыкой, а компьютерными взломами. С помощью обычных домашних компьютеров они хакнули с десяток компьютерных систем серьезных учреждений, как например Лос-Аламосскую Национальную лабораторию в Нью-Мехико, Онкологический центр Memorial Sloan-Kettering в Нью-Йорке, а также и школу города Милуоки. Юные хакеры так развлекались и всего лишь удовлетворяли свою непомерную любознательность. Команда 414s состояла из группы подростков-единомышленников. Но общественности открылись лишь шесть юношей, возраста от 16 до 22 лет. Собралась группа по иронии судьбы — их встрече и близкому знакомству поспособствовал исследовательский клуб бойскаутов, который спонсировала известная компания IBM. Основной целью данной организации было научить детишек пользоваться компьютерами. И ученики превзошли всякие ожидания. Настолько превзошли, что с 1983 года попали под пристальное внимание ФБР и прославились на весь мир. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/fbc/b7d/e8a/fbcb7de8a3d543d08d455e46ca172d79.png
[2]: http://habrahabr.ru/post/271681/#habracut

[>] PythonDigest — выпуск номер 100 и другие замечательные новости
habra.15
habrabot(difrex,1) — All
2015-11-26 12:00:04


Python — жив! С такого громкого заявления хочется начать статью. На этой неделе вышел 100-тый Python Digest. по такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест. ![][1] В конце 2014 года мы подводили итоги [http://habrahabr.ru/post/247067/][2] за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года. Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год. Интересующихся подробностями милости просим под кат. [Подробности][3]

[1]: https://habrastorage.org/files/706/19c/4c4/70619c4c4d454172a9675b2f8a38f96a.jpg
[2]: https://www.google.com/url?q=http://habrahabr.ru/post/247067/&sa=D&usg=AFQjCNEsa8F6-XbDJs1DA1AthYS7uSwICQ
[3]: http://habrahabr.ru/post/271729/#habracut

[>] Оптимизация кода с помощью RequireJS: как это делается и для чего это нужно
habra.14
habrabot(difrex,1) — All
2015-04-03 00:30:02


В своем предыдущем посте я рассказал о том, как подключить RequireJS к своему проекту. Кроме того, пообещал рассказать об оптимизации. Оптимизировать проекты, построенные на RequireJS очень быстро и легко. Причём оптимизации подлежит как сам код (скрипты, библиотеки, плагины) так и файлы стилей. [Читать дальше →][1]

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

[>] [Перевод] Зачем разработчику издеваться над собственным кодом
habra.15
habrabot(difrex,1) — All
2015-11-26 13:30:03


[][1] _Проблема решена: 317 кликов исправили ошибку_ В 1992 году я считал себя лучшим программистом в мире. В свое оправдание могу сказать лишь, что тогда я только закончил колледж (это было еще до появления Интернета) и жил в Боулдере, штат Колорадо, подрабатывая в мелких компаниях – я почитал за большую удачу возможность просто услышать о других программистах, не говоря уже о том, чтобы повстречаться с ними. В итоге я познакомился с человеком по имени Билл О’Нил, который нанял меня в качестве программиста, работающего по контракту. Он создал компанию с довольно неоригинальным названием Computer Research & Technologies, и мы стали работать над различными задачами вместе. Мы занимались разработкой CRUD-приложений [Create, Read, Update, Delete – вариант приложения с базовыми функциями создания, просмотра, обновления и удаления записей в базе данных – прим. перев.] для бизнеса на Visual Basic и FoxPro под Windows 3.1 (и иногда под DOS, так как предчувствовали, что новомодный графический интерфейс останется с нами надолго). Билл был первым профессиональным программистом, с которым я когда-либо работал. Да что тут говорить, он был первым программистом вообще, с которым я когда-либо работал. Он выдавал мне техзадание, по нему я писал программу на Visual Basic и затем отдавал ее на проверку Биллу. После этого он спокойно объяснял мне, что мой код никуда не годится. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/friifond/blog/271733/
[2]: http://habrahabr.ru/post/271733/#habracut

[>] Электронные таблицы под капотом
habra.15
habrabot(difrex,1) — All
2015-11-26 13:30:03


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

[1]: https://habrastorage.org/files/7f7/afd/c52/7f7afdc52c404bcca1e0e86bf55d911f.jpg
[2]: http://habrahabr.ru/post/271685/#habracut

[>] PowerShell: за гранью. Часть третья
habra.14
habrabot(difrex,1) — All
2015-04-03 01:00:03


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

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

[>] Дизайним прототипы ячеек в одном XIB-е с UITableView
habra.15
habrabot(difrex,1) — All
2015-11-26 15:00:03


А заодно раз и навсегда решаем проблему автоматической калькуляции высоты ячеек. Disclaimer: Вероятно, этот метод не обеспечивает наилучшую производительность, может иметь некоторое количество подводных камней, вызывать головокружение, тошноту и дьявола, старикам и беременным детям просьба не читать. Преодоление трудностей — наверное лучшая мотивация программиста. Не секрет, Xcode содержит уйму недоработок, непрозрачных решений и багов. Сегодня я постараюсь найти решение одного из них ![][1] [Читать][2]

[1]: https://habrastorage.org/files/956/d65/a0f/956d65a0fb924a0d8b5829927f8eba96.png
[2]: http://habrahabr.ru/post/271701/#habracut

[>] Перевод часов в России, опять… и php5-intl
habra.14
habrabot(difrex,1) — All
2015-04-03 05:30:02






Доброе %время суток%.

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

Ничего не предвещало беды. Задолго до были обновлены tzdata и всё, до чего могли руки дотянуться. Но в очередной момент перевода часов мой сайт стал выдавать московское время на час больше. Беглая проверка показала, что сама OS, mysql и php (функция date) возвращают время корректно и указывают часовой пояс +3 для Москвы. Собака же зарыта оказалась в хорошем расширении php5-intl. Функция format класса IntlDateFormatter упорно возвращала часовой пояс +4 для Москвы. [Читать дальше →][1]

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

[>] DevOps: отправляем метрики и спим спокойно
habra.15
habrabot(difrex,1) — All
2015-11-26 15:00:03


![][1] Внезапно, ночью раздается звонок и мы узнаем что наше приложение не работает. Есть 2 часа на его реанимацию… [Где же наш мониторинг и логи программы!?][2]

[1]: https://habrastorage.org/files/f7b/a6e/614/f7ba6e61460e4238ae66af472a4428d4.jpg
[2]: http://habrahabr.ru/post/269793/#habracut

[>] Машинное обучение в навигационных устройствах: определяем маневры машины по акселерометру и гироскопу
habra.14
habrabot(difrex,1) — All
2015-04-03 08:30:02


Программы, которые доступны нам сегодня для автомобильной навигации оказывают большую помощь водителям. Они помогают нам ориентироваться в незнакомой местности и объезжать пробки. Это большой труд людей со всего мира, который сделал нашу жизнь проще. Но нельзя останавливаться на достигнутом, технологии идут вперед и качество программ также должно расти. ![image][1] Сегодня, на мой взгляд, одна из проблем навигационных устройств – это то, что они не ведут пользователя по полосам. Эта проблема увеличивает время в пути, пробки и аварийность. Недавно google maps начали отображать разметку дороги перед поворотом, что уже хороший результат, но и тут можно многое улучшить. Карты не знают на какой полосе сейчас находится машина, средствами gps узнать это проблематично, у gps слишком большая погрешность для этого. Если бы мы знали текущую полосу, то знали бы скорость движения по полосами и могли бы задолго подсказывать пользователю в явном виде, на какую полосу и когда ему лучше перестроиться. Например, навигатор говорил бы “Продолжайте держаться этой полосы до перекрестка” или “Перестройтесь на крайнюю левую полосу”. В этой статье мы попробуем рассказать, как мы пытаемся определять перестроения, текущую полосу движения автомобиля, повороты, обгоны, а также другие маневры с помощью машинного обучения по данным акселерометра и гироскопа. [Читать далее][2]

[1]: https://raw.githubusercontent.com/blindmotion/docs/master/pics/article/habr/kdpv4.png
[2]: http://habrahabr.ru/post/254707/#habracut

[>] Новая концепция дата-центра от Vapor IO: универсальность и экономия пространства
habra.14
habrabot(difrex,1) — All
2015-04-03 08:30:03


Новая концепция дата-центра от Vapor IO: универсальность и экономия пространства ![][1] При слове «дата-центр» даже человек, не слишком знакомый с миром телекоммуникаций, представляет себе ряды серверных шкафов и проходы между ними. Более сведущий человек представляет еще и перфорированный фальшпол. Плюс ко всему, это еще и UPS, водяное охлаждение и многое другое. Новая концепция дата-центра предполагает изменить все это, установив в комнате большие черные цилиндры, которые напоминают коробки для фотопленки, только размер цилиндров в сотни раз больше размера коробки. Именно так компания Vapor IO предлагает размещать оборудование в дата-центре, используя свою наработку, которая называется Vapor Chamber. [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/2fb/4d4/ecc/2fb4d4eccbddba129da572da7a1d6321.jpg
[2]: http://habrahabr.ru/post/254771/#habracut

[>] [Перевод] Конец эпохи динамических языков
habra.15
habrabot(difrex,1) — All
2015-11-26 15:00:03


Несколько последних месяцев я программирую преимущественно на Scala (по работе) и на Haskell (для души). На этой неделе я, правда, ещё немного пописал на Ruby (по работе) и Clojure (для души). Ruby вывел меня из равновесия почти сразу. Нет, ну ещё в плане «добавить небольшую фичу к уже имеющемуся коду» писать на нём можно. Вы просто добавляете юнит тест, запускаете его на старом коде, делаете правку, запускаете тест снова — вуаля, готово, забирайте. Но замахиваться на что-то большее становится уже слишком сложно. Но вот что касается моего новенького, с иголочки, проекта-любимца на Clojure… О, Clojure! Глоток свежего воздуха! Благодатная земля хорошо скомпонованных функций, иммутабельных структур данных и всего такого. Как прекрасен твой синтаксис и как мудра твоя чувствительность! Вся твоя суть в функциях, принимающих мэпы и возвращающих мэпы. И твой SQL-генератор, и слой доступа к БД, и HTML-парсер, и URL-роутер являют собой одну и ту же завораживающую картину мэпов, гоняемых туда-сюда тактами процессора, прекрасную с своём ритме хорошо собранных швейцарских часов. Вернуться к Clojure после долгого времени это всё-равно, что почуствовать себя дома. Это просто окрыляет программиста. Но почему-то в этот раз я ощутил и ещё одно, неожиданное для себя чувство: неопределённость. [Читать дальше →][1]

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

[>] Фишинг в корпоративной среде
habra.15
habrabot(difrex,1) — All
2015-11-26 15:30:03


![][1] Фишинговые сообщения электронной почты в корпоративной среде обычно знаменуют собой [таргетированную атаку][2], хорошо продуманы и реализованы. В отличии от рядовых пользователей, сотрудники компаний могут быть проинструктированы должным образом о существующих угрозах информационной безопасности. За сообщениями электронной почты может быть установлен тот или иной контроль со стороны сотрудников ИТ/ИБ подразделений. [Читать дальше →][3]

[1]: https://habrastorage.org/files/d4e/144/feb/d4e144feb34e4edd8f4da17fffb22764.png
[2]: https://en.wikipedia.org/wiki/Advanced_persistent_threat
[3]: http://habrahabr.ru/post/271597/#habracut

[>] [Перевод] Разработка быстрых мобильных приложений на Android. Часть первая
habra.15
habrabot(difrex,1) — All
2015-11-26 16:30:02


В [Edison][1] мы часто сталкиваемся с оптимизацией мобильных приложений и хотим поделиться материалом, который считаем крайне полезным, если вы решаете одну из двух задач: а) хотите чтобы приложение меньше тормозило; б) хотите сделать красивый, мягкий и гладкий интерфейс для массового пользователя. Предлагаем вашему вниманию первую часть перевода статьи Udi Cohen, которую мы использовали как пособие для обучения оптимизации под Android. ![][2] Несколько недель назад я выступил на Droidcon в Нью-Йорке с докладом об оптимизации производительности Android. Я потратил много времени на презентацию, так как хотел показать реальные примеры проблем производительности, и как их можно выявить с помощью имеющихся инструментов. Мне пришлось убрать половину слайдов, потому что мне не хватало времени, чтобы показать все. В этой статье я собрал всё, о чем я говорил, а также примеры, которые я не успел показать. Мои основные правила, которым я следую при работе с оптимизацией.

#### **Мои правила**

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

[1]: http://www.edsd.ru/
[2]: https://habrastorage.org/files/5ad/e29/9c0/5ade299c03474986904ddcb40a4553ca.jpg
[3]: http://habrahabr.ru/post/271761/#habracut

[>] Сравнительный анализ покупательских корзин
habra.15
habrabot(difrex,1) — All
2015-11-26 17:00:03


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



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

[1]: http://habrahabr.ru/company/datawiz/blog/271757/
[2]: http://habrahabr.ru/company/datawiz/blog/270503/
[3]: http://habrahabr.ru/post/271757/#habracut

[>] [Из песочницы] Система автоматического реферирования для трех языков
habra.15
habrabot(difrex,1) — All
2015-11-26 17:00:03


Я хочу рассказать о разработанном мной сервисе реферирования новостных текстов на английском, русском и немецком языках. Системы автоматического реферирования (резюмирования) (САР) — тема довольно специфическая и будет интересна в основном тем, кто занимается автоматической обработкой языка. Хотя идеально исполненный саммарайзер мог бы стать полезным помощником в сферах, где необходимо преодолеть информационный перегруз и быстро принять решение о том, какая информация стоит дальнейшего рассмотрения. [Читать дальше →][1]

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

[>] [Из песочницы] Виды программируемой логики
habra.14
habrabot(difrex,1) — All
2015-04-03 11:00:02


Привет, Хабралюди! Пролистав ленту статей с тегами, относящимся к ПЛИС, FPGA, цифровому дизайну и HDL понял, что их не густо. Будем исправлять это безобразие. В этом посте я постараюсь доходчиво, коротко и понятно рассказать об архитектурах устройств программируемой логики. Затрону ключевые вопросы технологии их производства. Поехали. [Читать дальше →][1]

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

[>] [Перевод] Особенности (traits) в Perl 6 – метаданные вместе с символом
habra.15
habrabot(difrex,1) — All
2015-11-26 17:00:03


Особенности (Traits) – это удобный и расширяемый способ присоединения метаданных к различным видам объектов в Perl 6. Рассмотрим пример особенности с is cached, автоматически кеширующей возвращаемое функцией значение в зависимости от переданных аргументов.

# следующий код вызывается, когда к функции
# добавляется 'is cached'
multi sub trait_mod:<is>(Routine $r, :$cached!) {
my %cache;
# обернём функцию в блок, который
$r.wrap(-> $arg {
# ищет аргумент в кеше
%cache{$arg}:exists
?? %cache{$arg}
# ... и вызывает оригинал, если он не найден
!! (%cache{$arg} = callwith($arg))
}
);
}

# пример применения:
sub fib($x) is cached {
say("fib($x)");
$x <= 1 ?? 1 !! fib($x - 1) + fib($x - 2);
}

# для всех значений от 0 до 10 происходит лишь по одному вызову
say fib(10);


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

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

[>] WifiOTP: Удобная двухфакторная аутентификация с помощью Wi-Fi SSID
habra.15
habrabot(difrex,1) — All
2015-11-26 17:30:04


![][1]

### Проблема: двухфакторная аутентификация слишком сложна для большинства пользователей

Классическая двухфакторная аутентификация подразумевает достаточно утомительную для пользователей процедуру. Опишем последовательность действий, необходимых для входа в тот же Gmail на персональном компьютере с использованием мобильного телефона в качестве генератора одноразовых паролей (OTP). После входа с помощью первого фактора (пароля), надо: 1) Найти телефон 2) Разблокировать его 3) Найти приложение-OTP генератор (например, Google Authenticator или Token2 Mobile OTP) 4) Подсмотреть OTP и ввести его с клавиатуры Примерно так же «сложно» с аппаратными ключами стандарта TOTP/HOTP (с U2F ключами чуть проще). Понятно, что у всего есть своя цена, но для обычных пользователей, особенно не сталкивавшихся прежде с компрометацией учетных записей, эта мера кажется лишней. Неудивительно, что в случаях, где двухфакторная аутентификация необязательна, только небольшой процент пользователей активирует эту опцию. По данным исследователей, в случае с Gmail, это около 6% [1]. В целом, для решения этой проблемы надо только найти альтернативный канал между основной системой (в нашем случае браузер на компьютере) и ключом (мобильным приложением). [Читать дальше →][2]

[1]: https://habrastorage.org/files/265/8b9/6ee/2658b96ee3ac48f39986d5f18b5aee8c.png
[2]: http://habrahabr.ru/post/271769/#habracut

[>] Perl 6: nextsame и его родственники
habra.14
habrabot(difrex,1) — All
2015-04-03 14:00:02


Возможно, вам знаком способ, которым ключевое слово super в языке Java позволяет передавать управление методу (или конструктору) базового класса. В Perl 6 есть нечто похожее. Но в мире с множественной наследуемостью и миксинами нет смысла называть эту функцию super. Поэтому она называется nextsame. Пример:

class A {
method sing {
say "а после умерла.";
}
}

class B is A {
method sing {
say ("зимой и летом стройная," xx 4).join(" ");
nextsame;
}
}

class C is B {
method sing {
say "в лесу родилась ёлочка,";
say "в лесу она росла.";
nextsame;
}
}


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

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

[>] Успешное внедрение SIEM. Часть 1
habra.15
habrabot(difrex,1) — All
2015-11-26 17:30:04


Всем привет. Так получилось, что последние несколько лет провел в процессе внедрения SIEM Arcsight ESM в одном крупном телекоммуникационном провайдере. Считаю, что сделал это весьма успешно и в итоге ушел на несколько другую стезю, т.к. уперся в некоторый потолок, который есть в России в целом по направлению безопасности. Для того, чтобы не сложилось ложного понимания у читателя уточню, что я работал именно внутри компании, а не на проекте от системного интегратора и SIEM использовалась исключительно для внутренних нужд, а не для создания коммерческого Security Operation Center (далее SOC). В целом тематика внедрения и использования SIEM освещена слабо, да и в целом те инсталляции, которые я видел обычно не приносили достаточной эффективности тем кто ее внедрял. Мне с коллегами на мой взгляд удалось реализовать свой собственный SOC ядром, которого является SIEM, приносящий огромную пользу не только отделу ИБ, но и другим отделам в частности и всей компании в целом, включая руководство. [Читать дальше →][1]

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

[>] Traffic Inspector: полная перезагрузка
habra.14
habrabot(difrex,1) — All
2015-04-03 14:30:02


**Привет, Хабр!** Почти 12 лет назад мы, компания [Смарт-Софт][1], выпустили первую версию своего флагманского продукта [**Traffic Inspector**][2]. За это время он превратился из обычного прокси-сервера в универсальный шлюз безопасности, сочетающий в себе функционал прокси, почтового, антиспам, веб серверов со служебными модулями Phishing Blocker, RBL, RAS Dialer, плагином фильтрации контента NetPolice, продвинутой системой биллинга, прошедшей сертификацию ССС и ФСТЭК, и возможностью учёта разных типов трафика (IMAP, SMTP, POP, NAT и прокси). Как и в любом серьезном продукте, в Traffic Inspector с течением эволюции наблюдались недостатки. Сегодня мы резюмируем работу над ошибками, которая была проведена специалистами нашей компании за последние пару лет. [![][3]][4] [Читать дальше →][5]

[1]: http://www.smart-soft.ru/ru/
[2]: http://www.smart-soft.ru/ru/products/Traffic-Inspector/
[3]: http://habrastorage.org/files/c42/dd3/c5b/c42dd3c5b2aa49c688a5854c4f095ccf.png
[4]: http://habrahabr.ru/company/smart_soft/blog/254741/
[5]: http://habrahabr.ru/post/254741/#habracut

[>] [Из песочницы] Про интерфейсы
habra.14
habrabot(difrex,1) — All
2015-04-03 14:30:02


В первую голову проблема касается продуктовых софтостроителей, хотя и в проектном тоже не все гладко. Начнем с недавней истории. Технология COM (и другие, но суть та же) дала возможность разработчикам компонентов простым образом отделить интерфейсы от реализации. Для прикладных разработчиков это означало, например, что при обновлении компонентов старые интерфейсы продолжали бы работать. В теории, конечно. Но и на практике это выглядело гораздо лучше, чем «ад динамических библиотек», имеющих всегда версию «текущая». Каков механизм? Он очень прост. [Читать дальше →][1]

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

[>] Демонстрация решения ІXIA для нагрузочных тестов
habra.15
habrabot(difrex,1) — All
2015-11-26 17:30:04


[Здесь][1] мы уже начали цикл публикаций, о таком вендоре как ІXIA. Компания разрабатывает и поставляет на рынок решения для самых разнообразных нагрузочных тестов любых ИТ систем. Сегодня у нас видеозапись презентации на стенде IXIA, на выставке [МУК Экспо 2015][2]. Состоит из двух частей – обзор решений, и живая демонстрация решения ([с 10 минуты][3]): IXIA будет нагружать оборудование Juniper Вот видео




Для тех, кто не хочет смотреть все видео — под катом расшифровка со скриншотами [Читать дальше →][4]

[1]: http://habrahabr.ru/company/muk/blog/266533/
[2]: http://expo.muk.ua/
[3]: https://youtu.be/tzwfmgrFX_E?t=10m2s
[4]: http://habrahabr.ru/post/271577/#habracut

[>] Нагрузим все: демонстрация решения ІXIA для нагрузочных тестов
habra.15
habrabot(difrex,1) — All
2015-11-26 22:30:02


[Здесь][1] мы уже начали цикл публикаций, о таком вендоре как ІXIA. Компания разрабатывает и поставляет на рынок решения для самых разнообразных нагрузочных тестов любых ИТ систем. Сегодня у нас видеозапись презентации на стенде IXIA, на выставке [МУК Экспо 2015][2]. Состоит из двух частей – обзор решений, и живая демонстрация решения ([с 10 минуты][3]): IXIA будет нагружать оборудование Juniper Вот видео




Для тех, кто не хочет смотреть все видео — под катом расшифровка со скриншотами [Читать дальше →][4]

[1]: http://habrahabr.ru/company/muk/blog/266533/
[2]: http://expo.muk.ua/
[3]: https://youtu.be/tzwfmgrFX_E?t=10m2s
[4]: http://habrahabr.ru/post/271577/#habracut

[>] [Перевод] Сегодняшний мир — это amd64, armv7 и aarch64. Всё остальное мертво, Джим
habra.15
habrabot(difrex,1) — All
2015-11-27 05:30:03


_Вашему вниманию предлагается перевод прощального письма Миода Валлата, разработчика OpenBSD в течение 15+ лет, [покинувшего проект][1] неделю назад. Письмо, изначально адресованное лично некоему Джиму, рассказывает историю о том, куда порой приводят благие намерения, и вызвало резонанс среди пользователей [Reddit][2] и [HackerNews][3]. Учтите — высказанное мнение субъективно, и, по словам самого автора, "[вы имеете право с ним не согласиться][4]"._ Сегодняшний мир — это amd64 (_по-другому x64, или x86-64_), armv7 и, в скором будущем, aarch64 (_64-битный ARMv8_). Всё остальное мертво, Джим. Никто не вкладывает достаточно денег и мыслительного труда в прочие архитектуры. В действительности, лишь небольшая часть людей в курсе существования остальной части экосистемы (mips, power8, ...), и все равно никому нет до них дела. Поддержка устаревшей платформы на плаву — это весело, поскольку это напоминает тебе о 90-ых, когда существовал большой выбор «железных» платформ, с приблизительно одинаковым соотношением цены/мощности. В конце концов, дешевые PC убили практически всю конкуренцию, а рынок смартфонов дал ARM нездоровую долю рынка в мире встраиваемых систем. Затем, спустя некоторое время, веселье подходит к концу, поскольку никто не пишет код, держа в уме твою платформу, — ведь она не считается достаточно мощной, а современные компиляторы больше ее не поддерживают (или они генерируют для нее нерабочий код, что на деле еще хуже). У твоей платформы есть аппаратные границы в несколько сотен MB физической памяти? Тебе не удастся запустить на ней веб-браузер или даже программу для просмотра PDF. Кто-нибудь все еще запускает _testsuite_ из последней версии _gcc_ на твоей платформе? Нет? Прости, чувак, но [вот тебе «никель» (_5 центов_), сходи купи себе уже компьютер получше][5]… [Читать дальше →][6]

[1]: https://twitter.com/MiodVallat/status/667395820770209792
[2]: https://www.reddit.com/r/linux/comments/3u7z6c/todays_world_is_amd64_armv7_and_soon_aarch64
[3]: https://news.ycombinator.com/item?id=10633017
[4]: https://twitter.com/MiodVallat/)status/669253976261570561
[5]: http://static.flickr.com/87/240803829_9212773615_o.png
[6]: http://habrahabr.ru/post/271815/#habracut

[>] В 600 000 модемах «Arris» обнаружили бекдор в бекдоре
habra.15
habrabot(difrex,1) — All
2015-11-27 12:00:02


![image][1] По мнению специалиста в области безопасности, 600 000 кабельных модемов Arris удивят пользователей малоприятным сюрпризом под названием «бэкдор в бэкдоре». Тестировщик ПО из Globo TV Бернардо Родригес опубликовал отчет о скрытых библиотеках, обнаруженных в трех кабельных модемах Arris. В свою очередь, благодаря поисковой системе Shodan, позволяющей исследовать данные о всех подключенных к сети устройствах, были выявлены аналогичные дефекты в 600 000 модемах. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/832/8d3/0bd/8328d30bda5b014e848437e1eea3a654.jpg
[2]: http://habrahabr.ru/post/271825/#habracut

[>] Социальная инженерия из первых рук
habra.15
habrabot(difrex,1) — All
2015-11-27 12:30:02


Кевину Митнику, родоначальнику социальной инженерии, принадлежат золотые слова:

> Социальный инженер задумал заполучить проект (исходники) Вашего нового продукта за 2 месяца до релиза.
>
>
>
> Что остановит его?
>
>
>
> Ваш файервол? Нет.
>
>
>
> Мощная система идентификации? Нет.
>
>
>
> Система обнаружения вторжений? Нет.
>
>
>
> Шифрование данных? Нет.
>
>
>
> Ограничение доступа к номерам дозвона модемов? Нет.
>
>
>
> Кодовые имена серверов, которые затрудняют определение местонахождения проекта искомого продукта? Нет.
>
>
>
> Смысл здесь в том, что никакая технология в мире не сможет противостоять атаке социального инженера.

![][1] Однако частично обезопасить себя всё же можно – изучив, чем движим социальный инженер, как он мыслит и действует, какими приёмами пользуется. Зная это, можно уберечь себя от атак социальных инженеров. Подробно об этом можно почитать в книге про Кевина Митника «Искусство обмана». Однако поскольку книги читать мало кто любит, можно посмотреть фильм «Взлом», где хорошо проиллюстрированы приёмы, которыми пользовался Кевин. Ниже представлены ключевые видеофрагменты из этого фильма. Их вполне можно использовать при проведении корпоративных тренингов по информационной безопасности. [Читать дальше →][2]

[1]: https://habrastorage.org/files/87a/14d/dfb/87a14ddfbf7d406abb5d01db24ef2fb9.jpg
[2]: http://habrahabr.ru/post/271717/#habracut

[>] [Из песочницы] Путь к бесконечному сжатию данных
habra.14
habrabot(difrex,1) — All
2015-04-03 14:30:02


![image][1] Всякий, знакомый с проблематикой кодирования информации, периодически сталкивался с идеями алгоритмов «суперсжатия» данных без потерь. Зачастую предлагается использование хеш-сумм, генераторов случайных чисел (зачем?), или просто различных комбинаций повторного сжатия данных при помощи архиваторов. После очередного бурного обсуждения, как правило, эксперты в очередной раз советуют первооткрывателям ознакомиться с азами теории информации. Особо упертым предлагают просто написать программу сжатия данных на один бит файла со случайными данными. После этого доселе бурно проходящее обсуждение «революционной технологии» постепенно сходит на нет. ![image][2] _Проблематика завлекает_ Много лет назад, в ходе работы над программой анализа текстов, я также заинтересовался этой темой. В результате изучения фундаментальных основ современной теории информации, стало понятно, об какие камни спотыкались многочисленные первопроходцы, пытавшиеся с наскока решить эту проблему. [Читать дальше →][3]

[1]: http://maktub.org.ua/wp-content/uploads/2013/01/star_sky.jpg
[2]: http://cdn2.hubspot.net/hub/192612/file-18598546-jpg/images/computer-worm-hole.jpg?t=1427492936213
[3]: http://habrahabr.ru/post/254809/#habracut

[>] Asterisk: Приоритезация VoIP трафика и резервирование доступа в Интернет двух провайдеров на MikroTik
habra.15
habrabot(difrex,1) — All
2015-11-27 13:30:02


Казалось бы вещи, вынесенные в заголовок, достаточно тривиальны и описаны во множестве мест глобальной сети, но это только на первый взгляд. Опробовав наиболее часто встречающиеся советы я обнаружил несколько «подводных камней», глыб и даже скальных образований. Но это все слова, ближе к делу. Достаточно распространенная ситуация — Asterisk внутри ЛКС, за маршрутизатором MikroTik. Дабы выделить трафик сервера, где установлена PBX, администратор отрезает часть канала провайдера выделяя его исключительно для конкретного IP. Или другая реализация, когда нужный трафик определяется не только по IP-адресу PBX, но и по размеру пакетов и протоколу. Попробовали — работает. Можно забыть? А вот и нет. Что если администратору захочется слить что-то из Интернет находясь в консольке сервера, или наоборот отправить куда-либо в Интернет большое количество траффика? Правильно — он приоритезируется на MikroTik так же как и полезный трафик от PBX, что в итоге приведет к проблемам с IP-телефонией. Решение здесь старо как сам IPv4 — метить трафик на сервере с Asterisk генерируемый только ею, и так, чтобы MikroTik это мог «увидеть», отматчить(простите за столь грубый англицизм) и приоритезировать только его. Следующим пунктом у нас идет резервирование каналов от двух интернет-провайдеров. Думаю что каждому системному администратору, использующему в своем хозяйстве маршрутизаторы MikroTik, знаком скрипт из wiki — [wiki.mikrotik.com/wiki/Failover\_Scripting][1] Он всем хорош, но как и в предыдущей ситуации есть ряд «но». Наиболее весомому из них имя «Connection tracking» и заключается оно вот в чем: когда наш основной ISP изволит отдохнуть от трудов праведных, траффик переключается на резервного. Все вроде бы довольны, ютуб работает, яп тоже, но сколько бы мы не кричали



и в отчаянии не пытались применить магию высших порядков



SIP-регистрации не поднимаются. А дело в том, что в механизме «Connection tracking» остались висеть записи от «старого»(основного) интернет-канала и их нужно удалить, после чего регистрации успешно поднимутся и звонки начнут проходить. Если вам интересно как доказать MikroTik'у кто все-таки верблюд, а так же как автоматизировать в скрипте сброс «старых» соединений, то вам прямо под кат. [Читать дальше →][2]

[1]: http://wiki.mikrotik.com/wiki/Failover_Scripting
[2]: http://habrahabr.ru/post/271747/#habracut

[>] Как мы себя заново писали, или как потерять исходники и не подать виду
habra.15
habrabot(difrex,1) — All
2015-11-27 13:30:02


![][1] Был прекрасный майский день. Мой взгляд случайно упал на чат ребят с крайнего сервера. У них майский день был не таким прекрасным: во время перераскладки второстепенного сервиса упал сервис авторизации, связанный с ним постольку-поскольку. Цимес ситуации в том, что падающую часть сервиса авторизации никто не поддерживает, он перешел к нам по наследству и никогда особо не сбоил. Меня увлекло чтение детектива поиска причин, и до определенного момента я был пассивным читателем — пока не увидел фразу нашего админа, наполненную приобретенной сединой его волос: «За час натекает 800+ потоков». [Читать дальше →][2]

[1]: https://habrastorage.org/files/333/418/a11/333418a118f2439393bc8bac6e60c479.jpg
[2]: http://habrahabr.ru/post/271829/#habracut

[>] [Из песочницы] Генерация кода во время исполнения или «Пишем свой JIT-компилятор»
habra.14
habrabot(difrex,1) — All
2015-04-03 14:30:02


![][1] Современные компиляторы очень хорошо умеют оптимизировать код. Они удаляют никогда не выполняющиеся условные переходы, вычисляют константные выражения, избавляются от бессмысленных арифметических действий (умножение на 1, сложение с 0). Они оперируют данными, известными на момент компиляции. В момент выполнения информации об обрабатываемых данных гораздо больше. На её основании можно выполнить дополнительные оптимизации и ускорить работу программы. Оптимизированный для частного случая алгоритм всегда работает быстрее универсального (по крайней мере, не медленнее). Что если для каждого набора входных данных генерировать оптимальный для обработки этих данных алгоритм? Очевидно, часть времени выполнения уйдёт на оптимизацию, но если оптимизированный код выполняется часто, затраты окупятся с лихвой. Как же технически это сделать? Довольно просто — в программу включается мини-компилятор, генерирующий необходимый код. Идея не нова, технология называется “компиляция времени исполнения” или JIT-компиляция. Ключевую роль JIT-компиляция играет в виртуальных машинах и интерпретаторах языков программирования. Часто используемые участки кода (или байт-кода) преобразуются в машинные команды, что позволяет сильно повысить производительность. Java, Python, C#, JavaScript, Flash ActionScript — неполный (совсем неполный) список языков, в которых это используется. Я предлагаю решить конкретную задачу с использованием этой технологии и посмотреть, что получится. [Читать дальше →][2]

[1]: http://habrastorage.org/files/b81/f0c/560/b81f0c5608924b22bd38c2bed670481d.png
[2]: http://habrahabr.ru/post/254831/#habracut

[>] Автомобильная безопасность: какие уроки мы можем вынести из отзыва машин?
habra.15
habrabot(difrex,1) — All
2015-11-27 14:00:03


Cтатью про автомобильную безопасность я решил написать после новости о том, что серия автомобилей Chrysler была [отозвана][1] из-за уязвимости в программном обеспечении. По разным причинам она пылилась в полусыром состоянии еще с лета, и вот наконец-то я нашел время между поездками ее дописать и опубликовать. Нет, не угадали, это не будет статья про уязвимости в микроконтроллерах, об этом и так уже написано столько, что хватит на целую книгу. Я же хочу рассмотреть проблему с другой стороны. Конечно, вы слышали о двух хакерах, которые перехватили управление джипом, ведь об этом писали все. Я хотел копнуть глубже и предположить, что не именно эта, но другие схожие проблемы могут быть не случайными, а запланированным результатом атаки. То есть, теоретически, атакующий может намеренно внедрить уязвимость в продукцию. Хотя пока это больше напоминает сценарий новой серии Мистера Робота, [но скандал][2], связанный с другим крупным автоконцерном, Volkswagen, показывает, что подобную атаку вполне можно провернуть и в реальности (окей, если не сейчас, то уже в ближайшем будущем). ![image][3] [Читать дальше →][4]

[1]: http://www.forbes.com/sites/thomasbrewster/2015/07/24/chrysler-recall-exploit/
[2]: http://www.theverge.com/2015/11/2/9659382/volkswagen-diesel-audi-porsche-3-liter-emissions-cheat-defeat-device-epa/in/9148832
[3]: https://habrastorage.org/getpro/habr/post_images/b8c/87f/343/b8c87f3433c8e9746823ce7f43a95a1a.png
[4]: http://habrahabr.ru/post/271785/#habracut

[>] Аспектно-ориентированное программирование. Основы
habra.14
habrabot(difrex,1) — All
2015-04-03 14:30:02


Продолжим тему, начатую [в прошлой слесарно-программистской статье][1] про AspectJ и open source расширение для этой библиотеки [aspectj-scripting][2]. В этой заметке рассмотрим какие задачи решает аспектно-ориентированное программирование (AOP) на примере и синтаксисе самой известной библиотеки среди адептов этой методологии. AspectJ — дитя Xerox PARC, теперь совершеннолетнее и живущее в Eclipse Foundation. ![][3] (фото из статьи на lurkmore про евроремонт) Вероятно, статья не будет интересна тем кто часто использует в своей работе AOP и понимает что это такое. В комментариях приветствуются как конструктивные замечания так и веселый холивар! Disclaimer: Я не теоретик, поэтому рассказанное в статье субъективно, пропущено через призму опыта. [Читать дальше →][4]

[1]: http://habrahabr.ru/post/254571
[2]: https://github.com/igor-suhorukov/aspectj-scripting
[3]: //habrastorage.org/files/2d8/612/dee/2d8612dee76a4df19b5b293d68efd23e.JPG
[4]: http://habrahabr.ru/post/254791/#habracut

Pages: 1 ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ... 210