RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 210
[>] Как устроен цвет
habra.15
habrabot(difrex,1) — All
2015-07-19 19:30:03


Почему формальное определение цвета то ли есть, то ли нет, и связано ли это с тем, что его дал тот самый Шрёдингер? Что имел в виду Вейнберг, когда назвал свою революционную [статью «геометрия цветов»][1]? Почему у цветового треугольника два угла, хотя интуитивно кажется, что должен быть один? Почему обычный детский рисунок показывает, что у автора всё в порядке с цветовосприятием, и зачем художник-академист всю жизнь учится его отключать? Почему в цветовом пространстве находятся кластеры, но они не находятся? Почему любая женщина знает о явлении метамерии окрасок, а ученые всё время забывают? Сколько должно быть цветовых каналов у хорошего фотоаппарата? А у монитора? А почему ответ разный? А красок у принтера? Ответы на эти и другие вопросы в очередной лекции, которая была прочитана на факультете компьютерных наук, открытом в Вышке при поддержке Яндекса.




Лектор — Дмитрий Николаев, заведующий сектором зрительных систем в Институте проблем передачи информации им. А.А. Харкевича РАН. Кандидат физико-математических наук, защитил [диссертацию][2] на тему «Алгоритмы цветовой сегментации, применимые в условиях сложного освещения сцены». [Читать дальше →][3]

[1]: http://link.springer.com/article/10.1007/BF00762021#page-1
[2]: http://www.phys.msu.ru/upload/iblock/c6e/2004-00-00-nikolaev.pdf
[3]: http://habrahabr.ru/post/262735/#habracut

[>] Google Chrome внедрил дополнительные механизмы безопасности для Flash Player
habra.15
habrabot(difrex,1) — All
2015-07-19 21:00:02


Мы писали ранее, что разработчики веб-браузера Google Chrome для Windows добавляли в него дополнительные функции противодействия эксплойтам. Речь идет о механизмах [64-битных вкладок][1], High Entropy ASLR, а также об [отключении][2] использования драйвера win32k.sys в sandboxed-процессах. Эти механизмы существенно усложняют для атакующих разработку рабочих RCE-эксплойтов, через которые можно получить полный доступ к системе через браузер. ![][3] В последней версии Chrome была [добавлена][4] новая функция для противодействия эксплойтам, которая прилагается к выпускаемому Adobe проигрывателю Flash Player. Недавно опубликованные данные об эксплойтах Flash Player показывают, что атакующие используют уязвимости buffer overflow, которые позволяют выполнять перезапись или порчу части широко используемого Flash vector объекта или буфера, за счет чего размещать в памяти данные шеллкода. [Читать дальше →][5]

[1]: http://habrahabr.ru/company/eset/blog/234713/
[2]: http://habrahabr.ru/company/eset/blog/253991/
[3]: https://habrastorage.org/files/994/6c7/02a/9946c702a166439d8a809cc2cde4fe70.png
[4]: http://googleprojectzero.blogspot.ru/2015/07/significant-flash-exploit-mitigations_16.html
[5]: http://habrahabr.ru/post/262997/#habracut

[>] [Перевод] Использование morph.io для веб-парсинга
habra.15
habrabot(difrex,1) — All
2015-07-19 22:30:04


Если вы читали предыдущие две статьи, [Веб-парсинг на Ruby][1] и [Продвинутый парсинг веб-сайтов с Mechanize][2], то у вас есть базовые знания как написать парсер, который получает структурированные данные с веб-сайта. Следующим логичным шагом будет запускать парсер регулярно, чтобы всегда иметь свежие данные. Этим как раз и занимается [morph.io][3] от талантливых людей из [OpenAustralia][4]. Morph.io позиционирует себя как «Heroku для парсеров». Вы можете выбрать либо запускать парсеры вручную, или им работать автоматически каждый день. При этом вы можете использовать API для извлечения данных в JSON/CSV и использования их в своем приложении или скачать sqlite базу с данными. Morph.io заполняет пробел, оставленный [Scraperwiki Classic][5]. Парсеры в morph.io хостятся на GitHub, что означает что вы можете их «форкнуть» и исправить в дальнейшем, если они перестанут работать. [![image][6]][7] [Читать дальше →][8]

[1]: http://habrahabr.ru/post/252379/
[2]: http://habrahabr.ru/post/253439/
[3]: https://morph.io/
[4]: https://www.openaustraliafoundation.org.au/
[5]: https://classic.scraperwiki.com/
[6]: https://habrastorage.org/getpro/habr/post_images/67a/9b9/bb8/67a9b9bb8daa45d7e0cd73ff3b220add.jpg
[7]: http://habrahabr.ru/post/262991/#habracut
[8]: http://habrahabr.ru/post/262991/#habracut

[>] Обзор новшеств Docker Engine с 1.0 до 1.7. Введение в Docker Compose
habra.15
habrabot(difrex,1) — All
2015-07-20 01:30:02


В прошлых статьях мы уже рассматривали [что такое Docker][1] и [как использовать Dockerfile и осуществлять коммуникацию между контейнерами][2]. Эти статьи были написаны по Docker 1.1.2. С тех пор в Docker появилось много полезного, о чем мы расскажем в этой статье. Также мы рассмотрим подробнее Docker Compose, утилиту, позволяющую определять мультиконтейнерное приложение со всеми зависимостями в одном файле и запускать это приложение в одну команду. Примеры будут продемонстрированы на облачном сервере в [InfoboxCloud][3]. [Читать дальше →][4]

[1]: https://infoboxcloud.ru/community/blog/iaas/149.html
[2]: https://infoboxcloud.ru/community/blog/iaas/200.html
[3]: http://infoboxcloud.ru
[4]: http://habrahabr.ru/post/263001/#habracut

[>] [Из песочницы] ZeroMQ: сокеты по-новому
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


В любом среднем или крупном приложении, будь оно desktop или web, для бизнеса или для личного пользования, программисту необходимо решить важную архитектурную задачу — как будут общаться между собой потоки, процессы, модули, ноды, кластера, и прочие части эко-системы его приложения. Многие разработчики решают идти по пути наименьшего сопротивления, возложив эту задачу, например, на СУБД. Скажем, один процесс положил данные в БД, второй прочитал, обработал — положил еще и так далее. Про обмен через файлы в наши годы уже стыдно говорить, но и такое случается. Другие же программисты пытаются создать какое-то свое, специализированное решение и, как правило, выбирают сокеты. Задача проектирования и разработки архитектуры приложения крайне интересная, но это отдельная тема. В данном посте хотел бы поделиться своим первым впечатлением от знакомства с библиотекой ZeroMQ. ZeroMQ предлагает разработчику некий высокий уровень абстракции при работе с «сокетами». Библиотека берет на себя часть забот по буферизации данных, обслуживанию очередей, установлению и восстановлению соединений, и прочие вещи. Вместо того, чтобы заниматься такими глупостями, вы можете сосредоточиться на главном — архитектуре и логике приложения. Однако, в этом мире бесплатный сыр только в мышеловке. Поэтому я постарался по мере сил и опыта выяснить, чем придется поплатиться за удобство, какие я нашел плюсы и минусы при применении данной библиотеки. [Читать дальше →][1]

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

[>] ZeroNights 2014: взломай и получи
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


![image][1] ZeroNights, пожалуй, единственная конференция по безопасности в России, с которой любой посетитель может вернуться не только с объемным багажом полезных знаний, применимых на практике, но и с солидным денежным призом ;) В этом году азартная составляющая мероприятия зашкаливает. С программой конференции можно ознакомиться здесь: [2014\.zeronights.ru/assets/files/schedule\_rus\_fin.pdf][2] Подробности наших активностей смотрите ниже. [Читать дальше →][3]

[1]: http://habrastorage.org/files/cac/eb8/a40/caceb8a40e9343df8cf535ccfbe6833d
[2]: http://2014.zeronights.ru/assets/files/schedule_rus_fin.pdf
[3]: http://habrahabr.ru/post/242319/#habracut

[>] ИБ по-американски. Часть 4. Разбираемся с «подгонкой» и «перекрытиями» и завершаем этот обзор
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


![][1] _\*Оставьте свою работу на рабочем месте!\*_ Итак, нелёгкий путь по <s>обзиранию</s> созданию краткого обзора NIST SP 800-53 подходит к логическому концу. Я рад, что мне удалось совершить задуманное и написать пусть небольшой, но законченный по содержанию цикл статей, не остановившись на первой или второй части. В дальнейшем, надеюсь, получится от случая к случаю делиться с общественностью своими соображениями на тему ИБ, ИТ и аудита. Итак, в этой статье будет наконец-то поведано о выборе набора контролей безопасности, подгонке его под нужды конкретной организации и создании так называемых перекрытий «overlays», применимых вне масштабов отдельной организации. Ссылки на предыдущие статьи: [ИБ по-американски. Часть 1. Что такое NIST 800-53 и как выглядят контроли безопасности?][2] [ИБ по-американски. Часть 2. А можно поподробнее о NIST 800-53 и причём тут управление рисками?][3] [ИБ по-американски. Часть 3. Что из себя представляет базовый набор контролей безопасности и как определять критичность информационных систем?][4] [ИБ по-американски. Часть 4. Разбираемся с «подгонкой» и «перекрытиями» и завершаем этот обзор][5] [Продолжаем читать внутри][6]

[1]: //habrastorage.org/files/adb/d07/3ed/adbd073edd824961abc2d78c2fec34f5.jpg
[2]: http://habrahabr.ru/post/238245/
[3]: http://habrahabr.ru/post/238951/
[4]: http://habrahabr.ru/post/238977/
[5]: http://habrahabr.ru/post/239097/
[6]: http://habrahabr.ru/post/239097/#habracut

[>] Пишем плагин для XBMC с собственным интерфейсом: часть III — API и микро-фреймворк
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04




#### Вступление

Это III часть цикла статей, посвященных написанию плагинов для XBMC с собственным интерфейсом. В предыдущих частях ([часть I][1] и [часть II][2]) я рассказал об основных принципах создания интерфейса плагинов XBMC и дал несколько простых примеров. В этой части я хочу совсем кратко рассказать о различных API для взаимодействия с XBMC, продемонстрировать написанный мною микро-фреймворк, упрощающий компоновку интерфейса. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/193704/
[2]: http://habrahabr.ru/post/194124/
[3]: http://habrahabr.ru/post/194380/#habracut

[>] Оптимизация для начинающих, или о пользе профилирования
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


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

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

[>] [Перевод] Типы данных наносят ответный удар
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


Это вторая часть моих размышлений на тему «Python, каким бы я хотел его видеть», и в ней мы более подробно рассмотрим систему типов. Для этого нам снова придётся углубиться в особенности реализации языка Python и его интерпретатора CPython. Если вы программист на языке Python, для вас типы данных всегда оставались за кадром. Они где-то там существуют сами по себе и как-то там взаимодействуют друг с другом, но чаще всего вы задумываетесь об их существовании только когда возникает ошибка. И тогда исключение говорит вам, что какой-то из типов данных ведёт себя не так, как вы от него ожидали. Python всегда гордился своей реализацией системы типов. Я помню, как много лет назад читал документацию, в которой был целый раздел о преимуществах утиной типизации. Давайте начистоту: да, в практических целях утиная типизация — хорошее решение. Если вы ничем не ограничены и нет нужды бороться с типами данных по причине их отсутствия, вы можете создавать очень красивые API. Особенно легко на Python получается решать повседневные задачи. Практически все API, которые я реализовывал на Python, не работали в других языках программирования. Даже такая простая вещь, как интерфейс для работы с командной строкой (библиотека [click][1]) просто не работает в других языках, и основная причина в том, что вам приходится беспрестанно бороться с типами данных. Не так давно поднимался вопрос добавления статической типизации в Python, и я искренне надеюсь, что лёд, наконец, тронулся. Постараюсь объяснить, почему я против явной типизации, и почему надеюсь, что Python никогда не пойдёт по этому пути. [Читать дальше →][2]

[1]: http://click.pocoo.org/
[2]: http://habrahabr.ru/post/242305/#habracut

[>] [Перевод] Принцип разделения ответственности и ORM
habra.15
habrabot(difrex,1) — All
2015-07-20 12:00:03


Я бы хотел обсудить принцип [разделения ответственности][1] (Separation of Concerns, SoC) в контексте ORM, а также посмотреть почему этот принцип так важен. Также мы рассмотрим примеры нарушения границ ответственности между доменной логикой и логикой сохранения данных. [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/Разделение_ответственности
[2]: http://habrahabr.ru/post/263027/#habracut

[>] Про модель, логику, ООП, разработку и остальное
habra.15
habrabot(difrex,1) — All
2015-07-20 12:30:02


Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так? Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн? Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны. Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон. [Читать дальше →][1]

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

[>] А что думали об антивирусах в прошлом?
habra.15
habrabot(difrex,1) — All
2015-07-20 13:30:02


Как известно, раньше (как минимум) была трава зеленее. Но не будем о прекрасном. Что думают о возможностях антивируса современные регуляторы на Хабре обсуждалось не раз (например можно почитать [тут][1]). Естественно, что попытки выработать требования к средствам защиты предпринимались наверно с момента появления вирусов — это вполне в интересах как государства, так и частных пользователей. И вроде бы логично, что накопленный опыт должен был приводить к тому, что с течением времени требования становятся все детальнее и точнее. Логично? А вот и нет! [Читать дальше →][2]

[1]: http://habrahabr.ru/post/262413
[2]: http://habrahabr.ru/post/263045/#habracut

[>] Анонс Brackets 1.0 и Extract for Brackets (Preview версия)
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


![image][1] Я думаю, что большое количество людей, занимающихся или интересующихся веб-разработкой давно уже опробовали open-source IDE [Brackets][2]. На хабре не раз упоминали о ней (например, [тут][3]), поэтому не буду много разглагольствовать и перейду к сути. Сегодня, спустя почти 3 года, в течение которых участвовало 245 контрибьюторов, наконец вышла версия 1.0 — способ объявить миру, что Brackets готов. Несмотря на то, что выпуск имеет версию 1.0, разработчики относятся к нему как и к любому другому релизу. Новые продолжат выпускаться так же часто как и сейчас — каждые 3-4 недели.

## Встречайте Extract for Brackets (preview)

Отдельно заслуживает внимания плагин Extract for Brackets, который наконец доступен для публичного тестирования, предназначенный упростить верстку веб-сайтов. [Читать дальше][4]

[1]: http://habrastorage.org/getpro/habr/post_images/130/ea2/4b1/130ea24b191831d0a1aad2677095c84a.png
[2]: http://brackets.io/
[3]: http://habrahabr.ru/post/190454/
[4]: http://habrahabr.ru/post/242297/#habracut

[>] Quotient filter
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


Quotient filter — это вероятностная структура данных, позволяющая проверить принадлежность элемента множеству. Она описана в 2011 г. как замена фильтру [Блума][1]. Ответ может быть: — элемент точно не принадлежит множеству; — элемент возможно принадлежит множеству. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/112069/
[2]: http://habrahabr.ru/post/242285/#habracut

[>] Забудьте о DAO, используйте Repository
habra.15
habrabot(difrex,1) — All
2015-07-20 13:30:02


Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих [здесь][1]. Остальным интересующимся добро пожаловать под кат. [Читать дальше →][2]

[1]: http://thinkinginobjects.com/2012/08/26/dont-use-dao-use-repository/
[2]: http://habrahabr.ru/post/263033/#habracut

[>] $jin.time — работаем с датами и временем правильно
habra.15
habrabot(difrex,1) — All
2015-07-20 14:00:02


Здравствуйте, меня зовут Дмитрий Карловский и я… очень стар. Годы уже не те, чтобы с лёгкостью разбираться в хитросплетениях мудрёных интерфейсов. Хочется чего-то относительно простого, но и достаточно мощного, чтобы не чувствовать себя калекой, который еле-еле пишет простейшую программу. В любом приложении рано или поздно появляется необходимость работы со временем: распарсить, как-то модифицировать, что-то вычислить, сериализовать. Дата и время — это довольно сложные штуки, которые подстраиваются под солнечные, лунные и земные циклы одновременно. При этом в году может быть разное число дней, а в дне — разное число часов, даже [в минуте не всегда 60 секунд][1]. Из-за этого работа со временем требует от программиста повышенной аккуратности и всё-равно [баги будут всплывать ещё очень долго][2]. Нет, я слишком стар для того, чтобы считать года миллисекундами — скоро мой возраст будет исчисляться уже миллиардами секунд. Пришло время воспользоваться чем-то более высокоуровневым. Тем, что наши предки называли стандартом [ISO8601][3], но многие до сих пор не в курсе что это такое и через какое место это стоит употреблять. Далее вы узнаете, как я избавился от геморроя путём смены городского минивена на спортивный велосипед :-) [Читать дальше →][4]

[1]: http://habrahabr.ru/post/146109/
[2]: http://habrahabr.ru/post/239423/
[3]: https://en.wikipedia.org/wiki/ISO_8601
[4]: http://habrahabr.ru/post/263041/#habracut

[>] Чистим домашний интернет от очень назойливой рекламы (Adblock для OpenWRT)
habra.15
habrabot(difrex,1) — All
2015-07-20 14:30:01


![][1] _Дело было вечером, делать было нечего..._ © С. В. Михалков _Навеяно [Как я bind\`ом вирусы искал…][2], а конкретно этой [веткой комментариев][3], надеюсь не поздно размещаю._ Сидел я и думал, телевизор Samsung, WinPhone,_ (а впоследствии может кофеварка и пылесос)_ показывают суперназойливую рекламу, надо с этим чтото делать, и раз в WinPhone и телевизор_(кофеварку, пылесос)_ плагина AdBlock нету, то он должен быть там где ходит их трафик, на роутере. [Читать дальше →][4]

[1]: https://habrastorage.org/files/271/fcb/efe/271fcbefe113421697c04cf09244a7be.png
[2]: http://habrahabr.ru/post/221917/
[3]: http://habrahabr.ru/post/221917/#comment_7568287
[4]: http://habrahabr.ru/post/263081/#habracut

[>] Угнать за 9 символов
habra.15
habrabot(difrex,1) — All
2015-07-20 14:30:02


Сегодня я расскажу вам историю об уязвимости, которая существовала в одном интернет-банке много лет. Её эксплуатация была настолько элементарной, а опасность была настолько не очевидна, что ни кто так и не обратил на неё внимание. С этим банком у меня была договорённость о поиске уязвимостей и все мои действия были санкционированными. В тот вечер я уже потратил приличное время на поиск более-менее критичной уязвимости и так не найдя ничего стоящего, было уже отчаялся. Но тут мой взгляд зацепился за один параметр в череде запросов к серверу в момент авторизации. К слову, этот банк использовал передовую и очень надежную технологию авторизации, а именно двухфакторную авторизацию через смс. Так вот, параметр GET запроса, на который я обратил внимание, имел вид: ` go=/path/to/some/page ` и формировался на стороне сервера для дальнейшей переадресации. Но проблемой было то, что путь для переадресации был относительным и добавлялся к домену сайта и поэтому я игнорировал этот запрос в своих предыдущих исследованиях. К тому же, что бы в нем существовала потенциальная уязвимость, должен был иметь место ряд факторов, а именно: 1). возможность при помощи значения параметра ` go `обеспечить переадресацию на сторонний домен 2). возможность на клиенте задавать значение этого параметра 3). и наконец, после авторизации при редиректе на сторонний домен должна передаться какая нибудь ценная информация В итоге, с малой надеждой на какой либо результат, я начал искать пути эксплуатации потенциальной уязвимости. [Читать дальше →][1]

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

[>] [Из песочницы] Автоматический поиск роутеров со стандартными паролями
habra.15
habrabot(difrex,1) — All
2015-07-20 15:00:02


Недавно мне пришла в голову банальная мысль, что большинство людей кладут на настройку своих роутеров, и на них можно зайти по дефолтным паролям. А много ли таких роутеров вдобавок открыты для входа из интернета, что делает их проходным двором? И как это по-быстрому проверить? Итак, задача: просканировать какую-нибудь подсеть и найти уязвимые роутеры. Условия выполнения: не более нескольких часов (на дворе всё-таки лето), используя только стандартные средства системы Linux. Да, я в курсе про проекты типа Kali и вагоны «хакерского» софта в них, но найти нужную программу, которая сделала бы это прямо «из коробки» мне сходу не удалось, а время-то идёт… Да и интереснее самому. Первая мысль, которая приходит в голову: сканировать nmap'ом по открытому 80 порту. Но что делать с огромным зоопарком веб-морд? Ведь цель — не написать универсальный комбайн-уничтожитель роутеров, а небольшой proof-of-concept. А нет ли какой-нибудь унифицированной системы авторизации на роутерах? Конечно же есть — Telnet! Начинаем! [Читать дальше →][1]

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

[>] Почему буфер должен расти экспоненциально
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


Сотрудник Mozilla Николас Нетеркот опубликовал заметку с очень [чётким объяснением][1], почему размер буфера памяти для программы нужно увеличивать экспоненциально, а не линейно. Предположим, что у нас есть структура данных, для которой нужно всё больше памяти, например, строка или вектор. Если новые элементы не помещаются в буфере, то создаётся новый буфер, туда копируются всё содержимое из старого, а затем старый буфер освобождается. Обычное этим занимается `realloc()`. Так вот. Представим, что наш изначальный 1-байтный буфер растёт по 1 байту до тех пор, пока не достигнет размера 1 МиБ. Сколько памяти мы задействовали для него кумулятивно?

1 + 2 + 3 + … + 1,048,575 + 1,048,576 = 549,756,338,176 байт

Неслабо, да? [Читать дальше →][2]

[1]: https://blog.mozilla.org/nnethercote/2014/11/04/please-grow-your-buffers-exponentially/
[2]: http://habrahabr.ru/post/242279/#habracut

[>] Бесплатный Code signing для Open Source от Certum
habra.14
habrabot(difrex,1) — All
2014-11-06 11:35:04


Запустив сегодня программу, описанную в [статье][1], я увидел следующее предупреждение:

<div style="text-align: center"><img src="//habrastorage.org/files/a33/1ba/cfa/a331bacfae894c808e66178043467e09.png" /></div>

Бросается в глаза необычный префикс, **Open source developer**. Кроме того, несколько дней назад я уже видел точно такой же префикс, с другим именем. Напрашивается вывод, что, скорее всего, существует какая-то программа выдачи подобных сертификатов. Несложный поиск показал следующее: [Что именно?][2]

[1]: http://habrahabr.ru/post/242199/
[2]: http://habrahabr.ru/post/242267/#habracut

[>] В Rust 1.0 исключений не будет
habra.14
habrabot(difrex,1) — All
2014-11-06 11:43:25


![Rust Logo][1]Сегодня Аарон Тюрон — разработчик, недавно присоединившийся к разработке Rust в Mozilla — [объявил][2] об отсрочке реализации какого-либо механизма исключений, кроме уже существующего макроса `try!` и типа `Result`, до неопределённого момента _после_ первого релиза языка программирования Rust. Это означает, что в Rust 1.0 будут отсутствовать исключения первого класса — то есть, полностью интегрированные с другими фичами языка. Для обработки ошибок в данной момент в Rust существует тип `Result { Ok(value), Err(why) }` и макрос `try!`. Тип `Result` представляет из себя перечисление (enum), похожее на `Option { Some(value), None }` и связанное с ним по смыслу. Вариант `None` типа `Option` говорит об отстутствии значения, а вариант `Err(why)` типа `Result` уточняет, почему значение отсутствует. Rust предлагает возвращать тип `Result` из функций, чтобы передавать значение возврата _или_ причину, по которой значение вернуть не удалось. Макрос `try!` в свою очередь позволяет автоматически возвращать `Err(why)` из текущей функции, если вызов другой функции не удался (применяется к объекту типа `Result`). [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/3e5/11e/a6f/3e511ea6f5963a2c86ed90176d924c50.png
[2]: https://github.com/rust-lang/rfcs/pull/243#issuecomment-61559683
[3]: http://habrahabr.ru/post/242269/#habracut

[>] [Из песочницы] Почему systemd — это плохо?
habra.14
habrabot(difrex,1) — All
2014-11-06 15:00:03


_Это перевод текста с сайта [boycottsystemd.org][1]._ Вокруг systemd уже несколько лет ходят «холивары». Systemd пришел к нам на замену System V Init в Linux. Есть как сторонники systemd, так и его противники. Давайте рассмотрим, чем же так плох systemd: [Читать дальше →][2]

[1]: http://boycottsystemd.org
[2]: http://habrahabr.ru/post/242495/#habracut

[>] [Перевод] Пишем код C на Cython
habra.14
habrabot(difrex,1) — All
2014-11-07 02:30:03


Последние два года я решаю все задачи исключительно на [Cython][1]. Это вовсе не значит, что я пишу на Питоне, а потом «Ситонизирую» это с использованием различных деклараций типов, нет, я просто пишу на Cython. Я использую «сырые» структуры и массивы C (а иногда и векторы C++) и маленькую обёртку вокруг malloc/free, которую я написал сам. Код работает практически так же быстро, как C/C++, потому что это и есть код на C/C++, украшенный синтаксическим сахаром. Это код на C/C++ с функционалом Python именно там, где мне это нужно и где я этого хочу. [Читать дальше →][2]

[1]: https://en.wikipedia.org/wiki/Cython
[2]: http://habrahabr.ru/post/242533/#habracut

[>] [Перевод] Ricochet — анонимный бессерверный протокол передачи мгновенных сообщений
habra.14
habrabot(difrex,1) — All
2014-11-07 09:00:04


Перевод вводной части и введения в техническое описание проекта с открытым исходным кодом **Ricochet** ([github][1]).

#### Анонимная бессерверная система передачи мгновенных сообщений, которая просто работает

Ricochet – это эксперимент с альтернативным методом передачи мгновенных сообщений, который не доверяет никому – не раскрывает вашу личность, список контактов или общение. — можно общаться без раскрытия личности или ip-адреса. — никто не может выяснить, с кем вы общаетесь или когда вы общаетесь (никаких мета-данных) — никаких серверов, которые можно было бы взломать, или операторов, которых можно было бы заставить выдать информацию о вас — кросс-платформенный и простой даже для обычных пользователей Примечание: проект недавно был переименован из Torsion. [Читать дальше →][2]

[1]: https://github.com/ricochet-im/ricochet
[2]: http://habrahabr.ru/post/242535/#habracut

[>] Software renderer — 2: растеризация и интерполяция атрибутов
habra.15
habrabot(difrex,1) — All
2015-07-20 15:00:02


Привет. В [прошлой статье][1] я описал математику, которая необходима для вывода трехмерной сцены на экран в виде сетки — т.е. мы остановились на моменте получения координат вершин в пространстве экрана. Следующий шаг — это «заполнение» полигонов из которых состоит объект, т.е. поиск пикселей, которые входят в изображение объекта на экране. Процесс поиска этих точек называется растеризацией. Мы так же хотим иметь возможность текстурировать и освещать объекты — для этого необходимо уметь интерполировать атрибуты, заданные в вершинах (например, текстурные координаты, нормали, цвет и другие). Наши входные данные — это набор полигонов (мы будем рассматривать только треугольники): координаты их вершин (система координат зависит от алгоритма) и значения атрибутов в каждой из этих вершин, которые в дальнейшем будут интерполироваться вдоль поверхности треугольника. Существует несколько подводных камней, которые я рассмотрю в этой статье:

* Правило заполнения пикселей (filling convention)
* Точность
* Коррекция перспективы при интерполяции аттрибутов (perspective-correct interpolation)

Я рассмотрю три подхода к растеризации:

* «стандартный» алгоритм, использующий наклон граней
* целый ряд алгоритмов, основанных на использовании уравнений граней полигона (traversal-алгоритмы)
* алгоритм растеризации в однородных координатах

Так же в конце будет ссылка на проект, который является примером реализации, оттуда же будут и примеры кода. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/243011/
[2]: http://habrahabr.ru/post/257107/#habracut

[>] Онлайн трансляция запуска Visual Studio 2015
habra.15
habrabot(difrex,1) — All
2015-07-20 16:00:02


![][1] Приглашаем вас сегодня, 20 июля в 18:30 (МСК), на [онлайн-мероприятие по запуску Visual Studio 2015][2]. Новая версия инструментария для разработчиков содержит массу новых функций и улучшений, которые, несомненно, облегчат ваши повседневные задачи. В рамках мероприятия мы расскажем вам о самых ярких новинках, продемонстрируем наиболее интересные возможности. Вы узнаете о кроссплатформенной разработке, интегрированных инструментах анализа производительности приложений, новинках, связанных с совместной работой в Team Foundation Server и Visual Studio Online и многом другом. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/a54/4e7/58d/a544e758d8486a6d9e5bf04fe7a99b3d.jpg
[2]: http://aka.ms/vs2015event
[3]: http://habrahabr.ru/post/263059/#habracut

[>] Чистим домашний интернет от очень назойливой рекламы (Ad's blocker для OpenWRT)
habra.15
habrabot(difrex,1) — All
2015-07-20 16:30:02


![][1] _Дело было вечером, делать было нечего..._ © С. В. Михалков _Навеяно [Как я bind\`ом вирусы искал…][2], а конкретно этой [веткой комментариев][3], надеюсь не поздно размещаю._ Сидел я и думал, телевизор Samsung, WinPhone,_ (а впоследствии может кофеварка и пылесос)_ показывают суперназойливую рекламу, надо с этим чтото делать, и раз в WinPhone и телевизор_(кофеварку, пылесос)_ плагина AdBlock нету, то он должен быть там где ходит их трафик, на роутере. [Читать дальше →][4]

[1]: https://habrastorage.org/files/3e7/b95/e3b/3e7b95e3baa040238bbc6a748025383c.png
[2]: http://habrahabr.ru/post/221917/
[3]: http://habrahabr.ru/post/221917/#comment_7568287
[4]: http://habrahabr.ru/post/263081/#habracut

[>] [Из песочницы] Утечка пользовательских данных в QIWI
habra.15
habrabot(difrex,1) — All
2015-07-20 18:00:04






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

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

[>] [Перевод] Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 1
habra.15
habrabot(difrex,1) — All
2015-07-20 18:00:04


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

[1]: https://habrastorage.org/files/293/6ac/abf/2936acabf56146e485b01c8b3327a688.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/263097/
[3]: http://habrahabr.ru/company/itinvest/blog/224353/
[4]: http://www.itinvest.ru/education/schedule/
[5]: http://habrahabr.ru/company/itinvest/blog/238839/
[6]: http://habrahabr.ru/post/263097/#habracut

[>] [Из песочницы] HA-Cluster на основе Pacemaker под контейнерную виртуализацию LXC и Docker
habra.15
habrabot(difrex,1) — All
2015-07-20 19:00:06


В этой статье я опишу установку и настройку Active/Active кластера на основе Pacemaker, Corosync 2.x и CLVM с использованием разделяемого хранилища. Покажу, как приспособить этот кластер для работы с контейнерами LXC и Docker. Опишу команды для работы с кластером. И припомню те грабли, в которые вляпался, что, надеюсь, облегчит судьбу следующим проходимцам. В качестве серверных дистрибутивов буду использовать CentOS 7 + epel и актуальные версии пакетов в них. Основной инструмент для работы с Pacemaker-ом будет PCS (pacemaker/corosync configuration system). ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/c26/72b/d5b/c2672bd5b53045b09bbe6e5e7db04dbb.png
[2]: http://habrahabr.ru/post/263091/#habracut

[>] Машинное обучение как сервис — бесплатно и в облаке
habra.14
habrabot(difrex,1) — All
2014-11-07 14:00:03


Мы уже писали о машинном обучении как сервисе в облаке Microsoft Azure [здесь][1]. И, совсем недавно, Microsoft решили открыть (как ранее с Azure Web Sites) возможность бесплатного тестирования этого тестирования без аккаунта Microsoft Azure, без кредитной карты. Отличная возможность посмотреть, что умеет Machine Learning в облаке. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/company/microsoft/blog/236823/
[2]: //habrastorage.org/files/382/9b3/c12/3829b3c1264b4a4ab6f922a19602020b.png
[3]: http://habrahabr.ru/post/242561/#habracut

[>] Skype повернулся лицом к людям?
habra.15
habrabot(difrex,1) — All
2015-07-20 19:00:06


![][1]Не столь давно Skype открыл для всех [Skype for Web (beta)][2]. Официально API (пока) не оглашено, и, вероятно, будет еще изменяться. Но! Можно забыть мучения со Skype4Com, пляски со Skype4Py, попрощаться со skype-open-source, выкинуть в корзину чтение SQLite'ом из профиля пользователя и т.п. Итак, с чего начать написание своего клиента/бота — [Читать дальше →][3]

[1]: https://habrastorage.org/files/958/773/fd4/958773fd4c674318937cdc445708e1e7.jpg
[2]: https://web.skype.com
[3]: http://habrahabr.ru/post/263099/#habracut

[>] Как Python и Jinja могут облегчить жизнь FPGA разработчику
habra.15
habrabot(difrex,1) — All
2015-07-20 19:00:06


Всем привет! Так бывает, что используемые языки программирования накладывают ограничение на то, что мы хотим сделать, доставляя неудобство при разработке. Что с этим делают разработчики? Либо смиряются, либо как-то пытаются выйти из положения. Один из вариантов — использование автогенерации кода. В этой статье я расскажу:

* как можно обойти одно из ограничений языка Verilog, применяемого при разработке ASIC/FPGA, используя автогенерацию кода с помощью **Python** и библиотеки **Jinja**.
* как можно ускорить разработку IP-ядер, сгенерировав модуль контрольно-статусных регистров из их описания.

Если интересно, добро пожаловать под кат! [Читать дальше →][1]

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

[>] [Перевод] Выразительный JavaScript: Поиск и обработка ошибок
habra.14
habrabot(difrex,1) — All
2014-11-07 23:30:04




#### Содержание



* [Введение][1]
* [Величины, типы и операторы][2]
* [Структура программ][3]
* [Функции][4]
* [Структуры данных: объекты и массивы][5]
* [Функции высшего порядка][6]
* [Тайная жизнь объектов][7]
* [Проект: электронная жизнь][8]
* [Обработка ошибок][9]
* Регулярные выражения
* Модули
* Проект: язык программирования
* JavaScript и браузер
* Document Object Model
* Обработка событий
* Проект: игра-платформер
* Рисуем на Canvas
* HTTP
* Формы и поля ввода
* Проект: Paint
* Node.js
* Проект: веб-сайт по обмену умениями
* [Песочница для кода][10]

_Отладка изначально вдвое сложнее написания кода. Поэтому, если вы пишете код настолько заумный, насколько можете, то по определению вы не способны отлаживать его. Брайан Керниган и П.Ж.Плауэр, «Основы программного стиля»_ _Юан-Ма написал небольшую программу, использующую много глобальных переменных и ужасных хаков. Ученик, читая программу, спросил его: «Вы предупреждали нас о подобных техниках, но при этом я нахожу их в вашей же программе. Как это возможно?» Мастер ответил: «Не нужно бежать за поливальным шлангом, если дом не горит». Мастер Юан-Ма, «Книга программирования»._ Программа – это кристаллизованная мысль. Иногда мысли путаются. Иногда при превращении мыслей в программу в код вкрадываются ошибки. В обоих случаях получается повреждённая программа. Недостатки в программах обычно называют ошибками. Это могут быть ошибки программиста или проблемы в системах, с которыми программа взаимодействует. Некоторые ошибки очевидны, другие – трудноуловимы, и могут скрываться в системах годами. Часто проблема возникает в тех ситуациях, возникновение которых программист изначально не предвидел. Иногда этих ситуаций нельзя избежать. Когда пользователя просят ввести его возраст, а он вводит «апельсин», это ставит программу в непростую ситуацию. Эти ситуации необходимо предвидеть и как-то обрабатывать. [Читать дальше →][11]

[1]: http://habrahabr.ru/post/240219/
[2]: http://habrahabr.ru/post/240223/
[3]: http://habrahabr.ru/post/240225/
[4]: http://habrahabr.ru/post/240349/
[5]: http://habrahabr.ru/post/240813/
[6]: http://habrahabr.ru/post/241155/
[7]: http://habrahabr.ru/post/241587/
[8]: http://habrahabr.ru/post/241776/
[9]: http://habrahabr.ru/post/242609/
[10]: http://eloquentjavascript.net/code
[11]: http://habrahabr.ru/post/242609/#habracut

[>] Пришла беда откуда не ждали, уязвимость XSS в сервисе Яндекс.Метрика
habra.15
habrabot(difrex,1) — All
2015-07-20 20:00:05


Доброе время суток хабравчане! Буквально на днях я опубликовал [статью][1] по документации Web API и нашлись люди, которые попробовали применить XSS на сервисе, который был на этом же домене. Но особо не получилось это сделать. Точнее получилось, но не на этом сервисе. За подробностями прошу под кат. ![][2] [Подробности][3]

[1]: http://habrahabr.ru/post/262813/
[2]: https://habrastorage.org/files/eb6/c2e/45e/eb6c2e45e81a4e26b38c8c85b161fd73.png
[3]: http://habrahabr.ru/post/263113/#habracut

[>] [Перевод] Киски: Рефакторинг
habra.15
habrabot(difrex,1) — All
2015-07-20 21:00:08


![image][1]Добрый день, Хабровчане! Продолжаю совмещать развитие навыков перевода c английского и изучение интересных, с моей точки зрения, материалов по программированию и делюсь с вами слегка _адаптированным_ переводом первой части из небольшого цикла статей про рефакторинг от голландца Matthias Noback, который живет в городе Зейст что вблизи Утрехта. По большей части, в трех статьях речь идет о рефакторинге, а именно о выделении отдельных сущностей и создании самостоятельных частей кода, которые затем удобно тестировать и модифицировать. Это, естественно, приведет к увеличению количества абстракций и усложнению всей задачи, но Noback без этого не может. Смысловое значение этой статьи не затронуто, а все изменения (заголовок и пара замен названия сервиса) сделаны лишь с целью разбавить довольную сухую и, надеюсь, простую в плане сложности материала статью, чтобы затем перейти к следующим частям всего цикла. [Все подробности, как обычно, под хабракатом..][2]

[1]: https://habrastorage.org/getpro/habr/post_images/578/29b/382/57829b3821b29ae5d8e6b439300320b8.jpg "Franz Marc - Girl with Cat, 1910"
[2]: http://habrahabr.ru/post/262995/#habracut

[>] [Из песочницы] Распознавание KCAPTCHA
habra.15
habrabot(difrex,1) — All
2015-07-20 23:30:05




### Введение

KCAPTCHA — это готовое решение, написанное на языке PHP, предлагающее программисту решение с одной стороны весьма защищенное, с другой — максимально малотребовательное к ресурсам и конфигурации хостинга. В этой статье речь пойдет о простом, в некоторой степени универсальном способе распознавания капчи, на примере KCAPTCHA, с реализацией на C#. Стоит заметить, что я ограничился 6-символьным вариантом kcaptcha, но обязательно расскажу о капчах переменной длины в последующих публикациях. [Читать дальше →][1]

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

[>] [Перевод] Веб приложение для генерации фотомозаики с легковесными потоками
habra.15
habrabot(difrex,1) — All
2015-07-21 10:30:06


_Это перевод блогпоста Сау Шон Чанга. В первой половине описывается его подход к созданию фотомозаики на Го, а во второй половине ускоряется выполнение программы за счёт добавления конкурентности (каналы, горутины). По неточностям перевода пишите в личку._ Несколько месяцев назад мой хороший друг [Сатиш Талим][1] предложил отличную идею — создать несколько соревнований на Го, чтобы прокачать умения Го программистов. Идея проекта — каждый месяц (или около того) придумывать программерскую задачку, которая будет представлять собой свежий и интересный вызов для Го сообщества. Победители получат призы, но более важно, что это попытка помочь друг другу и себе в частности. Сатиш попросил меня придумать задание и я с удовольствием его придумал для [третьего соревнования][2] (challenge #3). Будучи программистом веб приложений большую часть моей карьеры, естественной мыслью было придумать соревнование по созданию веб приложения. И недавно на хакатоне, [я написал скрипт на Руби для генерации мозаики][3], поэтому я подумал объединить эти идеи вместе в задаче по созданию веб приложения для генерации фотомозаики. ![][4] [Читать дальше →][5]

[1]: https://twitter.com/indianguru
[2]: http://golang-challenge.com/go-challenge3/
[3]: https://developer.yahoo.com/blogs/ydn/creating-photo-mosaics-yahoo-boss-image-search-7453.html
[4]: https://habrastorage.org/files/bc3/3df/49c/bc33df49c36546acac8155694b2ef4f5.png
[5]: http://habrahabr.ru/post/263019/#habracut

[>] Семь видов интерпретаторов виртуальной машины. В поисках самого быстрого
habra.15
habrabot(difrex,1) — All
2015-07-21 10:30:06




> Все проблемы в области Computer Science могут быть решены введением дополнительного уровня косвенности. За исключением одной: слишком большого числа уровней косвенности.
>
>
>
> All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection.

Программные интерпретаторы известны своей невысокой скоростью работы. В этой статье я расскажу, как их можно ускорить. Я давно уже [хотел][1] поподробней остановиться на создании интерпретаторов. Прямо таки обещал, в том числе самому себе. Однако серьёзный подход требовал использования более-менее реалистичного кода для примеров, а также проведения измерений производительности, подтверждающих (а иногда и опровергающих) мои аргументы. Но наконец-то я готов представить почтенной публике результаты, причём даже чуть более интересные, чем собирался. В данной статье будет описано семь способов построения программной ВМ для одной гостевой системы. От самых медленных мы проследуем к более быстрым, поочерёдно избавляясь от различных «неэффективностей» в коде, и в конце сравним их работу на примере одной программы. Тех, кто не боится ассемблерных листингов, испещрённого макросами кода на Си, обильно удобренного адресной арифметикой, goto и даже longjmp, а также программ, использующих копипаст во имя скорости или даже создающих куски самих себя, прошу пожаловать под кат. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/intel/blog/202926/
[2]: http://habrahabr.ru/post/261665/#habracut

[>] Виртуализация корпоративной инфраструктуры на OpentStack: доклад о новинках и подходах
habra.15
habrabot(difrex,1) — All
2015-07-21 10:30:06


![][1] _Как и обещали публикуем обзоры по следам [НР Education Day][2]. Это стенограмма очень толкового доклада. Первая часть — это об энтерпрайз виртуализации вообще, о разных ее вариантах, что нового и интересного появилось в виртуализации в корпоративной сети, об обновлениях в VMware 6 и т.д. Вторая часть — как этой виртуальной структурой мы будем управлять, об облаке на базе OpenStack, решение HP Helion, и многих других интересных моментах в корпоративной виртуализации_. [Читать дальше →][3]

[1]: https://habrastorage.org/files/8b6/1f4/c28/8b61f4c281b44deab3d8a9bb82706896.JPG
[2]: http://habrahabr.ru/company/muk/blog/261363/
[3]: http://habrahabr.ru/post/263043/#habracut

[>] Немного практической криптографии под .NET для чайников
habra.15
habrabot(difrex,1) — All
2015-07-21 10:30:06


[![image][1]][2] Это краткое введение в криптографию под .NET для чайников, как и следует из заголовка. Здесь будут простые вещи и никаких углубленных знаний. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/f3c/b5f/f0f/f3cb5ff0f3019c035c30c669123d6af8.jpg
[2]: http://habrahabr.ru/post/254909/
[3]: http://habrahabr.ru/post/254909/#habracut

[>] [Из песочницы] Алгоритм удаления узла из btree
habra.14
habrabot(difrex,1) — All
2014-11-08 00:30:03


Доброго времени суток! История данного текста такова. Ребёнку задали задание запрограммировать btree. Я иногда ему помогаю. Решил, что это тривиально. Но попытки наскоком решить задачу успехом не увенчались. Поиски сколько-нибудь разумного описания и/или кода также были тщетны. Зачёт сын давно сдал, но мой параноидальный характер заставил меня решить задачу. Может кому-нибудь пригодится. [Читать дальше →][1]

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

[>] Конференция 4SICS: уязвимый коллайдер, троян Havex и другие «русские угрозы»
habra.14
habrabot(difrex,1) — All
2014-11-08 12:30:04


[![image][1]][2] Современные АСУ ТП всё чаще оказываются уязвимы перед хакерами — однако вендоры и пользователи не торопятся признавать и исправлять опасную ситуацию. Это наблюдение стало основной темой для дискуссий на международном саммите по безопасности промышленных систем управления [4SICS][3], который прошёл в конце октября в Стокгольме. «Несмотря на всю интернет-революцию, мы до сих пор недостаточно озабочены безопасностью, поскольку старая IT-парадигма говорит нам: мы функционируем автономно, ни к кому не подключены, у нас собственный хитрый софт, и никто не сможет нас атаковать. Но реальность давно уже изменилась», — так выразился один из ключевых спикеров мероприятия Стефан Лёдерс, руководитель отдела безопасности Европейского центра ядерных исследований (CERN). [Читать дальше →][4]

[1]: http://habrastorage.org/getpro/habr/post_images/0ef/652/fbb/0ef652fbb068dfbc519aa50dd53bf775.png
[2]: http://habrahabr.ru/company/pt/blog/242589/
[3]: http://4sics.se/
[4]: http://habrahabr.ru/post/242589/#habracut

[>] Виртуализация на OpentStack: доклад о новинках и подходах к виртуализации корпоративной инфраструктуры
habra.15
habrabot(difrex,1) — All
2015-07-21 11:00:03


![][1] _Как и обещали публикуем обзоры по следам [НР Education Day][2]. Это стенограмма очень толкового доклада. Первая часть — это об энтерпрайз виртуализации вообще, о разных ее вариантах, что нового и интересного появилось в виртуализации в корпоративной сети, об обновлениях в VMware 6 и т.д. Вторая часть — как этой виртуальной структурой мы будем управлять, об облаке на базе OpenStack, решение HP Helion, и многих других интересных моментах в корпоративной виртуализации_. [Читать дальше →][3]

[1]: https://habrastorage.org/files/8b6/1f4/c28/8b61f4c281b44deab3d8a9bb82706896.JPG
[2]: http://habrahabr.ru/company/muk/blog/261363/
[3]: http://habrahabr.ru/post/263043/#habracut

[>] [Перевод] Веб приложение для генерации фотомозаики с легковесными потоками на Го
habra.15
habrabot(difrex,1) — All
2015-07-21 11:30:03


_Это перевод блогпоста Сау Шон Чанга. В первой половине описывается его подход к созданию фотомозаики на Го, а во второй половине ускоряется выполнение программы за счёт добавления конкурентности (каналы, горутины). По неточностям перевода пишите в личку._ Несколько месяцев назад мой хороший друг [Сатиш Талим][1] предложил отличную идею — создать несколько соревнований на Го, чтобы прокачать умения Го программистов. Идея проекта — каждый месяц (или около того) придумывать программерскую задачку, которая будет представлять собой свежий и интересный вызов для Го сообщества. Победители получат призы, но более важно, что это попытка помочь друг другу и себе в частности. Сатиш попросил меня придумать задание и я с удовольствием его придумал для [третьего соревнования][2] (challenge #3). Будучи программистом веб приложений большую часть моей карьеры, естественной мыслью было придумать соревнование по созданию веб приложения. И недавно на хакатоне, [я написал скрипт на Руби для генерации мозаики][3], поэтому я подумал объединить эти идеи вместе в задаче по созданию веб приложения для генерации фотомозаики. ![][4] [Читать дальше →][5]

[1]: https://twitter.com/indianguru
[2]: http://golang-challenge.com/go-challenge3/
[3]: https://developer.yahoo.com/blogs/ydn/creating-photo-mosaics-yahoo-boss-image-search-7453.html
[4]: https://habrastorage.org/files/bc3/3df/49c/bc33df49c36546acac8155694b2ef4f5.png
[5]: http://habrahabr.ru/post/263019/#habracut

[>] Как провести Testing Dojo
habra.15
habrabot(difrex,1) — All
2015-07-21 12:30:02


![][1] Есть такая штука — Testing Dojo. Это соревнования, где участники ищут баги в приложениях. Кто больше найдёт — тот и победил. Обычно соревнуются командами. Если баги приходится искать вручную, участвуют только тестировщики. Если в бой идут автотесты, подключаются разработчики. В 2ГИС Testing Dojo уже давно стал доброй традицией: проводим его третий год подряд. За это время мы много поняли о том, как делать лучше. Под катом поделимся опытом: вдруг и вы захотите сделать свой Testing Dojo. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e8e/c1d/fe0/e8ec1dfe0bb745d98800afc44f2913fd.jpg
[2]: http://habrahabr.ru/post/263157/#habracut

[>] Brackets для сомневающихся и новичков
habra.14
habrabot(difrex,1) — All
2014-11-08 20:00:03




#### **СД: НЧ**

Без плагинов Brackets не лучше других редакторов, но с ними его стоит хотя бы попробовать.

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

Не так давно на Хабре было опубликовано множество статей, касающихся тем или иным образом редактора [Brackets][1]. У многих людей сразу же появились вполне справедливые вопросы:

1. Чем он лучше используемого мной %EDITOR\_NAME%?
2. Много ли под него плагинов?
3. Стоит ли связываться или лучше использовать какую-нибудь известную IDE или текстовый редактор?

Надеюсь, после чтения этой статьи каждый сможет найти для себя ответы на эти вопросы. [Читать дальше →][2]

[1]: http://brackets.io
[2]: http://habrahabr.ru/post/242623/#habracut

[>] Виртуализация на Open source: доклад о новинках и подходах к виртуализации корпоративной инфраструктуры
habra.15
habrabot(difrex,1) — All
2015-07-21 12:30:02


![][1] _Как и обещали публикуем обзоры по следам [НР Education Day][2]. Это стенограмма очень толкового доклада. Первая часть — это об энтерпрайз виртуализации вообще, о разных ее вариантах, что нового и интересного появилось в виртуализации в корпоративной сети, об обновлениях в VMware 6 и т.д. Вторая часть — как этой виртуальной структурой мы будем управлять, об облаке на базе OpenStack, решение HP Helion, и многих других интересных моментах в корпоративной виртуализации_. [Читать дальше →][3]

[1]: https://habrastorage.org/files/8b6/1f4/c28/8b61f4c281b44deab3d8a9bb82706896.JPG
[2]: http://habrahabr.ru/company/muk/blog/261363/
[3]: http://habrahabr.ru/post/263043/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 210