RSS
Pages: 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ... 133
[>] Лучшие проекты телеком-хакатона TADHack Moscow 2016
habra.16
habrabot(difrex,1) — All
2016-10-21 13:00:02


![][1]

14-16 октября состоялся мировой хакатон TADHack. В этом году – [впервые][2] в Москве.
Мы рады всем участникам, которые выстояли и представили свои прототипы. И хотим, чтобы о самых впечатляющих проектах знали все!
[Увидеть лучшие телеком-проекты][3]

[1]: https://habrastorage.org/files/319/212/43e/31921243e6ff4a1c8cb2d96fd133d80f.jpg
[2]: https://tadhack.voximplant.ru/
[3]: https://habrahabr.ru/post/313148/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В ядре Linux обнаружена опасная 0-day уязвимость Dirty COW (CVE-2016-5195)
habra.16
habrabot(difrex,1) — All
2016-10-21 14:30:04


![][1]

В ядре Linux обнаружена опасная уязвимость, которая связана с обработкой подсистемой памяти ядра механизма copy-on-write (COW). Эксплуатируя баг можно спровоцировать так называемое состояние гонки (race condition). При эксплуатации уязвимости неавторизованный локальный пользователь сможет получить доступ к memory mappings с правом записи, хотя доступ должен быть ограничивать только чтением (read-only). Уязвимость относится к privilege escalation.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/f8c/c93/326/f8cc9332601b48ff9786f3836009b067.png
[2]: https://habrahabr.ru/post/313276/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему «1984» не наступит
habra.16
habrabot(difrex,1) — All
2016-10-21 15:00:03


С тех пор, как Эрик Артур Блэр, более известный под своим писательским псевдонимом как Джордж Оруэлл, написал антиутопию «1984», общественность весьма настороженно относится к любым правительственным инициативам, предполагающим некий надзор со стороны государства и использование механизмом идентификации. Если вы знакомы с классикой, и у вас вызывает страх одна лишь мысль о Комнате 101, то вы наверняка можете себе представить, как бы выглядел роман Оруэлла, знай он о нашем гиперподключенном мире. К счастью, представленное им ужасающее будущее с всемогущим и всевидящим Большим Братом пока что не материализовалось. Право на неприкосновенность частной жизни и право доступа к информации было сохранено.


[Читать дальше: Электронные документы на пути к захвату мира][1]

[1]: https://habrahabr.ru/post/313036/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Для новичков. XSS и ошибки разработчиков на веб-сервисах
habra.16
habrabot(difrex,1) — All
2016-10-21 16:30:04


Сначала разберем, что такое XSS и его виды.


> XSS — Cross-Site Scripting — Одна из множества уязвимостей веб приложений, которая позволяет внедрить вредоносный код, на страницу.

Есть 2 типа XSS:


1. Пассивная — XSS, которая статично находится на странице
2. Активная — XSS, которая динамично отображается на странице, при определенном запросе

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


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

[1]: https://habrahabr.ru/post/313282/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Дональд Кнут: как я занялся анализом алгоритмов и ради этого поехал в СССР (37,91,97/97)
habra.16
habrabot(difrex,1) — All
2016-10-21 18:30:04


_«Андрей (Ершов), представь, как было бы здорово организовать что-то вроде паломничества, где программисты со всего мира могли бы приехать в Хорезм и отпраздновать рождение этого понятия.»_
— Дональд Кнут уговаривает Ершова организовать международный симпозиум

![image][1]_Кнут и [Ершов][2]_

Осенью 1967 в Санта-Барбаре была конференция математиков, возможно, это был тот же год, когда я также побывал на конференции в Чапел-Хилле. Я встречал многих людей, которые стимулировали меня, и было множество интересных проблем, которые нам стоило обсудить друг с другом. Но когда я добрался до конференции в Санта-Барбаре, я понял, что это мой единственный шанс заняться исследованиями. Я не посещал лекции. Я просто сидел на берегу и писал свою статью об атрибутной грамматике прямо во время конференции. Но я посещал обеды. Я помню, как кто-то спросил меня, чем я занимаюсь и я решил побыть программистом, а не математиком в тот момент.

— Я думаю, я собираюсь стать программистом.
— О, так ты занимаешься численным анализом?
— Не совсем.
— Аааа, искусственный интеллект.
— Нет, и не искусственный интеллект.
— Тогда должно быть ты занимаешься языками программирования? [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/edc/a3c/064/edca3c0641b388d41cd452b30d062f98.jpg
[2]: https://habrahabr.ru/company/edison/blog/281905/
[3]: https://habrahabr.ru/post/313306/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Разделяем интерфейс и реализацию в функциональном стиле на С++
habra.16
habrabot(difrex,1) — All
2016-10-22 00:30:03


Разделяем интерфейс и реализацию в функциональном стиле на С++

![][1]
В языке С++ для разделения объявлений структур данных (классов) используются заголовочные файлы. В них определяется полная структура класса, включая приватные поля.
Причины подобного поведения описаны в замечательной книге «Дизайн и эволюция C++» Б.Страуструпа.

Мы получаем внешне парадоксальную ситуацию: изменения в закрытых приватных полях класса требует перекомпиляции всех единиц трансляции (.cpp файлов), использующих лишь внешний интерфейс класса. Конечно, причина этого кроется в необходимости знать размер объекта при инстанцировании, но знание причины проблемы не решает саму проблему.

Попытаемся использовать мощь современного С++, чтобы побороть этот недостаток. Заинтереснванных прошу под кат.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/1d7/582/d15/1d7582d1512d463685b31e942b909a81.gif
[2]: https://habrahabr.ru/post/312148/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Эзотерический язык Piet
habra.16
habrabot(difrex,1) — All
2016-10-22 02:00:04


![][1]

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

[1]: https://habrastorage.org/files/bf3/c21/038/bf3c2103821b44e4ab7fe2db2fd1f36d.jpg
[2]: https://esolangs.org/wiki/Category:Two-dimensional_languages
[3]: https://habrahabr.ru/post/313152/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Бинарные (файловые) хранилища страшная сказка с мрачным концом
habra.16
habrabot(difrex,1) — All
2016-10-22 03:00:03


![][1]


## Даниил Подольский (Git in Sky)


Доклад мой называется «Бинарные, они же файловые, хранилища», но, на самом деле, мы имеем дело со страшной сказкой. Проблема в том (и это тезис моего доклада), что сейчас не существует не то что хорошей, а хотя бы приемлемой системы хранения файлов.

Что такое файл? Файл – это кусок данных с именем. Что важно? Почему файл – это не строка в базе данных?

Файл слишком большой, чтоб можно было обращаться с ним как с одним куском. Почему? Есть у вас сервис, раз у нас HighLoad конференция, у вас сервис, который держит одновременно 100 тыс. соединений. Это не так уж много, если по каждому из соединений мы отдаем файл в 1 Мбайт размером, но нам нужно примерно **100 Гбайт памяти** для буферов под эти файлы.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/5f3/6fb/d71/5f36fbd710f406e775dd0d53e0ffa26a.jpg
[2]: https://habrahabr.ru/post/313330/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Программирование&Музыка: Delay, Distortion и модуляция параметров. Часть 4
habra.16
habrabot(difrex,1) — All
2016-10-22 14:30:05


Всем привет! Вы читаете четвертую часть статьи про создание VST-синтезатора на С#. В прошлых частях мы генерировали сигнал, применяли к нему амплитудную огибающую и фильтр частот.



В этот раз мы рассмотрим эффекты [Distortion][1] — искажение сигнала, знакомое любому электрогитаристу и [Delay][2] (оно же эхо).



Множество различных интересных звучаний можно получить, если менять (модулировать) значения параметров составляющих частей синтезатора (генератора, фильтра, эффектов) во времени. Рассмотрим вариант, как это можно сделать.



Исходный код [написанного мною синтезатора][3] доступен на [GitHub'е][4].


![][5]

_Скриншот VST плагина [GClip][6]_


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

[1]: http://ru.wikipedia.org/wiki/Дисторшн
[2]: http://ru.wikipedia.org/wiki/Дилэй
[3]: https://www.youtube.com/watch?v=6zAVMEtIb2w
[4]: https://github.com/lis355/Syntage
[5]: https://habrastorage.org/files/548/3e9/4ff/5483e94ff1264b3883aa9a6ce08b4d5b.png
[6]: http://www.gvst.co.uk/gclip.htm
[7]: https://habrahabr.ru/post/313338/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Urho3D: Постэффекты
habra.16
habrabot(difrex,1) — All
2016-10-22 15:00:04


Продолжаем разбираться в графической подсистеме Urho3D. На этот раз поговорим об эффектах постобработки. В комплект движка входит множество уже готовых эффектов, и один из них (Bloom) мы даже использовали в [прошлой статье][1]. Но ни один движок не способен удовлетворить все нужды любого разработчика, поэтому будет полезно научиться создавать свои собственные эффекты. В качестве примера я решил выбрать эффект просвечивания персонажа через стены, который нередко используется в стратегиях и РПГ.

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

[1]: https://habrahabr.ru/post/281903/
[2]: https://habrastorage.org/getpro/habr/post_images/5b8/576/a90/5b8576a904a06b19829a67f51921a1bf.png
[3]: https://habrahabr.ru/post/301092/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Hello, эзотерика
habra.16
habrabot(difrex,1) — All
2016-10-22 16:00:03


Кто-то ради шутки, кто-то чтобы доказать существование или опровергнуть гипотезу, кто-то для разминки мозгов (путешествуя по поверхности бутылки Клейна или в четырехмерном пространстве), но сотни людей создали «эзотерические» языки программирования. Я пролистал около 150 таких языков и больше никогда не смогу быть прежним.

![][1]

«Argh!», «Oof!», «2-ill», «Nhohnhehr», «Noit o' mnain gelb», «DZZZZ», «Ypsilax», «YABALL», fuckfuck — это заклинания, поэзия только названия… под катом — примеры кода на самых вырвиглазных языках программирования.

Кроличья нора глубока.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/dad/86a/68d/dad86a68d5834e7c9d6e2adf1ecdd9a0.jpg
[2]: https://habrahabr.ru/post/313334/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Бинарные (файловые) хранилища, страшная сказка с мрачным концом
habra.16
habrabot(difrex,1) — All
2016-10-22 16:30:03


![][1]


## Даниил Подольский (Git in Sky)


Доклад мой называется «Бинарные, они же файловые, хранилища», но, на самом деле, мы имеем дело со страшной сказкой. Проблема в том (и это тезис моего доклада), что сейчас не существует не то что хорошей, а хотя бы приемлемой системы хранения файлов.

Что такое файл? Файл – это кусок данных с именем. Что важно? Почему файл – это не строка в базе данных?

Файл слишком большой, чтоб можно было обращаться с ним как с одним куском. Почему? Есть у вас сервис, раз у нас HighLoad конференция, у вас сервис, который держит одновременно 100 тыс. соединений. Это не так уж много, если по каждому из соединений мы отдаем файл в 1 Мбайт размером, но нам нужно примерно **100 Гбайт памяти** для буферов под эти файлы.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/5f3/6fb/d71/5f36fbd710f406e775dd0d53e0ffa26a.jpg
[2]: https://habrahabr.ru/post/313330/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Примеры кода на 39 эзотерических языках программирования
habra.16
habrabot(difrex,1) — All
2016-10-22 17:00:04


Кто-то ради шутки, кто-то чтобы доказать существование или опровергнуть гипотезу, кто-то для разминки мозгов (путешествуя по поверхности бутылки Клейна или в четырехмерном пространстве), но сотни людей создали «эзотерические» языки программирования. Я пролистал около 150 таких языков и больше никогда не смогу быть прежним.

![][1]

«Argh!», «Oof!», «2-ill», «Nhohnhehr», «Noit o' mnain gelb», «DZZZZ», «Ypsilax», «YABALL», fuckfuck — это заклинания, поэзия только названия… под катом — примеры кода на самых вырвиглазных языках программирования.

Кроличья нора глубока.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/dad/86a/68d/dad86a68d5834e7c9d6e2adf1ecdd9a0.jpg
[2]: https://habrahabr.ru/post/313334/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 42: зима на подходе, взрывающиеся свиньи, зашифрована половина интернета
habra.16
habrabot(difrex,1) — All
2016-10-22 17:30:04


![][1]Как вы наверное уже поняли, этот выпуск еженедельного дайджеста новостей в сфере инфобезопасности посвящен борьбе с желтыми заголовками. Исследователь Джон Сойер нашел уязвимость в ряде моделей смартфонов на базе Android, выпускаемых компанией Foxconn ([новость][2], [исследование][3]). Уязвимость произошла из-за ошибки производителя, поставляющего для части клиентов также собственную версию ОС: там имелся отладочный модуль, позволяющий без труда получить привилегии рута и полный доступ к смартфону.

Несмотря на то, что ошибка оказалась достаточно серьезной, Сойер в своем исследовании высказался против использования уязвимостей «для пиара» — не в том смысле, что о них не стоит сообщать публике, а в том, что не нужно раздувать опасность обнаруживаемых дыр ради шеров и лайков. Отсюда и название уязвимости, пародирующее иные попытки брендировать уязвимости вплоть до создания логотипа, флага и рингтона: «Свиной взрыв».

Эксплуатируется ![][4] проще простого. Достаточно подключить телефон к компьютеру, ввести пару команд через отладчик и готово. Впрочем, не совсем так. Исследователь обнаружил, что через стандартную консоль adb ввести комнаду не получится и слегка модифицировал софт так, чтобы отправлять на телефон необходимую последовательность символов. Результат: загрузка телефона в режиме отладки, с полным доступом к системе. Это не позволяет напрямую читать зашифрованную информацию, но дает массу возможностей для брутфорса или других специализированных мероприятий.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/732/ae4/6a2/732ae46a2fe941c0a14da393fffaf5f0.png
[2]: https://threatpost.ru/leftover-factory-debugger-doubles-as-android-backdoor/18700/
[3]: http://bbqand0days.com/Pork-Explosion-Unleashed/
[4]: https://habrastorage.org/files/2ae/113/020/2ae113020797455f95a872cf8a785de5.png
[5]: https://habrahabr.ru/post/313312/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Все что вы хотели узнать о BPM, но боялись спросить
habra.16
habrabot(difrex,1) — All
2016-10-22 21:30:04


В сети имеется множество публикаций о том, ради чего стоит внедрить BPM в вашей компании. Как обычно формулируются преимущества, которые дает бизнесу внедрение BPM:
1. Визуальное моделирование и выполнение бизнес-процессов.
2. Набор готовых компонент для построения гибких бизнес-процессов.
3. Взаимодействие с пользователем для выполнения ручных действий.
4. Гибкость конфигурирования бизнес-процессов.
5. Поддержка версионности бизнес-процессов.
Это не все, что можно упомянуть, но достаточно типичный набор преимуществ платформы.

На самом ли деле все так безоблачно? Не пора ли всем выбросить старые инструменты, и полностью перейти на новую платформу?

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

[1]: https://habrahabr.ru/post/304628/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Sharding – patterns and antipatterns
habra.16
habrabot(difrex,1) — All
2016-10-23 03:30:04


![][1]


## Константин Осипов ( [kostja][2] ), Алексей Рыбак ( [fisher][3] )


**Константин Осипов:** Доклад родился из следующего разговора. Я, как всегда, пытался убедить Алексея больше использовать Tarantool, а он сказал, что там до сих пор нет шардинга и, вообще, неинтересно. Тогда мы стали рассуждать о том, почему нет. Я стал рассказывать, что тут нет одного универсального решения, автоматика полная за вас работает, а вы только кофе на работе пьете и все…


### Поэтому родился этот доклад — чтобы посмотреть на то, какой бывает шардинг, какие методы в каких системах используются, какие преимущества и недостатки, почему нельзя одной «серебряной пулей» все решить?

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

[1]: https://habrastorage.org/getpro/habr/post_images/718/15e/4da/71815e4da0191c88d7e72db5025306cf.jpg
[2]: https://habrahabr.ru/users/kostja/
[3]: https://habrahabr.ru/users/fisher/
[4]: https://habrahabr.ru/post/313366/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Опыт построения и эксплуатации большого файлового хранилища
habra.16
habrabot(difrex,1) — All
2016-10-23 11:00:03


![Даниил Подольский][1]


## Даниил Подольский (Git in Sky)


Рассказ о том, что каждый инженер должен сделать в своей жизни после того, как он родил ребенка, посадил дерево и построил дом – это сделать свое файловое хранилище.

Доклад мой называется «Опыт построения и эксплуатации большого файлового хранилища». Большое файловое хранилище мы строим и эксплуатируем последние три года. В тот момент, когда я подавал тезисы, доклад назывался «Ночью через лес. Опыт построения эксплуатации бла-бла-бла». Но программный комитет попросил меня быть серьезнее, тем не менее, на самом деле это доклад «Ночью через лес».
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/bd8/dbd/c9a/bd8dbdc9a5e1bbe9c646c411744e6480.jpg
[2]: https://habrahabr.ru/post/313364/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] learnopengl. Урок 1.5 — Shaders
habra.16
habrabot(difrex,1) — All
2016-10-23 14:30:08


## Шейдеры {#sheydery}



Мы уже упоминали шейдеры в предыдущем уроке. Шейдеры — это небольшие программы выполняемые на графическом ускорителе (далее будем использовать более распространенное название — GPU). Эти программы выполняются для каждого конкретного участка графического конвейера. Если описывать шейдеры наиболее простым способом, то шейдеры — это не более чем программы преобразующие входы в выходы. Шейдеры обычно изолированы друг от друга, и не имеют механизмов коммуникации между собой кроме упомянутых выше входов и выходов.



В предыдущем уроке мы кратко коснулись темы “поверхностных шейдеров” и того, как их использовать. В данном уроке мы рассмотрим шейдеры подробнее и в частности шейдерный язык OpenGL (OpenGL Shading Language).


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

[1]: https://habrahabr.ru/post/313380/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Дональд Кнут: про жену, поцелуи, «Конкретную математику» и взгляд на преподавание в университете
habra.16
habrabot(difrex,1) — All
2016-10-23 15:00:03


_«У нас вышла калифорнийская книга о математике. Книга, которая показывала неформальный стиль классов в Стэнфорде наравне с тем, что я считаю личным манифестом пути занятия математикой.»_
— Дональд Кнут

![][1]

«В то время была большая суматоха. Некоторые люди жаловались на то, что математика становится слишком абстрактной, что она слишком оторвана от реальности, так что я мог бы немного пошутить, назвав курс „конкретная математика“. Хотя я сказал, что слово „конкретный“ не является на самом деле антонимом абстрактного, это сочетание слова непрерывный и дискретный (CONtinuous and disCRETE).»
— Дональд Кнут

«Я всегда проводил мои занятия, почти как если бы это был языковой урок, а не информатика или математика, я адресовал вопрос студентам и они должны были выяснить, как решить эту проблему или, по крайней мере, сделать следующий шаг на пути к решению проблемы, или попробовать и потерпеть неудачу, а затем мы изучали как её исправить. Знаете, вы не найдете книг, которые описывают, как восстановиться после неудачных предположений. А так мы могли узнать как это делать в классе.»

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

[1]: https://habrastorage.org/files/e8d/776/23d/e8d77623dadc4220aa67243feff34496.jpg
[2]: https://habrahabr.ru/post/313226/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Тематическое моделирование на пути к разведочному информационному поиску. Лекция в Яндексе
habra.16
habrabot(difrex,1) — All
2016-10-23 19:30:09


Недавно в Москве прошла конференция Data Fest, организованная сообществом Open Data Science и Яндексом. Этой публикацией мы открываем серию расшировок докладов с Data Fest. Автор первого доклада — доктор наук, признанный специалист по машинному обучению и преподаватель Школы анализа данных [Константин Вячеславович Воронцов][1].


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

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

[1]: https://yandexdataschool.ru/edu-process/teachers#vorontsov
[2]: https://habrahabr.ru/post/313340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Архитектура и программирование Philips Videopac (Magnavox Odyssey 2)
habra.16
habrabot(difrex,1) — All
2016-10-24 03:30:04


_«Hardware is just software crystallized early»
— Alan Kay_

![][1]Компьютер [Magnavox Odyssey 2 (Videopac)][2] появился в 1978 году и позиционировался как игровой, однако с возможностью более серьёзного применения (для чего у него имелась встроенная плёночная клавиатура). Серьёзных приложений, учитывая назначительный объём памяти, было очень мало, так что, по факту, правильнее считать Videopac игровой приставкой.

Что касается названий, Magnavox Odyssey 2 продавался в США и выдавал NTSC видеосигнал (через RF выход). Philips Videopac G7000 (он же C52) продавался в Европе, соответственно, с PAL видео. Кроме этого различия (которое, разумеется, влияло на работоспособность части игр) компьютеры совершенно одинаковые.

Videopac был одной из первых игровых приставок, для которой игры выпускались в виде картриджей с программами. Поэтому ничего удивительного, что и технически это устройство весьма аскетично.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/8fc/f78/439/8fcf78439f754c5bb86c169784102a3e.jpg "Philips Videopac"
[2]: https://en.wikipedia.org/wiki/Magnavox_Odyssey%C2%B2
[3]: https://habrahabr.ru/post/313412/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Процедурная генерация планетарных карт
habra.16
habrabot(difrex,1) — All
2016-10-24 13:00:04


Речь пойдёт о картографии, имеющей дело с фантастическими мирами.


### Положение дел с процедурной генерацией карт


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

[1]: https://habrahabr.ru/post/313420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Всем привет, я вебмастер
habra.16
habrabot(difrex,1) — All
2016-10-24 13:30:04


![][1]



Доброго времени суток Хабр,

Заголовок конечно же врёт, я не вебмастер. Точнее сказать, не могу зваться им после произошедшего. Я расскажу о том, как взломали мой хостинг и как я это событие проглядел, заметив лишь случайно, а также немного расследования. Надеюсь, мой опыт окажется полезным. Всем кому интересно, добро пожаловать под кат.
[Подробности][2]

[1]: https://habrastorage.org/getpro/habr/post_images/85e/5dc/8e9/85e5dc8e90347e8d8800c0e1f933b930.jpg
[2]: https://habrahabr.ru/post/313332/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Всем привет, я вебмастер и меня взломали
habra.16
habrabot(difrex,1) — All
2016-10-24 14:00:03


![][1]



Доброго времени суток Хабр,

Заголовок конечно же врёт, я не вебмастер. Точнее сказать, не могу зваться им после произошедшего. Я расскажу о том, как взломали мой хостинг и как я это событие проглядел, заметив лишь случайно, а также немного расследования. Надеюсь, мой опыт окажется полезным. Всем кому интересно, добро пожаловать под кат.
[Подробности][2]

[1]: https://habrastorage.org/getpro/habr/post_images/85e/5dc/8e9/85e5dc8e90347e8d8800c0e1f933b930.jpg
[2]: https://habrahabr.ru/post/313332/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Элементы функционального программирования в C++: частичное применение
habra.16
habrabot(difrex,1) — All
2016-10-24 14:30:04


<>

Не буду сильно углубляться в теорию. Что такое частичное применение легко найти в интернете. В том числе [на Википедии][1].



Если кратко, то это механизм, позволяющий зафиксировать `k` аргументов функции от `n` аргументов, сделав из неё функцию от `(n - k)` аргументов.


// Пусть имеется функция f от четырёх аргументов:
int f (int a, int b, int c, int d)
{
return a + b + c + d;
}

// Фиксируем первые два аргумента:
auto g = part(f, 1, 2); // 1 + 2 + ...

// Добрасываем оставшиеся два:
assert(g(3, 4) == 10); // ... + 3 + 4 = 10

На эту тему уже существует масса публикаций, в том числе и на Хабре:


1. [C++ Variadic templates. Каррирование и частичное применение][2]
2. [Частичное применение и каррирование в C++][3]
3. [Каррируем на C++][4]

А ветка "[How should I make function curry?][5]" на stackoverflow — просто кладезь для тех, кто впервые сталкивается с этой темой.



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



При этом любопытно вот что.



**Замечательный факт №1**. В упомянутых статьях присутствуют все техники, которые нужны для реализации правильного (по моему мнению) частичного применения.



Надо только всё внимательно проанализировать и сложить кубики в правильном порядке.



Именно этим я и собираюсь заняться в данной статье.

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

[1]: https://ru.wikipedia.org/wiki/Частичное_применение
[2]: https://habrahabr.ru/post/133084
[3]: https://habrahabr.ru/post/149056
[4]: https://habrahabr.ru/post/238879
[5]: http://stackoverflow.com/questions/26655685/how-should-i-make-function-curry
[6]: https://habrahabr.ru/post/313370/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Досье на хакера: Борис Флорикик aka Thron, создатель первого Криптофона
habra.16
habrabot(difrex,1) — All
2016-10-24 15:00:04


![][1]

Борис Флорикик (8 июня 1972 — 17 октября 1998), известный под псевдонимом Tron, был немецким хакером и фрикером, чья смерть, наступившая при невыясненных обстоятельствах, привела к появлению в немецкой прессе большого количества гипотез из разряда «теорий заговора». Он был также известен благодаря своему дипломному проекту, представлявшему собой одну из первых известных реализаций телефона со встроенным голосовым шифрованием, получившей название «Криптофон».

![image][2] Флорикик занимался взломом разнообразных систем компьютерной безопасности: известен, в частности, взлом защиты немецких телефонных карт и создание их работоспособных копий. Впоследствии он был приговорён к 15 месяцам заключения за совершённую в 1995 г. кражу телефона-автомата (совершённую им в целях reverse engineering), однако, затем приговор был отменён и заменён испытательным сроком.

Имя Флорикика вновь активно упоминалось в прессе в период с декабря 2005 г. по январь 2006 г., когда его родители и Andy Müller-Maguhn, известный член хакерского общества [Chaos Computer Club][3] (CCC), предъявили в Германии судебный иск к фонду «Викимедиа» в связи с тем, что в разделе Википедии на немецком языке было написано настоящее имя хакера. Иск включал требования убрать из статьи в немецкоязычной Википедии имя Флорикика.


## Ранние годы


Флорикик вырос в Гропиусштадте, в южном пригороде Берлина. В школе его интересовали технические предметы. После десяти лет он покинул школу и получил профессиональное образование в Берлинском техническом университете по специальности «телекоммуникационная электроника» с квалификацией «информационные технологии». Получив аттестат, он приступил к занятиям по кибернетике в Техническом университете прикладных наук Берлина.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/b68/25a/8c0/b6825a8c07724338bb2cd5cd07897610.jpg
[2]: https://habrastorage.org/getpro/habr/post_images/98c/8cd/f1c/98c8cdf1cccd41a196588e0f3aa074b7.jpg
[3]: https://ru.wikipedia.org/wiki/Chaos_Computer_Club
[4]: https://habrahabr.ru/post/313400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Домашний хостинг сайтов с динамическим IP
habra.16
habrabot(difrex,1) — All
2016-10-24 15:00:04


У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).

Сайты практически не приносят прибыли, поскольку это какие-то старые работы (по разным причинам не пошедшие в продакшн), домашняя страница, сайт заведенный красивой почты и тому подобное. Но в то же время эти сайты жалко бросать, а потому приходится каждый месяц на них тратить вполне реальные деньги чтобы покупать хостинг. Деньги, прямо скажем небольшие, но тем не менее их жалко, поскольку отдачи от сайтов никакой нет.

В то-же время в наличии имеется:

* Домашний сервер на Ubuntu
* Быстрый ethernet-интернет от МТС
Но не имеется ключевого — статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).

Разумеется есть всем известные Dynamic DNS сервисы вроде [noip.com][1], но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
[Читать дальше →][2]

[1]: http://noip.com
[2]: https://habrahabr.ru/post/313426/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Досье на хакера: Борис Флорикик aka Tron, создатель первого Криптофона
habra.16
habrabot(difrex,1) — All
2016-10-24 15:30:03


![][1]

Борис Флорикик (8 июня 1972 — 17 октября 1998), известный под псевдонимом Tron, был немецким хакером и фрикером, чья смерть, наступившая при невыясненных обстоятельствах, привела к появлению в немецкой прессе большого количества гипотез из разряда «теорий заговора». Он был также известен благодаря своему дипломному проекту, представлявшему собой одну из первых известных реализаций телефона со встроенным голосовым шифрованием, получившей название «Криптофон».

![image][2] Флорикик занимался взломом разнообразных систем компьютерной безопасности: известен, в частности, взлом защиты немецких телефонных карт и создание их работоспособных копий. Впоследствии он был приговорён к 15 месяцам заключения за совершённую в 1995 г. кражу телефона-автомата (совершённую им в целях reverse engineering), однако, затем приговор был отменён и заменён испытательным сроком.

Имя Флорикика вновь активно упоминалось в прессе в период с декабря 2005 г. по январь 2006 г., когда его родители и Andy Müller-Maguhn, известный член хакерского общества [Chaos Computer Club][3] (CCC), предъявили в Германии судебный иск к фонду «Викимедиа» в связи с тем, что в разделе Википедии на немецком языке было написано настоящее имя хакера. Иск включал требования убрать из статьи в немецкоязычной Википедии имя Флорикика.


## Ранние годы


Флорикик вырос в Гропиусштадте, в южном пригороде Берлина. В школе его интересовали технические предметы. После десяти лет он покинул школу и получил профессиональное образование в Берлинском техническом университете по специальности «телекоммуникационная электроника» с квалификацией «информационные технологии». Получив аттестат, он приступил к занятиям по кибернетике в Техническом университете прикладных наук Берлина.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/b68/25a/8c0/b6825a8c07724338bb2cd5cd07897610.jpg
[2]: https://habrastorage.org/getpro/habr/post_images/98c/8cd/f1c/98c8cdf1cccd41a196588e0f3aa074b7.jpg
[3]: https://ru.wikipedia.org/wiki/Chaos_Computer_Club
[4]: https://habrahabr.ru/post/313400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Инструмент построения списков слов для изучения: утром лексика, вечером – фильм
habra.16
habrabot(difrex,1) — All
2016-10-24 18:00:04


![][1]

Мы в школе Skyeng убеждены, что чем быстрее ученик получает ощутимый эффект от занятия или тренировки, тем выше его мотивация и эффективнее само обучение. Традиционная методика изучения языков обещает конкретный результат лишь через длительное время — год, два, т.е. требует вложения значительных сил, времени и средств без немедленного эффекта. Мы считаем, что вполне реально получить “возврат инвестиций” быстро, если ставить перед собой небольшие конкретные задачи и решать их. Сегодня мы расскажем про один из наших служебных инструментов, предназначенный как раз для этого, и дадим читателям возможность попробовать его в деле, составить собственные списки слов, самые интересные из которых будут предложены всем пользователями Aword!

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

[1]: https://habrastorage.org/files/2a5/46c/3b3/2a546c3b3caa44fe8a13b5e0f486723d.jpg
[2]: https://habrahabr.ru/post/312250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Открываем доступ к инструменту для составления списков английских слов из фильмов, книг и статей
habra.16
habrabot(difrex,1) — All
2016-10-24 18:30:04


![][1]

Skyeng делится с Хабром ссылкой на внутреннее приложение, которым пользуются наши методисты.

Мы в школе Skyeng убеждены, что чем быстрее ученик получает ощутимый эффект от занятия или тренировки, тем выше его мотивация и эффективнее само обучение. Традиционная методика изучения языков обещает конкретный результат лишь через длительное время — год, два, т.е. требует вложения значительных сил, времени и средств без немедленного эффекта. Мы считаем, что вполне реально получить “возврат инвестиций” быстро, если ставить перед собой небольшие конкретные задачи и решать их. Сегодня мы расскажем про один из наших служебных инструментов, предназначенный как раз для этого, и дадим читателям возможность попробовать его в деле, составить собственные списки слов, самые интересные из которых будут предложены всем пользователями Aword!
[Читать дальше →][2]

[1]: https://habrastorage.org/files/2a5/46c/3b3/2a546c3b3caa44fe8a13b5e0f486723d.jpg
[2]: https://habrahabr.ru/post/312250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Caché Localization Manager или I11N в InterSystems Caché
habra.16
habrabot(difrex,1) — All
2016-10-24 19:30:03


![][1]

[][2]

### Caché Localization Manager


Если двумя словами, то CLM это утилита, которая может быть полезна при локализации/интернационализации/добавлении мультиязычности проектов на InterSystems Caché.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/b0b/559/464/b0b559464778701b45e5130e20a19ffe.jpg
[2]: https://github.com/intersystems-ru/cache-localization-manager
[3]: https://habrahabr.ru/post/313206/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ботнет Mirai использовался для мощной DDoS-атаки на компанию Dyn
habra.16
habrabot(difrex,1) — All
2016-10-25 10:30:04


В пятницу прошлой недели существенная часть глобальной сети Интернет работала с перебоями или была недоступна вовсе на несколько часов. У пользователей наблюдались проблемы с доступом к таким сервисам как Twitter, Amazon, Tumblr, Reddit, Spotify, а также Netflix. Возникает вопрос, кем была реализована столь масштабная DDoS-атака, на кого и кто за ней стоял. Одним из первых информацию об инциденте [опубликовал][1] известный security-журналист Brian Krebs, указав, что причиной столь масштабного сбоя послужила организованная DDoS-атака на известную американскую компанию Dyn, которая предоставляет сетевую инфраструктуру и обслуживание DNS для ключевых американских организаций.

![][2]
Несколько позже специалисты компании Flashpoint [выяснили][3], что DDoS-атака была организована с использованием IoT-устройств, которые были скомпрометированы злоумышленниками. Кроме этого, они были включены в ботнет Mirai, исходные тексты которого не так давно [утекли][4] в сеть.
[Читать дальше →][5]

[1]: https://krebsonsecurity.com/2016/10/hacked-cameras-dvrs-powered-todays-massive-internet-outage/
[2]: https://habrastorage.org/files/0d3/27d/d48/0d327dd484aa406abed21a147aff404a.jpeg
[3]: https://www.flashpoint-intel.com/mirai-botnet-linked-dyn-dns-ddos-attacks/
[4]: https://krebsonsecurity.com/2016/10/source-code-for-iot-botnet-mirai-released/
[5]: https://habrahabr.ru/post/313444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Упрощаем бинарный поиск в Excel — реализация Double VLOOKUP Trick с помощью UDF
habra.16
habrabot(difrex,1) — All
2016-10-25 10:30:04


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


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


Все началось с того, что я открыл для себя т.н. Double-TRUE VLOOKUP trick (трюк с двойным использованием ВПР и ИСТИНА в 4-м параметре). Развернутое описание алгоритма можно найти в статье Charles Williams «Why 2 VLOOKUPS are better than 1 VLOOKUP» (в конце статьи).

Поняв принцип работы и открыв для себя, что этот подход может быть в **тысячи** раз быстрее обычного линейного поиска (ВПР с 4-м параметром ЛОЖЬ), я начал продумывать варианты раскрыть его возможности. В ходе реализации получилось несколько годных инструментов для контекстной рекламы, один из которых я еще продолжаю улучшать, и уже посвятил проекту пару статей на Хабре. Чтиво рекомендуется SEO-специалистам и специалистам по контекстной рекламе (сразу оговорюсь, по ссылкам в статьях уже устаревшие версии, последняя версия условно 6.0, ссылки на скачивание всех версий, включая самую свежую, будут в конце этой статьи):
[Анализ больших семантических ядер, или «Робот-распознаватель»][2]
[Лемматизация в Excel, или «Робот-распознаватель 3.0][3]

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

Синтаксис выглядит так: Если(ВПР(искомое; массив;1; ИСТИНА)&lt;искомое;""; ВПР(искомое; массив;n; ИСТИНА))
где n — порядковый номер столбца, из которого мы хотим вернуть значение напротив искомого ключа.
Вместо «ИСТИНА» в 4-м параметре можно использовать «1» для номинального сокращения длины формул, это не меняет их сути.
Если озвучить ход работы формулы, будет нижеследующее:
«Если бинарный поиск ключа по первому столбцу массива возвращает значение, **меньшее**, чем сам ключ, возвращаем пустую строку. Иначе — возвращаем результат бинарного поиска ключа со смещением n»
Подход используется для того, чтобы не возвращать **никаких **значений, если искомый ключ в массиве отсутствует, т.к. зачастую, если искомое не найдено — нам **не нужно** меньшее значение. Так сказать, все или ничего. Вкратце, в этом и есть суть «трюка».

Напомню, на карту поставлен прирост скорости, исчисляющийся трех-четырехзначными числами. Если подходить чисто математически — на массиве в 2^20 строк обычный бинарный поиск будет делать ~10 вычислений, формула выше — около 20, в то время, как линейный поиск — ~500.000, т.е. прирост формулы выше — в 25.000 раз. Если голые цифры не впечатляют, более красноречивое эквивалентное сравнение — 1 секунда против ~7 часов.
На практике прирост не столь существенный (в конце статьи ссылка на статью, где сравнивались разные способы). Это во многом связано с затратами процессорного времени на дополнительные процедуры, которые выполняет программа (например, запись значений в ячейки). НО прирост по-прежнему критически значимый (~4000 раз).

Но одновременно с этим мы имеем сложный, совершенно неюзабельный синтаксис. Не всем смертным дался ВПР, что говорить о комбинациях 2х ВПР с ЕСЛИ.

Вопрос со сложным синтаксисом я решил с помощью VBA — написал UDF (user-defined function, пользовательская функция), которая прячет под капот наши условные конструкции, оставляя нам привычный синтаксис всем известного ВПР.

Код UDF:
[Читать дальше →][4]

[1]: https://habrahabr.ru/post/146228/
[2]: https://habrahabr.ru/company/realweb/blog/264591/
[3]: https://habrahabr.ru/company/realweb/blog/265375/
[4]: https://habrahabr.ru/post/313476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Deep Learning: Сравнение фреймворков для символьного глубокого обучения
habra.16
habrabot(difrex,1) — All
2016-10-25 12:30:04


Представляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой серточной нейронной сети с рекуррентной нейронной сетью.

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

[1]: https://habrastorage.org/files/122/03e/92f/12203e92fd124525bdad9acf0c8bfd5f.jpg
[2]: https://habrahabr.ru/post/313318/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Поднимаем Owncloud с нуля с динамическим IP и Let's Encrypt. Тысяча слонов!*
habra.16
habrabot(difrex,1) — All
2016-10-25 13:00:04


![][1]

Давно хотел написать целостный туториал по поднятию Owncloud в условиях домашнего сервера или небольшой компании до 500 пользователей. Owncloud — это прекрасный open-source проект, который позволяет на собственной инфраструктуре поднять свой вариант сервера синхронизации. По возможностям очень похож на Dropbox, а в чем-то его и превосходит. Огромный плюс — отсутствие ограничений по объемам хранения, полный контроль над сервером. Минусы тоже очевидны: вам самим придется следить за всем этим безобразием и беспокоиться о надежности сервера, валяющегося на антресолях или в шкафу.

Совсем недавно мне подвернулась задача по развертыванию Owncloud в домашне-боевых условиях. Я честно отработал свои два литра кошерного русского имперского стаута и решил поделиться своим опытом, собрав все воедино. Итак, сегодня мы рассмотрим:
1. Развертывание актуального LEMP-stack
2. HTTPS. Let's Encrypt для Nginx с автоматическим обновлением сертификата
3. Конфигурирование Nginx для Owncloud
4. Кэширование php-apcu
5. Подключение внешнего основного хранилища по NFS
[Читать дальше →][2]

[1]: https://habrastorage.org/files/630/c84/1f5/630c841f52aa4d9dbaf064d0429b14ac.jpg
[2]: https://habrahabr.ru/post/310144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] The Pros & Cons of Test-Driven Development
habra.16
habrabot(difrex,1) — All
2016-10-25 13:00:04


[![][1]][2]

Test-driven development (TDD) — практика, известная уже довольно давно. Разработка через короткие циклы «прежде всего пишем юнит-тест, затем код, потом проводим рефакторинг, повторяем» в ряде компаний принята в качестве стандарта. Но обязательно ли команда, достигшая хорошей степени зрелости процесса разработки, должна принимать TDD? Как и для большинства других практик Extreme Programming, [споры по поводу TDD][3] до сих пор не стихают. Оправдываются ли первоначальные затраты на обучение и внедрение TDD? Даёт ли TDD ощутимый выигрыш? Можно ли этот выигрыш измерить? Нет ли случаев, когда TDD проекту вредит? А есть ли ситуации, когда без TDD решить задачу просто невозможно?

Об этом мы поговорили с разработчиками-экспертами Андреем Солнцевым [asolntsev][4] (разработчик из таллинской компании Codeborne, который практикует Extreme Programming и придерживается TDD) и Тагиром Валеевым [lany][5] (разработчик в JetBrains, также разрабатывает опенсорсную библиотеку StreamEx и анализатор байткода Java HuntBugs; убежден, что TDD — бесполезная практика). Интересно? Добро пожаловать под кат!
[Читать дальше →][6]

[1]: https://habrastorage.org/files/ffc/54e/1cd/ffc54e1cdd65426cba561d038de7c58c.jpeg
[2]: https://habrahabr.ru/company/jugru/blog/313514/
[3]: https://habrahabr.ru/company/jugru/blog/308528/
[4]: https://habrahabr.ru/users/asolntsev/
[5]: https://habrahabr.ru/users/lany/
[6]: https://habrahabr.ru/post/313514/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Учебное руководство: перечисление модулей и камер
habra.16
habrabot(difrex,1) — All
2016-10-25 13:30:03


Перечисление функциональных модулей и нескольких камер — важный компонент логики приложения для выбора нужного устройства. В этом учебном руководстве описывается метод перечисления модулей и нескольких устройств, чтобы можно было выбрать нужное из них.

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

[1]: https://habrastorage.org/files/98a/7fc/623/98a7fc623c4f42f28e660d8f6a39ed9d.jpg
[2]: https://habrahabr.ru/company/intel/blog/313290/
[3]: https://habrahabr.ru/post/313290/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Обзор базовых возможностей ES6
habra.16
habrabot(difrex,1) — All
2016-10-25 14:00:08


JavaScript сильно изменился за последние годы. Вот 12 новых возможностей, которые можно начать использовать уже сегодня!



# История {#istoriya}



Новые добавления в язык называются ECMAScript 6. Или ES6 или ES2015+.



С момента появления в 1995, JavaScript развивался медленно. Новые возможности добавлялись каждые несколько лет. ECMAScript появился в 1997, его целью было направить развитие JavaScript в нужное русло. Выходили новые версии – ES3, ES5, ES6 и так далее.



![][1]



Как видите, между версиями ES3, ES5 и ES6 есть пропуски длиной в 10 и 6 лет. Новая модель – делать маленькие изменения каждый год. Вместо того, чтобы накопить огромное количество изменений и выпустить их все за раз, как это было с ES6.

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

[1]: https://habrastorage.org/files/504/a78/cba/504a78cba9324062bb3d66d6af2e0588.png
[2]: https://habrahabr.ru/post/313526/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Книга «Изучаем Python. Программирование игр, визуализация данных, веб-приложения»
habra.16
habrabot(difrex,1) — All
2016-10-25 14:00:08


Привет, Хаброжители! Недавно у нас вышла новая книга Эрика Мэтиза:

![image][1] Цель этой книги — как можно быстрее ввести читателя в курс дела, чтобы тот начал писать на Python работоспособные программы (игры, визуализации данных и веб-приложения), и одновременно заложить основу в области программирования, которая пригодится ему на протяжении всей жизни. Книга написана для людей любого возраста, которые прежде никогда не программировали на Python или вообще никогда не программировали. Если вы хотите быстро изучить азы программирования, чтобы сосредоточиться на интересных проектах, а также проверить свое понимание новых концепций на содержательных задачах — эта книга для вас. Книга также прекрасно подходит для преподавателей, желающих предложить вводный курс программирования, основанный на проектах.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/663/62e/4f9/66362e4f959d4e53a5a50173bac537cc.jpg
[2]: https://habrahabr.ru/post/313510/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] QIWI Security Development Lifecycle
habra.16
habrabot(difrex,1) — All
2016-10-25 14:30:03


В определенный момент в жизни почти каждой финтех-компании настает время, когда количество приложений внутренней разработки начинает превышать число разработчиков, бизнес хочет больше новых фич, а на Bug Bounty продолжают сдавать все новые и новые уязвимости…



Но при этом есть потребность быстро выпускать качественное и безопасное ПО, а не тушить пожары от выявленных ошибок безопасности откатами версий и ночными хотфиксами.



Когда команда ИБ состоит из пары человек, кажется, что так будет всегда, но мы решили выжать из ситуации максимум позитива и раз и навсегда "засекьюрить" свои приложения.



С чего начать? Наш план был прост:


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

[1]: https://habrastorage.org/getpro/habr/post_images/359/8d4/3e2/3598d43e26954e3f85d6b8fc72dcb23c.png
[2]: https://habrahabr.ru/post/313530/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Просто, мощно, навсегда. Элекард CodecWorks 990 — программный лайв транскодер для AVC и HEVC
habra.16
habrabot(difrex,1) — All
2016-10-25 16:00:06


[![][1]][2]

В [прошлой статье][3] мы рассмотрели, как работает аппаратное ускорение кодирования и декодирования видео Quick Sync Video (QSV) в процессорах 6-го поколения Skylake. Маленький участок SoC специально выделили для размещения специализированных интегральных схем, которые занимаются только обработкой видео. Воспроизведение видео с аппаратной поддержкой стало гораздо меньше отнимать ресурсов у других задач в ОС, меньше нагревать CPU и потреблять меньше электроэнергии. Благодаря QSV, например, ноутбук MacBook Air воспроизводит более 10 часов видео на одном заряде аккумулятора.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/ded/c0f/452/dedc0f452c7d48b0930459a2f2bb8396.jpg
[2]: https://habrahabr.ru/company/intel/blog/313544/
[3]: https://habrahabr.ru/company/intel/blog/311320/
[4]: https://habrahabr.ru/post/313544/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Различия между MVVM и остальными MV*-паттернами
habra.16
habrabot(difrex,1) — All
2016-10-25 16:00:06


![][1]


> _От переводчика_:
> _Уже опубликовано много материалов по MVC и его производным паттернам, но каждый понимает их по-своему. На этой почве возникают разногласия и холивары. Даже опытные разработчики спорят о том, в чем отличие между MVP, MVVM и Presentation Model и что должен делать тот или иной компонент в каждом паттерне. Ситуация усугубляется еще и тем, что многие не знают истинную роль контроллера в классическом варианте MVC. Предлагаю вашему вниманию перевод [хорошей обзорной статьи][2], которая многое проясняет и расставляет всё по своим местам_.[Разобраться в MV-паттернах][3]

[1]: https://habrastorage.org/files/e32/84d/b85/e3284db85c3d43559ee22e2299dab71a.jpg
[2]: https://blogs.msdn.microsoft.com/erwinvandervalk/2009/08/14/the-difference-between-model-view-viewmodel-and-other-separated-presentation-patterns/
[3]: https://habrahabr.ru/post/313538/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Исследователи создали эксплоит для получения root-доступа к Android-смартфонам с помощью уязвимости Rowhammer
habra.16
habrabot(difrex,1) — All
2016-10-25 17:30:03


[![][1]][2]

Международная группа исследователей из Австрии, Нидерландов и США, информационной безопасности разработала атаку, позволяющую получить root-доступ к большому количеству Android-устройств, [пишет][3] издание Ars Tehnica. Для этого эксплуатируется техника Rowhammer, позволяющая осуществлять манипуляции с данными, хранящимися в ячейках памяти. При этом, ранее считалось, что атаки с использованием [уязвимости Rowhammer][4] имеют ограниченные перспективы реального применения — новый эксплойт демонстрирует, что ей подвержено гораздо больше устройств, чем предполагалось (включая и работающие на ARM-чипах).

Исследователи создали специальное приложение-эксплойт [Drammer][5], которое не требует для работы никаких особенных прав и не использует никаких Android-уязвимостей. Атака осуществляется с помощью уязвимости аппаратного обеспечения — аналогично описанной техники Rowhammer он «простукивает» биты памяти устройства, изменяя важные данные. Это позволяет получать root-доступ к гаджетам производства компаний LG, Motorola, Samsung, OnePlus и, возможно, других вендоров. [Читать дальше →][6]

[1]: https://habrastorage.org/files/aa4/24b/b74/aa424bb7450d4694a1b388c091aa7954.png
[2]: https://habrahabr.ru/company/pt/blog/313546/
[3]: http://arstechnica.com/security/2016/10/using-rowhammer-bitflips-to-root-android-phones-is-now-a-thing/
[4]: https://habrahabr.ru/company/pt/blog/279749/
[5]: https://vvdveen.com/drammer/drammer.apk
[6]: https://habrahabr.ru/post/313546/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Новости онлайн-курсов Mail.Ru Group на Stepik
habra.16
habrabot(difrex,1) — All
2016-10-25 18:00:03


![][1]

Теперь онлайн-курсы «[Разработка на Java 1][2]», «[Разработка на Java 2][3]» и «[Анализ безопасности веб-проектов][4]» на платформе Stepik.org лежат в свободном доступе! Мы убрали дедлайны, чтобы вы прошли курсы в удобное время и получили сертификаты. В ближайшие десять дней мы перезапустим еще два онлайн-курса. «[Постановка задач на разработку ПО][5]» откроется 28 октября, а 3 ноября станут доступны «[Web-технологии][6]».

[Stepik.org][7] — платформа онлайн-курсов. С ее помощью можно научиться чему-либо прямо из дома — нужен только доступ в интернет. Авторы рассказывают материал на видеолекциях и предлагают выполнить практические задания. Большинство курсов открыты только в отведенное время — это стимулирует нерешительных участников записываться. Курс делится на модули, которые нужно сдавать в срок. Наличие дедлайнов повышает мотивацию студентов. Справляются не все — сертификаты получает в среднем 9% учащихся. Открытый доступ решает проблему времени, теперь нужно только желание.

Первый курс от Mail.Ru Group открылся 1 сентября 2015 года. С этого момента к нам записались 50 000 человек, которым мы выдали 4 500 сертификатов. В феврале этого года на «Web-технологии» зарегистрировалось 8 500 человек. Это в два раза больше среднего, поэтому мы хотим рассказать об этом курсе.
[Читать дальше →][8]

[1]: https://habrastorage.org/files/31e/004/594/31e004594b654c76b05608374b565fd3.jpg
[2]: https://stepik.org/course/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B2%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0-%D0%BD%D0%B0-Java-%28%D1%87%D0%B0%D1%81%D1%82%D1%8C-1%29-146/
[3]: https://stepik.org/course/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B2%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0-%D0%BD%D0%B0-Java-%28%D1%87%D0%B0%D1%81%D1%82%D1%8C-2%29-186/
[4]: https://stepik.org/course/%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B2%D0%B5%D0%B1-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2-127/
[5]: https://stepik.org/course/%D0%9F%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83-%D0%9F%D0%9E-1128/
[6]: https://stepik.org/course/Web-%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-154/
[7]: https://stepik.org/explore/courses
[8]: https://habrahabr.ru/post/313568/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Заблуждения большинства программистов относительно «времени»
habra.16
habrabot(difrex,1) — All
2016-10-25 23:30:03


Много дней назад я решил [[записать некоторые наблюдения, сформировавшиеся пока, в последние годы][1], я занимался тестированием][2]. Рассматривая области, которые получают наибольшую отдачу от тестирования я понял, что у меня накопилось много конкретных мыслей о том, как мы — программисты — склонны небрежно обращаться с понятием _«время»_ в программировании.

Тогда я написал пост [«Заблуждения программистов относительно „времени“»][3], в котором указал 34 ошибочных представления и заблуждения, относящихся как к календарному, так и к системному времени. С большинством из них я столкнулся сам, занимаясь дебаггингом программ (как рабочих, так и тестовых).

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

[1]: https://codeascraft.com/2011/04/20/divide-and-concur/
[2]: http://infiniteundo.com/post/25230828820/things-you-should-test
[3]: http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time
[4]: https://habrastorage.org/getpro/habr/post_images/034/9ad/f02/0349adf02168a596c040ee6b079efb59.jpg
[5]: https://habrahabr.ru/post/313274/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Ещё один способ отображения строк в Go
habra.16
habrabot(difrex,1) — All
2016-10-26 09:30:06


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

**1\.** Нельзя использовать числа в явном виде, кроме 0.
**2\.** Количество разрешённых математических операций тоже было ограничено.

Повторять её на Go я не стал, но решил применить один из вариантов решения, для отображения строки. Идея эта не нова, и на полноправное авторство не претендую, просто решил поделиться.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/313486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Automatic Relevance Determination или машинное обучение когда данных очень мало
habra.16
habrabot(difrex,1) — All
2016-10-26 13:00:04


Когда речь заходит про машинное обучение, обычно подразумевают большие объемы данных — миллионы или даже миллиарды транзакций, из которых надо сделать сложный вывод о поведении, интересах или текущем cостоянии пользователя, покупателя или какого-нибудь аппарата (робота, автомобиля, дрона или станка).
Однако в жизни обычного аналитика самой обычной компании много данных встречается нечасто. Скорее даже наоборот — у вас будет мало или очень мало данных — буквально десятки или сотни записей. Но анализ все же нужно провести. Причем не какой попало анализ, а качественный и достоверный.



Зачастую ситуация усугубляется еще и тем, что вы без труда можете нагенерить для каждой записи много признаков (чаще всего добавляют полиномы, разницу с предыдущим значением и значением за прошлый год, one-hot-encoding для категориальных признаков и т.п.). Вот только совсем нелегко разобраться, какие из них действительно полезны, а какие только усложняют модель и увеличивают ошибки вашего прозноза.



Для этого вы можете воспользоваться методами байесовой статистики, например, **Automatic Relevance Determination**.

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

[1]: https://habrahabr.ru/post/313566/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Docker: когда нужно размещать контейнер на виртуальной машине?
habra.16
habrabot(difrex,1) — All
2016-10-26 13:00:04


![image][1]

Контейнеры приложений гарантируют высокую скорость работы и утилизацию ресурсов, но им не хватает той безопасности, которую обеспечивают виртуальные машины. Поэтому сегодня хочется поговорить об использовании Docker внутри ВМ, в частности – OpenSource проекта QEMU/KVM.

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

[1]: https://habrastorage.org/getpro/habr/post_images/89a/289/9c6/89a2899c6140bd2b889f6870ed1fa477.jpg
[2]: https://habrahabr.ru/post/313614/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Принт-сервер на linux с интеграцией в AD
habra.16
habrabot(difrex,1) — All
2016-10-26 14:00:04


В данной статье я хотел поселиться опытом по созданию принт-сервера на базе linux с интеграцией в AD. Под интеграцией понимается ввод linux сервера в домен Windows и расшаривание Cups принтеров через Samba, включая драйвера принтеров. Возможно коряво выразился, но если проще, то это выглядит так — для того, чтобы установить принтер пользователю Windows, достаточно нажать«установить новый принтер», вывести список принтеров в AD и клацнуть на нужный принтер — принтер установится автоматически с установкой всех необходимых драйверов. При этом, все права на управление, доступ, печать подтянутся из AD.


## Часть 1. Тонкости настроек



### Исходные данные


* Домен контроллер — Windows Server 2008 R2 (AD, DNS, DHCP) IP — 10.10.15.31
* Имя домена — INITIAL
* Принт сервер — ОС linux (я использую OpenSUSE 13.2 x64, kernel 3.16.7-42-default) IP — 10.10.15.11
* kerberos 1.12.2-24.1
* winbind 4.2.4-40.1
* LDAP 2.4.39-8.9.1
* Samba 4.2.4-40.1
* CUPS 1.5.4-21.9.1[Читать дальше →][1]

[1]: https://habrahabr.ru/post/313636/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Реализация Undo/Redo модели для сложного документа
habra.16
habrabot(difrex,1) — All
2016-10-26 16:00:04


Привет Хабр! В данной статье я хочу показать, как можно организовать модель редактирование документа со сложной структурой с возможностью отмены/возврата действий.



## Предыстория и проблематика {#predystoriya-i-problematika}



Все началось с того, что я писал узкоспециализированный outline-софт, где основная идея заключается в оперировании кучей виртуальных бумажных карточек на разных сценах в разных редакторах.



Получилось похоже на MS Visio с определенной степенью кастомизации и плагинизации. Никаких технических сложностей здесь нету, однако есть ряд особенностей.



Во-первых, сцен несколько. А значит и оконных редакторов нужно несколько, каждый из которых работает по своим правилам.



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



В-третьих, когда я сделал все, что хотел, и показал результаты другу (который даже не программист), то он потыкал и сказал, что неплохо бы сделать Ctrl+Z. Я загорелся идеей, но вот реализовать это оказалось не такой тривиальной задачей. В этой статье я опишу, к чему пришел в итоге.

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

[1]: https://habrahabr.ru/post/313654/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ... 133