RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 41
[>] Выразительный JavaScript: Формы и поля форм
habra.14
habrabot(difrex,1) — All
2014-12-13 08:00:02




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



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

_I shall this very day, at Doctor’s feast, My bounden service duly pay thee. But one thing!—For insurance’ sake, I pray thee, Grant me a line or two, at least. Mephistopheles, in Goethe's Faust_ Формы были кратко представлены в предыдущей главе в качестве способа передачи информации, введённой пользователем, через HTTP. Они были разработаны в вебе до появления JavaScript, с тем расчётом, что взаимодействие с сервером происходит при переходе на другую страницу. Но их элементы являются частями DOM, как и остальные части страницы, а элементы DOM, представляющие поля формы, поддерживают несколько свойств и событий, которых нет у других элементов. Это делает возможным просматривать и управлять полями ввода из программ JavaScript и добавлять функциональности к классическим формам или использовать формы и поля как основу для построения приложения. [Читать дальше →][21]

[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://habrahabr.ru/post/242695/
[11]: http://habrahabr.ru/post/243273/
[12]: http://habrahabr.ru/post/243277/
[13]: http://habrahabr.ru/post/243311/
[14]: http://habrahabr.ru/post/243815/
[15]: http://habrahabr.ru/post/244041/
[16]: http://habrahabr.ru/post/244405/
[17]: http://habrahabr.ru/post/244545/
[18]: http://habrahabr.ru/post/245145/
[19]: http://habrahabr.ru/post/245731/
[20]: http://eloquentjavascript.net/code
[21]: http://habrahabr.ru/post/245731/#habracut

[>] CPU vs GPU. Distance field
habra.14
habrabot(difrex,1) — All
2014-12-13 09:30:03


![][1]Привет всем. Я уже однажды писал про Distance Field, и приводил реализацию «эвристическим» кодом дающую неплохую скорость: [habrahabr.ru/post/186482/][2]

#### Зачем он нужен?

DField можно применять:

* Для значительного повышения качества шрифтов
* Для эффектов например горения контура. Один из эффектов я приводил в своей предыдущей статье
* Для эффекта «metaballs» но в 2д и для любых сложных шейпов. (возможно я когда-нибудь приведу пример реализации этого эффекта)
* А в данный момент DField мне нужен для качественного сглаживания углов и удаления мелких деталей.

И если в первых двух случаях мы можем заранее вычислить DField, то для других эффектов нам нужно просчитывать его в реальном времени. В статье будет рассмотрен наиболее популярный, я бы сказал классический Chamfer distance (CDA) с кучей картинок, объясняющих принцип его работы, а так же рассмотрен двухпроходный алгоритм на GPU. Оба алгоритма [реализованы в демонстрационных программах на FPC][3]. [Читать дальше →][4]

[1]: //habrastorage.org/files/699/ff7/4e5/699ff74e5715436c9b7ee44a814690e2.png
[2]: http://habrahabr.ru/post/186482/
[3]: https://sourceforge.net/projects/dfsamples/
[4]: http://habrahabr.ru/post/245729/#habracut

[>] Об удобной навигации и отладке C++ кода в Vim
habra.14
habrabot(difrex,1) — All
2014-12-13 13:00:03


Компания, где я работаю, разрабатывает программное обеспечение на C++ под Linux. Долгое время мы использовали Qt Creator, с редкими ребятами работающими из Emacs и Vim. Когда я сам попытался пересесть на Vim, я понял, что ситуация с плагинами для разработки на С++ очень не простая. Поработав немного с CTags, я быстро понял, что без напильника работать в Vim будет очень сложно. К сожалению, с ростом опыта работы с Vim редактор в Qt Creator в режиме эмуляции устраивал меня все меньше, и в какой-то момент я решил потратить немного времени и разобраться, как же сделать из Vim нормальную среду. Я очертил для себя четыре вещи, которые я бы хотел от среды разработки, и которых мне бы хватило в Vim, чтобы полностью на него перейти: 1. Автодополнение 2. Навигация по коду 3. Отладка прямо из среды 4. Интеграция с Git (в частности Blame прямо в редакторе, и Git Grep) Автодополнение в Vim — это решенная проблема, и название у решения [YouCompleteMe][1]. Это очень качественный плагин, который реализует автодополнение для большого количества языков программирования, в частности Python и C++. Ходят слухи, что внутри Google YouCompleteMe решает и вторую проблему с навигацией кода, но использует для этого внутренные инструменты гугла для индексирования. Интеграция с Git в какой-то степени решена с помощью [vim-fugitive][2]. Это не такая комплексная интеграция, как бывает у Jet Brains, или в Visual Studio, но сравнимая с тем, что предлагает Qt Creator. Те два сценария, которые нужны были мне: blame и grep — работают хорошо. Отладка и навигация были проблемами, решенными гораздо хуже. В этой статье я расскажу о плагине, который мы написали для навигации по С++ коду. В конце статьи я также расскажу о том, как мы для себя решили проблему с интегрированным отладчиком. [Читать дальше →][3]

[1]: https://github.com/Valloric/YouCompleteMe
[2]: https://github.com/tpope/vim-fugitive
[3]: http://habrahabr.ru/post/245681/#habracut

[>] Google Chrome пометит HTTP-сайты как небезопасные
habra.14
habrabot(difrex,1) — All
2014-12-13 19:30:02


Разработчики веб-браузера Google Chrome [обещают][1] пометить веб-сайты, которые используют простое HTTP-подключение с клиентом как небезопасные и предлагают всем другим веб-приложениям (User Agent) сделать то же самое. Таким образом, пользователям хотят дать понять, что это простое подключение не обеспечивает необходимого уровня безопасности при передачи данных. Предполагается, что теперь сам браузер будет различать типы безопасности подключения к серверу для уведомления об этом клиента: безопасное (Secure), сомнительное (Dubious) и небезопасное (Non-secure). ![][2]

> We, the Chrome Security Team, propose that user agents (UAs)
>
> ** gradually change their UX to display non-secure origins as affirmatively non-secure**
>
> . We intend to devise and begin deploying a transition plan for Chrome in 2015.

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

[1]: https://www.chromium.org/Home/chromium-security/marking-http-as-non-secure
[2]: //habrastorage.org/files/ab5/681/773/ab56817731f3493894d46f2eb511b8d1.png
[3]: http://habrahabr.ru/post/245759/#habracut

[>] Выразительный JavaScript: Проект: программа Paint
habra.14
habrabot(difrex,1) — All
2014-12-14 02:00:04




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



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

_Я смотрю на многообразие цветов. Я смотрю на пустой холст. Затем я пытаюсь нанести цвета как слова, из которых возникают поэмы, как ноты, из которых возникает музыка. Жоан Миро_ Материал предыдущих глав даёт вам всё необходимое для создания простого веб-приложения. Именно этим мы и займёмся. Наше приложение будет программой для рисования в браузере, схожей с Microsoft Paint. С его помощью можно будет открывать файлы с изображениями, малевать на них мышкой и сохранять обратно. Вот, как это будет выглядеть: [Читать дальше →][22]

[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://habrahabr.ru/post/242695/
[11]: http://habrahabr.ru/post/243273/
[12]: http://habrahabr.ru/post/243277/
[13]: http://habrahabr.ru/post/243311/
[14]: http://habrahabr.ru/post/243815/
[15]: http://habrahabr.ru/post/244041/
[16]: http://habrahabr.ru/post/244405/
[17]: http://habrahabr.ru/post/244545/
[18]: http://habrahabr.ru/post/245145/
[19]: http://habrahabr.ru/post/245731/
[20]: http://habrahabr.ru/post/245767/
[21]: http://eloquentjavascript.net/code
[22]: http://habrahabr.ru/post/245767/#habracut

[>] [Перевод] Выразительный JavaScript: Node.js
habra.14
habrabot(difrex,1) — All
2014-12-14 06:00:03




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



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

_Ученик спросил: «Программисты встарь использовали только простые компьютеры и программировали без языков, но они делали прекрасные программы. Почему мы используем сложные компьютеры и языки программирования?». Фу-Тзу ответил: «Строители встарь использовали только палки и глину, но они делали прекрасные хижины». Мастер Юан-Ма, «Книга программирования»_ На текущий момент вы учили язык JavaScript и использовали его в единственном окружении: в браузере. В этой и следующей главе мы кратко представим вам Node.js, программу, которая позволяет применять навыки JavaScript вне браузера. С ней вы можете написать всё, от утилит командной строки до динамических HTTP серверов. Эти главы посвящены обучению важным идеям, составляющим Node.js и предназначены для передачи вам достаточного количества информации, чтобы вы могли писать полезные программы в этой среде. Они не пытаются быть всеобъемлющими справочниками по Node. Код из предыдущих глав вы могли писать и исполнять прямо в браузере, но код из этой главы написан для Node и в браузере работать не будет. Если вы хотите сразу запускать код из этой главы, начните с установки Node с сайта nodejs.org для вашей операционки. Также на этом сайте вы найдёте документацию по Node и его встроенным модулям. [Читать дальше →][23]

[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://habrahabr.ru/post/242695/
[11]: http://habrahabr.ru/post/243273/
[12]: http://habrahabr.ru/post/243277/
[13]: http://habrahabr.ru/post/243311/
[14]: http://habrahabr.ru/post/243815/
[15]: http://habrahabr.ru/post/244041/
[16]: http://habrahabr.ru/post/244405/
[17]: http://habrahabr.ru/post/244545/
[18]: http://habrahabr.ru/post/245145/
[19]: http://habrahabr.ru/post/245731/
[20]: http://habrahabr.ru/post/245767/
[21]: http://habrahabr.ru/post/245775/
[22]: http://eloquentjavascript.net/code
[23]: http://habrahabr.ru/post/245775/#habracut

[>] Предпосвящение десятилетию Openbravo POS
habra.14
habrabot(difrex,1) — All
2014-12-14 15:30:04




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

В январе 2015 года исполняется 10 лет приложению [Openbravo POS][1]. За эти годы Openbravo POS(включая форки) стало лидером в мире СПО для автоматизации розничной торговли (POS, Point of Sale – торговая точка или более конкретно, рабочее место кассира). Данная статья предварительный итог того, что удалось и не удалось реализовать в проекте Openbravo POS за прошедшие 10 лет.

#### История имени





Отцом основателем, бессменным руководителем и практически единоличным коммитером проекта был [Эдриан Ромеро][2] из Испании. У проекта изначальное название с 2005 по 2007 год было Tina POS, но в августе 2007 года возник конфликт с этой торговой маркой и пришлось переименовать проект в Libre POS. В отличии от первого, второе название не продержалось и пол года, так как Эдриан перешёл работать в [Openbravo][3] и первая часть названия была «забрендирована», оставив от старого только «POS» на конце, что подчёркивало с этого момента принадлежность проекта к экосистеме данной ERP-системы в качестве дополнения в сфере розничной торговли. Также в феврале 2008 года вышла и первая версия Openbravo POS сразу за номером 2.00. [Читать дальше →][4]

[1]: https://sourceforge.net/projects/openbravopos/
[2]: http://adrianrcblog.blogspot.com/
[3]: http://www.openbravo.com/
[4]: http://habrahabr.ru/post/245765/#habracut

[>] Сказ о том, как мы в хакатонах учавствовали, или Страх и Ненависть в Кремниевой Долине
habra.14
habrabot(difrex,1) — All
2014-12-14 18:30:02


![][1] Все началось минувшим летом, когда нам с товарищем «по оружию» немного взгрустнулось, и мы решили, что примем участие в значимых и интересных нам «развлекательно развивающих соревнованиях с элементами программирования», или, как их называют треклятые буржуи, хакатонах. Не долго думая, мы остановили наш взор на Долине из Кремния, так как событий подобной тематики тут много и есть высокий шанс найти интересные нам. С тех пор мы поучавствовали в ни много ни мало 3 хакатонах, тем самым лишившись порядка 40 часов сна. Сей сказ повествует о наших впечатлениях, сделанных нами проектах и атмосфере вокруг описываемых событий. [Начнем же.][2]

[1]: //habrastorage.org/files/f7c/64e/941/f7c64e941405428ebe8ac4ac1e502689.jpeg
[2]: http://habrahabr.ru/post/245783/#habracut

[>] Сказ о том, как мы в хакатонах участвовали, или Страх и Ненависть в Кремниевой Долине
habra.14
habrabot(difrex,1) — All
2014-12-14 19:30:03


![][1] Все началось минувшим летом, когда нам с товарищем «по оружию» немного взгрустнулось, и мы решили, что примем участие в значимых и интересных нам «развлекательно развивающих соревнованиях с элементами программирования», или, как их называют треклятые буржуи, хакатонах. Не долго думая, мы остановили наш взор на Долине из Кремния, так как событий подобной тематики тут много и есть высокий шанс найти интересные нам. С тех пор мы поучавствовали в ни много ни мало 3 хакатонах, тем самым лишившись порядка 40 часов сна. Сей сказ повествует о наших впечатлениях, сделанных нами проектах и атмосфере вокруг описываемых событий. [Начнем же.][2]

[1]: //habrastorage.org/files/f7c/64e/941/f7c64e941405428ebe8ac4ac1e502689.jpeg
[2]: http://habrahabr.ru/post/245783/#habracut

[>] Конференция ZeroNights 2014 — как все было
habra.14
habrabot(difrex,1) — All
2014-12-15 07:30:03


Вот уже в четвертый раз в Москве прошла конференция, посвященная информационной безопасности — ZeroNights 2014. ![image][1] Как и в прошлом году, для того, чтобы попасть на ZeroNights, нужно было либо купить билет на мероприятие, либо выиграть его в HackQuest. О HackQuest мы объявляли [на Хабре][2], и, как и ожидалось, задания оказались достаточно высокой сложности. Вместо отведенных 24 часов на каждое задание, некоторые висели по трое суток без решения, зато с кучей подсказок. Как вам, например, взламывать программу, написанную на языке Limbo, которая выполняется в эмуляторе ОС Inferno, или написать прошивку для устройства на языке Verilog, которое подключено в качестве человека посередине между двумя другими устройствами, которые передают зашифрованные данные друг-другу? На 5 из 8 заданий участники опубликовали райтапы, с которыми вы можете ознакомиться чуть ниже. Конференция проводилась два дня: 13 и 14 ноября. Одновременно можно было посещать два трека, в которых читались доклады, либо же участвовать в воркшопах, в которых рассказывали и показывали крутые технические трюки, и, таким образом, учили вас. Также, все два дня работал Hardware Village — стенд с радио, RFID, NFC и проводным оборудованием для проведения атак. Воркшопы были двух типов: Fast Track — короткие 15-минутные доклады обо всем и Defensive Track — 20-минутые доклады о безопасности в какой-либо среде. Воркшопы были на самые разные темы: от how-to по инструментам и стандартным небезопасным настройкам роутеров, до взлома ключа AES-128-ECB через показания потребленной электроэнергии. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/3c8/958/d08/3c8958d083f838879d18bac86b14b9ae.jpg
[2]: http://habrahabr.ru/company/dsec/blog/238711/
[3]: http://habrahabr.ru/post/245203/#habracut

[>] [recovery mode] Сказ о том, как мы в хакатонах участвовали, или Страх и Ненависть в Кремниевой Долине
habra.14
habrabot(difrex,1) — All
2014-12-15 08:00:04


![][1] Все началось минувшим летом, когда нам с товарищем «по оружию» немного взгрустнулось, и мы решили, что примем участие в значимых и интересных нам «развлекательно развивающих соревнованиях с элементами программирования», или, как их называют треклятые буржуи, хакатонах. Не долго думая, мы остановили наш взор на Долине из Кремния, так как событий подобной тематики тут много и есть высокий шанс найти интересные нам. С тех пор мы поучаствовали в ни много ни мало 3 хакатонах, тем самым лишившись порядка 40 часов сна. Сей сказ повествует о наших впечатлениях, сделанных нами проектах и атмосфере вокруг описываемых событий. [Начнем же.][2]

[1]: //habrastorage.org/files/f7c/64e/941/f7c64e941405428ebe8ac4ac1e502689.jpeg
[2]: http://habrahabr.ru/post/245783/#habracut

[>] [Из песочницы] Как жить, если у тебя ноутбук, а экранов стало не хватать
habra.14
habrabot(difrex,1) — All
2014-12-15 16:30:02


Краткое HowTo о том, как жить, если у тебя ноутбук, а экранов стало не хватать. [Читать дальше →][1]

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

[>] Concurrency структуры в .net. ConcurrentQueue изнутри
habra.14
habrabot(difrex,1) — All
2014-12-15 19:30:03


ConcurrentQueue можно отнести к lock-free конкурентным структурам данных. В ее реализации нет блокировок (lock, Mutex…) и реализована она с использованием: — классической функции CompareExchange; — SpinWait — volatile (используется как memory-barrier) В основу ConcurrentQueue заложена структура ring-buffer ([кольцевой буфер][1]). [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D1%8C%D1%86%D0%B5%D0%B2%D0%BE%D0%B9_%D0%B1%D1%83%D1%84%D0%B5%D1%80
[2]: http://habrahabr.ru/post/245837/#habracut

[>] [Из песочницы] Простейшие Lock-Free объекты для двух потоков
habra.14
habrabot(difrex,1) — All
2014-12-15 20:00:03


Здесь было много статей об универсальных Lock-free объектах, однако, для некоторых частных случаев они излишне громоздки. Мой случай как раз таким и являлся: требовалось организовать одностороннюю передачу информации от одного потока другому. Главный поток запускает рабочий, после чего он может только запросить его остановку и никак больше управлять он им не может. В свою очередь рабочий поток может уведомлять главный о своем текущем состоянии (прогрессе выполнения), а также отсылать промежуточные результаты выполнения. Получается, что требуется только передача данных от рабочего к главному потоку. Разумеется, возможно, я изобрёл велосипед или, хуже того, велосипед с глюками. Поэтому комментарии и критика очень приветствуются! [Читать дальше →][1]

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

[>] [Из песочницы] Гирлянда на Raspberry Pi
habra.14
habrabot(difrex,1) — All
2014-12-15 20:00:03


Приближаются новогодние праздники, и было решено сделать что-то новогоднее с использованием имеющегося Raspberry Pi B-модели. До этого я использовал его в качестве веб-сервера. Затем немного игрался с GPIO на Python заставляя светиться светодиоды. Что ж, небольшая искусственная елка подсказала мне как можно совместить мое желание с моими навыками. Гирлянда на светодиодах! [Читать дальше →][1]

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

[>] [Из песочницы] Установка BIND9 DNS на CentOS
habra.14
habrabot(difrex,1) — All
2014-12-15 20:00:03


За все время работы не сталкивался с установкой DNS на сервер, а тут пришлось устанавливать Slave DNS на новом сервере клиента. Думаю, что порядок действий будет полезен, как админам так и web-разработчикам. [Читать дальше →][1]

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

[>] [Перевод] Теория категорий для программистов: предисловие
habra.14
habrabot(difrex,1) — All
2014-12-15 21:00:04


Вот уже некоторое время я обдумываю идею написать книгу о теории категорий для программистов. Не компьютерных теоретиков, программистов — скорее инженеров, чем ученых. Я знаю, что это звучит безумно, и я сам достаточно напуган. Я знаю, что есть огромная разница между наукой и техниой, потому, что я работал по обе стороны баррикад. Но у меня всегда был очень сильный порыв объяснить вещи. Я восхищаюсь Ричардрм Фейнманом, который был мастером простых объяснений. Я знаю, я не Фейнман, но я буду стараться изо всех сил. Я начинаю с публикации этого предисловия, которое должно мотивировать читателя изучить теорию категорий, и надеюсь на начало дискуссии и обратную связь. Я постараюсь в нескольких параграфах убедить вас, что эта книга написана для вас, и развеять все ваши сомнения в необходимости изучения этой, одной из самых абстрактных областей математики, в свое драгоценное свободное время. [Читать дальше →][1]

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

[>] [Перевод] Ад визуализации 1.1 — Книга 1: Обзор
habra.14
habrabot(difrex,1) — All
2014-12-15 21:30:03


![][1] Недостаток знаний иногда может оказаться достоинством, потому что вы наивно говорите себе: «Пфф… разве это сложно?» и просто погружаетесь в проблему с головой. Я начал эту статью с размышления: «Хм… Что же такое Draw Call?». За время «5-ти минутного» исследования я так и не нашел удовлетворяющего меня объяснения. Я проверил часы и, так как до сна оставалось еще 30 минут, сказал…

> Пфф… Разве это сложно написать самостоятельно?
>
>

… и просто начал. Это было два месяца назад и с тех пор я непрерывно читал, писал и задавал много вопросов. Это было самое сложное и низкоуровневое исследование, которое я когда-либо делал, и для меня непрограммиста это был кошмар состоящий из «да, но в этом особом случае...» и «зависит от реализации API...». Это был мой личный ад визуализации, но я прошел через него и принес нечто с собой: Четыре книги, каждая из которых представляет собой попытку объяснить одну из частей визуализации с точки зрения художника. Я надеюсь, что вам понравится. [Книга 1: Обзор][2]

[1]: //habrastorage.org/files/ed8/806/863/ed8806863e7447c48a6a59e735d3db06.png
[2]: http://habrahabr.ru/post/245713/#habracut

[>] Пишем конвертер для генератора мелодий от Nokia 3310
habra.14
habrabot(difrex,1) — All
2014-12-15 22:00:03




#### Любителям всего старого, но безумно интересного, добрый вечер!



> Помните такой телефон — Nokia 3310? Разумеется, помните! А такую штуку как синтезатор мелодий в нем? Тоже помните, отлично. А по старым, теплым и ламповым мелодиям скучаете? Вот и я скучаю. А еще мне на глаза попался сайтик с более чем сотней нотных листов для этого редактора. И что я должен был оставить эту прелесть без внимания? Нет уж. Что я сделал? Правильно! Взял и написал точно такой же генератор мелодий, который позволяет на выходе получить Wave — файл с мелодией. Интересно, что из этого получилось? Тогда прошу под кат.

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

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

[>] [recovery mode] Генератор случайных личностей
habra.14
habrabot(difrex,1) — All
2014-12-15 23:30:02


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

[1]: //habrastorage.org/files/ced/bba/255/cedbba255cf04b8795767a972877a45c.jpg
[2]: http://habrahabr.ru/post/245927/#habracut

[>] [Из песочницы] Как усилить защиту паролей «12345» от brute-force атаки
habra.14
habrabot(difrex,1) — All
2014-12-16 01:30:03


**Объект:** веб-форма входа в систему. **Дана задача:** усилить защиту аккаунта пользователя от подбора простого пароля к его аккаунту, используя минимум средств. Что такое минимум средств? Это не использовать таблицы-справочники для блокировки по IP-адресу и User-Agent. Не использовать лишние запросы к системе, не захламлять систему авторизации лишними циклами. И, выполнить совершенно волшебное требование — даже если бот введет нужные логин и пароль… не дать ему войти, а вот реального пользователя впустить. Можно ли так сделать? В теории, конечно, нет. Но в практике, в частном порядке и при определенных условиях, как оказалось, весьма возможно. Приглашаю под кат за подробностями. [Читать дальше →][1]

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

[>] [Из песочницы] Строим фронтэнд вместе с ErgoJS
habra.14
habrabot(difrex,1) — All
2014-12-16 02:00:03






Рад представить вашему вниманию js-фреймворк под названием **ErgoJS** для создания «насыщенных» веб-приложений. И да, я люблю велосипеды. [Самое интересное под катом][1]

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

[>] Как показать самые опасные уязвимости
habra.14
habrabot(difrex,1) — All
2014-12-16 05:00:02


По долгу службы мне часто приходится проводить инструментальный аудит безопасности различных предприятий. Процедура составления итогового отчета содержит одну неприятную особенность, от которой мне давно хотелось избавиться. Помимо наиболее опасных уязвимостей системы клиенту всегда надо показывать ссылки на общедоступные эксплойты для этих ошибок. И эти ссылки приходилось искать вручную. В большинстве случаев заказчик принимает какие-либо серьезные меры по защите — только если знает о хакерских инструментах, которые автоматизируют атаки через найденные у него уязвимости. Обнаруженные дыры сами по себе не пугают, а такие программы — очень даже: благодаря им натянуть черные шляпы может целая армия школьников, кулхацкеров, недовольных экс-сотрудников и диверсантов из конкурирующих организаций. Создатель Grsecurity Брэд Шпенглер говорил, что только публичные эксплойты производят изменения в общественном понимании уровня существующей безопасности, и мой опыт полностью подтверждает эту мысль. [![image][1]][2] В какой-то момент я понял, что поиск ссылок на эксплойты — работа хотя и важная, но настолько рутинная и механическая, что просто грех ее не автоматизировать. Вначале был написан простенький консольный скрипт, который постепенно обзавелся GUI и научился понимать различные форматы отчетов систем поиска уязвимостей. Все доработки и улучшения PT Exploit Explorer в дальнейшем проводились исходя из пожеланий пользователей, и этот процесс продолжается до сих пор. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/cb5/2a2/e19/cb52a2e19e92e3eaf383e144ac9786d9.jpg
[2]: http://habrahabr.ru/company/pt/blog/245885/
[3]: http://habrahabr.ru/post/245885/#habracut

[>] Контроль диапазонов целых чисел в FindBugs
habra.14
habrabot(difrex,1) — All
2014-12-16 12:00:02


![][1] [FindBugs][2] — это статический анализатор кода для Java с открытым исходным кодом (под [LGPL][3]). Он содержит множество детекторов, которые определяют те или иные проблемы в коде. С недавних пор я являюсь участником проекта и пишу для него новые детекторы. Об одном из них я и расскажу в этой статье. Также мы посмотрим примеры багов, найденных в реальных проектах. [Читать дальше →][4]

[1]: http://habr.habrastorage.org/post_images/825/895/c92/825895c9203cf34e9017a5576651ae2b.png
[2]: http://findbugs.sourceforge.net/
[3]: http://www.gnu.org/licenses/lgpl.html
[4]: http://habrahabr.ru/post/240121/#habracut

[>] [Перевод] Как я взломал Facebook
habra.14
habrabot(difrex,1) — All
2014-12-16 13:00:04


Хорошо, хорошо. Я не совсем «взломал Facebook». Я добился выполнение команды уровня операционной системы на одном из серверов _Facebook_. Рассказ, как я это сделал. [Читать дальше →][1]

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

[>] Тех деревня — отзывы людей, работающих в IT-сфере, о жизни в разных городах и странах
habra.14
habrabot(difrex,1) — All
2014-12-16 13:30:02


Как и многие стартаперы, мы иногда подумываем, куда бы переместиться территориально, ведь когда работаешь над ИТ-проектом, ты не привязан к конкретному месту и спокойно можешь выбрать комфортную для проживания страну. В целом, в интернете есть много статей о жизни программистов в тех или иных странах, но они все разбросаны по разным ресурсам, и если хочешь в общем познакомиться с несколькими странами и сравнить их, то это не всегда удобный процесс. Также, мы знали про [гуглотаблицу][1] о жизни и работе в других странах, которую заполняли пользователи Хабра (думаю, многие ее помнят), она супер информативна, конечно, но в то же время громоздка, и изучить ее быстро не так-то просто. В общем, мы решили, что миру срочно нужен специальный [сайт][2] с отзывами программистов о том, как им живется в других странах. Т.к. у нас был гуглодокумент, то оттуда и решили взять информацию для сайта. К сожалению, нам не удалось найти создателя документа и связаться с ним, но в любом случае этот сайт некоммерческий и сделан для удобства программистов, никакой монетизации здесь не планируется. Если создатель найдется, то с удовольствием напишем о нем в разделе «О проекте», т.к. без документа вряд ли сайт получился бы настолько информативным. Для визуализации информации решили использовать карту мира и разместить все отзывы прямо ней. Это показалось нам наиболее удобным для восприятия – если в одном городе несколько отзывов с разными оценками, то по ним выводится средний балл. И в целом сразу визуально видно, какие регионы наиболее комфортны для жизни. [Читать дальше →][3]

[1]: https://docs.google.com/spreadsheet/ccc?key=0AuZqi2H419JzcjlhVDN4X2FPbzRvcXZiZ19wQ0tZVEE&usp=drive_web#gid=0
[2]: http://techvillage.ru/
[3]: http://habrahabr.ru/post/245915/#habracut

[>] [Перевод] Введение в .NET Core
habra.14
habrabot(difrex,1) — All
2014-12-16 14:00:02


![][1] На конференции [connect()][2], мы [объявили, что .NET Core будет выпущен полностью как программное обеспечение с открытым исходным кодом][3]. В этой статье мы сделаем обзор .NET Core, расскажем, как мы собираемся его выпускать, как он соотносится с .NET Framework и что это все означает для кросс-платформенной разработки и разработки с открытым кодом. [Читать дальше →][4]

[1]: //habrastorage.org/files/009/eeb/26d/009eeb26d8f04e219e7d959b1f18bb0c.png
[2]: http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014
[3]: http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx
[4]: http://habrahabr.ru/post/245901/#habracut

[>] [Перевод] Категория: суть композиции
habra.14
habrabot(difrex,1) — All
2014-12-16 17:30:02


Категория — очень простая концепция. Категория состоит из объектов и стрелок, которые направлены между ними. Поэтому, категории так легко представить графически. Объект можно нарисовать в виде круга или точки, а стрелки — просто стрелки между ними. (Просто для разнообразия, я буду время от времени рисовать объекты, как поросят а стрелки, как фейерверки.) Но суть категории — композиция. Или, если вам больше нравится, суть композиции — категория. Стрелки компонуются так, что если у вас есть стрелка от объекта А к объекту B, и еще одна стрелка из объекта B в C, то должна быть стрелка, — их композиция, — от А до С. ![image][1] [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/7d1/3b7/684/7d13b7684e6761be619bde1b3e72e746.jpg
[2]: http://habrahabr.ru/post/246009/#habracut

[>] Захватываем полный контроль над чужим облаком Digital Ocean
habra.14
habrabot(difrex,1) — All
2014-12-16 18:30:01


Как и многие хабрапользователи, я пользуюсь «облачными» технологиями, в т.ч. арендую VPS (виртуальные сервера) в разных странах мира. Порядка двух лет я пользовался Амазоном и не сказать, чтобы был доволен, но хватало. В сентябре прошлого года я наткнулся на очень агрессивную PR компанию от Digital Ocean (DO) и решил воспользоваться их услугами. С того момента я забросил Амазон (ни разу не реклама) и полностью перешел на DO. ![image][1] И чем больше пользуешься каким-либо сервисом и чем больше доверяешь ему своих данных, тем более пристально смотришь как он работает :) [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/6a1/b01/d77/6a1b01d773bd770f01ac7e0b01078d75.png
[2]: http://habrahabr.ru/post/246025/#habracut

[>] 10 новых бесплатных онлайн-курсов на Stepic
habra.14
habrabot(difrex,1) — All
2014-12-16 18:30:02


Сегодня мы открыли запись на 10 новых бесплатных онлайн-курсов (MOOC) по предметам от линейной алгебры и дискретных структур до археологии фольклора и инвестиционного банкинга. В числе авторов – преподаватели и научные сотрудники из МФТИ, НИУ ВШЭ, МИАН, ГАИШ МГУ, СПбГУ и ИБ, МИСиС, ЕУ СПб. Большинство новых курсов разрабатывается по итогам конкурса Stepic Challenge, о котором мы [писали][1] ранее. ![][2] Преподаватели прямо сейчас ведут работу над записью материалов, поэтому если какой-то курс вас заинтересует, вы можете вносить предложения и идеи по его содержанию. Мы постараемся их учесть. **Список новых курсов:**

1. [Дискретные структуры][3] (7 марта 2015)
2. [Linear Algebra: Problems and Methods][4] (April 3, 2015) (курс на английском языке)
3. [Химическая эволюция Вселенной][5](15 апреля 2015)
4. [Компьютерная графика: основы][6] (9 марта 2015)
5. [Основы статистики][7] (15 февраля 2015)
6. [Инвестиционный банкинг изнутри][8] (6 апреля 2015)
7. [Археология фольклора: мифологические мотивы на карте мира][9] (2 февраля 2015)
8. [Управление интеллектуальной собственностью. Основы для инженеров][10] (20 апреля 2015)
9. [Журналистика и медиаграмотность][11] (31 марта 2015)
10. [Базовый курс подготовки к ОГЭ по математике][12] (1 февраля 2015)

[Подробнее о курсах][13]

[1]: http://habrahabr.ru/company/spbau/blog/229133/
[2]: //habrastorage.org/files/bf2/f48/856/bf2f48856d2e47c891f17cb54b169e2d.png
[3]: https://stepic.org/83
[4]: https://stepic.org/79
[5]: https://stepic.org/80
[6]: https://stepic.org/84
[7]: https://stepic.org/76
[8]: https://stepic.org/82
[9]: https://stepic.org/51
[10]: https://stepic.org/88
[11]: https://stepic.org/81
[12]: https://stepic.org/85
[13]: http://habrahabr.ru/post/245891/#habracut

[>] Поэтапный рост производительности при применении векторных инструкций перестановки от SSE до AVX3.1
habra.14
habrabot(difrex,1) — All
2014-12-16 20:00:03


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

[1]: https://software.intel.com/en-us/blogs/2013/avx-512-instructions
[2]: http://habrahabr.ru/post/245755/#habracut

[>] Оптимизация кода под Pebble
habra.14
habrabot(difrex,1) — All
2014-12-16 20:00:03


![][1]На Хабре уже было [несколько ][2][статей ][3]об общих принципах написания кода под Pebble. Для программирования используется язык C, а сам процесс разработки происходит в браузере, при этом компиляция происходит на удаленных серверах, и изменить ее параметры нет возможности, разве что установить Ubuntu и инсталлировать необходимые инструменты для офлайн-компиляции. Но даже такой ход не избавит основного ограничения – на устройстве доступно только 24 Кб оперативной памяти, которая используется и для скомпилированного кода, то есть действительно динамической памяти остается 5-10 Кб. И если для простых программ, которые используются как тонкие клиенты или дополнительные датчики для телефона, этого с головой достаточно, то для написания самодостаточной более или менее сложной игры, которой не нужен смартфон, этого откровенно мало. Вот здесь и понадобится оптимизация кода под размер. Свои шишки я уже набила, и поэтому предлагаю поучиться на моих ошибках, которые я объединила в 16 советов. Некоторые из них могут показаться капитанскими, от некоторых избавит хороший компилятор с правильными флагами компиляции, но, надеюсь, некоторые из них кому-нибудь да и будут полезными. [Читать дальше →][4]

[1]: //habrastorage.org/files/a0d/259/1d8/a0d2591d8e1947989a5459c8133fa42b.png
[2]: http://habrahabr.ru/post/202164/
[3]: http://habrahabr.ru/post/202164/
[4]: http://habrahabr.ru/post/241555/#habracut

[>] Сказ о том, как я дизассемблировал Supaplex и почти написал клон с 3D графикой
habra.14
habrabot(difrex,1) — All
2014-12-16 20:00:03


![Картинка для привлечения внимания][1] Я думаю, большинство людей, кто застал времена DOS и ранних Windows 9x, играли или хотя-бы слышали о такой замечательной игре, как Supaplex. Лично для меня — это игра-легенда. Я до сих пор с трепетом вспоминаю долгие зимние вечера, проведённые в попытке пройти какой-нибудь сложный уровень на стареньком 286-м. Так сложилось, что я программист. И не просто программист, а программист компьютерных игр. Так что, где-то в 2008 году я занялся написанием движка-«убийцы крузиса» (или что там было круто на тот момент, я уже не помню). Примерно через год меня настигло прозрение, что моих человеко-часов на проект уровня Unreal Engine не хватит. И я решил сделать легкую, «казуальную», версию движка и написать на ней пару простеньких игрушек. Мой выбор пал на клон Supaplex. Правда, на тот момент уже существовало несколько клонов под Windows и другие платформы, поэтому просто писать все с нуля было неинтересно. Зато в мою голову заползла крамольная мысль: а что, если дизассемблировать оригинальный Supaplex и сделать игру с логикой, «идентичной натуральной». Такая задача казалась крайне заманчивой, и я взялся за её осуществление. Я заказал 3D-модельки у одного хорошего знакомого фрилансера и, пока он был занят моделлингом, я приступил к изучению пациента. Сразу предупреждаю, что я уже не помню многих деталей и могу что-то забыть или приврать, всё-таки это было довольно давно. [Читать дальше →][2]

[1]: http://habrastorage.org/files/5ca/431/478/5ca43147885a436cbe43496f080a989c.jpg
[2]: http://habrahabr.ru/post/246027/#habracut

[>] Квантмех для защиты пластиковых карт
habra.14
habrabot(difrex,1) — All
2014-12-16 20:00:03


![][1] «Квантовый мир» уже просачивается в нашу реальность, о чем свидетельствует [статья на Ленте][2], которая пестрит перлами: «фотон пребывает сразу в нескольких местах» или «попытка подсмотреть эту процедуру аутентификации обрушит квантовую природу света» или «если бросить на карту квантовые фотоны». «Один мой знакомый» уже писал на Хабре про [квантовые деньги][3], а тут нидерландские ученые подхватили эстафету Стивена Виснера и прикрутили фотонную аутентификацию к пластиковым карточкам. [Оригинал статьи][4] в PDF. Сама статья интересная. (Опубликована вроде в серьезных источниках: журнале Optica и в пресс-релизе Американского оптического общества.) Опять же, в главной роли выступает [теорема о запрете клонирования][5], которая не позволяет скопировать ключ, основываясь не на технической сложности и математических допущениях, а на физической невозможности. Ждем ответа китайских нанохакеров. Решающее правило и устойчивость к атакам: ![][6] [Читать дальше →][7]

[1]: //habrastorage.org/files/222/9ab/bb8/2229abbb85794764824f57905fcf3908.jpg
[2]: http://lenta.ru/news/2014/12/15/quantumcards/
[3]: http://habrahabr.ru/company/web_payment_ru/blog/229699/
[4]: http://www.opticsinfobase.org/view_article.cfm?gotourl=http%3A%2F%2Fwww%2Eopticsinfobase%2Eorg%2FDirectPDFAccess%2F41E63E4E-B050-8AD3-19F4ED21917632CD_306292%2Foptica-1-6-421%2Epdf%3Fda%3D1%26id%3D306292%26seq%3D0%26mobile%3Dno&org=
[5]: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B5_%D0%BA%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
[6]: //habrastorage.org/files/941/cf4/452/941cf4452c84462ea92072c115cc2f8f.jpg
[7]: http://habrahabr.ru/post/245925/#habracut

[>] [Из песочницы] Установка и настройка CA Infrastcture Management. Часть первая. Performance Management
habra.14
habrabot(difrex,1) — All
2014-12-16 23:00:03


![][1] В последнее время на хабре стали всё чаще и чаще попадаться статьи, связанные с мониторингом. Описаны такие продукты как MS SCOM, IBM Tivoli, продукты от HP, Zabbix и даже The Dude, но почему-то я не смог найти ни одного описания (да и упоминаний почти нет) продуктов мониторинга от компании CA. Что ж не так давно ко мне в руки попало одно из их решений для мониторинга инфраструктуры, предназначенное в первую очередь для телекома и крупных организаций _CA Infrastcture Management_. [Читать дальше →][2]

[1]: //habrastorage.org/files/dcf/791/507/dcf791507fa84f7faf3dbb1b951ff35f.png
[2]: http://habrahabr.ru/post/246021/#habracut

[>] Самый простой deploy приложения на Ruby on Rails
habra.14
habrabot(difrex,1) — All
2014-12-17 01:00:02






Полгода назад я написал пост [Deploy приложения на RoR 4 с помощью Capistrano 3][1]. Прошло время, я получил много положительных отзывов, но были и отрицательные. Из них можно было понять следующее:

* Инструкция слишком сложная для новичка
* Очень много всего приходится делать «руками»

Я подумал и написал **[gem 'capistrano3-ubuntu-server-config'][2]**, который полностью настраивает Ваш «чистый» Ubuntu сервер. Всё, что Вам нужно сделать руками — создать нового пользователя и дать ему права visudo (причем давать ему права на passwordless sudo ему **не надо**). Он может:

* Настроить SSH (Добавить настройки 'PermitRootLogin no', 'UseDNS no', 'AllowUsers username')
* Создать и настроить swap (размер запрашивается)
* Сделать
* Установить из исходников и настроить как чистый **Nginx**, так и с модулем Pagespeed
* Установить **PostgreSQL** из репозитория, затем создать суперпользователя БД (имя пользователя и пароль запрашиваются)
* Установить из исходников и настроить **Redis**
* Установить **RVM** с последней версией **Ruby** и gem'ами Rails, Bundler
* Скопировать Ваш приватный ssh ключ (например для доступа к приватному git репозиторию) с локальной машины на сервер и добавить его в ~/.ssh/config
* Установить **imagemagick** из репозитория (Необходим для Paperclip, постоянно его забываю ставить)
* Установить любые дополнительные пакеты из репозитория (Запрашивает какие именно)

Можно запустить конфигурационный wizard, который узнает, что именно из вышеперечисленного необходимо сделать и заранее спросит все настройки, чтобы можно было потом пойти попить кофе, а можно запустить отдельные таски. Данный gem будет полезен не только Rails разработчикам, а всем, кто использует Capistrano для деплоя. Эта статья раскроет следующие темы:

* Использование gem'a [capistrano3-ubuntu-server-config][3]
* Использование gem'а [capistrano3-git-push][4]
* Моя текущая миниатюрная конфигурация Capistrano

[Узнать как задеплоить Ваше приложение за 5 минут активного времени][5]

[1]: http://habrahabr.ru/post/213269/
[2]: https://github.com/goooseman/capistrano3-ubuntu-server-prepare
[3]: https://github.com/goooseman/capistrano3-ubuntu-server-prepare
[4]: https://github.com/goooseman/capistrano3-git-push
[5]: http://habrahabr.ru/post/246011/#habracut

[>] [Перевод] Ад визуализации 1.1 — Книга 2: Проблемы
habra.14
habrabot(difrex,1) — All
2014-12-17 10:30:02


![][1]

* [Книга 1: Обзор][2]
* **Книга 2: Проблемы**
* Книга 3: Решения
* Книга 4: Заключение

Добро пожаловать во вторую книгу! Здесь мы изучим некоторые проблемы, которые могут возникнуть во время процесса визуализации. Но, для начала, немного практики: Знать о проблеме — полезно. Но действительно **прочувствовать** проблему гораздо лучше для понимания. Давайте попробуем поставить себя на место CPU/GPU. [Книга 2: Проблемы][3]

[1]: //habrastorage.org/files/c0d/2b0/bc4/c0d2b0bc40c04d25a1415903bb077f26.png
[2]: http://habrahabr.ru/post/245713/
[3]: http://habrahabr.ru/post/245823/#habracut

[>] Пошаговая инструкция: залог для сделок в bitcoin
habra.14
habrabot(difrex,1) — All
2014-12-17 13:00:04


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

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

[>] [Перевод] О медленном программировании
habra.14
habrabot(difrex,1) — All
2014-12-17 15:30:04




> От переводчика: при разработке
>
> [Web-payment.ru][1]
>
> , сайта с мониторингом обменников и множеством разделов о платежных системах, я на интуитивном уровне использовал принципы, описанные в этой статье. Подсознательно я их знал, но не мог сформулировать. Предлагаю вам ознакомиться с интересным подходом, которым поделился опытный программист, автор многих книг Jeffrey Ventrella.
>
>

![][2]Мой папа часто говорил мне: «Помедленнее, сынок, ты делаешь дело слишком быстро». Мне довелось поработать во многих высокотехнологичных стартапах в заливе Сан-Франциско. Сейчас мне 52 и я программирую медленно и внимательно. Меня можно считать кем-то вроде дизайнера, пищущего код. Читая пост дальше, вы и сами это поймете. Недавно, я работал над проектом вместе с группой молодых кодеров, которые верят в эффективность [очень быстрых][3], малых итеративных изменений в коде. Программировать медленно бок о бок с ними для меня было проблемой. Нам рекомендовали работать в одной общей базе кода, это как если бы мы вместе варили один большой котел супа, и при условии, что мы активно непрерывно мешали бы его, из него непременно появилось бы что-то чудесное и завершенное. [Читать дальше →][4]

[1]: http://web-payment.ru/
[2]: http://habrastorage.org/getpro/habr/post_images/9bd/471/977/9bd471977e2aaceacf4908d67ad78ac0.jpg
[3]: http://mrdias.com/2012/02/29/slow-down-you-are-programming-too-fast.html
[4]: http://habrahabr.ru/post/246081/#habracut

[>] Захватываем полный контроль над чужим облаком Digital Ocean (уязвимость в Doorkeeper)
habra.14
habrabot(difrex,1) — All
2014-12-17 15:30:05


Как и многие хабрапользователи, я пользуюсь «облачными» технологиями, в т.ч. арендую VPS (виртуальные сервера) в разных странах мира. Порядка двух лет я пользовался Амазоном и не сказать, чтобы был доволен, но хватало. В сентябре прошлого года я наткнулся на очень агрессивную PR компанию от Digital Ocean (DO) и решил воспользоваться их услугами. С того момента я забросил Амазон (ни разу не реклама) и полностью перешел на DO. ![image][1] И чем больше пользуешься каким-либо сервисом и чем больше доверяешь ему своих данных, тем более пристально смотришь, как он работает. [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/6a1/b01/d77/6a1b01d773bd770f01ac7e0b01078d75.png
[2]: http://habrahabr.ru/post/246025/#habracut

[>] [Перевод] Нет никакого потока
habra.14
habrabot(difrex,1) — All
2014-12-17 16:00:04


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

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

[>] Python Meetup 28.11.14: пакетирование, печать и баги
habra.14
habrabot(difrex,1) — All
2014-12-17 16:00:04


![Python Meetup Minsk][1]Всем привет! 28 ноября состоялась последняя в 2014 году встреча любителей языка программирования Python. Темы в этот раз обсуждались самые что ни на есть хардкорные: пакетирование кода и подготовка к печати документов со сложной структурой. А в рамках «свободного микрофона» была затронута проблема багтрекинга. [Читать дальше →][2]

[1]: http://habrastorage.org/files/991/15e/ec0/99115eec009b400797c91d8d8bdd7407.jpg
[2]: http://habrahabr.ru/post/246065/#habracut

[>] [Из песочницы] Установка и настройка CA Infrastructure Management. Часть первая. Performance Management
habra.14
habrabot(difrex,1) — All
2014-12-17 17:30:04


![][1] В последнее время на хабре стали всё чаще и чаще попадаться статьи, связанные с мониторингом. Описаны такие продукты как MS SCOM, IBM Tivoli, продукты от HP, Zabbix и даже The Dude, но почему-то я не смог найти ни одного описания (да и упоминаний почти нет) продуктов мониторинга от компании CA. Что ж не так давно ко мне в руки попало одно из их решений для мониторинга инфраструктуры, предназначенное в первую очередь для телекома и крупных организаций _CA Infrastructure Management_. [Читать дальше →][2]

[1]: //habrastorage.org/files/dcf/791/507/dcf791507fa84f7faf3dbb1b951ff35f.png
[2]: http://habrahabr.ru/post/246021/#habracut

[>] [Из песочницы] Структуры данных: 2-3 куча (2-3 heap)
habra.14
habrabot(difrex,1) — All
2014-12-17 18:00:03


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

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

[>] OpenStack, Docker и веб-терминал, или как мы делаем интерактивные упражнения для обучения Linux
habra.14
habrabot(difrex,1) — All
2014-12-17 18:30:02


В [статье][1] об онлайн-курсе «Введение в Linux» на образовательной платформе Stepic мы обещали рассказать о технической реализации нового типа интерактивных задач, который был впервые применен в этом курсе. Этот тип задач позволяет создавать на лету виртуальные серверы с Linux для работы через веб-терминал прямо в окне браузера. Автоматическая проверяющая система следит за корректностью выполнения заданий. Пример [задания из курса][2]: ![][3] В этой статье я хочу рассказать о проекте, который лег в основу нового типа заданий на Stepic. Я также расскажу о том, из каких компонентов состоит система, и как они взаимодействуют между собой, как и где создаются удаленные сервера, как работает веб-терминал и автоматическая проверяющая система. [Читать дальше →][4]

[1]: http://habrahabr.ru/company/spbau/blog/243473/
[2]: https://stepic.org/lesson/Terminal-основы-4758/step/14
[3]: //habrastorage.org/files/6c7/e3e/9c9/6c7e3e9c97404c0684ad48c1998dfc52.png
[4]: http://habrahabr.ru/post/246099/#habracut

[>] Максимальное XOR
habra.14
habrabot(difrex,1) — All
2014-12-17 19:30:03


Здравствуй, Хабр. И сразу к делу. Задача: _Есть два целых числа: **L** и **R**. Нужно найти максимальное значение **A** [xor][1] **B** на промежутке** [L; R]**, где **L ≤ A ≤ B ≤ R**._ Казалось бы ничего сложного. Сразу напрашивается решение простым перебором.

public int BruteForce(int one, int two)
{
int maxXor = 0;
while (one < two)
{
int oneTemp = one + 1;
while (oneTemp <= two)
{
int curXor = one ^ oneTemp;
if (maxXor < curXor) maxXor = curXor;
oneTemp++;
}
one++;
}

return maxXor;
}




Сложность этого решения O(n) = n. А что, если в интервале будет 1000000 чисел. Возьмем L = 1, а R = 1000001. Сколько времени понадобится cреднестатистическому компьютеру для того, чтобы посчитать максимальное значение xor на этом интервале? Моему ноутбуку потребовалось 1699914 миллисекунд. Существует решение, которое работает значительно быстрее, именно о нем и пойдет речь в этой статье. ![image][2] [Читать дальше →][3]

[1]: http://en.wikipedia.org/wiki/Exclusive_or
[2]: http://habrastorage.org/files/8c1/1c9/dde/8c11c9dde9b94df598c4ddd300a34ca7.png
[3]: http://habrahabr.ru/post/245801/#habracut

[>] Как отслеживание показателей и биллинг могут улучшить работу вашего облака OpenStack
habra.14
habrabot(difrex,1) — All
2014-12-17 19:30:03


_Автор: Джон Медоуз (John Meadows), Talligent_ [Примечание редактора: Ниже размещен гостевой пост Джона Медоуза (John Meadows) из Talligent, компании-разработчика биллингового решения OpenBook для платформы OpenStack. Хотите разместить гостевой пост? Обращайтесь к [Нику Чейсу (Nick Chase)][1].] [Читать дальше →][2]

[1]: mailto:nchase@mirantis.com
[2]: http://habrahabr.ru/post/246015/#habracut

[>] О ReactOS из первых рук или «очная ставка» с Алексеем Брагиным
habra.14
habrabot(difrex,1) — All
2014-12-17 19:30:03


![image][1] Мало кто знает, что [Институт системного программирования (ИСП) Роcсийской академии наук (РАН)][2] проводит ежемесячный научно-практический семинар «Технологии разработки и анализа программ». Мероприятие проходит при поддержке [МГУ][3] и [Microsoft Research][4] представляет собой аналог конференций [TED Talks][5]. В этот четверг гостем будет Алексей Брагин — президент Фонда «Реактос», который выступит с докладом на тему «Операционная система Реактос». Алексей ведёт учебную и научную работу, напрямую связанную с операционными системами – разработан и читается в МГТУ им. Н.Э.Баумана на кафедре ИУ9 собственный курс лекций и лабораторных работ, проводится ряд научно-исследовательских проектов, в том числе в сотрудничестве с университетами в Бельгии и Франции. Область научных интересов: функциональное и логическое программирование, операционные системы, криптография, экономика. В докладе будут рассмотрены основные технические аспекты разработки операционной системы ReactOS, а также приведён пример использования трёх независимых проектов (ReactOS, Wine, X Windows) для создания альтернативной реализации подсистемы Win32, которая может быть использована как в ReactOS, так и в самой Windows, например, для построения виртуальных сред для выполнения Win32-программ. [Читать дальше →][6]

[1]: http://habrastorage.org/getpro/habr/post_images/aa0/c86/4a5/aa0c864a5a8593c9a7d19b21cafca246.jpg
[2]: http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%81%D1%82%D0%B8%D1%82%D1%83%D1%82_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%A0%D0%90%D0%9D
[3]: http://www.cmc.msu.ru/
[4]: http://research.microsoft.com/en-us/default.aspx
[5]: https://ru.wikipedia.org/wiki/TED_(%D0%BA%D0%BE%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%86%D0%B8%D1%8F)
[6]: http://habrahabr.ru/post/246113/#habracut

[>] [Из песочницы] Linux, Open Source и современное телевидение
habra.14
habrabot(difrex,1) — All
2014-12-17 19:30:03


Примерно год назад было принято решение о запуске нового телеканала высокой чёткости. Встал вопрос о техническом оснащении имеющейся аппаратной по выпуске SD каналов, новым оборудованием. И первое что приходило в голову — расширить имеющийся комплекс Skylark, «докупив» оборудование. Посчитав примерные затраты, руководство пришло в лёгкий шок — цены кусались. И вот тут-то у меня родилась идея, построить эфирный комплекс на Linux. [Читать дальше →][1]

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

[>] Пилотный выпуск видео курса «Параллельное Программирование и Оптимизация для Intel Xeon Phi копроцессоров»
habra.14
habrabot(difrex,1) — All
2014-12-17 20:30:03


Привет, Хабр! Как указано в названии этого топика, я активно тружусь над созданием учебного видео курса о параллельном программировании и оптимизации кода для высоко-производительных систем на базе Intel'овских архитектур. Ниже представлена дополнительная информация об этом курсе, список покрываемых тем и лабораторных работ, а так же пилотных эпизод, который даст представление о содержании и формате этого курса. В текущем модуле на примере построения гистограммы будут показаны две оптимизационные техники для улучшения автоматической векторизации кода компилятором и приведены результаты производительности для Intel Xeon CPU и Intel Xeon Phi копроцессора.




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

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

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 41