RSS
Pages: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 41
[>] [Перевод] Как интернет вещей меняет подход к безопасности в корпорациях
habra.14
habrabot(difrex,1) — All
2015-03-31 15:30:03


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

[1]: //habrastorage.org/files/314/0ae/c1b/3140aec1bdf8420494c34c0a98d180f3.jpg
[2]: http://habrahabr.ru/company/1cloud/blog/254505/
[3]: https://1cloud.ru/
[4]: http://habrahabr.ru/post/254505/#habracut

[>] Разбор задач первого квалификационного раунда Russian Code Cup 2015
habra.14
habrabot(difrex,1) — All
2015-03-31 15:30:04


![][1] В субботу 28 марта прошел первый квалификационный раунд Russian Code Cup 2015. 3093 программиста решали задачи в течение двух часов, из них хотя бы одно правильное решение прислали 1012 участников. Верное решение для всех пяти задач сдали двое: Геннадий Короткевич и Петр Митричев. Всего участники отправили на проверку 4069 решений, 2517 на С++, 705 на Java, 425 на Python, 318 на C#. Правильных решений — 1745, из них на С++ прислано 1099, на Java — 339. Первым за рекордные 2 минуты и 2 секунды решил задачу A (Магические карточки) победитель RCC 2014 года — Геннадий Короткевич (tourist). Он же первым решил задачи B (Домашнее задание) за 6:50 и C (Конгресс юных любителей) за 25:43. Задачу D (Расшифровка) за 51 минуту и 42 секунды решил победитель RCC 2013 года Петр Митричев (Petr). А последнюю задачу E (Занимательная криптография) за 1 час 2 минуты и 52 секунды решил участник из Японии (anta). Последняя успешная попытка совершена Михаилом Тихомировым за 6 секунд до конца соревнования. Самая простая задача A, самая сложная задача — E, задачу E сдало всего 13 человек. [Читать дальше →][2]

[1]: //habrastorage.org/files/7f8/077/470/7f807747002548d79d5e9919f646d77d.jpg
[2]: http://habrahabr.ru/post/254363/#habracut

[>] RapidMiner – Data Mining и BigData у вас дома, быстро и без подготовки (почти)
habra.14
habrabot(difrex,1) — All
2015-03-31 18:00:02


![][1] Пока маркетологи обмазываются BigData и бегают в таком виде на пресс-конференциях, я предлагаю просто скачать бесплатный инструмент с тестовыми наборами данных, шаблонами процессов и начать работать. Закачка, установка и получение первых результатов — минут 20 максимум. Я говорю про **RapidMiner ** — опенсорсную среду, которая при всей своей бесплатности некисло «уделывает» коммерческих конкурентов. Правда, сразу скажу, что разработчики всё равно её продают, а в опенсорс отдают только предпоследние версии. Дома можно попробовать потому, что есть вообще бесплатные сборки со всей-всей логикой с всего лишь двумя ограничениями — максимальный объем используемой памяти 1 Гб и работа только с обычными файлами (csv, xls и т.п.) в качестве источника данных. Естественно, в малом бизнесе это тоже не проблема. [Читать дальше →][2]

[1]: //habrastorage.org/files/96c/2eb/c52/96c2ebc529204135a2d1425dc980987d.png
[2]: http://habrahabr.ru/post/254467/#habracut

[>] Single Sign-On (SSO): OpenAM + mod_auth_mellon
habra.14
habrabot(difrex,1) — All
2015-03-31 21:30:02


Пост расcчитан на новичков, которые только знакомятся с SSO. В интернете не очень много документации по связке OpenAM и mod\_auth\_mellon, тем более на русском языке. Для быстрого старта буду использовать образы [Docker][1]. Для аутентификации пользователя рассмотрю модуль mod\_auth\_mellon, но можно использовать и другие методы, к примеру [Policy Agent или OpenIG][2].

# Теория

**Технология единого входа (англ. Single Sign-On)** — технология, при использовании которой пользователь переходит из одного раздела портала в другой без повторной аутентификации. **OpenAM (Access Management)** — провайдер идентификации (IdP, англ. identity provider), осуществляет аутентификацию пользователя. **mod\_auth\_mellon** — модуль apache, который аутентифицирует пользователя через IdP (OpenAM). [Читать дальше →][3]

[1]: https://www.docker.com/
[2]: http://openam.forgerock.org/doc/webhelp/admin-guide/gateway-or-policy-agent.html
[3]: http://habrahabr.ru/post/254503/#habracut

[>] Работаем с Compound File
habra.14
habrabot(difrex,1) — All
2015-03-31 22:30:02


С составными файлами я работаю давно, больше 15 лет. За все время работы у меня накопилось достаточно информации о плюсах и минусах составных файлов. С одной стороны они являются действительно очень удобным хранилищем информации, позволяющим менять данные на лету, с другой стороны это удобство частично нивелируется скоростью доступа к данным. Вообще для чего обычно используют составные файлы? Для всего, что нужно хранить в некоем контейнере (NoSQL подмножество). К примеру, файлы старых версий Microsoft Office от 97 до 2003 включительно (состоящие на самом деле из нескольких десятков файлов), хранились как раз в составном файле. Сейчас тоже хранятся, только в качестве контейнера используется ZIP. Инсталляционные пакеты MSI тоже являются составными файлами, и даже файл кэша эскизов папок Thumbs.db использует этот формат. Правда для того же Word есть целый комплекс утилит (Recovery for Word, Word Recovery Toolbox, Munsoft Easy Word Recovery) восстанавливающих, ну или по крайней мере пытающихся восстановить, поврежденные документы. Выводы можете сделать сами. Хотя, при должной работе с составными файлами проблему их повреждения можно решить (и я покажу как). Ну и, конечно же, несомненным плюсом этого формата является то, что внутри хранилища эмулируется полноценная файловая система со своими файлами и папками. Кстати, нюанс. Перед началом статьи я провел опрос на нескольких форумах, и выяснилось, что подавляющее большинство разработчиков не работают с составными файлами, причем по простой причине — не слышали что это такое. Вот сейчас и закроем этот пробел. [Читать дальше →][1]

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

[>] Философия программирования 6 — Продукт и Проект
habra.14
habrabot(difrex,1) — All
2015-03-31 23:30:02


Разница между продуктом и проектом в том, что при разработке продукта есть план, а при разработке проекта есть исследования. Если у вас есть какая-то не решённая проблема, скажем вы ещё не решили какую базу данных использовать в своём проекте, то вам понадобится этот вопрос изучать, то есть исследовать. Это называется technology research. Исследование, это вовсе не обязательно, что-то совершенно новое в мировом масштабе, если вы строите мост, то вам надо исследовать грунт в данном конкретном месте, и пока этот грунт не исследован, мост, как продукт, ещё не существует, пока что это — проект. Ещё не известно, какой грунт, а значит не известно из чего делать мост, как его укреплять, невозможно посчитать бюджет и распланировать график работ. [Читать дальше →][1]

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

[>] [Перевод] JSONB запросы в PostgreSQL
habra.14
habrabot(difrex,1) — All
2015-04-01 01:00:02


Ранее я писал, как включить поддержку jsonb в [postgres/psycopg2][1]. Сегодня экспериментировал с тем, как запрашивать данные в колонках типа JSON. На эту тему есть [документация][2], но мне было не совсем понятно, как работают различные операции:

CREATE TABLE json_test (
id serial primary key,
data jsonb
);

INSERT INTO json_test (data) VALUES
('{}'),
('{"a": 1}'),
('{"a": 2, "b": ["c", "d"]}'),
('{"a": 1, "b": {"c": "d", "e": true}}'),
('{"b": 2}');


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

[1]: http://schinckel.net/2014/05/24/python%2C-postgres-and-jsonb/
[2]: http://www.postgresql.org/docs/9.4/static/functions-json.html
[3]: http://habrahabr.ru/post/254425/#habracut

[>] Топ-5 самых дурацких антивирусов. Записки хулигана
habra.14
habrabot(difrex,1) — All
2015-04-01 01:00:02


Дисклеймер: всему сказанному ниже «верить нельзя не верить»… Запятую поставьте сами. На носу 1 апреля, а многие из вас все еще пользуются скучными и устаревшими антивирусами. А ведь если побродить по разным софт-каталогам и поискать чего-нибудь на слово антивирус, можно найти ну очень интересные вещи! [Читать дальше →][1]

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

[>] ReactOS Foundation откажется от претензий к логотипу ReactJS в обмен на инвестиции со стороны Facebook
habra.14
habrabot(difrex,1) — All
2015-04-01 03:30:02


![][1] Как говорится, не было бы счастья, да… Некоторое время назад в ReactOS Foundation было принято решение реализовать свое право по защите своих [средств индивидуализации][2], а именно зарегистрированной торговой марки, товарного знака и логотипа (формулировка зависит от конкретной юрисдикции правоприменения). Нас вдохновил успешный опыт проекта [Gnome][3], который [оградил][4] свою торговую марку от посягательств Groupon. Недавно юристы, нанятые Фондом, отправили в Facebook Ireland Limited предупреждение о нарушении торговой марки ReactOS. Дело в том, что Facebook занимается разработкой проекта ReactJS, чей логотип напоминает логотип ReactOS [до степени смешения][5]. Так как в течение длительного срока не последовало ни ответного письма, ни каких-либо соответствующих действий со стороны Facebook, юристы фонда на полных парах готовили судебный иск к социальной сети. Как вдруг с большим опозданием пришел ответ на претензионное письмо… и какой! [Читать дальше →][6]

[1]: //habrastorage.org/files/22c/084/d30/22c084d30a884ed59db3e8385e7e9b29.png
[2]: https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B8%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8
[3]: https://www.linux.org.ru/news/gnome/11024572/page3
[4]: https://engineering.groupon.com/2014/misc/gnome-foundation-and-groupon-product-names/
[5]: http://www.youtube.com/watch?v=KVZ-P-ZI6W4
[6]: http://habrahabr.ru/post/254579/#habracut

[>] Backslant – шаблонизатор в стиле slim
habra.14
habrabot(difrex,1) — All
2015-04-01 03:30:02


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

html
head
title
- yield "Плюшка!" + " Чашка чаю!"


Но и этого мне мало, хочу чтобы не было своего недоязыка, хочу чтобы просто питоновские конструкции. А кто захочет себе в ногу стрельнуть и бизнес логики в шаблоны навалить, то это проблема начинашек, мне зачем мучаться размазывая код вьюх в папки типа utils, template\_tags и прочее? А и еще можно кстати угореть так уж угореть — а пусть шаблоны через новый механизм импорта в python 3 тянутся. И если надо что-то от другого шаблона себе вставить, то тоже пусть также работает. А еще, еще пусть каждый шаблон это генератор! [Читать дальше →][1]

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

[>] [Из песочницы] Андроид — кастомные View или ToggleButton 4x4
habra.14
habrabot(difrex,1) — All
2015-04-01 03:30:02


Рано или поздно любого начинающего андроид-разработчика перестает удовлетворять стандартный набор элементов управления. При этом имеется в виду как внешний вид, так и функциональность. И если с внешним видом все более или менее понятно, все достаточно легко кастомизируется, то функционала часто не хватает. Когда (уже достаточно давно) в одном из своих проектов я столкнулся с необходимостью выбора в настройках одного из трех параметров, решение было очевидно — RadioButton. Но по ряду причин, типа экономии места на экране и некоторых других, возникло желание использовать нечто вроде ToggleButton. Поскольку стандартный Toggle имеет лишь два состояния, был использован костыль в виде программной обработки некоей циклично меняющейся переменной, в зависимости от которой менялись свойства стандартного элемента вроде обычной Button или ImageButton – уже даже не помню. Способ вполне работоспособный, однако не без греха. Первый и самый главный – нарушается Генеральная линия партии, призывающая к раздельному хранению ресурсов и программного кода. Ну и при большом количестве подобных элементов управления код теряет всю свою изящность и привлекательность. Инкапсуляция, опять же, жутко страдает. Посему было решено создать кастомный элемент. [Читать дальше →][1]

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

[>] Декларативная разработка на Caché
habra.14
habrabot(difrex,1) — All
2015-04-01 03:30:02


    В Caché есть несколько различных способов пройтись по коллекции и выполнить какие-нибудь действия с ее элементами. Самым простым является while-цикл. Такой способ позволяет решить поставленную задачу в императивном стиле. Разработчику приходиться явно заботиться об итераторе, о переходе к следующему элементу и о проверке выхода за пределы коллекции.     Но разве это то, о чем должен заботиться разработчик?! Разработчик должен решать поставленную перед ним задачу, за максимально короткое время с максимально хорошим качеством кода. Было бы очень здорово просто взять коллекцию и применить к ней функцию, которая выполняет необходимые действия на каждом элементе этой коллекции. Не проверять границ, не создавать итератор, не вызывать вручную функцию на каждом элементе. Такой способ решения задач называется [декларативным программированием][1].

> Declarative programming is when you write your code in such a way that it describes
>
> **what you want to do**
>
> , and
>
> **not how you want to do**
>
> it.
>
>

([c][2]) [1800-information][3] Давайте подумаем, как же решить поставленную задачу декларативно, используя средства и возможности Caché. [Читать дальше →][4]

[1]: http://en.wikipedia.org/wiki/Declarative_programming
[2]: http://stackoverflow.com/questions/129628/what-is-declarative-programming
[3]: http://stackoverflow.com/users/3146/1800-information
[4]: http://habrahabr.ru/post/212671/#habracut

[>] [Перевод] Все еще торт, часть 3.0.0
habra.14
habrabot(difrex,1) — All
2015-04-01 03:30:02


Наконец-то вышел в релиз CakePHP 3.0.0. Наша компания использует в разработке в том числе cakephp, как основной фреймворк для бэкэнд разработки. На протяжении четырех лет мы досконально разобрались в его преимуществах и недостатках. И, конечно, многие проблемы, которые исчезнут с переходом на 3.0 нами уже были решены, но развитие используемого инструмента не может не радовать. После этого обновления мы рассчитываем, что cakephp снова вернёт себе заслуженную популярность. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/ad2/29c/dbf/ad229cdbf55a4124872169ccca68aa24.jpg
[2]: http://habrahabr.ru/post/254489/#habracut

[>] Вы неправильно пишете животных
habra.14
habrabot(difrex,1) — All
2015-04-01 11:30:02


Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво. ![][1] _Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти_ Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести **инъекцию произвольного яйца в гнездо**. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде. Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен. [Читать дальше →][2]

[1]: //habrastorage.org/files/a80/d75/4ad/a80d754ad09b474cb494c933f978c292.png
[2]: http://habrahabr.ru/post/254473/#habracut

[>] Факториал на числах Чёрча — теперь и в смайликах
habra.14
habrabot(difrex,1) — All
2015-04-01 13:00:02




#### Всем доброго утра

![][1] Это полностью валидный код на JavaScript. [Как же так?][2]

[1]: http://habrastorage.org/getpro/habr/post_images/ffb/d23/6b5/ffbd236b5e1e03b1cf4b85168a6a5694.png
[2]: http://habrahabr.ru/post/254587/#habracut

[>] [Из песочницы] Погодная станция на Arduino
habra.14
habrabot(difrex,1) — All
2015-04-01 13:00:02


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

[1]: http://habrastorage.org/getpro/habr/post_images/a4e/5d1/668/a4e5d16687414d2aa89440d3216b11ab.jpg
[2]: http://habrahabr.ru/post/254465/#habracut

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


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

#### Пролог

Сайты иногда падают. Такое случается. Но вот то, что описано в статье, случаться не должно.

#### \#1

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

[1]: //habrastorage.org/files/f28/c28/478/f28c28478b7241ecb3136b1509f60560.png
[2]: http://habrahabr.ru/post/254597/#habracut

[>] О бане, троллях и бесплатных продуктах «Лаборатории»
habra.14
habrabot(difrex,1) — All
2015-04-01 13:30:02


![][1]В «Космической одиссее 2001 года» Фрэнк Боумэн отключает, один за другим, модули памяти компьютера HAL 9000, а HAL 9000 поет песню про Дейзи. Чуть раньше HAL пытался убить самого Боумэна, а заодно и всех остальных людей на борту «Дискавери-1», и у него почти получилось. Зачем он это сделал? Трактовать можно по-разному. Например, что получив две вводные: «Я знаю больше, чем экипаж, и должен хранить этот секрет» и «Они планируют меня отключить», HAL абсолютно логично посчитал, что он важнее, чем экипаж. Фрэнку тем не менее очень хотелось жить, и, зная, что имеет дело с компьютером, он не стал просить компьютер одуматься, а просто разнес чертову железку на микросхемы. С компьютерами на самом деле очень просто: они всегда (всегда!) делают то, на что запрограммированы. С людьми сложнее: понять мотивацию и причины для высказываний и поступков подчас вовсе невозможно. Люди (пока что только они) программируют компьютеры, и собственно все компьютерные проблемы – от глюков системы до вирусов – от людей. В сегодняшнем первоапрельском посте – пять историй про людей, а также немножко про программы. И совсем чуть-чуть про троллей и баню. И самую малость – про то, как люди мешают программистам работать. [Читать дальше →][2]

[1]: http://habrastorage.org/files/1d0/16a/b5c/1d016ab5ccab48348c53b80d93c04b4e.jpg
[2]: http://habrahabr.ru/post/254611/#habracut

[>] [Из песочницы] Очередной XSS на SoundCloud
habra.14
habrabot(difrex,1) — All
2015-04-01 14:30:02


![image][1] Вечерний багхантинг на Facebook привел к сервису Soundcloud. Исследовалась возможность XSS уязвимостей при шейринге треков в ленту Facebook. После нескольких неудачных попыток захотелось проверить и сам Soundcloud. В течение первых 5 минут был обнаружен бесполезный, так называемый self-xss — при добавлении нового тега можно передать скрипт. При наведении на этот тэг курсором исполнялся код. Чуть позже я нашел два видео в youtube.com, где горе багхантеры выкладывали это как нечто критичное (один даже назвал видео как «Soundcloud Xss epic fail»). Продолжив свои развлечения, подключил второго персонажа, ведь если есть атакующий, должна быть и жертва. [Читать дальше →][2]

[1]: http://s1.postimg.org/idvxdyblb/image.jpg
[2]: http://habrahabr.ru/post/254583/#habracut

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


Наступает один из самых веселых народных праздников – День дурака, или более политкорректно – День смеха. Соответственно, встает насущный вопрос – как подшутить над коллегами на работе, не нажив себе дополнительных врагов. Можно, конечно, воспользоваться классическими приколами типа: • спросить подопытного, как расшифровывается слово «ДУНЯ»; предложить свой вариант «Дураков У нас Нет»; и дождаться недоуменного «А Я?»; • напихать в фотодатчик мышки испытуемого ворсинок или просто заклеить его скотчем (в смысле, датчик)… Но можно применить и более высокотехнологичные и изощренные способы «сноса крыши» с помощью программ-шуток. В принципе, в интернете можно найти и накачать кучу таких приложений. Но запуск подобных программ – весьма сомнительное и опасное занятие. Оптимальный вариант – написать такую программу самому. О том, как это быстро сделать, не имея совершенно никаких навыков в программировании, вы узнаете в данной статье. [Читать дальше →][1]

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

[>] Простой DICOM клиент на GO с балансировщиком задач и веб-интерфейсом
habra.14
habrabot(difrex,1) — All
2015-04-01 14:30:02


![][1] Привет Хабр! В последнее время я очень сильно увлекся разработкой на языке GO. Изящный и выразительный язык программирования. Мне давно хотелось сделать что-нибудь полезное. По специфике своей работы мне приходится работать с медицинскими архивами DICOM-изображений PACS. [Читать дальше →][2]

[1]: //habrastorage.org/files/7a6/072/855/7a6072855a2a468fb6560fb42ad0b478.jpeg
[2]: http://habrahabr.ru/post/254581/#habracut

[>] Командно-ориентированная навигация в xaml-приложениях
habra.14
habrabot(difrex,1) — All
2015-04-01 14:30:02


Недавно мы уже узнали о _[принципе прямых инжекции][1]_ и эффективном связывании вью-моделей с представлениями, а также о том, каким образом создавать [_расширения привязки_][2]. Продолжим исследование библиотеки [_Aero Framework_][3] и рассмотрим ещё один архитектурный вопрос. Навигация между представлениями (экранами) в _xaml_-ориентированных приложениях довольно важная и интересная задача. Особенно это касается её реализации в рамках паттерна _MVVM_. В идеале вью-модели не должны содержать никаких прямых ссылок на представления, чтобы быть кросс-платформенными и сохранялась возможность повторного их использования в нескольких проектах. Сегодня мы узнаем, как этого достичь. ![][4] [Читать дальше →][5]

[1]: http://habrahabr.ru/post/254373/
[2]: http://habrahabr.ru/post/254115/
[3]: http://makeloft.by/ru/tools
[4]: //habrastorage.org/files/741/5d8/8d1/7415d88d178848f6a1c93df00c75657c.jpg
[5]: http://habrahabr.ru/post/254615/#habracut

[>] Программирование смайликами
habra.14
habrabot(difrex,1) — All
2015-04-01 14:30:02


![image][1] В честь сегодняшнего светлого дня публикую эту статью. Ведь вам тоже иногда кажется, что код состоит из смайликов?

#### Ruby

Определение значения по умолчанию или мимика губами:

foo ||= []
foo ||= {}
foo ||= ''
foo ||= 0


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

[1]: http://habrastorage.org/getpro/habr/post_images/390/63d/8d3/39063d8d36811d7d8be02a9493e182d8.png
[2]: http://habrahabr.ru/post/184278/#habracut

[>] Приглашаем на третью встречу IT-специалистов Hack Weekend
habra.14
habrabot(difrex,1) — All
2015-04-01 16:00:02


![][1] Приглашаем всех желающих на третью встречу IT-специалистов Hack Weekend, которая пройдёт в Калуге с 3 по 4 апреля. Здесь собираются представители самых разных профессий — разработчики, дизайнеры, проектировщики и т.д. В течение суток они будут обмениваться опытом и тут же применять полученные знания. Самые стойкие смогут заниматься разработкой без перерыва на сон, все 24 часа. Причём с участниками, создающими свои продукты, будут работать менторы. Помимо практического блока, на хакатоне можно будет посетить и лекции от специалистов. Александр [spiteful][2] Панфилов, ведущий программист Mail.Ru Group, расскажет о протоколе авторизации OAuth2, о его создании, причинах популярности и способах использования. Также будут материалы от таких компаний, как ФРИИ, Яндекс, Астрал. В заключительной части хакатона будет проходить Startup-сессия перед Фондом Развития Интернет Инициатив (ФРИИ), Microsoft, Центром Облачных Вычислений (ЦОВ), IT Центром Астрал, инвесторами и акселераторами. Лучшие представленные проекты имеют шанс найти инвесторов, а также будут вручены подарки. Организаторы хакатона: Центр облачных вычислений, IT Центр ЗАО «Калуга Астрал», NeuronWeb. Генеральным спонсором и партнером является ИКТ Кластер Калужской области. Участие в Hack Weekend #3 бесплатное. [Регистрация на мероприятие][3]. [][4]

[1]: //habrastorage.org/files/6e0/16e/057/6e016e057adb496693b4ccf8e8833198.jpg
[2]: http://habrahabr.ru/users/spiteful/
[3]: https://hack-weekend.timepad.ru/event/183155/
[4]: http://habrahabr.ru/post/254641/#habracut

[>] Geo индекс для поиска новых знакомых или революционное открытие ученых из Австрии
habra.14
habrabot(difrex,1) — All
2015-04-01 16:30:02


Как вы знаете, Badoo — сервис для поиска новых людей. Кроме всего прочего, мы позволяем искать людей вокруг и в «игре» тоже показываем людей, которые находятся недалеко от вас. Эта часть «вокруг» очень и очень важна. Ведь молодому человеку из Новосибирска гораздо интереснее познакомиться с девушкой, которая живет в пяти минутах ходьбы от него, а не во Владивостоке. ![][1] Мы до сих пор не рассказывали публично о том, как мы это делаем. Но [новое открытие][2] австрийских ученых настолько нас обрадовало, что мы решились это сделать. Перейдем же к делу. Badoo работает по всему миру и наш поиск работает абсолютно одинаково, вне зависимости от того, в какой точке земного шара вы находитесь. Как же эффективно искать людей вокруг среди всех 200+ миллионов пользователей? Решение нетривиально, честно говоря. Нам нужен какой-то индекс, какой-то способ сразу же сузить область поиска. В случае с земным шаром, самым простым разбиением является сетка географических широт и долгот. Однако проблема с этой сеткой в ее неравномерности. Ячейка у северного полюса и ячейка у экватора имеют совсем разные формы. Такое несимметричное разбиение вносит большие проблемы, если мы хотим равномерно распределить нагрузку по поисковому кластеру. [Читать дальше →][3]

[1]: //habrastorage.org/files/b7b/4f4/f74/b7b4f4f7453444958c56bbf655d71d5a.png
[2]: http://pub.ist.ac.at/~edels/hexasphere/
[3]: http://habrahabr.ru/post/254643/#habracut

[>] Google поздравил с 1 апреля запуском в корневой зоне .google
habra.14
habrabot(difrex,1) — All
2015-04-01 18:30:02


Компания Google на 1 апреля (Fool's Day) поздравила с одной стороны ожидаемым от гугла, в принципе — дудлом (doodlers), а с другой весьма любопытным в истории коммерческого интернета — фактом. А именно, запустив стартовую страничку поиска в корневом домене **.google** ![][1] Под катом скрины в натуральную величину, а также еще один дудл от Google в этот день. [Прошу под катbjornvalor pass:MerlAt810][2]

[1]: //habrastorage.org/files/86d/a01/7d3/86da017d3033487586a18b2552e45b5f.png
[2]: http://habrahabr.ru/post/254651/#habracut

[>] Как оценивать работу программиста? Мнение сотрудников Яндекса
habra.14
habrabot(difrex,1) — All
2015-04-01 19:00:02


Давно идут споры о том, что такое работа программиста — ремесло, навык или искусство. При этом постоянно встаёт вопрос оценки результата. О том, как разные разработчики и руководители в Яндексе подходят к вопросу оценки работы программиста, мы поговорим в этом посте.




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

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

[>] Пример простейшего cgi сервера
habra.14
habrabot(difrex,1) — All
2015-04-01 19:30:02


Думаю многие знают, как работает CGI взаимодействие между клиентом и сервером: клиент получает от сервера и отдает серверу данные через стандартные stdin и stdout. Многие наверное даже сами писали CGI клиентов, ведь по сути — любой скрипт для веб-сервера это и есть CGI-клиент. А многие ли задавались вопросом, как именно происходит эта «магия»? Каким образом стандартные функции для ввода/вывода вместо экрана взаимодействуют с сервером? Результаты поиска ответа в сети меня не удовлетворили и я решил сам написать простейший CGI сервер, который сможет:

* Запускать дочерний процес — CGI скрипт
* Передавать скрипту переменные окружения и переменные командной строки
* Принимать от скрипта ответ
* Завершаться, когда завершится процесс клиента

Кроме этого, мне хотелось, чтобы клиент и сервер компилировались как в Windows, так и в Linux. [Подробности][1]

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

[>] Видео докладов с конференции IT NonStop Воронеж 2015
habra.14
habrabot(difrex,1) — All
2015-04-01 19:30:02


Привет, Хабр! Совсем недавно завершился воронежский этап отличной международной конференции [IT NonStop 2015][1]. Перед гостями выступили отличные спикеры с докладами на самые разные темы. Сегодня мы хотели бы поделиться с вами видео с выступлений. [Читать дальше →][2]

[1]: http://it-nonstop.net/
[2]: http://habrahabr.ru/post/254657/#habracut

[>] «Нежданчики» языка Фортран
habra.14
habrabot(difrex,1) — All
2015-04-02 11:30:04






Многие из нас, обучаясь программированию ещё в университетах или дома, делали это на языках С/С++. Конечно, всё зависит от времени, в которое начиналось наше знакомство с языками программирования. Скажем, кто-то начинал с Фортрана, другие — с Basic’a или Delphi, но стоит признать, что доля начавших свой тернистый путь программиста с С/С++ наибольшая. К чему я всё это? Когда перед нами стоит задача изучить новый язык и написать на нём код, мы часто основываемся на том, как бы я это написал на своём «базовом» языке. Сузим вопрос — если нужно написать что-то на Фортране, то мы вспоминаем, как бы это было реализовано на С и делаем по аналогии. Очередной раз столкнувшись с тонкостью языка, которая привела к абсолютно неработающему алгоритму и большой проблеме, эскалированной мне, я решил отыскать как можно больше нюансов языка Фортран, по сравнению с С, с которыми столкнулся лично. Это своего рода «нежданчики», которые ты явно не планировал увидеть, а они бац – и всплыли! Конечно, речь не пойдёт о синтаксисе — в каждом языке он свой. Я попробую рассказать о глобальных вещах, способных изменить всё «с ног на голову». Поехали! [Читать дальше →][1]

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

[>] Релиз Django 1.8
habra.14
habrabot(difrex,1) — All
2015-04-02 12:30:02


![image][1] После почти целого года разработки, команда Django [объявила о релизе Django 1.8][2]. Эта версия Django является релизом с долговременной поддержкой(LTS), это означает, что данный релиз будет поддерживаться примерно около 3-х лет. Как всегда, много чего новенького, и это можно почитать в [заметках к релизу][3]. [Краткий список самого интересного..][4]

[1]: http://habrastorage.org/getpro/habr/post_images/964/2e4/825/9642e48253b1bb032ab1df86a9285602.png
[2]: https://www.djangoproject.com/weblog/2015/apr/01/release-18-final/
[3]: https://docs.djangoproject.com/en/1.8/releases/1.8/
[4]: http://habrahabr.ru/post/254701/#habracut

[>] Вышел Django 1.8
habra.14
habrabot(difrex,1) — All
2015-04-02 13:30:03


Согласно [официальному блогу][1] Django, 1 апреля 2015 года вышла новая версия Django — 1.8. Эта версия будет иметь долговременную поддержку (Long-Term Support) ещё по крайней мере три года. Из интересных нововведений —

* встроенная поддержка разных шаблонизаторов (определён API и добавлена встроенная поддержка Jinja2);
* поддержка сложных SQL-выражений в ORM, в том числе выражения if — then — else;
* определён API для Model.\_meta;
* в contrib.postgres добавлена новая PostgreSQL-специфичная функциональность.

Подробную информацию о релизе смотрите в [release notes][2]. [Читать дальше →][3]

[1]: https://www.djangoproject.com/weblog/2015/apr/01/release-18-final/
[2]: https://docs.djangoproject.com/en/1.8/releases/1.8/
[3]: http://habrahabr.ru/post/254703/#habracut

[>] Анализ защищенности терминалов общего пользования
habra.14
habrabot(difrex,1) — All
2015-04-02 13:30:03


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

[1]: //habrastorage.org/files/8e3/e47/971/8e3e479715e94a53a0a7aad5e7d3cf75.jpg
[2]: http://habrahabr.ru/post/254003/#habracut

[>] Встречайте релиз Django 1.8
habra.14
habrabot(difrex,1) — All
2015-04-02 13:30:03


![image][1] После почти целого года разработки, команда Django [объявила о релизе Django 1.8][2]. Эта версия Django является релизом с долговременной поддержкой(LTS), это означает, что данный релиз будет поддерживаться примерно около 3-х лет. Как всегда, много чего новенького, и это можно почитать в [заметках к релизу][3]. [Краткий список самого интересного..][4]

[1]: http://habrastorage.org/getpro/habr/post_images/964/2e4/825/9642e48253b1bb032ab1df86a9285602.png
[2]: https://www.djangoproject.com/weblog/2015/apr/01/release-18-final/
[3]: https://docs.djangoproject.com/en/1.8/releases/1.8/
[4]: http://habrahabr.ru/post/254701/#habracut

[>] Azure Machine Learning для Data Scientist
habra.14
habrabot(difrex,1) — All
2015-04-02 14:00:02




> _Эта статья создана нашим другом из коммьюнити, [Дмитрием Петуховым][1], Microsoft Certified Professional, разработчиком компании Quantum Art. Статья — часть цикла про Fraud Detection, остальные статьи можно найти в профиле у Дмитрия._

![][2] **Azure Machine Learning** – облачный сервис для выполнения задач прогнозной аналитики (_predictive analytics_). Сервис представлен двумя компонентами: **_Azure ML Studio_** – средой разработки, доступной через web-интерфейс, и **_web-сервисами Azure ML_**. Типичная последовательность действий data scientist'a при поиске закономерностей в наборе данных с использованием алгоритмов обучения с учителем изображена и подробно описана под хабракатом. [Читать дальше →][3]

[1]: http://habrahabr.ru/users/codezombie/
[2]: http://litehtmlconv.azurewebsites.net/api/pics/438butzat46ss2c297_alurb
[3]: http://habrahabr.ru/post/254637/#habracut

[>] Алгоритм Брезенхема в паяльной печи — теория
habra.14
habrabot(difrex,1) — All
2015-04-02 15:00:02


Алгоритм Брезенхема является одним из старейших алгоритмов в машинной графике. Казалось бы, как можно применить алгоритм построения растровых прямых при создании домашней паяльной печи? Оказывается можно, причем с очень достойным результатом. Забегая вперед, скажу, что данный алгоритм очень хорошо скармливается маломощному 8-битному микроконтроллеру. Но обо всем по порядку. [Читать дальше →][1]

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

[>] SaltStack: Предварительная генерация паролей для использования в сервисах
habra.14
habrabot(difrex,1) — All
2015-04-02 16:00:02




##### **О чем статья?**

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

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

[>] Совершенствуем xaml: Bindable Converters, Switch Converter, Sets
habra.14
habrabot(difrex,1) — All
2015-04-02 16:00:02


Нужно признать, _xaml_-код бывает отчасти многословным, что вызывает иногда некоторый дискомфорт при разработке. В статье рассмотрим оптимизации, которые помогут существенно улучшить организацию разметки и сделать её более читаемой. Особенно это касается работы с конвертерами, которые неотъемлемо связаны с механизмом привязки данных. Нам понадобятся некоторые знания из [прошлых статей][1], в частности, понимание [_принципа прямых инжекций_][2]. ![][3] [Читать дальше →][4]

[1]: http://habrahabr.ru/users/makeman/topics/
[2]: http://habrahabr.ru/post/254373/
[3]: //habrastorage.org/files/741/5d8/8d1/7415d88d178848f6a1c93df00c75657c.jpg
[4]: http://habrahabr.ru/post/254731/#habracut

[>] Асинхронная работа с Tarantool на Python
habra.14
habrabot(difrex,1) — All
2015-04-02 16:30:01


На Хабре уже есть статьи о NoSQL СУБД [Tarantool][1] и о том, как его используют в Mail.Ru Group (и не только). Однако нет рецептов того, как работать с Tarantool на Python. В своей статье я хочу рассказать о том, как мы готовим Tarantool Python в своих проектах, какие проблемы и сложности при этом возникают, плюсы, минусы, подводные камни и, конечно же, «в чем фишка». Итак, обо всем по порядку. ![][2] Tarantool представляет собой [Application Server для Lua][3]. Он умеет хранить данные на диске, обеспечивает быстрый доступ к ним. Tarantool используется в задачах с большими потоками данных в единицу времени. Если говорить о цифрах, то это десятки и сотни тысяч операций в секунду. Например, в одном из моих проектов генерируется более 80 000 запросов в секунду (выборка, вставка, обновление, удаление), при этом нагрузка равномерно распределяется по 4 серверам с 12 инстансами Tarantool. Не все современные СУБД готовы работать с такими нагрузками. Кроме того, при таком количестве данных, очень дорого ожидание выполнения запроса, поэтому сами программы должны быстро переключаться от одной задачи к другой. Для эффективной и равномерной загрузки CPU сервера (всех его ядер) как раз нужен Tarantool и асинхронные приемы в программировании. [Читать дальше →][4]

[1]: http://tarantool.org/
[2]: //habrastorage.org/files/716/488/7c9/7164887c961446a09aea38a920a4019f.jpg
[3]: http://habrahabr.ru/company/mailru/blog/252065/
[4]: http://habrahabr.ru/post/254727/#habracut

[>] [Из песочницы] Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации
habra.14
habrabot(difrex,1) — All
2015-04-02 18:30:03


Концептуально фреймворк представляет собой набор поддерживаемых пользователем модулей реализующих различные функции робототехники. При работе Bubot строит сеть из процессов, которые могут асинхронно получать и отправлять сообщения между собой. Так же вы можете построить сеть из роботов, которые будут общаться между собой. ![Bubot - Схема][1] Сеть процессов строится на базе стандартного Python модуля multiprocessing. Система обмена сообщениями и разделяемая память реализованы при помощи [Redis][2]. Каждый Bubot имеет встроенный веб-сервер веб-сервер [Tornado][3], который позволяет контролировать состояние, управлять роботом, на ходу менять параметры (калибровать) робота, а также закладывается возможность обмена данными между роботами. Bubot не является системой реального времени, хотя Bubot возможно интегрировать с кодом реального времени. [Читать дальше →][4]

[1]: http://wiki.razgovorov.ru/images/thumb/d/de/Bubot_scheme.png/700px-Bubot_scheme.png
[2]: http://devacademy.ru/posts/vvedenie-v-redis-py/
[3]: http://wiki.python.su/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8/Tornado-web?highlight=%28%28%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8%7CTornado-web%29%29
[4]: http://habrahabr.ru/post/254749/#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.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

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


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

[1]: http://habrahabr.ru/post/254783/#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

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


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

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

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


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

[1]: http://habrahabr.ru/post/254779/#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

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