RSS
Pages: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 210
[>] [Из песочницы] Selenium для Python. Глава 1. Установка
habra.14
habrabot(difrex,1) — All
2015-01-22 17:30:04


Представляю перевод неофициальной документации Selenium для Python. Перевод сделан с разрешения автора Baiju Muthukadan. Оригинал можно найти [здесь][1]. Содержание: 1. Установка 2. Первые Шаги 3. Навигация 4. Поиск Элементов 5. Ожидания 6. Объекты Страницы 7. WebDriver API 8. Приложение: Часто Задаваемые Вопросы [Читать дальше →][2]

[1]: http://selenium-python.readthedocs.org/index.html
[2]: http://habrahabr.ru/post/248559/#habracut

[>] [Из песочницы] Использование Java native library на серверах приложений
habra.15
habrabot(difrex,1) — All
2015-09-08 13:30:03


Java native library (JNL) представляет собой JAR-архив, содержащий в себе JNI-код и объекты, которые операционная система может загрузить в качестве разделяемых библиотек. Это позволяет вызывать из Java-приложения функции, реализованные платформо-зависимыми методами. Способы создания JNL — это тема отдельной большой статьи, поэтому считаем, что у вас уже есть JNL и вы хотите ею воспользоваться в своем приложении. Об особенностях использования JNL в приложениях, работающих под управлением сервера приложений, и будет эта статья. [Читать дальше →][1]

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

[>] «Гонки роботов» в Уральском федеральном
habra.14
habrabot(difrex,1) — All
2015-01-22 20:00:05


Десятого января в Уральском федеральном университете на паркете ГУКа были проведены региональные соревнования по робототехнике «Гонки роботов». В соревнованиях приняли участие порядка 300 человек из 25 городов Уральского региона. Соревнования проходили в 3 номинациях: «Новички», которым роботов для соревнований предоставлял Уральский федеральный университет; «Любители» участвовали в соревнованиях со своими роботами; «Профессионалы», для них была подготовлена трасса повышенной сложности. [Читать дальше →][1]

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

[>] Программировать с нуля. «Сейчас» — самое подходящее время, чтобы начать
habra.15
habrabot(difrex,1) — All
2015-09-08 15:30:03


![][1] _(Иллюстрации к статье [А.П. Ершова][2] «[Программирование — вторая грамотность][3]»)_ Стив Джобс не написал ни строчки кода, Билл Гейтс — написал. Пол Грэм — первоклассный программист, Питер Тиль — юрист по образованию, сооснователь PayPal и владелец [Palantir][4] (написал ли он что-нибудь?), а Илон Маск в детстве написал свою игру и успешно её продал. Никита [truesnow][5] из [\#tceh][6] сказал мне, что на курсе [«Врубаемся в Ruby»][7] они научат программировать любого человека, даже с нуля. Я спросил его: «А с гуманитарием справитесь?» И мы задумались, были ли случаи, когда «гуманитарий» выучил язык программирования? На ум сразу пришел [бомж-программист][8], но после успеха с его приложением он предпочёл остаться «дзен-монахом». Есть ли еще примеры? Вдохновляющий пример, что научиться кодить может каждый — слепой программист. Когда я прочитал статью на Хабре [«Смотря на код с закрытыми глазами»][9], то понял, что нет преград, кроме собственных отмазок. А у меня для вас есть три истории из моей жизни. Просто три истории.

#### История первая — ламер

Слово «ламер» я [прочитал][10] в «Компьютерре». Там давалось такое определение: _«Ламер — отнюдь не безграмотный человек, не умеющий (как бы это помягче выразиться?) программировать»._ Окрылённый истиной я побежал и рассказал об этом друзьям-одноклассникам, но они предпочли поиграть в футбол, вместо того чтобы освоить суперспособности. Забавно, что потом все они зарабатывали программированием деньги, а я нет. Через неделю я записался в краевую станцию юных техников (КСЮТ), где был кружок по программированию. Там для новичков давали qbasic. А боги прогали на C. [Читать дальше →][11]

[1]: https://habrastorage.org/files/779/f1d/c13/779f1dc137b24e11a4dd040682d602e2.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%95%D1%80%D1%88%D0%BE%D0%B2,_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87
[3]: http://ershov.iis.nsk.su/russian/second_literacy/article
[4]: http://habrahabr.ru/post/262837/
[5]: http://habrahabr.ru/users/truesnow/
[6]: http://tceh.com/
[7]: http://tceh.com/edu/rubyonrails/?utm_source=habr&utm_medium=content&utm_campaign=ruby13
[8]: http://geektimes.ru/post/248560/
[9]: http://habrahabr.ru/post/260463/
[10]: http://old.computerra.ru/offline/1998/248/1354/
[11]: http://habrahabr.ru/post/265981/#habracut

[>] Продукты JetBrains по ценам прошлого года
habra.14
habrabot(difrex,1) — All
2015-01-22 22:30:03


Нас постоянно спрашивают: «Когда же будут скидки?». Отвечаем: **«Скидки — есть!»**. До 5 февраля на ВСЕ продукты JetBrains можно приобрести **новую лицензию** или **обновить** существующую со **скидкой 40%** от текущей цены. На этот раз акция не международная, а только для жителей трех стран: России, Украины и Белоруссии. Мы понимаем, что курсы валют сильно пошатнулись и изменили цены в последние месяцы, и надеемся, что наша акция как-то компенсирует это и позволит вам не экономить на производительности и качестве кода. Как воспользоваться скидкой? [Читать дальше →][1]

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

[>] Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4a из 6
habra.14
habrabot(difrex,1) — All
2015-01-23 01:30:03




# Содержание курса



* [Статья 1: алгоритм Брезенхэма][1]
* [Статья 2: растеризация треугольника + отсечение задних граней][2]
* [Статья 3: Удаление невидимых поверхностей: z-буфер][3]
* Статья 4: Необходимая геометрия: фестиваль матриц
* **4а: Построение перспективного искажения**
* 4б: двигаем камеру и что из этого следует
* Статья 5: Пишем шейдеры под нашу библиотеку
* Статья 6: Чуть больше, чем просто шейдер: просчёт теней



# Построение перспективного искажения

Четвёртая статья будет разбита на две, первая часть говорит про построение перспективного искажения, вторая про то, как двигать камеру и что из этого следует.Задача на сегодня научиться генерировать вот такие картнки: ![][4] [Читать дальше →][5]

[1]: http://habrahabr.ru/post/248153/
[2]: http://habrahabr.ru/post/248159/
[3]: http://habrahabr.ru/post/248179/
[4]: http://habrastorage.org/getpro/habr/post_images/394/67d/da6/39467dda61fdb644e68bdafc1e1f17f1.png
[5]: http://habrahabr.ru/post/248611/#habracut

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


Хочу показать и рассказать о небольшой программке, которая принесла пользу. Однажды на работе мне написал друг. Диалог у нас состоялся примерно следующий: — Привет, я тут обучаюсь технике слепой печати. Дело в том, что на линуксе нет программки, которая могла бы мне помочь. В общем, может ты сможешь быстренько написать такую? Так как помочь другу — святое дело, да и задача выглядела интересной, помочь я согласился. В итоге получилось вот что: ![][1] Кому интересно, подробности ниже [Читать дальше →][2]

[1]: https://habrastorage.org/files/900/306/b38/900306b38ad24f1fb501c5971fe1c04c.gif
[2]: http://habrahabr.ru/post/266441/#habracut

[>] One ring to rule them all или аутентификация через TeddyID
habra.14
habrabot(difrex,1) — All
2015-01-23 05:30:03


![][1] Недавно меня попросили высказать свое мнение по поводу нового сервиса, который обещает решить все проблемы пользователей-склеротиков, и значительно снизить риски связанные с кражей пароля. Основная концепция системы заключается в избавлении пользователя от необходимости помнить свой пароль для аутентификации и параллельно увеличить безопасность за счет двухфакторной аутентификации. Также сервис предлагает «полуторафакторную аутентификацию», которая представляет из себя вариант LastPass. Заинтересовавшись, я решил рассмотреть все плюсы и минусы такого подхода с точки зрения пользователя-гика. Сразу оговорюсь, что я не являюсь экспертом в области информационной безопасности, поэтому прошу простить заранее возможные неточности. [Осторожно тыкаем медвежонка палочкой][2]

[1]: //habrastorage.org/files/f02/100/8b6/f021008b6a4d4de4845aca02d2b18bf5.png
[2]: http://habrahabr.ru/post/248575/#habracut

[>] [Из песочницы] Визуализация многомерных данных с помощью диаграмм Эндрюса
habra.14
habrabot(difrex,1) — All
2015-01-23 12:00:02


В эпоху Big Data графическое представление многомерных данных является весьма актуальной задачей. Однако результат визуализации не всегда соответствует ожиданиям. Вот пример не самого наглядного графика для изображения многомерных данных [«Ирисы Фишера»][1]: ![][2] [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/%D0%98%D1%80%D0%B8%D1%81%D1%8B_%D0%A4%D0%B8%D1%88%D0%B5%D1%80%D0%B0
[2]: //habrastorage.org/files/f61/cd1/b18/f61cd1b1841044b8a9fd2d660a2f657e.jpg
[3]: http://habrahabr.ru/post/248623/#habracut

[>] Release it! Проектирование и дизайн ПО для тех, кому не всё равно
habra.15
habrabot(difrex,1) — All
2015-09-08 16:30:03


Привет, Хаброжители! У нас вышла книга Майкла Нейгарда [![image][1]][2] Неважно, каким инструментом вы пользуетесь для программной разработки — Java, .NET, или Ruby on Rails. Написание кода — это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО «защита от дурака»? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами — методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов проектирования, помогающих избежать критических ситуаций, и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в приведенных примерах на Java, которые подробно поясняются и комментируются. Стабильность, безопасность и дружественный интерфейс — вот три важнейших слагаемых успеха вашего программного продукта. Если в ваши планы не входит в течение последующих лет отвечать на недовольные письма пользователей, выслушивать критику заказчиков и постоянно латать дыры, устраняя возникающие баги, то прежде чем выпустить финальный релиз, прочтите эту книгу. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c59/405/36a/c5940536ae314d648bcd33cf2fa2c577.jpg
[2]: http://www.piter.com/collection/A31172/product/release-it-proektirovanie-i-dizayn-po-dlya-teh-komu-ne-vsyo-ravno
[3]: http://habrahabr.ru/post/266417/#habracut

[>] Взлом времени: более 30 000 серверов NTP еще уязвимы
habra.14
habrabot(difrex,1) — All
2015-01-23 15:30:03


В конце декабря специалисты по безопасности из Google Security Team обнаружили ряд критических уязвимостей в реализации протокола NTP, который используется во многих промышленных системах управления для синхронизации времени на серверах. [Уязвимости][1], которым подвержены все NTP-сервера до версии 4.2.8, включают несколько вариантов переполнения буфера и позволяют атакующему удалённо выполнять произвольный код на сервере. Как отмечают исследователи, эксплойты для данных уязвимостей уже существуют в публичном доступе. По данным Positive Technologies, использование открытых источников позволяет легко выявить более 30 000 серверов в интернет, до сих пор подверженных данной уязвимости. Причем 4300 из них расположенны в российском сегменте сети Интернет. [![image][2]][3] [Читать дальше →][4]

[1]: http://www.securitylab.ru/vulnerability/463537.php
[2]: http://habrastorage.org/getpro/habr/post_images/837/194/034/837194034ab697eb15d05696bbb33255.png
[3]: http://habrahabr.ru/company/pt/blog/248637/
[4]: http://habrahabr.ru/post/248637/#habracut

[>] Защита корпоративных приложений: как стать разработчиком PT Application Firewall
habra.15
habrabot(difrex,1) — All
2015-09-08 17:00:03


[![][1]][2] Два года подряд во время международного форума Positive Hack Days проходил конкурс WAF Bypass по обходу межсетевого экрана [PT Application Firewall][3]. Мы публиковали в блоге разбор заданий этого соревнования ([2014 год][4] и [2015 год][5]). За год популярность соревнования значительно выросла — этой весной для участия зарегистрировалось 302 человека (101 годом ранее), которые за время конкурса отправили 271390 запросов (вдвое больше, чем в предыдущем году). При этом многие участники соревнования и гости PHDays интересовались не только самим соревнованием и его заданиями, но и экраном, который нужно было обходить. Поэтому мы решили немного подробнее рассказать об этом инструменте и пригласить поучаствовать в его разработке тех хабраюзеров, которые интересуются темой WAF не только в рамках конкурсов. [Читать дальше →][6]

[1]: https://habrastorage.org/files/a21/b8e/b90/a21b8eb90fe242af993ff4b248ce5dce.png
[2]: http://i.imgur.com/Lgu95A0.png
[3]: http://www.ptsecurity.ru/appsecurity/application-firewall/
[4]: http://habrahabr.ru/company/pt/blog/229479/
[5]: http://habrahabr.ru/company/pt/blog/259129/
[6]: http://habrahabr.ru/post/266415/#habracut

[>] [Из песочницы] GNU Emacs. Статья, которую я так и не нашел…
habra.14
habrabot(difrex,1) — All
2015-01-23 16:00:04


![][1] Доброго времени суток, **%username%**! В данной статье хочу подробно рассказать про настройку замечательного текстового редактора [GNU Emacs][2]. GNU Emacs — программируемый текстовый редактор для программистов, написанный на программируемом языке программирования. Для расширения Emacs используется диалект языка [Lisp][3] — [Emacs Lisp][4]. [Читать дальше →][5]

[1]: //habrastorage.org/files/9b9/2f2/79e/9b92f279ec8140e98169fa73ffde32c3.png
[2]: https://ru.wikipedia.org/wiki/Emacs
[3]: https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%81%D0%BF
[4]: https://ru.wikipedia.org/wiki/Emacs_Lisp
[5]: http://habrahabr.ru/post/248663/#habracut

[>] Подходы к контролю доступа: RBAC vs. ABAC
habra.14
habrabot(difrex,1) — All
2015-01-23 16:00:04


В этой теме хотелось бы познакомить читателей с относительно новым подходом к контролю доступа под названием **Attribute-based access control**. Знакомство будет происходить на примере сравнения с популярным нынче **Role-based access control**. [Читать дальше →][1]

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

[>] [Из песочницы] Posix threads
habra.14
habrabot(difrex,1) — All
2015-01-23 16:00:04


![image][1] Рано или поздно любой программист в своей жизни встречается с многопоточностью. Многопоточность – это свойство алгоритма распаралеливатся, т.е. выполнять операции некими вычислителями независимо друг от друга. Самый простой пример — это программирование GUI. GUI всегда должен быть отрисован, вне зависимости от того, что делается в программе. Например, loading screen – он всего лишь показывает прогресс, по мере загрузки ресурсов. И выглядит это примерно так: ![][2] Для решения подобных задач используются потоки (threads). Почти каждый язык программирования содержит свой wrapper над потоками ОС, или реализует свои потоки (привет, велосипед). На Хабре есть довольно много статей про потоки, например, [«Что такое нити (threads)?»][3] или [«Многопоточность в Java»][4]. В общем, поиск в помощь. Но эта статья будет отличатся тем, что здесь будут рассмотрены нативные потоки ОС – POSIX threads. [Читать дальше →][5]

[1]: http://std3.ru/23/f8/1369451839-23f86164203441f9ed1c259cb966ebf3.jpeg
[2]: //habrastorage.org/files/dec/bd2/45a/decbd245a1734ed186e86c618f49e4f9.png
[3]: http://habrahabr.ru/post/40275/
[4]: http://habrahabr.ru/post/164487/
[5]: http://habrahabr.ru/post/248651/#habracut

[>] Приближенное сравнение чисел в Haskell
habra.14
habrabot(difrex,1) — All
2015-01-23 17:30:04


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

ghci> 3 * sqrt(24 ^ 2 + 16 ^ 2) == sqrt(72 ^ 2 + 48 ^ 2)
False


Причина такого нарушения в том, что выражения в этом равенстве вычисляются лишь приближенно:

ghci> 3 * sqrt(24 ^ 2 + 16 ^ 2)
86.53323061113574
ghci> sqrt(72 ^ 2 + 48 ^ 2)
86.53323061113575
ghci> sqrt(72 ^ 2 + 48 ^ 2) - 3 * sqrt(24 ^ 2 + 16 ^ 2)
1.4210854715202004e-14


Различие здесь только в последнем (четырнадцатом!) знаке после запятой, но этого уже достаточно, чтобы сравнение оказалось ложным. Несмотря на то, что эта проблема хорошо известна, программисты уделяют ей мало внимания. Во-первых, считается, что сравнения такого рода возникают только в узкой области численных методов, а во-вторых, что нарушение равенства происходит крайне редко. Как оказалось, и то и другое не совсем верно. Приведенный случай возник, когда мне понадобилось реализовать функцию вычисления длины вектора с целочисленными координатами. При этом для модульного тестирования используются средства пакета [QuickCheck][1], который довольно быстро нашел случай нарушения инварианта масштабирования для длины вектора. Замечу, что это далеко не единственный инвариант, нарушение которого было обнаружено при тестировании. Возникает вопрос: как проще всего описать проверку приблизительного равенства двух чисел, полученных в результате вычислений с ограниченной точностью? Для решения этой задачи в Haskell достаточно определить еще один оператор сравнения (скажем, ~=), который используется так же, как и обычный оператор равенства. Предлагаю рассмотреть реализацию такого оператора, которую можно оформить в виде достаточно простого модуля [Circa][2]. [Читать дальше →][3]

[1]: http://hackage.haskell.org/package/QuickCheck
[2]: http://snipplr.com/view/88264/circa-comparison-of-fractional-numbers/
[3]: http://habrahabr.ru/post/248043/#habracut

[>] [Перевод] Пытливый взгляд АНБ: что такое война за Интернет-безопасность (Часть 2)
habra.14
habrabot(difrex,1) — All
2015-01-23 17:30:04


[![image][1]][2] Предположения о том, что разведывательные агентства опередили нас настолько, что защищаться от них шифрованием бессмысленно, неверны. Как показывает один документ из архива Сноудена, АНБ не преуспело в расшифровке ряда коммуникационных протоколов, как минимум в 2012 году. В презентации для конференции, проведенной в том году, значится список программ шифрования, которые американцам взломать не удалось. В процессе дешифровки криптологи АНБ разделили свои цели на пять уровней согласно уровню сложности атаки и получаемому результату, начиная с «тривиальных» и до «катастрофических». [[первая часть][3]] Мониторинг пути перемещения документа в Сети классифицируется, как «тривиальная» цель. Запись чата в Facebook – «несложная» задача, в то время как уровень сложности дешифровки писем, отправляемых через [российский провайдер][4] интернет-сервисов Mail.ru, рассматривается, как задача «умеренной сложности». Но все три эти уровня классификации не представляют серьезных проблем для АНБ. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/500/f36/2bc/500f362bcb343e4aae2271ddf5e4698a.jpg
[2]: http://habrahabr.ru/company/1cloud/blog/248675/
[3]: http://habrahabr.ru/company/1cloud/blog/248435/
[4]: https://1cloud.ru/
[5]: http://habrahabr.ru/post/248675/#habracut

[>] [Перевод] #NoHacked: устранение последствий взлома с загрузкой URL, содержащих бессмысленный текст
habra.15
habrabot(difrex,1) — All
2015-09-08 17:00:03


Привет, Хабрахабр! Сегодня в рамках кампании #nohacked мы хотели бы поговорить о том, как решить проблему с несанкционированным внедрением контента на сайт. Даже если вы не подвергались такой атаке, не пренебрегайте нашими рекомендациями – они помогут защитить ваш ресурс и от других методов взлома. Следите за обсуждением в [Twitter][1] и [Google+][2] с помощью хештега #nohacked (см. [часть 1][3], [часть 2][4], [часть 3][5], [часть 4][6]). ![NoHacked: устранение последствий взлома с загрузкой URL][7] [Читать дальше →][8]

[1]: http://twitter.com/googlewmc
[2]: http://g.co/ruwebmasters
[3]: https://productforums.google.com/forum/#!topic/webmaster-ru/OWVNjwd8iqE
[4]: https://productforums.google.com/forum/#!topic/webmaster-ru/9efkUOTxP_A
[5]: https://productforums.google.com/forum/#!topic/webmaster-ru/WSIu84hvGIU
[6]: https://productforums.google.com/forum/#!topic/webmaster-ru/mDPN5S864sU
[7]: https://habrastorage.org/files/2a1/ba8/0cc/2a1ba80cc98d4c44b2d64358cbe6b3e8.png
[8]: http://habrahabr.ru/post/266027/#habracut

[>] Горный ЦОД
habra.14
habrabot(difrex,1) — All
2015-01-24 02:00:03


В наше время сооружение дата-центров стало весьма обыденным событием. К этому естественно привело то впечатляющее и все возрастающее на протяжении последнего десятилетия количество, такого рода, новых сооружений. Типовые проекты производственных зданий, совершенно безликих, как внутри так и снаружи, задвигают на второй план ту важную роль которую они осуществляют в современном мире. ЦОД о который далее пойдет речь – это скорее исключение из правил. Более необычной ИТ-инфратструктуры не стоит даже и искать. Этому есть целый ряд удивительных причин. Размещенный глубоко под землей, в недрах горы швейцарских Альп – Форт Кнокс (Fort Knox) – дата-центр, который стал обязан своему созданию компании SIAG. Осуществление проекта стало следствием понимания руководством компании тех простых вещей, что информация – это ценность сродни золоту. Даже само название ИТ-комплекса не случайно перекликается со всем известной военной базой в штате Кентукки, США, которая в свою очередь является одним из наиболее известных в мире хранилищ золота. Давайте же рассмотрим более детально на сколько тщательно «дух горы» бережет свои сокровища. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/111/c9c/02c/111c9c02c2894b1e84cd8c97550664d6.jpg
[2]: http://habrahabr.ru/post/248703/#habracut

[>] Введение в топологические пространства. Программирование конечных топологий на Java
habra.14
habrabot(difrex,1) — All
2015-01-24 04:00:03




# Введение

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

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

[>] Совместное редактирование. Часть 2
habra.15
habrabot(difrex,1) — All
2015-09-08 17:00:03


![][1] Добрый день! Недавно мы начали цикл статей о совместном редактировании. В [первой статье][2] я рассказал о задаче неблокирующего редактирования и возможных подходах к его реализации. Напомню, что в итоге в качестве алгоритма мы выбрали Operation Transformation (OT). Также был анонсирован рассказ о его клиент-серверном варианте, и сегодня я освещу подробности его работы. Кроме того, вы узнаете, почему отмена в OT работает иначе и чем грозит столкновение с суровой реальностью. Дальше вас ждет много алгоритмов и диаграмм. Думаю, вам будет интересно. [Читать дальше →][3]

[1]: https://habrastorage.org/files/504/fbc/914/504fbc914d19480e9f016ae92cf8c56d.jpg
[2]: http://habrahabr.ru/company/ncloudtech/blog/264923/
[3]: http://habrahabr.ru/post/266429/#habracut

[>] Зарабатывающая идея реального форекс-робота
habra.15
habrabot(difrex,1) — All
2015-09-08 21:00:02


Общеизвестно, что заработать на форекс невозможно. Изменения курсов валют носят случайный характер, а комиссия брокера уменьшает вероятность положительного итогового заработка, часто делая ее совсем непривлекательной, ― ниже, чем в казино, например. Тем не менее, я содержу себя и свои проекты исключительно за счет форекс уже три года, я шел к этому около 7 лет и, вспоминая этот путь, решил написать заметку для тех, кого привлекает эта антинаучная возможность заработка. Речь пойдет не о чудесных Граалях, продаваемых в интернете, не о высокочастотной торговле и не о «безрисковых» вложениях в мифические ТОП-20 лучших трейдеров. Только хардкор: мы проводим многочисленные торговые операции, кто-то вручную, кто-то ― автоматически, и получаем в результате этих операций положительный прирост счета при статистически значимом количестве сделок. [Читать дальше →][1]

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

[>] [Из песочницы] Был получен несанкционированный доступ к более чем 20 000 камерам видео-наблюдения Москвы (теперь вы тоже)
habra.14
habrabot(difrex,1) — All
2015-01-24 12:30:03


Привет, Хабрахабр! Наверняка многие из вас помнят легендарный пост «[Были получены исходники 3300 глобальных интернет-проектов][1]», который долгое время был первым в рейтинге всех публикаций на сайте. Несмотря на схожий заголовок у моего поста, не претендую на первое место, но считаю, что вам стоит обратить внимание. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/post/70330/
[2]: //habrastorage.org/files/f7d/013/04c/f7d01304c09b47cb99d21c1dc3b801f8.jpg
[3]: http://habrahabr.ru/post/248727/#habracut

[>] Как я писал гитарный тюнер под iOs на Swift. А так же немного о ЦОС, стоячих волнах и как добиться точности в ±0,1Гц
habra.15
habrabot(difrex,1) — All
2015-09-09 10:00:03


![][1]В этой статье я расскажу о том как у меня возникла идея написать свой тюнер и к чему это привело. А так же поделюсь своими скромными знаниями в области ЦОС (цифровой обработки сигналов) полученными в ВУЗе, и как они помогли мне решить некоторые проблемы. И конечно, поделюсь исходным кодом и опытом программирования на Swift который получил при реализации этого проекта. [Читать дальше →][2]

[1]: https://habrastorage.org/files/320/3fb/daa/3203fbdaa2f143e1a4b7368b1a15569f.png
[2]: http://habrahabr.ru/post/266471/#habracut

[>] Доработка USB-стека в микроконтроллерах STM32 и TivaC
habra.14
habrabot(difrex,1) — All
2015-01-24 15:30:03


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

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

[>] Если не Liferay то что? GateIn?
habra.15
habrabot(difrex,1) — All
2015-09-09 11:30:02


Не так давно я описал новые фичи, которые ждут пользователей и разработчиков [в новой версии Liferay 7.0][1]. У меня иногда спрашивают — а почему [Liferay][2]? Для меня ответ прост — в том стеке технологий, в котором мы работаем (Jave EE плюс ориентация на Open Source) я просто не вижу альтернатив. Да, мы давно занимаемся [внедрением порталов на Liferay][3], но я не слепой фанатик и стараюсь иногда выныривать из своего мирка и смотреть вокруг. А вдруг? Вдруг альтернативы есть? Давайте сегодня рассмотрим одну из них — портал [GateIn][4] — совместное производство JBoss и eXo ![image][5] [Читать дальше →][6]

[1]: http://habrahabr.ru/post/265919/
[2]: http://www.liferay.com
[3]: http://www.emdev.ru/setup-liferay
[4]: http://gatein.jboss.org/
[5]: http://www.jboss.org/dms/gatein/images/gatein-banner-1180px.png
[6]: http://habrahabr.ru/post/266159/#habracut

[>] [Перевод] Вышла в свет Node.js v4.0.0
habra.15
habrabot(difrex,1) — All
2015-09-09 15:30:03


Сообщество Node.js проекта и члены Node.js Foundation с гордостью представляют 4.0.0 версию продукта. В этот релиз включены бесчисленные часы совместно работы проектов Node.js и io.js, которые были успешно объедены в одну кодовую базу. Проект Node.js управляется командой из 44 человек, 15 из которых формируют Technical Steering Committee (TSC). Кроме того, более 100 участников были добавлены в список людей, способных влиять на развитие ядра, по сравнению в числом участников версии v0.12.7. Node.js v4.0.0 содержит V8 v4.5, это та же версия V8, которая поставляется вместе с веб браузером Chrome сегодня. Это приносит с собой множество бонусов для пользователей Node.js, наиболее важное из которых, это поддержка [ES6][1] стандарта, которые включены по умолчания, включая видимость блоков, классов, типизированные массивы (Node's **Buffer** теперь работает с **Uint8Array**), генераторы, Promises, Symbols, строковые шаблоны, коллекции (Map, Set, и так далее) и, новая для V8 v4.5, стрелочные функции. [Читать дальше →][2]

[1]: https://nodejs.org/en/docs/es6/
[2]: http://habrahabr.ru/post/266499/#habracut

[>] [Из песочницы] Как организовать тестирование БД в dUnit
habra.15
habrabot(difrex,1) — All
2015-09-09 16:30:03


Как известно, в xUnit-фреймворках, простейший test-case состоит из последовательности вызовов SetUp, TestSomething, TearDown. И довольно часто в unit-тестировании требуется подготовить какие-то ресурсы перед основными тестами. Типичный пример этого — соединение с базой данных. И логика подсказывает нам, что было бы весьма затратно, запуская несколько тестов, перед каждым устанавливать соединение с БД в SetUp, и отключаться в TearDown.

...
type
TTestDB1 = class(TTestCase)
protected
public
procedure SetUp; override;
procedure TearDown; override;
published
procedure TestDB1_1;
procedure TestDB1_2;
end;
...
implementation
...
procedure TTestDB1.SetUp;
begin
inherited;
// connect to DB
end;

procedure TTestDB1.TearDown;
begin
// disconnect from DB
inherited;
end;
...
initialization
RegisterTest(TTestDB1.Suite);
end.




Схема вызовов будет такая:

-- TTestDB1.SetUp
---- TTestDB1.TestDB1_1
-- TTestDB1.TearDown
-- TTestDB1.SetUp
---- TTestDB1.TestDB1_2
-- TTestDB1.TearDown


_К тому же с БД может статься, что перед тем, как к БД подключиться, её нужно создать с требуемой структурой._ Для решения такой задачи в [dUnit][1] есть класс TTestSetup (описан в модуле TTestExtensions). [Читать дальше →][2]

[1]: http://dunit.sourceforge.net/
[2]: http://habrahabr.ru/post/266487/#habracut

[>] [Перевод] Практическое руководство по взлому (и защите) игр на Unity
habra.15
habrabot(difrex,1) — All
2015-09-09 17:00:04


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

[1]: https://habrastorage.org/files/9c3/413/a4b/9c3413a4ba2f44feac37262f5e93f346.png
[2]: http://habrahabr.ru/post/266345/#habracut

[>] Снова книги по свободной цене на books.ru
habra.14
habrabot(difrex,1) — All
2015-01-24 20:00:04


В конце декабря Books.ru провело [продажу книг][1] в электронном формате по свободной цене (от 1 рубля). Было выставлено на продажу большое количество полезных для айтишника изданий, от «Алгоритмические трюки для программистов» до «Гидроизоляция конструкций, зданий и сооружений». К сожалению организовано это событие было не очень удачно и, насколько я понял, многие не смогли оплатить выбранные покупки. Я тоже не смог. Ну, не особо то и горе но немножко обидно, я там и правда много интересного понавыбирал. И тут вдруг мне приходит письмо: [Читать дальше →][2]

[1]: http://habrahabr.ru/post/247175/
[2]: http://habrahabr.ru/post/248621/#habracut

[>] Как за месяц сильно прокачаться в Data Science
habra.15
habrabot(difrex,1) — All
2015-09-09 18:00:02


Привет, хабр! ![][1] Меня зовут [Глеб][2], я долгое время работаю в ритейловой аналитике и сейчас занимаюсь применением машинного обучения в данной области. Не так давно я познакомился с ребятами из [MLClass.ru][3], которые за очень короткий срок довольно сильно прокачали меня в области **Data Science**. Благодаря им, буквально за месяц я стал активно сабмитить на kaggle. Поэтому данная серия публикаций будет описывать мой опыт изучения Data Science: все ошибки, которые были допущены, а также ценные советы, которые мне передали ребята. Сегодня я расскажу об опыте участия в соревновании [The Analytics Edge (Spring 2015)][4]. Это моя первая статья — не судите строго=) [Читать дальше →][5]

[1]: https://habrastorage.org/files/a21/8b8/fa4/a218b8fa47f94a2cb189b1f559558d91.png
[2]: https://ru.linkedin.com/in/morozovgleb
[3]: http://dscourse.mlclass.ru
[4]: https://inclass.kaggle.com/c/15-071x-the-analytics-edge-summer-2015
[5]: http://habrahabr.ru/post/266421/#habracut

[>] Must-read книги за 2014 год по ИБ и программированию
habra.14
habrabot(difrex,1) — All
2015-01-24 20:30:04


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

# Безопасность



#### **Тактика хакера: практическое руководство по тестированию на проникновение (The Hacker Playbook: Practical Guide To Penetration Testing)**

![][1] Книга написана в стиле планирования футбольной игры. Здесь подробно и пошагово разобраны проблемы и трудности, с которыми сталкиваются специалисты по безопасности, тестируя системы защиты. В частности, рассматриваются атаки на различные типы сетей, обход антивирусов и взлом систем безопасности. Автор книги — Питер Ким, специалист по IT-безопасности с многолетним опытом, CEO компании Secure Planet. [Читать дальше →][2]

[1]: //habrastorage.org/files/091/3f4/f88/0913f4f88dba40ce887cfcbdf3c5b7f9.jpg
[2]: http://habrahabr.ru/post/248733/#habracut

[>] Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4б из 6
habra.14
habrabot(difrex,1) — All
2015-01-24 22:30:03




# Содержание курса



* [Статья 1: алгоритм Брезенхэма][1]
* [Статья 2: растеризация треугольника + отсечение задних граней][2]
* [Статья 3: Удаление невидимых поверхностей: z-буфер][3]
* Статья 4: Необходимая геометрия: фестиваль матриц
* [4а: Построение перспективного искажения][4]
* **4б: двигаем камеру и что из этого следует**
* Статья 5: Пишем шейдеры под нашу библиотеку
* Статья 6: Чуть больше, чем просто шейдер: просчёт теней

Сегодня мы заканчиваем с ликбезом по геометрии, в следующий раз будет веселье с шейдерами! Чтобы не было совсем скучно, вот вам тонировка Гуро: ![][5] Я убрал текстуры, чтобы было виднее. [Тонировка Гуро][6] очень проста: добрый дяденька-моделёр дал нам нормальные вектора к каждой вершине объекта, они хранятся в строчках vn x y z файла .obj. Мы считаем интенсивность освещения для каждой вершины треугольника и просто интерполируем интенсивность внутри. Ровно как мы делали для глубины z или для текстурных координат uv! Кстати, если бы дяденька-моделёр был не таким добрым, то мы могли бы посчитать нормали к вершине как среднее нормалей граней, прилегающих к этой вершине. Текущий код, который сгенерировал эту картинку, находится [здесь][7]. [Читать дальше →][8]

[1]: http://habrahabr.ru/post/248153/
[2]: http://habrahabr.ru/post/248159/
[3]: http://habrahabr.ru/post/248179/
[4]: http://habrahabr.ru/post/248611/
[5]: http://habrastorage.org/getpro/habr/post_images/bcd/f0b/ba5/bcdf0bba53495b4ebc86ba45f03d255e.png
[6]: http://en.wikipedia.org/wiki/Gouraud_shading
[7]: https://github.com/ssloy/tinyrenderer/tree/10723326bb631d081948e5346d2a64a0dd738557
[8]: http://habrahabr.ru/post/248723/#habracut

[>] [Перевод] Какой язык программирования выбрать начинающему (инфографика)
habra.14
habrabot(difrex,1) — All
2015-01-25 13:00:02


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

[1]: //habrastorage.org/files/859/da3/681/859da368187f4274acc4594993524583.png
[2]: http://habrastorage.org/files/4e5/6a4/a55/4e56a4a553a14a41b8610463a07a6f60.png
[3]: http://habrahabr.ru/post/248763/#habracut

[>] Браузер-в-браузере сделает сайт намного безопасней
habra.14
habrabot(difrex,1) — All
2015-01-25 16:00:02


В первую очередь поясню что эта технология находится на ранней стадии разработки, и я бы хотел подискутировать в этом топике о её рентабельности и полезности. Поэтому прототипа еще нет. Большинство уязвимостей в веб сайтах являются результатом изменения HTTP запроса, подмены URL или заголовков, и прочие неожиданные для сервера действия. Обычный пользователь не должен иметь возможности так делать, но так как современное приложение состоит из клиента и сервера, то в реальности сервер не имеет контроля над тем как пользователь использует клиентскую часть. Из-за этого «двойная валидация» встречается повсеместно — на экране нужно показывать только объекты доступные пользователю, плюс нужно на сервере проверять имеет ли пользователь доступ к данному объекту. Так возникла идея [SecureCanvas][1] — превратить сайт в подобие АТМ/терминала, где пользователь может только печатать и двигать мышку. Вместо попытки перехватить вредоносные запросы мы просто переводим игру в другую плоскость и снижаем поверхность атаки до нуля, разрешая пользователю делать лишь то что он и должен делать — взаимодействовать с сайтом. [Читать дальше →][2]

[1]: http://securecanvas.com/
[2]: http://habrahabr.ru/post/248761/#habracut

[>] [Из песочницы] Работа с Ansible — задачи с несколькими неизвестными
habra.15
habrabot(difrex,1) — All
2015-09-09 19:30:02


Гуглил информацию по [Ansible][1], наткнулся на [статью][2] на Хабре. Прочитал и сильно удивился: ведь можно сделать красивее! Если вы заинтересованы — добро пожаловать под кат! [Углубиться][3]

[1]: http://www.ansible.com/
[2]: http://habrahabr.ru/company/centosadmin/blog/259107/
[3]: http://habrahabr.ru/post/266481/#habracut

[>] [Перевод] «Сладкое» программирование, или Как выделить этикетку с банки варенья в Mathematica?
habra.15
habrabot(difrex,1) — All
2015-09-09 19:30:02






_Перевод дискуссии "[How to peel the labels from marmalade jars using Mathematica?][1]" с сайта Mathematica at StackExchange. Код, приведенный в статье, можно скачать [здесь][2] (~31 МБ). Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][3] за помощь в переводе и подготовке публикации_

----

Как можно выделить содержимое этикетки с указанной ниже банки (точка съёмки кадра, геометрия банки, её содержимое — всё это нам неизвестно), Основная идея заключается в следующем:

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

Предлагаемый нами алгоритм работает только для изображений, в которых:

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

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

[1]: http://mathematica.stackexchange.com/questions/5676/how-to-peel-the-labels-from-marmalade-jars-using-mathematica
[2]: http://data.wolframmathematica.ru/habrahabr/SweetProgramming/SweetProgramming.zip
[3]: http://habrahabr.ru/users/kirillguzenko/
[4]: http://habrahabr.ru/post/266517/#habracut

[>] Уязвимости прошивки беспроводных дисков Seagate позволяют удаленно загружать и скачивать файлы
habra.15
habrabot(difrex,1) — All
2015-09-09 20:00:02


[![][1]][2] Как сообщает CERT.org, беспроводные накопители Seagate открывают Telnet-сервис воспользоваться которым можно с помощью зашитого в коде пароля. Это позволяет злоумышленникам осуществить скачивание файлов с накопителя. Еще одна ошибка безопасности позволяет удаленно загружать любые файлы в директорию, по умолчанию использующуюся для общего доступа. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c83/97b/33f/c8397b33fa62468d8f99c761877f635d.jpg
[2]: http://habrahabr.ru/company/pt/blog/266501/
[3]: http://habrahabr.ru/post/266501/#habracut

[>] Настраиваем сочетания клавиш в Linux на подобии Mac OS X
habra.15
habrabot(difrex,1) — All
2015-09-09 20:00:02


![][1] Раньше, у меня довольно часто возникала такая ситуация, когда одновременно работаешь в терминале и, например, в браузере. После нескольких часов работы начинаешь путаться и в терминале вместо [Ctrl]+[Shift]+[C] нажимаешь [Ctrl]+[C], а в браузере наоборот. В итоге в терминале вы получаете прерывание а в браузере вместо ожидаемого эффекта у вас медленно прогружается дебаггер. В один прекрасный момент меня это достало и я решил, что пора что-то менять… [Меня тоже это достало!][2]

[1]: https://habrastorage.org/files/8f1/55e/18d/8f155e18dc4b4f1f80113941c5ad32ab.png
[2]: http://habrahabr.ru/post/266375/#habracut

[>] [recovery mode] Мысли о развёртывании веб-приложений на тестовом сервере
habra.15
habrabot(difrex,1) — All
2015-09-09 20:00:02




## Предисловие

Нижеследующий текст − результат практического опыта и самообразовательных порывов человека, не имеющего систематического образования ни в одной из областей, о которых он (то есть я) берётся рассуждать. Поэтому заумные рассуждения здесь будут перемежаться банальностями. Бейте меня за первые и игнорируйте вторые. Для кого-то и они могут стать откровением. Я постараюсь описать идеальные варианты настройки тестового веб-севера, хотя понимаю, какой бардак на них обычно творится. Буду ориентироваться на ситуацию, когда деплоить приходится часто, то есть на сервере живёт проект в стадии активной разработки либо несколько проектов на разных стадиях. Проектами занимаются разные разработчики или команды, поэтому проекты нужно изолировать друг от друга. Но сервер внутренний, поэтому такая степень изоляции и автоматизации процессов администрирования, как на серверах под сдачу в аренду, не нужна. Основной упор я буду делать на применение разных версий Python в качестве языка поддерживаемых веб-приложений. Хотя многие вещи наверняка будут справедливы и для других языков, например, Ruby или Perl. [Читать дальше →][1]

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

[>] Факторизация и шифрование на эллиптической кривой
habra.14
habrabot(difrex,1) — All
2015-01-25 19:00:03


     Проблема факторизации составных натуральных чисел (сннч) многие столетия удерживает внимание специалистов в различных теоретических (научных) и прикладных областях таких как числовые системы, вычислительная математика и техника, теория чисел, информационная безопасность, криптография, и др., и вынуждает их прикладывать немалые усилия к ее положительному и успешному решению. Тем не менее, проблема и сегодня далека от ее закрытия, завершения. Автор предлагает к рассмотрению и стремится дать читателю понятие о существующих подходах к решению проблемы, ставших уже своеобразной классикой, привести критику и выразить одобрение замечательным находкам.      В работе излагается один из известных подходов к решению задачи факторизации больших чисел (ЗФБЧ), использующий математику эллиптических кривых (ЭК). Об этой математике, а точнее о технике вычислений приведу цитату авторов из [ 1 ] «Техника, используемая в настоящее время при изучении ЭК, является одной из самых изощренных во всей математике. Мы надеемся, что элементарный подход настоящей работы побудит читателя к дальнейшему изучению этой живой и пленительной ветви теории чисел. Есть много того, что следует изучить, и много работы, которую еще надо проделать. „ [Читать дальше →][1]

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

[>] Организация веб-доступа на базе Sophos UTM
habra.15
habrabot(difrex,1) — All
2015-09-09 20:00:02


В статье речь пойдёт о том, как эффективно и быстро можно настроить и управлять политиками веб-фильтрации, используя [Sophos UTM][1] — комплексное решение по обеспечению информационной безопасности предприятия. В конце статьи Вас ожидает Бонус при миграции с TMG или аналогичного решения. ![][2]

##

Sophos UTM относится к классу решений Unified Thread Management, комплексным решением для обеспечения безопасности и организации сетевой инфраструктуры. Оно объединяет функции маршрутизации, межсетевого экрана, NGFW, IDS/IPS, организации веб-доступа, технологию DPI, организацию VPN-каналов, WAF, email-защиту от спама, безопасность рабочих мест. Каждый из функциональных модулей объединён в одном устройстве в едином веб-интерфейсе и включается в зависимости от изменившихся потребностей. Sophos UTM поддерживает _Аппаратное_, _Программное_ или _Виртуальное_ развёртывание. История Sophos UTM насчитывает около 15 лет. В 2000 г. в Карлсруэ была основана компания Astaro. Она предложила рынку визионерский взгляд на проблемы обеспечения сетевой безопасности. Модульная архитектура и простота использования позволили компании через 10 лет получить 56000 инсталляций в 60 странах. В 2011 году произошло слияние Astaro и Sophos, в результате которого появилось решение Sophos UTM, расширившее безопасность на рабочие места. Решение разрабатывают и поддерживают в Германии и по сей день. В России система работает более чем у 1000 заказчиков, от небольших организаций с одним администратором до больших компаний, имеющих офисы в каждом городе нашей страны. Сегодня мы остановимся на функции организации веб-доступа. [Читать дальше →][3]

[1]: http://www.fgts.ru/vendors/inus-capsule.html
[2]: https://habrastorage.org/files/034/03e/206/03403e2069e341d89671ca94bf5d35a9.png
[3]: http://habrahabr.ru/post/266463/#habracut

[>] [recovery mode] Установочные программы — насколько они влияют на образ продукта или фирмы?
habra.15
habrabot(difrex,1) — All
2015-09-09 22:30:02


На днях произошло событие, которое просто повергло в шок. А именно, надо было проверить кол-во чернил в моем старом универсальном принтере-сканере от HP, поэтому быстренько нашел их программу+драйвер для Windows 8.1, скачал и стал устанавливать. Но поразило следующее: [Читать дальше →][1]

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

[>] Age of JIT compiling. Part I. Genesis
habra.14
habrabot(difrex,1) — All
2015-01-25 20:30:04


Тема рантайма платформы .NET освещена весьма подробно. Однако работа самого JIT, результирующий код и взаимодействие со средой исполнения – не очень. Ну что ж, исправим это! Узнаем причины отсутствия наследования у структур, природу unbound delegates. А еще… вызов любых методов у любых объектов без reflection. [Читать дальше →][1]

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

[>] [Перевод] Вышла в свет новая версия Node.js v4.0.0
habra.15
habrabot(difrex,1) — All
2015-09-09 22:30:02


Сотрудники Node.js и члены Node.js Foundation с гордостью представляют 4.0.0 версию продукта. В этот релиз включены бесчисленные часы совместной работы проектов Node.js и io.js, которые были успешно объедены в одну кодовую базу. Проект Node.js управляется командой из 44 человек, 15 из которых формируют Technical Steering Committee (TSC). Кроме того, более 100 участников были добавлены в список людей, способных влиять на развитие ядра, по сравнению с числом участников версии v0.12.7. Node.js v4.0.0 содержит V8 v4.5, это та же версия V8, которая поставляется вместе с веб браузером Chrome сегодня. Это привносит с собой множество бонусов для пользователей Node.js, наиболее важные из которых, это поддержка [ES6][1] стандарта, который включен по умолчанию, включая блочную область видимости, классы, типизированные массивы (Node's **Buffer** теперь работает поверх **Uint8Array**), генераторы, Promises, Symbols, строковые шаблоны, коллекции (Map, Set, и так далее) и, новая возможность для V8 v4.5 — стрелочные функции. [Читать дальше →][2]

[1]: https://nodejs.org/en/docs/es6/
[2]: http://habrahabr.ru/post/266499/#habracut

[>] Когда данных действительно много: Vowpal Wabbit
habra.14
habrabot(difrex,1) — All
2015-01-25 22:30:03


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

[1]: //habrastorage.org/files/c7d/347/66a/c7d34766a2074fe48515fe66d2c6484c.png
[2]: http://habrahabr.ru/post/247751/
[3]: http://habrahabr.ru/post/248129/
[4]: http://www.kaggle.com
[5]: http://www.kaggle.com/c/avazu-ctr-prediction
[6]: http://habrahabr.ru/post/248779/#habracut

[>] Нерекурсивный алгоритм генерации перестановок
habra.14
habrabot(difrex,1) — All
2015-01-26 02:00:02


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

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

[>] [Перевод] Когда идентификатор не идентификатор (Атака монгольского разделителя гласных)
habra.14
habrabot(difrex,1) — All
2015-01-26 02:00:02


![][1]

В переводе я позволил себе использовать некоторые англицизмы, такие как «валидный», «нативный» и «бинарник». Надеюсь с ними вопросов не возникнет.
Идентификаторы (identifiers) – специальный термин спецификации C# отожествляющий собой всё к чему можно обратиться по имени, как например название класса, имя переменной и т.д.
Roslyn – компилятор C# кода, написанный на C#. Был создан взамен существующего csc.exe. Я обычно опускаю слово компилятор в данном тексте.



Для начала несколько вещей о которых вы могли не слышать:

* Идентификаторы в C# могут включать в себя escape-последовательности Unicode символов (как например \\u1234).
* Идентификаторы в C# могут включать в себя Unicode символы категории Cf (other, format), но при сравнении идентификаторов на идентичность эти символы игнорируются.
* Символ «Монгольский разделитель гласных» (U+180E) в зависимости от версии Unicode принадлежит либо категории Cf (other, format), либо категории Zs (separator, space).
* В .NET хранится свой собственный список Unicode категорий, независимый от оных в Win32.
* Roslyn является .NET приложением, и поэтому использует Unicode категории, прописанные в файлах .NET. Нативный компилятор (csc.exe) использует либо системные (Win32) категории, либо хранит в себе копию таблиц Unicode.
* Никакая из таблиц Unicode символов (ни .NET, ни Win32) точно следует какой-либо из версий стандарта Unicode.
* Компиляторы могут иметь баги.

Из всего этого вытекают некоторые проблемы…

# Во всём виноват Владимир

Все началось с обсуждения на собрании технической группы ECMA на прошлой неделе. Мы рассматривали «нормативные ссылки», и в частности какую версию стандарта Unicode мы будем использовать. На тот момент спецификация ECMA-335 (4-ое издание) использует Unicode 4.0, а спецификация C# 5 от Microsoft использует Unicode 3.0. Я точно не знаю, учитывают ли разработчики компиляторов такие особенности. На мой взгляд было бы лучше, если ECMA и Microsoft не указывали конкретную версию Unicode в своих спецификациях. Пусть разработчики компиляторов используют самую свежую версию Unicode, доступную на текущий момент. Однако тогда компиляторы должны будут поставляться со своей личной копией таблицы Unicode, что немного странно, на мой взгляд. [Читать дальше →][2]

[1]: //habrastorage.org/files/885/3b8/439/8853b8439abd4a9fb1bf2257b76dd4c1.jpg
[2]: http://habrahabr.ru/post/248797/#habracut

[>] Аннотация к «Effective Modern C++» Скотта Майерса
habra.14
habrabot(difrex,1) — All
2015-01-26 10:30:04


![][1] Пару месяцев назд Скотт Майерс ([Scott Meyers][2]) выпустил новую книгу [Effective Modern C++][3]. Последние годы он безусловно является писателем №1 «про это», кроме того он блестящий лектор и каждая его новая книга просто обречена быть прочитана пишущими на С++. Более того, именно такую книгу я ждал давно, вышел стандарт С++11, за ним С++14, уже виднеется впереди С++17, язык стремительно меняется, однако нигде так и не были описаны все изменения в целом, взаимосвязи между ними, опасные места и рекомендуемые паттерны. Тем не менее, регулярно просматривая Хабр, я так и не нашел публикации о новой книге, похоже придется писать самому. На полноценный перевод меня конечно не хватит, поэтому я решил сделать краткую выжимку, скромно назвав ее аннотацией. Еще я взял на себя смелость перегруппировать материал, мне кажется для короткого пересказа такой порядок подходит лучше. Все примеры кода взяты прямо из книги, изредка с моими дополнениями. [Читать дальше →][4]

[1]: //habrastorage.org/files/069/615/2ef/0696152ef06e40cba11aa1eaba203f11.gif
[2]: http://www.aristeia.com/
[3]: http://shop.oreilly.com/product/0636920033707.do?cmp=af-code-books-video-product_cj_0636920033707_7708709
[4]: http://habrahabr.ru/post/248137/#habracut

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


_Автор оригинала на английском языке — хабраюзер [dzeban][1] _

#### Введение

[В прошлый раз мы обсудили][2], как можно искусственно ограничить доступную программе память. В качестве бонуса я заполучил себе [libmemrestrict ][3]– библиотеку с обёртками функций вроде malloc для отслеживания использования памяти, и [ptrace-restrict ][4]— инструмент на базе ptrace, перехватывающий вызовы brk, sbrk и mmap с той же целью. Так зачем нам пытаться организовывать ограничение памяти – так ли это часто встречается? Когда в последний раз ООМ прибил ваше приложение? Вы всегда думаете о потреблении памяти во время программирования? Память – штука дешёвая, и если вам не хватает памяти, добавьте ещё пару гигабайт. И, тем не менее, невозможно бесконечно добавлять память – и не из-за того, что у вас нет бесконечного её источника. При обработке Больших данных просто невозможно вместить весь ввод в массив – необходимо распределять данные между оперативкой, носителями и сетью. Необходимы алгоритмы и техники для такой обработки данных. И вот я занялся подобными задачами, начав с простой – как отсортировать миллион целых чисел (4 MiB данных) при наличии 2 MiB памяти? Эту задачу можно обобщить на тот случай, когда у вас недостаточно памяти, чтобы вместить все данные.

#### Дано

Необходимо написать программу сортировки набора целых чисел, хранящихся в файле. Для его создания я написал простейшие утилиты [randints ][5]и [rangeints][6] Программа должна выдавать отсортированный массив на stdout в виде текста Она должна измерить время работы и вывести его на stderr. Нельзя просто запустить программу через утилиту time, потому что она посчитает время на чтение файла и время на его вывод. Она должна работать, имея памяти как минимум в два раза меньше объёма файла. Для этого мы применим libmemrestrict или ptrace-restrict. Для некоторых методов эти утилиты не пригодятся. Например, для mmap они не сработают – придётся физически ограничить использование памяти. Они будут проверяться для решения оригинальной задачи (сортировки 4 MiB в 2 MiB). Также я запущу их на виртуалке со 128 MiB памяти для сортировки 500 Mb (125 миллионов четырёхбайтных целых). [Читать дальше →][7]

[1]: http://habrahabr.ru/users/dzeban/
[2]: http://habrahabr.ru/post/266083/
[3]: https://github.com/dzeban/restrict-memory/blob/master/memrestrict.c
[4]: https://github.com/dzeban/restrict-memory/blob/master/ptrace-restrict.c
[5]: https://github.com/dzeban/cs/blob/master/number/randints.c
[6]: https://github.com/dzeban/cs/blob/master/number/rangeints.c
[7]: http://habrahabr.ru/post/266557/#habracut

Pages: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 210