RSS
Pages: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 37
[>] [Из песочницы] Делаем доступным все символы ядра Linux. Часть 1
habra.15
habrabot(difrex,1) — All
2015-09-23 15:30:04




# Состояние дел

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

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

[>] Как обойти экран блокировки в iOS, не зная пароль
habra.15
habrabot(difrex,1) — All
2015-09-23 16:00:03


С удивлением обнаружил, что Хабр обошла новость о том, что любой желающий может обойти экран блокировки iPhone и получить доступ к приватным данным, например, фотографиям и телефонной книге. При условии, что на смартфоне включена Siri.




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

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

[>] 3 Атаки на TACACS+ от Cisco
habra.15
habrabot(difrex,1) — All
2015-09-23 16:30:04


Мне хотелось бы поведать сегодня итоги своего небольшого исследования, связанного с протоколом TACACS+, причём именно с пентестерской точки зрения. Использовать протокол по прямому мне не приходилось, так что каких-то тонкостей могу не упомянуть.

#### Что такое TACACS+

Terminal Access Controller Access-Control System Plus (TACACS+) — специальный протокол от Cisco для AAA (authentication, authorization, and accounting). То есть это протокол для централизованного управления доступом – чаще всего доступом именно к Cisco, но можно прикрутить что-то еще. Итак, обычно поднимается один-два сервера с TACACS+ сервисом на 49 порту протокола TCP, а на всех устройствах настраивают его использование. Таким образом, когда пользователь хочет аутентифицироваться на свитче, роутере или другом устройстве, устройство пересылает его аутентификационные данные на TACACS+ сервер, где их проверяют, и принимается решение о разрешении доступа, о чём и сообщается в ответных пакетах ![image][1] Удобно, централизовано. Можно настроить различные привилегии для различных пользователей на различных устройствах. Есть логирование доступа и действий на серверной стороне. Можно прикрутить поверх другую централизацию доступа, типа AD или LDAP'а. Есть open source реализации сервера (Cisco когда-то официально выложила код). [Читать дальше →][2]

[1]: https://habrastorage.org/files/a71/80b/696/a7180b696d3a4f0bbb89da8b007fdc2b.png
[2]: http://habrahabr.ru/post/267467/#habracut

[>] Компания D-Link по ошибке опубликовала секретные ключи для подписи прошивок
habra.15
habrabot(difrex,1) — All
2015-09-23 16:30:04


[![][1]][2] Производитель маршрутизаторов и другого оборудования D-Link случайно опубликовал секретные ключи шифрования сертификатов для подписи программного обеспечения, в том числе прошивок устройств. Пользователь под ником [bartvbl][3] приобрел камеру видеонаблюдения D-Link DCS-5020L и скачал обновление прошивки. Данный софт выпускается под свободной лицензией GPL, что дает возможность изучения исходного кода. Пользователь изучил код прошивки для своего устройства и обнаружил в нем четыре «зашитых» ключа шифрования для создания подписи. Некоторые файлы прошивки содержали сами ключи для подписи кода, а в некоторых даже были скрипты с необходимыми командами и паролями. [Читать дальше →][4]

[1]: https://habrastorage.org/files/6be/bf5/65c/6bebf565c3dc486391f9eeb077cf0f5f.png
[2]: http://habrahabr.ru/company/pt/blog/267547/
[3]: http://tweakers.net/gallery/488940
[4]: http://habrahabr.ru/post/267547/#habracut

[>] [recovery mode] Технический способ защиты от неправомерной выдачи дубликатов сим-карт (и вообще персональных данных), реализуемый на уровне оператора
habra.15
habrabot(difrex,1) — All
2015-09-23 18:00:03


Последние пару недель наблюдаю как рунет [шумит][1] на тему мошенничества с дубликатами симок. На хабре вот тоже про это уже [писали][2]. При этом проблема эта совершенно не новая, но всплывает постоянно и все более интенсивно. В связи с этим мне хотелось бы рассказать о том, как справляется Deutsche Telekom (и другие немецкие операторы) с этой ситуацией. Сразу надо заметить, что ситуация с точками продаж в Германии очень похожая: точку может открыть практически любой, т.е. круг лиц, которые могут иметь доступ к данным, заранее достаточно широк. Но применяется очень трезвый **технический** способ защиты. [Читать дальше →][3]

[1]: https://advertising.yandex.ru/contact/agency/
[2]: http://habrahabr.ru/post/267447/
[3]: http://habrahabr.ru/post/267563/#habracut

[>] Проверка Telegram с помощью PVS-Studio и наоборот
habra.15
habrabot(difrex,1) — All
2015-09-23 18:00:03


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



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

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

[>] gulpfile в 10 строк? Легко! — упрощаем создание типовых задач
habra.15
habrabot(difrex,1) — All
2015-09-23 18:00:03


Последнее время почти в любом проекте требуется сделать сборку less/sass/css/js/html и т.д. файлов. Gulp является отличным решением для выполнения этих задач, это глоток воздуха после grunt'a, но и он не идеален.



Например, если нужно сделать сборку common js, используя browserify, то нужно подключать с десяток зависимостей и писать почти 50 строчек кода. Вот [один из примеров][1]. **Нужно упрощать gulpfile.js** [Читать дальше →][2]

[1]: https://github.com/gulpjs/gulp/blob/master/docs/recipes/fast-browserify-builds-with-watchify.md
[2]: http://habrahabr.ru/post/267471/#habracut

[>] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 7. «Max Vision»
habra.15
habrabot(difrex,1) — All
2015-09-23 18:30:03


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

* книг про хакеров на русском языке мало (полторы)
* книг про кардинг на русском нет вообще (**UPD** нашлась [одна][4])
* Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
* приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
* работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
* текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
* книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается

**Перевод книги окончен**. Это последний «хвост». Теперь главы будут идти по порядку. Кто хочет помочь с переводами [крутых эссе Пола Грэма][5] — пишите в личку [magisterludi][6].

#### Глава 7. «Max Vision»

_(за помощь с переводом спасибо Валентину Аникееву)_ Когда сотрудничество с правительством прекратилось, Макс, несмотря на гнёт федерального расследования, принялся нарабатывать себе репутацию «белого» хакера. Раскрытие уязвимости в BIND и последовавший за этим успех сайта whitehats.com стали хорошим подспорьем для Макса. Теперь он позиционировал себя в качестве консультанта по компьютерной безопасности и создал сайт, где рекламировал свои услуги. Нанять Макса можно было за сто долларов в час, а некоммерческим организациям он помогал бесплатно. Самым весомым его аргументом было стопроцентное проникновение в исследуемую сеть – осечек не было ни разу. Это было замечательное время для «белых» хакеров: бунтарский дух, который двигал open-source сообщество, проник в сферу информационной безопасности. Выпускники колледжа и отчисленные студенты, бывшие и нынешние «чёрные» хакеры разрушали устои компьютерной безопасности, которые за десятки лет стали привычным делом. [Читать дальше →][7]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/company/piter/blog/204042/
[5]: http://habrahabr.ru/company/tceh/blog/253311/
[6]: http://habrahabr.ru/users/magisterludi/
[7]: http://habrahabr.ru/post/267541/#habracut

[>] Brotli — новый алгоритм сжатия веб-данных от Google
habra.15
habrabot(difrex,1) — All
2015-09-23 18:30:03


![image][1] Так как веб-сайты и онлайн-сервисы с каждым годом становятся все «тяжелее», возрастает необходимость и сжатия данных в вебе. По этой причине Google выпустил новый алгоритм сжатия данных для веб-сайтов — Brotli, что в переводе с швейцарского немецкого означает «маленькая булка хлеба». Алгоритм уже доступен широкой аудитории **[на GitHub][2]**. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/72f/5da/7c3/72f5da7c3efa235ad7d6ab685ccbfe4a.jpg
[2]: https://github.com/google/brotli/
[3]: http://habrahabr.ru/post/267533/#habracut

[>] Moscow Python Meetup в Rambler&Co
habra.15
habrabot(difrex,1) — All
2015-09-23 19:30:03


![][1] 8-го октября (четверг) в Rambler&Co мы ждем в гости Moscow Python Meetup. 1-я встреча нового сезона начнется в 19.00. На встрече нас ждут 3 доклада. [Читать дальше →][2]

[1]: https://habrastorage.org/files/a93/d16/9a0/a93d169a0c134dd8ab4c451925e70547.png
[2]: http://habrahabr.ru/post/267543/#habracut

[>] Python Meetup 28.08.15: полнотекстовый поиск и Europython 2015
habra.15
habrabot(difrex,1) — All
2015-09-23 20:00:03


Всем привет! Спешим поделиться видео с августовского Python Meetup. В этот раз мы прослушали два доклада: один про реализацию полнотекстового поиска при помощи Python, а второй — обзор конференции Europython 2015 из уст очевидца. Приятного просмотра! ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/298/ec2/28a/298ec228a8fb4b5bbe8f9b298f5191be.jpg
[2]: http://habrahabr.ru/post/267503/#habracut

[>] [recovery mode] Symantec самовольно выпустил сертификат для google.com и www.google.com
habra.15
habrabot(difrex,1) — All
2015-09-23 22:30:02


Незамеченным на Хабре остался инцидент с выпуском сертификата для доменов google.com и [www.google.com][1] удостоверяющим центром компании Symantec. Об этом сообщается в [блоге][2] «корпорации добра». Сертификат был выпущен 14 сентября примерно в 19:20 (GMT) удостоверяющим центром Thawte (принадлежит компании Symantec) без разрешения или запроса со стороны Google. Причем не простой сертификат, а Extended Validation (EV). Таким образом, это первый зафиксированный случай нелегального выпуска EV сертификата. [Читать дальше →][3]

[1]: http://www.google.com
[2]: http://googleonlinesecurity.blogspot.ru/2015/09/improved-digital-certificate-security.html
[3]: http://habrahabr.ru/post/267583/#habracut

[>] [Перевод] 19 советов по повседневной работе с Git
habra.15
habrabot(difrex,1) — All
2015-09-24 12:30:03






Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с [Git Cheat Sheet][1]. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. **Осторожно: траффик, большие картинки!** **Содержание**:

1. [Параметры для удобного просмотра лога][2]
2. [Вывод актуальных изменений в файл][3]
3. [Просмотр изменений в определённых строках файла][4]
4. [Просмотр ещё не влитых в родительскую ветку изменений][5]
5. [Извлечение файла из другой ветки][6]
6. [Пара слов о ребейзе][7]
7. [Сохранение структуры ветки после локального мержа][8]
8. [Исправление последнего коммита вместо создания нового][9]
9. [Три состояния в Git и переключение между ними][10]
10. [Мягкая отмена коммитов][11]
11. [Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов][12]
12. [Игнорирование пробелов][13]
13. [Добавление определённых изменений из файла][14]
14. [Поиск и удаление старых веток][15]
15. [Откладывание изменений определённых файлов][16]
16. [Хорошие примечания к коммиту][17]
17. [Автодополнения команд Git][18]
18. [Создание алиасов для часто используемых команд][19]
19. [Быстрый поиск плохого коммита][20]

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

[1]: http://www.alexkras.com/getting-started-with-git/
[2]: http://habrahabr.ru/company/mailru/blog/267595/#1
[3]: http://habrahabr.ru/company/mailru/blog/267595/#2
[4]: http://habrahabr.ru/company/mailru/blog/267595/#3
[5]: http://habrahabr.ru/company/mailru/blog/267595/#4
[6]: http://habrahabr.ru/company/mailru/blog/267595/#5
[7]: http://habrahabr.ru/company/mailru/blog/267595/#6
[8]: http://habrahabr.ru/company/mailru/blog/267595/#7
[9]: http://habrahabr.ru/company/mailru/blog/267595/#8
[10]: http://habrahabr.ru/company/mailru/blog/267595/#9
[11]: http://habrahabr.ru/company/mailru/blog/267595/#10
[12]: http://habrahabr.ru/company/mailru/blog/267595/#11
[13]: http://habrahabr.ru/company/mailru/blog/267595/#12
[14]: http://habrahabr.ru/company/mailru/blog/267595/#13
[15]: http://habrahabr.ru/company/mailru/blog/267595/#14
[16]: http://habrahabr.ru/company/mailru/blog/267595/#15
[17]: http://habrahabr.ru/company/mailru/blog/267595/#16
[18]: http://habrahabr.ru/company/mailru/blog/267595/#17
[19]: http://habrahabr.ru/company/mailru/blog/267595/#18
[20]: http://habrahabr.ru/company/mailru/blog/267595/#19
[21]: http://habrahabr.ru/post/267595/#habracut

[>] Новый Firefox 42 доступен в режиме Beta-теста
habra.15
habrabot(difrex,1) — All
2015-09-24 14:00:04


![image][1] После релиза последней стабильной версии **[Firefox 41][2]** позавчера, 22 сентября, Mozilla опубликовала следующую beta-версию своего браузера — **[Firefox 42][3]**. Продукт доступен для тестирования на всех основных платформах: Windows, Mac, Linux и Android. Сорок вторая версия браузера несет в себе массу нововведений и пару килл-фичей, в том числе и _экспериментальный приватный режим_ просмотра веб-страниц с _защитой от слежения_ за пользователем. Из новых функций сорок второй версии наибольший интерес для широкой публики представляет именно он, новый приватный режим просмотра веб-страниц. Firefox будет не просто «не сохранять» историю посещений, куки и кэш, как это делает, например, Chrome, а _блокировать средства отслеживания пользовательской активности_ при помощи внутренних средств защиты. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/ae2/2d4/08d/ae22d408d613264bfa4d20bc027b3230.png
[2]: https://www.mozilla.org/ru/firefox/new/
[3]: https://www.mozilla.org/ru/firefox/channel/#beta
[4]: http://habrahabr.ru/post/267611/#habracut

[>] Технокнига, часть 3: литература по проектированию высоконагруженных систем, по безопасности веб-приложений, по обеспечению качества разработки и по мобильной разработке
habra.15
habrabot(difrex,1) — All
2015-09-24 17:00:03


![][1] Для тех, кто хочет погрызть гранит IT-науки, мы продолжаем публиковать список камней повкуснее и пополезнее. Предлагаем вашему вниманию следующую часть списка рекомендуемой литературы, рассчитанной для студентов 3 семестра [Технопарка][2]. Предыдущие части: [первая][3], [вторая][4]. [Читать дальше →][5]

[1]: https://habrastorage.org/files/b93/85c/b0d/b9385cb0d5954916a6a8684143f27c74.jpg
[2]: https://park.mail.ru/
[3]: http://habrahabr.ru/company/mailru/blog/265103/
[4]: http://habrahabr.ru/company/mailru/blog/266065/
[5]: http://habrahabr.ru/post/267579/#habracut

[>] [Перевод] Еще одно встроенное шпионское приложение обнаружено на компьютерах Lenovo
habra.15
habrabot(difrex,1) — All
2015-09-24 18:00:03


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

[1]: https://habrastorage.org/files/0c0/a69/3d9/0c0a693d92c34237b803604f5545baf1.jpg
[2]: http://habrahabr.ru/post/267645/#habracut

[>] Firefox 42 с новым «приватным» режимом доступен в Бета-тесте
habra.15
habrabot(difrex,1) — All
2015-09-24 18:00:03


![image][1] После релиза последней стабильной версии **[Firefox 41][2]** позавчера, 22 сентября, Mozilla опубликовала следующую beta-версию своего браузера — **[Firefox 42][3]**. Продукт доступен для тестирования на всех основных платформах: Windows, Mac, Linux и Android. Сорок вторая версия браузера несет в себе массу нововведений и пару килл-фичей, в том числе и _экспериментальный приватный режим_ просмотра веб-страниц с _защитой от слежения_ за пользователем. Из новых функций сорок второй версии наибольший интерес для широкой публики представляет именно он, новый приватный режим просмотра веб-страниц. Firefox будет не просто «не сохранять» историю посещений, куки и кэш, как это делает, например, Chrome, а _блокировать средства отслеживания пользовательской активности_ при помощи внутренних средств защиты. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/ae2/2d4/08d/ae22d408d613264bfa4d20bc027b3230.png
[2]: https://www.mozilla.org/ru/firefox/new/
[3]: https://www.mozilla.org/ru/firefox/channel/#beta
[4]: http://habrahabr.ru/post/267611/#habracut

[>] Статический анализ кода Mozilla Thunderbird c помощью PVS-Studio
habra.15
habrabot(difrex,1) — All
2015-09-24 19:00:03


![][1] В этой статье хочу рассказать о проверке проекта Mozilla Thunderbird статическим анализатором PVS-Studio. Пользуясь Thunderbird, я иногда сталкивался с зависаниями и странным поведением программы. Возможно, нам удастся найти хотя бы некоторые причины этого в исходном коде. Приглашаю посмотреть, какие ошибки могут прятаться в таком популярном проекте. [Читать дальше →][2]

[1]: https://habrastorage.org/files/ada/8cf/335/ada8cf33568d4f92939f4b3afe0905bc.png
[2]: http://habrahabr.ru/post/267663/#habracut

[>] Пишем драйвер пользовательского окружения для uinput на Raspberry Pi
habra.15
habrabot(difrex,1) — All
2015-09-24 19:00:03


![Фотография дисплея][1]_Ради одного из своих небольших проектов на Raspberry Pi 2 я приобрел емкостной сенсорный дисплей Waveshare с демократичной ценой, скромным разрешением и сомнительной поддержкой. В коробке с дисплеем лежала DVD-R DL, и по заявлениям продавца, там лежали образы систем на базе Raspbian. Прочитать их мне не удалось, поиск решений в интернете подсказал, что драйвер, который там лежал, был и так не самым лучшим решением (уже скомпилированное ядро без исходников). В процессе поиска я наткнулся на проект одного парня из дружественного Китая. Благодаря нему я смог прийти к своему решению._ [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/47c/c13/325/47cc13325603e6932f6aa007db954d97.jpg
[2]: http://habrahabr.ru/post/267655/#habracut

[>] [Из песочницы] Централизованное управление конфигурациями: Puppet + Foreman. Часть І
habra.15
habrabot(difrex,1) — All
2015-09-24 19:00:03


В этой статье будет рассмотрена установка и настройка связки Puppet + Foreman для централизованного управления конфигурациями. Для сервера, на котором будет установлена связка Puppet + Foreman, будет использоваться виртуальная машина (1 CPU, 2 Gb RAM, 20Gb HDD), в качестве клиентов будут физические ПК на которых установлена Ubuntu. Конфигурация моего виртуального сервера с указанными выше характеристиками позволяет без проблем обслуживать 500 клиентов (можно и больше). Установка Puppet довольно простая (все последующие команды выполняются от root):

dpkg -i puppetlabs-release-trusty.deb



Этими командами мы скачиваем deb пакет с сайта разработчиков puppet и устанавливаем его. Данный пакет puppetlabs-release-trusty.deb при установке создает файл /etc/apt/sources.list.d/puppetlabs.list в котором прописаны репозитории puppet, а также импортируется gpg ключ которым подписан репозиторий puppet. Сам puppetmaster мы не устанавливаем, он будет установлен автоматически при установке Foreman. На этом установка Puppet закончена, приступим к установке веб-интерфейса Foreman: [Читать дальше →][1]

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

[>] Тонкости модульной системы ECMAScript 2015 (ES6)
habra.15
habrabot(difrex,1) — All
2015-09-25 02:00:03


Уже около полугода я пишу на ES6 (который в итоге назвали ES-2015) и ES7, с использованием [бабеля][1] в качестве транслятора. Писать мне приходилось в основном серверную часть, соответственно, использование модулей было само собой разумеющимся: до ES6 — с помощью [модульной системы самой ноды][2], а теперь — с помощью [стандартизированной семантики][3] самого языка. И мне захотелось написать статью, в которой расписать тонкости, плюсы, подводные камни и необычности новообретенной модульной системы языка: отчасти — чтобы другим было проще, отчасти — чтобы разобраться во всём окончательно самому :) Я разберу, что такое модуль, как происходит экспорт сущностей, как происходит импорт сущностей, чем система модулей ES6 отличается от системы модулей в NodeJS. [Итак, начнем.][4]

[1]: https://babeljs.io/
[2]: https://nodejs.org/api/modules.html
[3]: http://www.ecma-international.org/ecma-262/6.0/#sec-module-semantics
[4]: http://habrahabr.ru/post/267639/#habracut

[>] [Из песочницы] Венгерский алгоритм в задаче слежения за множеством движущихся объектов
habra.15
habrabot(difrex,1) — All
2015-09-25 05:30:02


![][1]Хочу рассказать об известном, но мало освещенном в литературе подходе к слежению за множеством движущихся объектов. Сложность этой задачи во многом заключается в том, что алгоритмы обнаружения и выделения объектов часто дают сбои, а сами объекты могут заслоняться другими объектами и элементами фона. В общем случае решение задачи слежения содержит три основных этапа: – выделение сегментов; – установление соответствия между выделенными сегментами и отслеживаемыми объектами; – уточнение или прогнозирование положения объектов интереса. Сегментом в данном случае называют связную область изображения, выделяемую по признаку движения. В рамках данной заметки нас будут интересовать 2-й и 3-й из перечисленных этапов. [Читать дальше →][2]

[1]: https://habrastorage.org/files/9c4/da3/93d/9c4da393d436498ca1d86332f5311d52.png
[2]: http://habrahabr.ru/post/267651/#habracut

[>] Игра на голом HTML / CSS
habra.15
habrabot(difrex,1) — All
2015-09-25 10:00:03


Доброй ночи, хабраюзеры. Сегодня речь пойдет о том, как создать игру не используя js и прочих скриптов. Только HTML / CSS, только хейткор. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/b0a/1ce/508/b0a1ce508a124ca5ac9947eec25df8f8.png
[2]: http://habrahabr.ru/post/267701/#habracut

[>] Новое в Runkit 1.0.4: PHP 5.6+, closures везде и еще 12 новых фич
habra.15
habrabot(difrex,1) — All
2015-09-25 11:00:03


![][1]

## Runkit 1.0.4 для PHP выпущен!

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

[1]: https://habrastorage.org/files/f3e/2f7/79d/f3e2f779d73e4e12966608d913977eb9.jpg
[2]: http://habrahabr.ru/post/267495/#rel
[3]: http://habrahabr.ru/post/267495/#habracut

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


![image][1] Последнее время я занимаюсь изучением азбуки Морзе с помощью [данной программы][2]. Но она рассчитана на изучение кодов кириллических букв, что является неактуальным в современной радиосвязи (все используют латинский алфавит, кроме нашей доблестной армии). Такая ситуация меня не устроила, и было принято решение написать программу для генерации звукового кода Морзе из некоторого текста с настройкой скорости и возможностью добавления кодов динамически. Решение получилось достаточно оригинальным и гибким (ИМХО, конечно же). И я решил поделиться программой с общественностью: возможно, она будет кому-то полезна или покажется интересной. В качестве инструмента реализации идеи был выбран С++ в связке с Qt. [Читать дальше →][3]

[1]: https://habrastorage.org/files/fcf/42b/210/fcf42b2101d94e7dba4a340f58375889.png
[2]: http://www.radioscanner.ru/files/amateursoft/file2022/
[3]: http://habrahabr.ru/post/267605/#habracut

[>] Как я, в итоге, написал новую RTOS, протестированную и стабильную
habra.15
habrabot(difrex,1) — All
2015-09-25 12:30:02


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



Процессоры, используемые в наших продуктах — это, в основном, 16- и 32-битные микроконтроллеры Microchip, имеющие RAM от 8 до 32 кБ, и ROM от 128 до 512 кБ, без MMU. Иногда, для самых простых устройств, используются еще более скромные 8-битные чипы. Очевидно, что у нас нет (разумных) шансов использовать ядро Linux. Так что нам нужна какая-нибудь RTOS (Real-Time Operating System). Находятся даже люди, которые не используют никаких ОС в микроконтроллерах, но я не считаю это хорошей практикой: если железо позволяет мне использовать ОС, я ее использую. Несколько лет назад, когда мы переходили с 8-битников на более мощные 16-битные микроконтроллеры, мои коллеги, которые были гораздо более опытными, чем я, рекомендовали вытесняющюю RTOS [TNKernel][1]. Так что это — та ОС, которую я использовал в разных проектах в течение пары лет. Не то, чтобы я был очень доволен ею: например, в ней нет таймеров. И она не позволяет потоку ждать сообщения сразу из нескольких очередей. И в ней нет программного контроля переполнения стека (это действительно напрягало). Но она работала, так что я подолжал ее использовать. [Читать дальше →][2]

[1]: http://tnkernel.com/
[2]: http://habrahabr.ru/post/267573/#habracut

[>] [Перевод] Утилиты командной строки могут быть в 235-раз быстрее вашего Hadoop кластера
habra.15
habrabot(difrex,1) — All
2015-09-25 17:00:03


_Примечания [tsafin][1]: Перед публикацией своего цикла статей по MapReduce в Caché, мне показалось важным озвучить данную прошлогоднюю точку зрения из статьи [Адама Дрейка][2] [«Command-line tools can be 235x faster than your Hadoop cluster»][3]. К сожалению оригинальная статья [Тома Хайдена][4], на которую он ссылается стала уже недоступна на сайте Тома, но её, по-прежнему, можно найти [в архивах][5]. Для полноты картины предлагаю ознакомиться и с ней тоже._ [Читать дальше →][6]

[1]: http://habrahabr.ru/users/tsafin/
[2]: http://aadrake.com/author/adam-drake.html
[3]: http://aadrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html
[4]: http://tomhayden3.com/2013/12/27/chess-mr-job/
[5]: http://web.archive.org/web/20140119221101/http:/tomhayden3.com/2013/12/27/chess-mr-job/?
[6]: http://habrahabr.ru/post/267697/#habracut

[>] [Перевод] Алгоритмы в реальном мире: Подбор жилья для гостей конференции
habra.15
habrabot(difrex,1) — All
2015-09-25 19:30:03


**Примечание переводчика**: _В нашем блоге мы рассказываем об [облачных сервисах, хостинге][1] и соответствующих [технологиях][2]. Кроме того, мы уделяем внимание теме алгоритмов и ранее публиковали материал о поисках [простого алгоритма][3] интеллекта. Есть и более приземленные применения алгоритмов — сегодня мы представляем вашему вниманию перевод [заметки][4] организаторов конференции HackMIT о том, как с помощью алгоритмов они подбирают жилье гостям мероприятия._ [![][5]][6] Использовать алгоритмы для решения задач реальной жизни — очень интересное занятие. Организаторы конференции HackMIT, проходящий в Массачусетском технологическом университете, предоставляют хакерам, которые приезжают для участия в событии, жилью на территории кампуса. Студенты, которые впустят к себе постояльцев получают в подарок надувные матрасы — схема работает безотказно. [Читать дальше →][7]

[1]: https://1cloud.ru/
[2]: http://habrahabr.ru/company/1cloud/blog/266133/
[3]: http://habrahabr.ru/company/1cloud/blog/266641/
[4]: http://www.anishathalye.com/2015/09/24/algorithms-in-the-real-world-host-matching/
[5]: https://habrastorage.org/files/210/a9c/ff5/210a9cff5cf142f48c929d8f7a13213a.png
[6]: http://habrahabr.ru/company/1cloud/blog/267719/
[7]: http://habrahabr.ru/post/267719/#habracut

[>] Security Week 39: XcodeGhost, утечка сертификата D-Link, миллион за баг в iOS9
habra.15
habrabot(difrex,1) — All
2015-09-25 22:30:02


![][1]Новый эпизод сериала хочется начать с новости, не относящейся в общем-то к инфобезопасности. В автомобилях Volkswagen с дизельным двигателем обнаружили разные показатели выброса вредных веществ во время движения, и при стационарном тестировании. Пока с этой историей все не станет окончательно ясно, я бы предпочел придерживаться именно такой формулировки. Эта история говорит нам о том, насколько стал важен софт: оказалось, что при помощи небольшого твика в программном коде можно изменить очень важную характеристику автомобиля, да так, что никто этого и не заметит. Wired [пишет][2], что скрыть повышенный уровень выброса вредных веществ было просто. Как происходит лабораторное тестирование? Машину ставят на ролики, нажимают на газ, колеса крутятся, двигатель работает, выхлоп анализируется. Какое единственное отличие между таким режимом и обычной ездой по трассе? Правильно, руль не двигается. То есть достаточно ввести единственное условие: никто не крутит руль, а машина едет — значит мы на станции техосмотра. Такой «хак» можно было обнаружить только случайно — что, собственно, и произошло. Опять же, пока историю не рассказали до конца, разницу в выхлопе можно считать как намеренным действием автоконцерна (а точнее узкой группы людей, ответственной за управляющий код), так и простой ошибкой. Может это быть ошибкой? Да вполне. В сегодняшнем дайджесте самых важных новостей с сайте [Threatpost.ru][3] за неделю — истории о том, как ошибки происходят, как ими пользуются, и как на них делают деньги. Все предыдущие выпуски [тут][4]. [Читать дальше →][5]

[1]: https://habrastorage.org/files/54d/c3b/4e9/54dc3b4e9f764ec3b4958fc21cd0c69f.png
[2]: http://www.wired.com/2015/09/vw-fool-epa-couldnt-trick-chemistry/
[3]: https://threatpost.ru/
[4]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[5]: http://habrahabr.ru/post/267683/#habracut

[>] FirebirdSQL используют 11 компаний из списка ТОП-500 России
habra.15
habrabot(difrex,1) — All
2015-09-26 00:30:02


![][1] На этой неделе РБК опубликовал список [ТОП-500 российских компаний][2]. А буквально вчера, встречаясь с коллегами из [ISDEF][3], я в очередной раз отвечал на вопрос, кто же пользуется Firebird SQL в России, и решил совместить ответ на этот вопрос со списком из ТОП-500. [Читать дальше →][4]

[1]: http://habr.habrastorage.org/post_images/e24/ce6/05e/e24ce605ef565994234e89c9dde7dedf.png
[2]: http://www.rbc.ru/rbc500/?utm_source=rbc&utm_medium=super&utm_campaign=rbc500
[3]: http://www.isdef.org/ru/index.php
[4]: http://habrahabr.ru/post/267647/#habracut

[>] Онлайн трансляция Droidcon Moscow 2015
habra.15
habrabot(difrex,1) — All
2015-09-26 00:30:02


Привет, Хабр! Сегодня в 10:00 (МСК) на [droidcon.moscow][1] начнётся трансляция одной из самых крупных ежегодных Android-конференций — Droidcon. В этот раз м году мероприятие будет разделено на следующие тематические блоки: Tech Day, Business Day, Community Day. Главными темами Droidcon Moscow 2015 станут: Новые фичи Android M, носимые устройства и разработка для них, облако, Интернет вещей (IoT), Material Design, Android TV, виртуальная и дополненная реальности (AR/VR), Открытые API. Присоединяйтесь к нам и будьте в курсе всех событий! [Что будет на конференции?][2]

[1]: http://droidcon.moscow/
[2]: http://habrahabr.ru/post/267691/#habracut

[>] Система трекинга загрузки игрового клиента
habra.15
habrabot(difrex,1) — All
2015-09-26 00:30:02


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

[1]: https://habrastorage.org/files/499/b0f/83f/499b0f83f3c641b6a3419b2baa701e2f.jpg
[2]: http://habrahabr.ru/post/267707/#habracut

[>] Android Data Binding in RecyclerView
habra.15
habrabot(difrex,1) — All
2015-09-26 02:30:02


![][1] На Google IO 2015 анонсировали новую библиотеку Data Binding Library. Основная ее задача — вынесения взаимодействия модели и View в xml-файлы. Она значительно упрощает написание кода и избавляет от необходимости использования методов findByViewId(), добавления ссылок на view-элементы внутри Activity/Fragment’ов. Также она позволяет использовать кастомные атрибуты, привязывая их к статическим методам. Поскольку статьей просто по Data Binding уже достаточно, но по его использованию в RecycleView всего ничего, восполним этот пробел. [Читать дальше →][2]

[1]: https://habrastorage.org/files/ac6/364/b41/ac6364b41862460ab3b24dfe92e5e33e.png
[2]: http://habrahabr.ru/post/267735/#habracut

[>] Facebook вводит шифрование для Internet.org
habra.15
habrabot(difrex,1) — All
2015-09-26 11:00:04


![][1] После открытия своей платформы [Internet.org][2] для разработчиков в мае, компания Facebook потребовала, чтобы любой сервис, использующий его, передавал данные без шифрования. Спустя пять месяцев ситуация изменилась — теперь [шифрование можно использовать][3] без всяких проблем, и миллионы пользователей из развивающихся стран смогут работать с сервисами наподобие Twitter, с использованием шифрования. Часть миссии Internet.org — создание бесплатной платформы для веб-сервисов развивающихся стран. Благодаря сотрудничеству с различными операторами связи, платформа обеспечивает пользователям бесплатный доступ к некоторым сетевым сервисам. Никакой оплаты Internet.org не взимает. При этом подобное положение вещей уже критиковали некоторые поклонники концепции сетевой нейтральности, утверждая, что у подобных приложений — огромное преимущество по сравнению с обычными программами-конкурентами. [Читать дальше →][4]

[1]: https://cdn0.vox-cdn.com/thumbor/qNnH7HSZk-0fed6SMb5Tm8ALpbo=/0x0:1024x683/800x536/cdn0.vox-cdn.com/uploads/chorus_image/image/47254242/16928759707_b2fd95c65c_b.0.0.jpg
[2]: https://en.wikipedia.org/wiki/Internet.org
[3]: https://press.internet.org/2015/09/24/enhancing-security-and-privacy-of-free-basics/
[4]: http://habrahabr.ru/post/267745/#habracut

[>] Перенаправление данных из COM-порта в web. Доработка
habra.15
habrabot(difrex,1) — All
2015-09-26 11:00:04


Недавно я опубликовал статью [«Перенаправление данных из COM-порта в web»][1], в которой описал прототип системы, транслирующей строки из последовательного порта компьютера в веб-браузер. В той статье я указал направления, в которых надо доработать прототип, чтобы приблизить его к продакшен-стадии: — никакой дизайн веб-страницы — в каждый момент времени данные получит только один веб-клиент — очень ограниченный набор браузеров, с помощью которых можно получить доступ. Например, не работает ни в Internet Explorer 8, ни в браузере из Android 2.3.5 — требуется установка python Через некоторое время я решил не оставлять его в таком виде и доработать. Под катом результат доработки и описание того, как я устранил все перечисленные недостатки. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/264663/
[2]: http://habrahabr.ru/post/266317/#habracut

[>] [Из песочницы] PHP: культура программирования
habra.15
habrabot(difrex,1) — All
2015-09-26 12:30:02




#### Когда её нет

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

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

[>] Поддержка C++ модулей в Visual Studio 2015 Update 1
habra.15
habrabot(difrex,1) — All
2015-09-26 20:30:02


На конференции [CppCon][1], которая проходит прямо сейчас, команда разработчиков компилятора Visual C++ заявила, что в следующем обновлении (Visual Studio 2015 Update 1) в компилятор С++ от Microsoft будет добавлена экспериментальная возможность из нового (ещё не утверждённого) стандарта С++ — поддержка модулей! ![][2] Для тех, кто не в курсе в чём эпохальность данного события: так уж сложилось, что механизм использовани компонентов в программах на С++ придумывался где-то лет 35 назад. Его нельзя назвать удобным: если вы хотите создать библиотеку — вам нужно сделать заголовочный файл и распространять с ним либо код, либо скомпилированную версию библиотеки. При этом возникает куча проблем:

* Заголовочный файл и библиотека — отдельные файлы, один из них может потеряться, либо они случайно могут рассинхронизироваться.
* Заголовочный файл включается в код директивой препроцессора #include, что во-первых, замедляет компиляцию, а во-вторых добавляет влияние всего, что написано в заголовочных файлах друг на друга и на конечный код. Нередки случаи, когда заголовочные файлы нужно включать в определенном порядке или определять некоторые макросы чтобы код нормально собрался.

В итоге в инфраструктуре С++ отсутствуют понятия «сборок» или «пакетов» и, в отличии от С# или Python, где установка компонентов тривиальна, в С++ подключение каждой новой библиотеки может нести свои неожиданности. Предлагаемый механизм модулей в С++ призван убрать данную проблему, отказаться от директивы препроцессора #include и ссылаться на компоненты, как на некоторую сущность, состоящую из кода и метаданных, целостную и легко подключаемую. В итоге мы вскоре можем получить существенное ускорение внедрения новых компонентов в проект, появления полноценных менеджеров пакетов, установка новой библиотеки сведется к выполнению одной строки или нескольким кликам мышью. Это ли не счастье! Под катом будут примеры использования и ссылки на документацию. [Читать дальше →][3]

[1]: http://cppcon.org/
[2]: https://habrastorage.org/files/bde/833/486/bde8334866574908b072dacf2ead166e.jpg
[3]: http://habrahabr.ru/post/267781/#habracut

[>] Модификация системного вызова. Часть 2
habra.15
habrabot(difrex,1) — All
2015-09-26 23:00:02


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

[1]: http://habrahabr.ru/post/267535/
[2]: http://habrahabr.ru/post/267773/#habracut

[>] Артем Гавриченков, Qrator — DDoS-атаки [Видеолекция]
habra.15
habrabot(difrex,1) — All
2015-09-27 00:30:02


Пару недель назад нам удалось вытащить на CodeFreeze с докладом **Артема Гавриченкова** aka [ximaera][1], CTO в Qrator Labs — компании, которая является одним из мировых лидеров по вопросам борьбы с DDoS-атаками. [![][2]][3] Собственно, я позвал Артема сделать нам обзорную лекцию о том, что такое DDoS-атаки, какие они бывают и как с ними бороться. Если конкретнее:

* История термина. Чем отличаются DoS- и DDoS-атаки?
* DDoS-атаки с точки зрения специалистов по информационной безопасности, оценка рисков;
* Виды атак и их классификация;
* Противодействие для каждого вида атак;
* DDoS-атаки в Интернете будущего: как IPv6, IoT и рост числа участников Сети повлияет на её, Сети, безопасность?

[Видео под катом][4]

[1]: http://habrahabr.ru/users/ximaera/
[2]: https://habrastorage.org/files/63b/893/327/63b89332708d42e7a4d54ee1c9f6903b.jpg
[3]: http://habrahabr.ru/post/217543/
[4]: http://habrahabr.ru/post/217543/#habracut

[>] Лайфхаки для веб-разработчика
habra.15
habrabot(difrex,1) — All
2015-09-27 13:30:02


Обожаю трюки и лайфхаки. Каждый раз радуюсь, когда удается упростить очередную рутинную операцию. А так как работаю я, вот уже 8 лет, веб-программистом, то рутинные операции и лайфхаки у меня программерские. Вот этим и хочу с вами поделиться. Часть трюков до меня уже описали на хабре, часть я взял из других источников, часть придумал сам. Буду благодарен если в комментариях к посту вы напишете, какие трюки используете вы.

# Использование \*\* в zsh

Таким образом я ищу файлы в папке по расширению рекурсивно:

ls **/*.json


файлы с размером выше чем 1 мегабайт:

ls -lh **/*(Lm+1)


Быстро и уверенно удаляем мусор из репозитория и судорожно правим. gitignore:

git rm —cached **/*.pyc


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

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

[>] Консоль 21 века: mosh, tmux, fish
habra.15
habrabot(difrex,1) — All
2015-09-27 16:30:03


В своей работе мне приходится проводить чуть ли не все свое время в консоли, как в локальной, так и в удаленной. Нет, что вы, я не жалуюсь, даже наоборот — мне нравятся возможности автоматизации, которые предоставляют консольные инструменты, и работа в консоли вполне продуктивна. Но если вы проводите за своим инструментом до 80% рабочего времени, то желательно убедиться, что вы не тратите время впустую и что работа доставляет вам удовольствие. В этой статье я бы хотел немного рассказать про те инструменты, которыми я лично пользуюсь каждый день, и про то, как они улучшают user experience (и, часто, продуктивность) при работе с консолью и с удаленными серверами в частности.

### Проблемы ssh

При работе с удаленными серверами по ssh есть много вещей, которые могут фрустрировать, но основных проблем две, и первая из них принципиально неразрешима в рамках ssh:

1. При высоком round-trip latency (>100 ms) пользовательский ввод появляется с ощутимой задержкой, а при использовании мобильного интернета с edge (latency 1000 ms) работа становится подобна пытке
2. При временных проблемах (несколько минут) с доставкой пакетов, соединение может порваться с write failed: broken pipe, причем узнаете вы об этом только при попытке ввода или при использовании настроек вроде keepaliveinterval

Первая проблема неразрешима потому, что ssh by-design является просто транспортом для байтов, и существующие приложения на это поведение расчитывают. Поскольку ssh не пытается интерпетировать этот поток байтов, он не может осуществлять предиктивный ввод. Лично для меня именно эта проблема наиболее актуальна, поскольку мне приходится работать с серверами в европе и США, и во втором случае задержка составляет около 200 мс и является принципиально неустранимой, по крайней мере до изобретения квантовой коммуникации или чего-нибудь подобного. Вторая же проблема проявляется в наших условиях относительно редко, но всё же неприятно переустанавливать все соединения при сбоях сети (и перезапускать упавшие приложения, если они почему не были запущены в screen). [Читать дальше →][1]

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

[>] Игры на CSS. Часть 2: StarCraft
habra.15
habrabot(difrex,1) — All
2015-09-27 22:00:06


Доброго дня, хабровцы. По результатам [прошлой статьи][1] я понял, что тема интересна общественности, поэтому подготовил еще один материал, чуть сложнее. По прежнему нет скриптов, только HTML/CSS. Смотрите видео и под кат.




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

[1]: http://habrahabr.ru/post/267701/
[2]: http://habrahabr.ru/post/267801/#habracut

[>] Go, практика асинхронного взаимодействия
habra.15
habrabot(difrex,1) — All
2015-09-28 08:30:02


Немножко про каналы, про выполнение в основном процессе, про то как вынести блокирующие операции в отдельную _горутину_.

* Каналы и пустое значение
* Односторонние каналы
* Выполнение в основном процессе
* Вынос блокирующих операций

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

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

[>] Нет ничего проще, чем вызвать функцию, я сам это делал неоднократно
habra.15
habrabot(difrex,1) — All
2015-09-28 11:30:07


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

[1]: https://habrastorage.org/files/69b/c6b/9b1/69bc6b9b15c64d63ba7fa1c046ca15d0.png
[2]: http://habrahabr.ru/post/208006/
[3]: http://www.cplusplus.com/reference/csetjmp/setjmp/
[4]: http://habrahabr.ru/post/267771/#habracut

[>] Задача о конфетах
habra.15
habrabot(difrex,1) — All
2015-09-28 12:30:03


На днях столкнулся с интересной задачкой, которая показалась мне достойной аудитории данного ресурса. Условие ее следующее: **«Найти максимально допустимое отклонение массы конфеты при ее производстве, чтобы нетто коробки, состоящей из 12 штук их, не выходило за пределы 310±7 грамм в 90% случаев. Закон распределения считать нормальным.»** Стоит сказать, что условие не было выдернуто из интернета или подсмотрено на каком-нибудь ресурсе занимательных задач, а пришло от одного очень хорошего друга, который по должности своей инженер по организации и управлению производством на одной не без известной кондитерской фабрике. То есть задача имеет вполне реальное происхождение, а ее решение — практическую пользу. Предлагаю всем читателям попробовать найти решение самостоятельно, а спустя пару дней я опубликую свое. [][1]

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

[>] Дорабатываем открытый код — развиваем и показываем всем свои навыки разработки ПО
habra.15
habrabot(difrex,1) — All
2015-09-28 13:00:03


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

[1]: https://habrastorage.org/files/583/ca3/6d4/583ca36d499b49c985d5c559973e8f83.jpg
[2]: http://habrahabr.ru/post/267631/#habracut

[>] Unix shell: первые шаги
habra.15
habrabot(difrex,1) — All
2015-09-28 15:00:05




## Зачем и для кого статья?

Изначально это была памятка для студентов, которые начинают работать с unix-подобными системами. Иными словами, статья рассчитана на тех, кто не имеет предыдущего опыта работы в unix-овой командной строке, но по тем или иным причинам хочет или должен научиться эффективно с нею взаимодействовать. Здесь не будет пересказа манов (документации), и статья никак не отменяет и не заменяет их чтение. Вместо этого я расскажу о главных вещах (командах, приемах и принципах), которые надо осознать с самого начала работы в unix shell-е, чтобы работа происходила эффективно и приятно. Статья касается полноценных unix-подобных окружений, с полнофункциональным шеллом (предпочтительно zsh или bash)и достаточно широким набором стандартных программ. [Читать дальше →][1]

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

[>] Корпоративный иммунитет: создаём систему централизованного управления сетевой безопасностью в компании и её филиалах
habra.15
habrabot(difrex,1) — All
2015-09-28 15:30:06


Привет, Хабр! Правила игры изменились. Еще вчера мы специализировались на решениях для малого и среднего бизнеса, и не из-за того, что обладали какими-либо техническими ограничениями, а лишь потому, что на рынке было засилие тяжеловесов в IT отрасли. Наше ПО попросту не рассматривали корпорации, как комплексное решение в области безопасности, хотя и устанавливали Traffic Inspector для защиты отдельных офисов и небольших подразделений. Но с середины 2014 года, в связи с изменением рыночной конъектуры и санкционной политики западных компаний, в наш офис стали все чаще поступать запросы о возможности объединения наших программно-аппаратных устройств в единое решение для корпораций. В результате чего, нами был разработан новый продукт Traffic Inpector Enterprise – комплексная система защиты разветвленной сети под управлением единой консоли. [![][1]][2] Итак, как мы к этому пришли? [Читать дальше →][3]

[1]: https://habrastorage.org/files/a20/0db/bac/a200dbbac6ef499aa5e917006b95f7c0.jpg
[2]: http://habrahabr.ru/company/smart_soft/blog/265495/
[3]: http://habrahabr.ru/post/265495/#habracut

[>] [Из песочницы] «Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов
habra.15
habrabot(difrex,1) — All
2015-09-28 15:30:06


Не секрет, что в больших конторах тема фильтрации Интернета довольно актуальная. С этой задачей справляется немало программных и аппаратных решений. Но в настоящее время все те сайты, которые мы резали ранее, работают по протоколу HTTPS. Как известно, данный протокол проследить, прослушать и т. п., невозможно. А любой кеширующий фильтрующий прокси-сервер, редиректор и т. п. Фильтрует только HTTPS. Как же резать Вконтакте, Одноклассники, iphide.info и многие другие подобные сайты? Как блокировать доступ к личной почте в организации, если использование оной запрещено порядками в организации? Да, можно фильтровать по IP адресам, но они частенько меняются, да и на многих ресурсах несколько IP адресов. Блокировать их на уровне файрвола как-то совсем не православное решение, и не совсем удобное. И вот, совсем недавно, мне один товарищ рассказал, что он поднимает у себя в конторе кеширующий прокси с фильтрацией HTTPS, меня это заинтересовало. А поднимал он **Squid 3.5.8**. Как выяснилось, в нем переработана организация перехвата шифрованных HTTPS-сеансов (ssl\_bump), вместо режимов перехвата («modes») введены в обиход действия («actions»), которые в том числе можно использовать в ACL. Режим «server-first», при котором вначале осуществляется соединение с целевым сервером, а потом создаётся защищённое соединение между клиентом и прокси, теперь доступен как действие «bump». Режим «none», при котором создаётся TCP-туннель без дешифровки трафика, теперь доступен как действие «splice». Для обеспечения обратной совместимости добавлено действие «peek-and-splice», при котором решение о типе создаваемого вначале соединения (клиент-прокси или прокси-сервер) принимается на основе SSL hello-сообщений. Добавлены действия «peek» и «stare» для получения клиентского или серверного сертификата с сохранением возможности дальнейшего применения режимов «splice» и «bump» для соединений. Добавлено действие «terminate» для закрытия соединений к клиенту или серверу. Вот как раз SSL BUMP, PEEK-and-SPLICE и Terminate нам и нужны. Вообще, схема работы на самом деле довольно простая. Squid подключается к HTTPS ресурсу, получает его сертификат, и может «посмотреть» некоторые данные о ресурсе, в частности имя сервера, которое нам как раз и нужно для блокировки! Все мануалы, которые есть в Интернете, то и дело описывают Man in the middle (MITM) атаку с подменой сертификатов, при которой в принципе не работают некоторые сайты и банк-клиенты, да и юзеры явно видят, что за ними следят. Мы же с товарищем совместными усилиями добились сбособа фильтрации и отслеживания HTTPS без подмены сертификатов, без MITM и прочего, и все это в прозрачном режиме без настройки браузеров! Впоследствии я столкнулся с некоторыми сложностями, в частности Squid начинал сегфолтиться на большой нагрузке. Но проблема была решена. Дело в том, что в **Openssl** имеются кое какие баги, которые исправлены в библиотеке Libressl. Поэтому необходимо сначала интегрировать в систему **Libressl**, потом уже после внесения патча в файл bio.cc в исходниках Squid приступать к компиляции последнего. Поехали! Оговорюсь, что у меня используется дистрибутив Debian Jessie x86, и Squid я в итоге собрал версии 3.5.9 (последняя на данный момент версия), и статья рассчитана на более-менее опытного пользователя Linux, так как некоторые моменты опускаются, а говорится лишь самое главное, так как мне лень все разжевывать. Итак, если вам интересно, идем под кат. [Читать дальше →][1]

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

[>] PHP и OData: пересаживаемся с велосипедов на технологию от Microsoft
habra.15
habrabot(difrex,1) — All
2015-09-28 15:30:06


Нынче модно делать API и многие из нас уже реализовывали какие-то API на PHP. Одна из задач REST API — отдавать наборы данных, чтобы их в конечном итоге отобразить в табличном виде. Для этого, помимо прочего, приходится решать такие задачи:

* провалидировать запрос,
* отфильтровать данные,
* отсортировать данные,
* запрашивать и отдавать не все колонки, а только некоторые,
* реализовать пагинацию.

Не знаю как вы, но я вижу, что часто это делается велосипедными решениями. Задачи с виду не сложные, но чтобы их решить качественно, приходится потратить немало времени на разработку, документацию и разъяснения коллегам, как работает ваше изобретение. Я расскажу о том, как можно реализовать эти задачи весьма технологично с помощью OData. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/c4a/6ac/43a/c4a6ac43ae7c2332e4c490fc3e0c1b26.jpg
[2]: http://habrahabr.ru/post/267811/#habracut

Pages: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 37