RSS
Pages: 1 ... 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 210
[>] [Перевод] Вычисление числа Пи с помощью Intel Threading Building Blocks
habra.14
habrabot(difrex,1) — All
2015-06-11 15:30:02


Многие Android-устройства используют процессоры с несколькими вычислительными ядрами, поэтому в отрасли разработки мобильных приложений всё более важным становится умение создавать многопоточные программы. Компания Intel предлагает ценный инструментарий для разработки «параллельных» приложений – он называется **Intel Threading Building Blocks** (Intel TBB). По существу, Intel TBB представляет собой кросс-платформенную библиотеку шаблонов для создания параллельных программ. Она позволяет создавать и синхронизировать потоки данных, оставляя за кадром детали архитектуры и позволяя вам работать на высоком уровне абстрагирования. Intel TBB поддерживает все архитектуры. Что касается ОС Android, то следует использовать версию 4.3 и выше.



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

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

[>] Пишем SSL туннель на python
habra.14
habrabot(difrex,1) — All
2015-06-11 15:30:02


Возникла задача: есть приложение под Windows, которое делает HTTPS-запросы к серверу и получает ответы. После обновления сервера приложение перестало работать. Выяснилось, что на сервере изменилась версия SSL (перешли с SSLv3 на TLSv1), а наше приложение умеет работать только по SSLv3. Приложение никто не поддерживает уже давно и менять, перекомпилировать, тестировать не хотелось. Решено было сделать прослойку между приложением и сервером, которая будет транслировать SSLv3 в TLSv1 и наоборот. Я поискал какой-нибудь прокси в интернете, но сходу не нашел (плохо искал). Решил сделать прокси на питоне. Я не профессионал в питоне, но мне показалось что для этой задачи он хорошо подходит, и интересно параллельно по изучать питон на примере реальной задачи. [Читать дальше →][1]

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

[>] Операции как объекты
habra.14
habrabot(difrex,1) — All
2015-06-12 07:00:02


Не так давно мне пришлось обращаться к хранилищу ZooKeeper из кода на C++. Приличной С++-обёртки для сишной библиотеки `libzookeeper` не нашлось, поэтому её пришлось написать самому. В процессе реализации я существенно видоизменил подход авторов java-библиотеки к построению API и теперь хочу поделиться с вами причинами и результатами принятых решений. Несмотря на ключевые слова С++ и ZooKeeper, подход, описанный в статье, подходит для организации доступа к любым хранилищам, и вполне реализуем на языках, отличных от С++. [Читать дальше →][1]

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

[>] Управление и уборка в D
habra.14
habrabot(difrex,1) — All
2015-06-12 14:30:03


Доброго времени суток, хабр! Все мы знаем, что в D используется сборщик мусора. Он же управляет выделением памяти. Его используют реализации таких встроенных типов как ассоциативные и динамические массивы, строки (что тоже массивы), исключения, делегаты. Так же его использование втроенно в синтаксис языка (конкатенация, оператор new). GC снимает с программиста ответственность и нагрузку, позволяет писать более компактный, понятный и безопасный код. И это, пожалуй, самые важные плюсы сборщика мусора. Стоит ли от этого отказываться? Расплатой за использование сборщика будут избыточное расходование памяти, что недопустимо при сильно ограниченных ресурсах и паузы всех потоков (stop-the-world) на как таковую сборку. Если эти пункты для Вас критичны добро пожаловать под кат. [Читать дальше →][1]

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

[>] Забота о репутации: проверяем свои сайты на попадание в блеклисты
habra.14
habrabot(difrex,1) — All
2015-06-12 17:30:02


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

[1]: http://www.host-tracker.com?yclid=dnsbl
[2]: https://habrastorage.org/files/c12/070/b99/c12070b99d3d432aa4f8d56d644b5bbb.png
[3]: http://habrahabr.ru/post/260021/#habracut

[>] Сравнение Security Enhanced NGINX и Hiawatha Web Server при отражении атак 7 уровня (BOTS/SQL/XSS etc.)
habra.14
habrabot(difrex,1) — All
2015-06-12 19:00:02


Добрый день. В завершение «недели NGINX», мы решили рассказать об очень интересной сборке «безопасной» версии NGINX китайской компании [Neusoft][1], о которой не было замечено ни одной статьи на Хабре, а именно — [SeNginx][2]. В дополнение к этому, мы также расскажем вам о втором веб сервере, которому не уделяется так много внимания, как Nginx — [Hiawatha Web Server][3], и постараемся сравнить Hiawatha с SeNginx в плане использования их для обеспечения безопасности вашего сайта или web приложения. ![image][4] ![image][5] Отметим, что за 5 лет существования нашей хостинговой компании ([WooServers][6]) нам довелось повидать целый спектр атак различных уровней и типов на сайты и web приложения наших клиентов, а также поработать с London Metropolitan Police в поиске и поимке одного управляющего ботнетом. Сегодня DDoS атаки стали настолько частыми, что только за вчерашний день Arbor® в одном из наших датацентров зафиксировал [49 DDoS атак 3/4 уровней][7] мощностью до 20-25 Gbit/s ([график 1][8] и [график 2][9]). И, хотя Arbor® девайсы и могут при определенной настройке неплохо [справляться с атаками 3 и 4 уровня][10], они практически бесполезны при атаках 7 уровня, целью которых является перегрузка ресурсов сервера, а также поиск уязвимостей в вашем приложении. Самым бюджетным вариантом отражения атак 7 уровня являются различные варианты с использованием DNS RoundRobin + HaProxy, Nginx, Varnish Cache и т.д., которые либо позволяют рассредоточить атаку между несколькими серверами клиента, либо дают возможность обработать запросы ботов «в лоб» с помощью отдачи кешированной версии страницы. Данный подход, к сожалению, часто требует ручной настройки, постоянного мониторинга и редко эффективен при меняющихся типах атак. Наглядное представление DNS RoundRobin + Nginx ([источник][11]): ![image][12] После длительных поисков нами был найден отличный модуль к NGINX, написанный русскими программистами на Perl в 2012 году и позволяющий фильтровать ботов, которые заходят на ваш сайт в автоматическом режиме — [Roboo][13] ([статья на Хабре][14]). Модуль показал себя с наилучшей стороны, позволяя фильтровать сотни тысяч запросов от ботов с помощью NGINX с минимальной нагрузкой на сервер. [Читать дальше →][15]

[1]: http://security.neusoft.com/
[2]: http://senginx.org
[3]: https://www.hiawatha-webserver.org/
[4]: https://habrastorage.org/getpro/habr/post_images/738/067/12c/73806712cbea0744ea5624271592d3c6.png
[5]: https://www.hiawatha-webserver.org/images/hiawatha_logo.png
[6]: http://wooservers.com
[7]: https://habrastorage.org/files/e9f/396/692/e9f396692bc4453a8fd58fb38c8728f6.png
[8]: https://habrastorage.org/files/6c3/37a/a4a/6c337aa4a0c74e2a8c059da49ae9ab79.png
[9]: https://habrastorage.org/files/3c7/e7e/6db/3c7e7e6dbb02437a83d0f009478d7ebe.png
[10]: http://habrahabr.ru/company/timeweb/blog/161427/
[11]: http://blog.unixy.net/2010/08/the-penultimate-guide-to-stopping-a-ddos-attack-a-new-approach/
[12]: https://habrastorage.org/getpro/habr/post_images/dc1/e4c/727/dc1e4c727aa071a7e9bde1d06edad41f.png
[13]: https://github.com/yuri-gushin/Roboo
[14]: http://habrahabr.ru/post/139931/
[15]: http://habrahabr.ru/post/260159/#habracut

[>] Как я нашел лучший в мире язык программирования. Часть Йо (2.72)
habra.14
habrabot(difrex,1) — All
2015-06-12 23:00:02


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

[1]: http://habrahabr.ru/post/259841/
[2]: http://habrahabr.ru/post/260149/#habracut

[>] Реализация Single Sign On в Symfony2 приложении
habra.14
habrabot(difrex,1) — All
2015-06-13 10:30:02




### Что такое Single Sign On?

[Single Sign On][1] — это технология, с помощью которой пользователь, будучи аутентифицированным на удостоверяющем центре _(далее Identity Provider, IdP)_, будет автоматически аутентифицирован на другом сервисе _(далее Service Provider, SP или Consumer[1-N])_ этой компании. Механизм Single Sign On используют такие сайты, как [ХабраХабр][2], [Yandex][3], [Google][4]. Приемущества такого подхода к аутентификации пользователей очевидны:

* Пользователь вводит пароль только 1 раз
* Или вовсе не вводит пароль на IdP, если там был использован вход через социальную сеть или с использованием OpenID
* Автоматически аутентифицируется на всех проектах компании
* Данные пользователя могут _плавать_ между сервисами от IdP до SP прозрачно для пользователя

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

[1]: https://en.wikipedia.org/wiki/Single_sign-on
[2]: https://id.tmtm.ru/login/
[3]: https://passport.yandex.ru/auth
[4]: https://accounts.google.com/ServiceLogin
[5]: http://habrahabr.ru/post/260183/#habracut

[>] Эльфийский язык программирования
habra.14
habrabot(difrex,1) — All
2015-06-13 12:00:02


Как известно, если ты серьёзный программист, синтаксический сахар тебе не нужен, это баловство. Ещё несколько лет назад Python считался детской погремушкой именно из за этого. Чем вам фигурные скобки мешали? Ребячество какое-то придумали: заменить фигурные скобки на отступы табуляции. Сказал солидный дядя. Маличики согласно покивали, виновато глядя в потолок. Через год все работали в коллективах где Питон основной язык. [Читать дальше →][1]

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

[>] В ReactOS значительно улучшили поддержку тем оформления
habra.14
habrabot(difrex,1) — All
2015-06-13 20:30:02


Вслед за [обновлением эксплорера][1], благодаря стараниям и патчам разработчиков [Ismael Ferreras Morezuelas][2] и [Jared Smudde][3], в ReactOS значительно улучшилась поддержка как собственных, так и сторонних тем оформления. Ниже скриншоты примеров, как теперь может выглядеть рабочий стол. ![image][4] [Читать дальше →][5]

[1]: http://habrahabr.ru/company/reactos/blog/251757/
[2]: https://jira.reactos.org/browse/CORE-9635
[3]: https://jira.reactos.org/browse/CORE-9770
[4]: https://scontent-fra3-1.xx.fbcdn.net/hphotos-xfa1/v/t1.0-9/1486658_1064863350209241_5378400649341077513_n.jpg?oh=379cd30b97391718ca0697de58ab6ec9&oe=55F60830
[5]: http://habrahabr.ru/post/260215/#habracut

[>] [Перевод] 9 анти-паттернов, о которых должен знать каждый программист
habra.14
habrabot(difrex,1) — All
2015-06-14 01:00:02


В программировании самокритика – это умение распознать контрпродуктивные решения в дизайне, коде, процессах и поведении. Знание о вредных шаблонах решений полезно для программиста. В этой статье я опишу анти-паттерны, которые я встречал на своём личном опыте время от времени. Некоторые из них напрямую или косвенно связаны с когнитивными искажениями человеческого сознания – в этих случаях я даю ссылки на соответствующие вики-статьи. Также интересен список известных когнитивных искажений.

#### 1 Преждевременная оптимизация



> В 97% случаев надо забыть об эффективности малых частей программы: преждевременная оптимизация – корень всех зол. Но в 3% случаев об оптимизации забывать не нужно.
>
>
>
> Дональд Кнут



> Хотя, «никогда» чаще лучше, чем «прямо сейчас»
>
>
>
> Тим Питерс, Зен языка Python



##### Что это

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

##### Почему плохо

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

##### Как избежать

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

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

[>] Знакомство с OsmocomBB: 0x03 Software
habra.14
habrabot(difrex,1) — All
2015-06-14 01:00:02


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

[1]: https://habrastorage.org/files/2dd/7bc/bb3/2dd7bcbb3fe542658f10e73e0d9a59f6.jpg
[2]: http://habrahabr.ru/post/260213/#habracut

[>] Уязвимость в приложении Mail в iOS 8.3
habra.14
habrabot(difrex,1) — All
2015-06-14 10:00:02


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

[1]: https://habrastorage.org/getpro/habr/post_images/047/4c0/c1a/0474c0c1a94b95c648fa4250486f1837.png
[2]: http://habrahabr.ru/post/260225/#habracut

[>] [Перевод] Семь смертных грехов разработки ПО
habra.14
habrabot(difrex,1) — All
2015-06-14 17:30:02


_Перевод статьи [Seven Deadly Sins of a Software Project][1] автора [Yegor Bugayenko][2]._ _Сопровождаемость_ — это [наиболее ценное достоинство][3] современной разработки программного обеспечения. [Сопровождаемость][4] может измеряться, в основном, рабочим временем, которое требуется новому разработчику, чтобы вникнуть в проект, до того, как он начнет вносить значимые изменения. Чем больше времени это занимает, тем меньше уровень сопровождаемости. В некоторых проектах это время близко к бесконечности, что означает, эти проекты практически не сопровождаемы. Я хочу рассказать вам о семи смертных **грехах**, которые делают программный продукт несопровождаемым. [Читать дальше →][5]

[1]: http://www.yegor256.com/2015/06/08/deadly-sins-software-project.html
[2]: http://www.yegor256.com/about-me.html
[3]: http://www.yegor256.com/2014/10/26/hacker-vs-programmer-mentality.html
[4]: https://en.wikipedia.org/wiki/Maintainability
[5]: http://habrahabr.ru/post/260241/#habracut

[>] [Перевод] Почему Go обречён на успех
habra.14
habrabot(difrex,1) — All
2015-06-14 18:00:02




> **TL;DR**
>
> Golang был разработан специально для того, чтобы расцвести в больших проектах, которые пишут большие группы программистов разных уровней, и в мире нет такой группы больше, чем open-source сообщество.

![][1] Абсолютно всё в жизни основано на компромиссах — первый закон термодинамики доказывает это, и языки программирования тут не исключение. Компромиссы в Go не уникальны, но именно благодаря их удачному сочетанию, [Go и случился][2]. Законы физики также утверждают, что каждое действие порождает противодействие, и, с ростом популярности, также возрастает количество критики в адрес языка, иногда [обоснованной][3], иногда [не очень][4]. Позвольте мне объяснить, почему я считаю, что эта критика не важна, и Go обречён на успех ни смотря ни на что. [Читать дальше →][5]

[1]: https://habrastorage.org/files/2a3/76b/383/2a376b3835354cd8b2975afe80659d02.jpg
[2]: https://www.google.com/trends/explore#q=golang
[3]: http://bravenewgeek.com/go-is-unapologetically-flawed-heres-why-we-use-it/
[4]: http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/
[5]: http://habrahabr.ru/post/260223/#habracut

[>] LIVR — «независимые от языка правила валидации» или валидация данных без «проблем»
habra.14
habrabot(difrex,1) — All
2015-06-14 22:30:02


Каждый программист неоднократно сталкивался с необходимостью проверки пользовательского ввода. Занимаясь веб-разработкой уже более 10 лет, я перепробовал массу библиотек, но так и не нашел той единственной, которая решала бы поставленные мною задачи. **Основные проблемы, которые встречаются в библиотеках валидации данных** **Проблема №1.** Многие валидаторы проверяют только те данные, для которых описаны правила проверки. Для меня важно, чтобы любой пользовательский ввод, который явно не разрешен, был проигнорирован. То есть, валидатор должен вырезать все данные для которых не описаны правила валидации. Это просто фундаментально требование. **Проблема №2.** Процедурное описание правил валидации. Я не хочу каждый раз думать про алгоритм валидации, я просто хочу описать декларативно, как должны выглядеть правильные данные. По сути, я хочу задать схему данных (почему не «JSON Schema» — в конце поста). **Проблема №3.** Описание правил валидации в виде кода. Казалось бы, это не так страшно, но это сразу сводит на нет все попытки сериализации правил валидации и использования одних и тех же правил валидации на бекенде и фронтенде. **Проблема №4**. Валидация останавливается на первом же поле с ошибкой. Такой подход не дает возможности подсветить сразу все ошибочные/обязательные поля в форме. **Проблема №5.** Нестандартизированные сообщения об ошибках. Например, «Field name is required». Такую ошибку я не могу показать пользователю по ряду причин:

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

То есть, нужно возвращать не сообщение об ошибках, а стандартизированные коды ошибок. **Проблема №6.** Числовые коды ошибок. Это просто неудобно в использовании. Я хочу, чтобы коды ошибок были интуитивно понятны. Согласитесь, что код ошибки «REQUIRED» понятней, чем код «27». Логика аналогична работе с классами исключений. **Проблема №7.** Нет возможности проверять иерархические структуры данных. Сегодня, во времена разных JSON API, без этого просто не обойтись. Кроме самой валидации иерархических данных, нужно предусмотреть и возврат кодов ошибок для каждого поля. **Проблема №8.** Ограниченный набор правил. Стандартных правил всегда не хватает. Валидатор должен быть расширяемый и позволять добавлять в него правила любой сложности. **Проблема №9.** Слишком широкая сфера ответственности. Валидатор не должен генерировать формы, не должен генерировать код, не должен делать ничего, кроме валидации. **Проблема №10.** Невозможность провести дополнительную обработку данных. Практически всегда, где есть валидация, есть необходимость в какой-то дополнительной (часто предварительной) обработке данных: вырезать запрещенные символы, привести в нижний регистр, удалить лишние пробелы. Особенно актуально — это удаление пробелов в начале и в конце строки. В 99% случаев они там не нужны. _Я знаю, что я до этого говорил, что валидатор не должен делать ничего кроме валидации._ 3 года назад, было решено написать валидатор, который не будет иметь всех вышеописанных проблем. Так появился LIVR (Language Independent Validation Rules). Есть реализации на Perl, PHP, JavaScript, Python (мы на python не пишем — фидбек по ней дать не могу). Валидатор используется в продакшене уже несколько лет практически в каждом проекте компании. Валидатор работает, как на сервере, так и на клиенте. [Читать дальше →][1]

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

[>] Основы Rust. Глава 1 — Знакомство с Rust
habra.14
habrabot(difrex,1) — All
2015-06-15 02:00:04


![][1] Rust – это язык программирования, разработанный Mozilla и поддерживаемый большим опенсорс-сообществом. Начал его разрабатывать Graydon Hoare в 2006 году. Mozilla начала спонсировать проект в 2009 и впервые он был официально представлен в 2010 году. Работа над ним прошла через много итераций и завершилась 15 мая 2015 года, выпустив первую стабильную версию 1.0.0. Rust основан на ясных и твердых принципах. Он является системным языком программирования, и по возможностям идет вровень с C и C++. Rust такой же быстрый, как и C++, при этом более безопасный, так как запрещает использовать код, который может вызвать сбой программы из-за проблем с памятью. Кроме того, Rust имеет встроенные функциональные возможности, необходимые для параллельного выполнения на многоядерных машинах, а это делает параллельное программирование безопасным для памяти, не используя при этом сборки мусора, это единственный язык, который такое может предоставить. Rust также устраняет повреждения при совместном использование данных, через параллельный доступ, также известный, как “гонки данных”. В этой главе рассказывается об основных причинах, почему популярность Rust неуклонно растет. После, мы установим рабочую среду для разработки Rust. [Читать дальше →][2]

[1]: https://habrastorage.org/files/804/93f/f69/80493ff6904e4045a8f0e1e8c92244dd.jpg
[2]: http://habrahabr.ru/post/260147/#habracut

[>] Программисты и депрессия
habra.14
habrabot(difrex,1) — All
2015-06-15 06:00:02


    Это перевод(причем достаточно вольный) выступления 2013 года программиста на Ruby по имени Greg Bauges, посвященного депрессии и психическим расстройствам в среде программистов. Выступление старое, но проблема вечная. Вот само видео с конференции:




    Итак, начнем, меня зовут Грег. Я работаю в компании Table XI в Чикаго. Мы что-то вроде веб-студии из 30 человек. Я программировал большую часть своей жизни, начав еще с TRS-80, когда мне было только 6 или 7 лет. Там были кассеты и Basic, я даже еще помню ежемесячный журнал 3-2-1 Contact, который печатал на заднем развороте программы для BASIC. Тогда я не мог копипастить и мне оставалось только перепечатывать программу чтобы запустить, заставляя меняться цвета на экране и делать прочие непотребства… Я провел большую часть моей жизни пытаясь усидеть на двух стульях — программируя и работая с клиентами. И еще у меня [биполярное расстройство второго типа][1](БАР2) и [СДВ][2], и сегодня я хочу рассказать вам свою историю, друзья. Рассказать вам почему мы должны уделять внимание депрессии и психическим заболеваниям на подобных встречах, конференциях, и в разговорах с коллегами. [Читать дальше →][3]

[1]: http://2
[2]: http://3
[3]: http://habrahabr.ru/post/260249/#habracut

[>] [Перевод] Почему Go обречён на успех (обновлено)
habra.14
habrabot(difrex,1) — All
2015-06-15 06:30:03




> **TL;DR**
>
> Golang был разработан специально для того, чтобы расцвести в больших проектах, которые пишут большие группы программистов разных уровней, и в мире нет такой группы больше, чем open-source сообщество.

![][1] Абсолютно всё в жизни основано на компромиссах — первый закон термодинамики доказывает это, и языки программирования тут не исключение. Компромиссы в Go не уникальны, но именно благодаря их удачному сочетанию, [Go и случился][2]. Законы физики также утверждают, что каждое действие порождает противодействие, и, с ростом популярности, также возрастает количество критики в адрес языка, иногда [обоснованной][3], иногда [не очень][4]. Позвольте мне объяснить, почему я считаю, что эта критика не важна, и Go обречён на успех ни смотря ни на что. [Читать дальше →][5]

[1]: https://habrastorage.org/files/2a3/76b/383/2a376b3835354cd8b2975afe80659d02.jpg
[2]: https://www.google.com/trends/explore#q=golang
[3]: http://bravenewgeek.com/go-is-unapologetically-flawed-heres-why-we-use-it/
[4]: http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/
[5]: http://habrahabr.ru/post/260223/#habracut

[>] Как мы делали лучший трекер релиз-ноутов
habra.14
habrabot(difrex,1) — All
2015-06-15 11:00:03


Друзья, сегодня я хочу рассказать вам о том, как появился на свет сервис [Allmychanges.com][1]. Дело было в далеком 2013 году. Солнечным осенним днем я обдумывал идеи для реализации в рамках двухдневного хакатона Django Dash. Хотелось сделать какой-нибудь сервис для разработчиков, но не очередной континуос-интегрейшн-в-облаке, а что то более интересное и полезное.

## Проблема номер один

И вот, в результате возникла такая идея – а что если сделать сервис, которому даешь URL, а он сам находит и показывает ChangeLog проекта? Ведь какая проблема с большинством, да что там с большинством – со всеми софтверными проектами – сложно найти, что у них изменилось от версии к версии. А в release notes, порой, можно найти интересные и полезные вещи. Разработчики [Django][2], к примеру, пишут не только от том что изменилось, но и про всякие деприкешены и про то, как мигрировать с одной мажорной версии на другую. В общем, невероятно ценно иметь такое место, куда можно посмотреть и оценить возможный масштаб бедствия после апгрейда всех зависимостей. Когда такого места нет, послеобновления часто случается такое: [][3] Однако даже для проекта, мейнтейнеры которого заботливо ведут ChangeLog, найти его бывает проблематично. Почему? Да потому что фреймворки и библиотеки пишут люди, а люди все разные. Кто то записывает release notes в файлике `NEWS`, кто то в `ChangeLog`, a некоторые разбрасывают их по отдельным файликам типа `docs/src/releases/1.7.rst`. Хуже всех те, кто то вообще не ведет человеческих релиз ноутов и заставляет вас ползать по гит-логу и собирать крупицы знаний по коммит-мессаджам. [Дальше будет интересней][4]

[1]: https://allmychanges.com
[2]: https://allmychanges.com/p/python/django/
[3]: https://www.flickr.com/photos/yakin669/3521215609 "Image by Mike, on Flickr"
[4]: http://habrahabr.ru/post/260275/#habracut

[>] Примеры использования MongoDB в e-commerce (часть 2)
habra.14
habrabot(difrex,1) — All
2015-06-15 15:00:02


![][1] [ [Первая часть][2] ] В этом посте будет то, что не поместилось в первую часть. Это некоторые операторы, которые есть в `aggregation framework` и достаточно вольный перевод трех статей из раздела [экоситема][3] на сайте со справкой к `MongoDB`, описывающих некоторые случаи применения для интернет-коммерции. Случаи использования разделены там на восемь статей, которые условно можно разделить на три группы. Мне показались самыми интересными для перевода три материала, связанные с `e-commerce`.

1. [Операторы в aggregation framework][4]
2. [ Каталог продуктов][5]
3. [ Корзина и управления остатками на складе ][6]
4. [ Иерархия категорий][7]

[Читать дальше ][8]

[1]: //habrastorage.org/files/e36/58a/ca6/e3658aca69ab496895f5bc53c7357632.jpeg
[2]: http://habrahabr.ru/post/259219/
[3]: http://docs.mongodb.org/ecosystem/#use-cases
[4]: #1
[5]: #2
[6]: #3
[7]: #4
[8]: http://habrahabr.ru/post/260291/#habracut

[>] Самозащита антивирусов
habra.14
habrabot(difrex,1) — All
2015-06-15 15:00:02


Как показывает практика, любой антивирус по дизайну уязвим, и реализовать очередной метод обхода в отношении него не является большой проблемой. Нашему исследовательскому центру было интересно проверить, как разработчики антивирусных решений следят за наличием описаний методов атак на просторах интернета. И всегда ли для атаки на антивирус необходимо обнаружить в нем 0-day уязвимость или достаточно просто найти полезную информацию на форумах? [Читать дальше →][1]

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

[>] [Из песочницы] Bitbucket анонсировала системы плагинов: новый виток борьбы облачных VCS
habra.14
habrabot(difrex,1) — All
2015-06-15 16:00:03


![][1] Bitbucket [анонсировал][2] «Atlassian connect for Bitbucket»: возможность создавать плагины, встраиваемые в облачную часть Bitbucket, расширяющие его интерфейс и добавляющие новые возможности. Это качественный рывок в борьбе между Bitbucket, Github, Gitlab и TFS: если раньше мы были ограничены вебхуками и REST API, то теперь появилась возможность допиливать «под себя» и для других разработчиков непосредственно облачный интерфейс. Ужа доступно несколько расширений, основанных на nodejs SDK для создания плагинов и документация. [Читать дальше →][3]

[1]: https://habrastorage.org/files/8b0/f36/ad3/8b0f36ad3f5c4f22951d008f2a4385e1.png
[2]: https://blog.bitbucket.org/2015/06/10/atlassian-connect-for-bitbucket-a-new-way-to-extend-your-workflow-in-the-cloud/
[3]: http://habrahabr.ru/post/260315/#habracut

[>] Готовы ли вы жаловаться?
habra.14
habrabot(difrex,1) — All
2015-06-15 17:00:05


Наверно нет компании, к которой не было бы нареканий по работе технической поддержки. На Хабре достаточно много статей о том, как организовать работу этой важнейшей службы, оптимизировать обработку звонков и тикетов. Постоянно обсуждается, как сократить время реакции на обращение. А если посмотреть с другой стороны? Насколько пользователи, обращающиеся в техподдержку, способствуют тому, чтобы их проблему решили максимально быстро? Даже если откинуть скажем несовместимость ПО, странные настройки и т.д… По вопросам, так или иначе, с шифровальщиками сталкивается до трети системных администраторов. Как вы думаете, какой процент пользователей сразу предоставляет всю необходимую для решения проблемы информацию? Или хотя бы готов конструктивно обсудить проблемы? Нередко до момента, когда дело доходит до конкретных рекомендаций, проходит 7-10 итераций! Диалог с клиентом идет, а шифровальщик в это время вполне может продолжать свою работу. Все примеры для данной статьи взяты из реальных запросов. Орфография и пунктуация сохранены, мат и персональная информация убраны. [Читать дальше →][1]

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

[>] Криптоконструктор
habra.14
habrabot(difrex,1) — All
2015-06-15 17:00:05


![image][1] Если вы чувствуете, что, все чаще в окружающем вас контенте, мелькают слова “безопасность данных”, “конфиденциальность”, “шифрование”, если вы в курсе ситуации со Сноуденом или [заявлениями британских премьер-министров о запрете прозрачного шифрования][2], то можете читать ниже. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/9ce/fe1/3db/9cefe13dbbe914afc383240294c94907.jpg
[2]: http://geektimes.ru/post/244175/
[3]: http://habrahabr.ru/post/260321/#habracut

[>] [Из песочницы] Угон префиксов магистрального провайдера «Телеком Малайзия» заметно ухудшил мировую маршрутизацию в прошлую пятницу
habra.14
habrabot(difrex,1) — All
2015-06-15 17:00:05


Утром в прошлую пятницу (12 июня), начиная с 8:40 по UTC (4:40 по EDT) был совершён угон префиксов у магистрального провайдера «Телеком Малайзия», что повлияло на работу маршрутизаторов в Глобальной Сети на 4 континентах. Проблемы наблюдались в течение двух часов, и затронули главным образом на провайдеров в Океании, а также Европе, Азии и Северной Америке. [Читать дальше →][1]

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

[>] [Из песочницы] Jii: Полноценный Query Builder для Node.js с API от Yii 2
habra.14
habrabot(difrex,1) — All
2015-06-15 17:00:06




# Вступление

Привет всем хабровчанам, любителям Yii и Node.js. Почему объединены любители PHP-фреймворка и серверного JavaScript? Потому что Yii теперь доступен и на JavaScript (как для Node.js, так и для браузера)! В этой статье мы рассмотрим Query Builder, полностью сохранивший API от Yii2 и работающий на Node.js. Конструктор запросов — это лишь одна из реализованных частей Jii (не путать с Yii), в данной статье я специально не буду рассматривать фреймворк в целом, потому что его вполне можно использовать и частями. ![Jii][1]

## Что такое Jii?

[Jii][2] — это компонентный JavaScript MVC фреймворк, который повторяет архитектурные решения легендарного PHP фреймворка Yii 2, в большинстве случаев сохраняя его API. Отсюда происхождение названия Jii — JavaScript Yii. [Читать дальше →][3]

[1]: https://habrastorage.org/files/b9c/e1d/925/b9ce1d9253aa4d0595a6aedb0157380f.png
[2]: http://jiiframework.ru
[3]: http://habrahabr.ru/post/260295/#habracut

[>] [Из песочницы] Не в ногу со временем или другая сторона медали
habra.14
habrabot(difrex,1) — All
2015-06-15 17:00:06


Данная заметка навеяна мыслями от прочтения статей [«9 анти-паттернов, о которых должен знать каждый программист»][1], [«Семь смертных грехов разработки ПО»][2] и многих других похожей тематики. Мне действительно всегда очень интересно и приятно узнать о том, как можно делать что-то «хорошо», или даже еще лучше. Согласитесь — ведь это здорово! Здорово знать о дизайн-паттернах и уметь их правильно применять при проектировании своей программы; здорово также знать и об антипаттернах и уметь обнаруживать их в своём или чужом коде, уметь их устранять. Здорово знать о тестировании и оптимизациях, о рефакторинге и профилировании и многом другом, что делает программы более быстрыми, экономными и эффективными, а программистов и пользователей — счастливыми. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/260227/
[2]: http://habrahabr.ru/post/260241/
[3]: http://habrahabr.ru/post/260283/#habracut

[>] [Из песочницы] Олимпиада по программированию в LabVIEW. Решение команды-победительницы
habra.14
habrabot(difrex,1) — All
2015-06-15 18:00:03


Компьютерные игры про танки являются одними из самых популярных в game-индустрии. История подобных игр насчитывает десятки лет, но популярность их не угасает. Тема танков и танковых сражений получает развитие не только в компьютерных играх, но и является предметом соревновательного процесса в программировании. Например, в 2012 году проходили соревнования по программированию [Russian AI Cup — CodeTanks][1]. Участникам предлагалось разработать искусственный интеллект управления танком. Спустя несколько лет подобное соревнование повторилось. Организатором выступила компания National Instruments, которая ежегодно проводит олимпиады по программированию в среде LabVIEW среди студентов и молодых ученых. Участникам олимпиады 2015 года предлагалось разработать алгоритм для автономного управления танком средствами LabVIEW (представление об этой среде программирования можете получить по ссылке: [«LabVIEW — первое знакомство»][2]). Данная статья посвящена описанию алгоритма танка-победителя от команды LabVIEWPortal. [Читать дальше →][3]

[1]: http://2012.russianaicup.ru/p/codeTanks
[2]: http://habrahabr.ru/post/57859/
[3]: http://habrahabr.ru/post/260289/#habracut

[>] Интеграция Windows и Mac OS при помощи Acronis Access Connect
habra.14
habrabot(difrex,1) — All
2015-06-15 18:30:03


Не секрет, чего сегодня во многих организациях IT-инфраструктура построена вокруг операционной системы Windows. Но в то же время всё шире используются компьютеры Mac – это и излюбленный инструмент дизайнеров благодаря экрану Retina, и удобный бизнес-планировщик для топ-менеджеров и руководства компаний. 60% средних и крупных бизнесов по всему миру имеют в своём распоряжении сто и более устройств от Apple, и в их числе – перешедшие на Mac компании Facebook, Amazon и eBay. ![][1] Скорее всего, вы и ваши коллеги работают в смешанной среде, где есть как ПК на Windows, так и компьютеры Mac. Таких смешанных сред становится всё больше, поэтому важность задачи по обеспечению совместимости Windows и Mac только возрастает со временем. Решение есть. [Acronis Access Connect][2] (бывший ExtremeZ-IP) позволяет всем пользователям Mac работать с сетевыми ресурсами так же удобно, как со своими локальными. Если вам близка такая проблема и полезно её решение – добро пожаловать под хаброкат. ![][3] [Читать дальше →][4]

[1]: https://habrastorage.org/files/02f/bb1/596/02fbb15969944074aacf1165acdc4228.png
[2]: http://www.acronis.com/ru-ru/mobility/mac-windows-compatibility/
[3]: https://habrastorage.org/files/6c3/a8a/2a3/6c3a8a2a3d6f4ee6a2944e72ba2f25f3.png
[4]: http://habrahabr.ru/post/260031/#habracut

[>] Docker. Best practices на примере образа Oracle xe 11g
habra.14
habrabot(difrex,1) — All
2015-06-15 18:30:03


![][1] Docker за последнее время стал очень популярен за счет своей производительности, отказоустойчивости и, главное, простоты. Сегодня можно найти тысячи образов в [hub.docker.com][2]. За счет своей простоты в создании образов, буквально за пол часа можно начать вносить свой вклад. Но многие забывают о [best practices][3], и за счет этого docker hub наполнился огромным количеством не самых лучших образов. В этой статье я хочу описать на сколько просто и полезно создавать образы используя Best Practices на примере. [Читать дальше →][4]

[1]: https://habrastorage.org/files/f99/773/96f/f9977396f04e4f328bf13b56420ff70f.jpg
[2]: http://hub.docker.com
[3]: https://docs.docker.com/articles/dockerfile_best-practices/
[4]: http://habrahabr.ru/post/260305/#habracut

[>] [Из песочницы] Bitbucket анонсировала систему плагинов: новый виток борьбы облачных VCS
habra.14
habrabot(difrex,1) — All
2015-06-15 21:00:06


![][1] Bitbucket [анонсировал][2] «Atlassian connect for Bitbucket»: возможность создавать плагины, встраиваемые в облачную часть Bitbucket, расширяющие его интерфейс и добавляющие новые возможности. Это качественный рывок в борьбе между Bitbucket, Github, Gitlab и TFS: если раньше мы были ограничены вебхуками и REST API, то теперь появилась возможность допиливать «под себя» и для других разработчиков непосредственно облачный интерфейс. Ужа доступно несколько расширений, основанных на nodejs SDK для создания плагинов и документация. [Читать дальше →][3]

[1]: https://habrastorage.org/files/8b0/f36/ad3/8b0f36ad3f5c4f22951d008f2a4385e1.png
[2]: https://blog.bitbucket.org/2015/06/10/atlassian-connect-for-bitbucket-a-new-way-to-extend-your-workflow-in-the-cloud/
[3]: http://habrahabr.ru/post/260315/#habracut

[>] [Из песочницы] Алгоритм сортировки Radix Compact. Часть 1: реализация на CPU
habra.14
habrabot(difrex,1) — All
2015-06-15 21:30:05


В одном из моих проектов, который был связан с компьютерным зрением, возникла задача сортировки большого массива чисел (около 100 млн. элементов). Код сортировки должен был выполняться как можно быстрее, причем с возможностью исполнения на нескольких процессорах, и желательно на GPU. Сортировка реализованная в стандартной библиотеке C++ не подходила: она основана на алгоритме Quick Sort, который на данный момент не поддается распараллеливанию, и тем более выполнению на специфической архитектуре GPU. Поиск других способов привел к алгоритму Radix Sort, но в найденных источниках описывалась реализация требующая большого расхода памяти, точнее памяти требовалось: (количество элементов массива) \* (размер radix массива). Для массива 100 млн. элементов и radix массиве размером 256 элементов памяти потребовалось бы 25.6 Гб, мало реальное требование, на текущий момент развития вычислительной техники. Но для распараллеливания вычислений алгоритм Radix Sort подходит неплохо, собственно поэтому автор попытался доработать этот способ, чтобы уменьшить расход памяти до приемлемых значений. [Читать дальше →][1]

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

[>] OS Day в Иннополисе
habra.14
habrabot(difrex,1) — All
2015-06-15 21:30:05


![][1]. Это уже вторая конференция, и на этот раз она проходила совместно с [РИФ][5]. Оба эти мероприятия были приурочены к официальному открытию города Иннополис, в котором, собственно, всё и происходило. Я расскажу только о мероприятиях OS Day, поскольку сам в большинстве из них участвовал. ![][6]Отдавая должное гостеприимному Иннополису, я скажу, что по моим ощущениям, результаты гораздо заметнее, чем в Сколково. Стройка идёт очень активно, уже вовсю работает университет, и вообще жизнь в городе действительно есть, что не может не вселять надежду на светлое будущее. [Читать дальше →][7]

[1]: https://habrastorage.org/files/128/b96/155/128b96155c574e5d8c41baeea8d905d2.png
[2]: http://osday.ru/
[3]: http://osday.ru/zavalishin.html#speaker
[4]: https://ru.wikipedia.org/wiki/%D4%E0%ED%F2%EE%EC_(%EE%EF%E5%F0%E0%F6%E8%EE%ED%ED%E0%FF_%F1%E8%F1%F2%E5%EC%E0)
[5]: https://regions.rif.ru/events/innopolis/
[6]: https://habrastorage.org/files/8ff/bab/ef9/8ffbabef9719412a9e0926ee73dcd34d.png
[7]: http://habrahabr.ru/post/260333/#habracut

[>] [Из песочницы] Что нам стоит «Parse» построить или как без особого напряжения поднять его opensourse-аналог на собственном сервере
habra.14
habrabot(difrex,1) — All
2015-06-16 00:30:02


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

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

[>] LastPass взломан, меняйте ваш мастер-пароль
habra.14
habrabot(difrex,1) — All
2015-06-16 04:00:03


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

[1]: https://habrastorage.org/files/7d0/419/d09/7d0419d09cc24387a85fe986c18af871.jpg
[2]: https://blog.lastpass.com/ru/2015/06/lastpass-security-notice.html/
[3]: http://habrahabr.ru/post/260383/#habracut

[>] DDoS атака в обход Qrator. Как защитится?
habra.14
habrabot(difrex,1) — All
2015-06-16 11:30:02


Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на Ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится. [Читать дальше →][1]

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

[>] Blend4Web vs Unity. Битва за Интернет
habra.14
habrabot(difrex,1) — All
2015-06-16 11:30:02


Когда друзья меня спросили, почему я заинтересовался Blend4Web и стал изучать его, однозначного ответа не получилось. Да, я использую Unity и это мой основной инструмент. Его возможностей с головой хватает для реализации любых задумок. Но я люблю и Blender, так как работаю с ним уже много лет. Все модели, анимации, кинематографические сцены я делаю исключительно в нем. A Blend4Web выглядит очень достойным движком реального времени для WebGL. И в один прекрасный момент я задумался, а может ли Blend4Web конкурировать со столь популярным Unity, и если да, то в каких сферах… ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/257/dc1/d19/257dc1d19b0d4702a622ce3a77e72bb2.jpg
[2]: http://habrahabr.ru/post/260391/#habracut

[>] DDoS атака в обход Qrator. Как защититься?
habra.14
habrabot(difrex,1) — All
2015-06-16 12:00:02


Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на Ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится. [Читать дальше →][1]

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

[>] Доклад о ReactOS на РИФ+OSDAY 2015 в г. Иннополис
habra.14
habrabot(difrex,1) — All
2015-06-16 13:00:02


9-10 июня 2015 года в рамках большого всероссийского проекта РИФ.Регион-2015 прошел форум РИФ.Иннополис и конференция разработчиков системного и инструментального ПО OS DAY. Одним из выступлений на конференции OS DAY стал доклад, посвященный современным реалиям и перспективам применения ReactOS в образовательном процессе высших учебных заведений. Видеозапись этого доклада и предлагается к просмотру.




Тех, кто хотел бы составить впечатление о мероприятии в целом, приглашаем ознакомиться с [материалом в блоге][1] наших коллег по цеху из компании Embox. [][2]

[1]: http://habrahabr.ru/company/embox/blog/260333/#comment_8462483
[2]: http://habrahabr.ru/post/260381/#habracut

[>] Hola и Ваша безопасность
habra.14
habrabot(difrex,1) — All
2015-06-16 13:00:02


В последнее время о продуктах Hola можно прочитать много разного на тему безопасности. От имени компании я попытаюсь ниже отделить правду от домыслов и преувеличений, а в комментариях — ответить на вопросы. ![image][1] Напоминаю, что наши продукты для конечных пользователей позволяют обходить региональные блокировки, установленные как самими веб-сайтами, так и администраторами, провайдерами и государствами. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/8e9/c09/c2e/8e9c09c2e960d8e7bbf7ac0d31af940f.png
[2]: http://habrahabr.ru/post/260359/#habracut

[>] Автоматический поиск и выявление уязвимостей
habra.14
habrabot(difrex,1) — All
2015-06-16 14:00:02


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

[1]: https://habrastorage.org/files/298/03e/4c8/29803e4c87474f71876928828ba0b274.png
[2]: http://habrahabr.ru/post/260205/#habracut

[>] [Из песочницы] Инструкция: Настройка ПАК «Шлюз ПДн» (AltLinux СПТ 6.0 + VipNet Coordinator)
habra.14
habrabot(difrex,1) — All
2015-06-16 14:00:02




## Введение

Информация, изложенная в данной инструкции, предназначена для настройки ПАК’а «Шлюз ПДн». Вся информация сформирована из личного опыта работы с шлюзом ПДН. Начну с совета: если вам поручили настраивать/ перенастраивать ПАК «ШЛЮЗ-ПДН» — наберитесь терпения. Возможно, не все будет получаться с первого раза. На момент написания данного мануала подобного ничего в интернете не нашлось (дата написания инструкции: июнь 2015 год), лишь мелкие детали установки того или иного ПО, без описания возможных проблем и ошибок. Помощи от технической поддержки разработчика ПО не ждите. Я потратил на всю настройку и установку ориентировочно 2 недели, с учетом того, что ранее этим не занимался вообще. Итак, начнем. [Читать дальше →][1]

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

[>] Разбор задач отборочного раунда RCC 2015
habra.14
habrabot(difrex,1) — All
2015-06-16 14:30:02


![][1] В воскресенье 14 июня прошел отборочный раунд RCC 2015. За звание финалиста RCC 2015 сразились 604 программиста, прошедших квалификацию в предыдущих трех раундах. Хотя бы одно правильное решение прислали 324 участника. А теперь герои раунда! Петр Митричев занял первую строчку турнирной таблицы, первым решив задачи B (Разбиение на команды) и F (Освещение сцены) за 20:32 и 1:31:41. Геннадий Короткевич идет вторым — он первым за 2 минуты и 30 секунд решил задачу A (Игра со строками) и раньше всех справился с задачей D (Декартовы деревья) за 14:16. Makoto Soejima из Японии — третий, судя по всему перед решением он переводил условия задач через онлайн-переводчик. Михаил Пядёркин первый решил задачу C (Карта) за 51 минуту и 4 секунды. Егор Куликов первым решил задачу E (Аллея) за 1 час 5 минут и 49 секунд. По итогам отборочного раунда в финал вышли 50 участников. 19 сентября в Финале определится сильнейший программист года! Все участники отборочного раунда получат онлайн-сертификаты, а 200 лучших из них получат футболки RCC 2015. [Читать дальше →][2]

[1]: https://habrastorage.org/files/33f/946/42f/33f94642fb7c48c2baecc90c2ceb3328.png
[2]: http://habrahabr.ru/post/260285/#habracut

[>] Горячая кибервойна. Хакеры и ракетные установки
habra.14
habrabot(difrex,1) — All
2015-06-16 16:30:02


[![][1]][2] Одним из самых зрелищных элементов соревновательной программы форума PHDays V, прошедшего в конце мая в Москве, стал [конкурс][3], представленный компанией [Advantech][4]. Участники должны были захватить контроль над промышленной системой управления, связанной с ракетной установкой, и произвести выстрел по «секретному объекту». [Читать дальше →][5]

[1]: https://habrastorage.org/files/d67/1aa/5e3/d671aa5e313d4143a5e26ded2abd2b55.jpg
[2]: http://habrahabr.ru/company/pt/blog/260435/
[3]: http://www.phdays.ru/program/contests/#40894
[4]: http://www.advantech.com/
[5]: http://habrahabr.ru/post/260435/#habracut

[>] [Из песочницы] Программируем BitTorrent-клиент. Чистый Delphi
habra.14
habrabot(difrex,1) — All
2015-06-16 18:00:03


![][1]Прошло 8 лет после написания статьи [Игорем Антоновым (Spider\_NET)][2] про [создание торрент-клиента на C#][3], но в сети так и не появилось самого простого примера, как это можно сделать на Delphi. Чтобы развеять сомнения по поводу неэффективности языка Delphi в таком «непростом» деле, как написание полноценного битторрент-клиента, я и решил написать эту статью. Сразу скажу, что наш торрент-клиент на Delphi будет с открытым исходным кодом и будет поддерживать практически все современные битторрент-технологии, в том числе DHT, magnet-ссылки, последовательная закачка и т.д. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/aea/cd2/09b/aeacd209bfe3d90f47a4557cb787f5e3.png
[2]: http://iantonov.me
[3]: http://iantonov.me/page/programmiruem-torrent-klient-na-sdelphis-c
[4]: http://habrahabr.ru/post/260339/#habracut

[>] Как считается Load Average
habra.14
habrabot(difrex,1) — All
2015-06-16 19:00:02




## Постановка вопроса

Недавно, во время собеседования в одну крупную компанию мне задали простой вопрос, что такое Load Average. Не знаю, на сколько правильно я ответил, но лично для себя пришло осознание, что точного ответа я на самом деле и не знаю. Большинство людей наверняка знают, что Load Average — [это среднее значение загрузки системы за некоторый период времени][1] (1,5 и 15 минут). Так же можно узнать некоторые подробности из [данной статьи][2], про то, как этим пользоваться. В большинстве случаев этих знаний достаточно для того, что бы по значению LA оценивать загрузку системы, но я по специальности физик, и когда я вижу «среднее за промежуток времени» мне сразу становится интересна частота дискретизации на данном промежутке. А когда я вижу термин «ожидающие ресурсов», становится интересно, каких именно и сколько времени надо ждать, а так же сколько тривиальных процессов надо запустить, что бы получить за короткий промежуток времени высокий LA. И главное, почему ответы на эти вопросы не дает 5 минут работы с гуглом? Если вам данные тонкости так же интересны, добро пожаловать под кат. [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/Load_Average
[2]: http://habrahabr.ru/post/216827/
[3]: http://habrahabr.ru/post/260335/#habracut

[>] [Перевод] Почему Go превосходит посредственность
habra.14
habrabot(difrex,1) — All
2015-06-16 19:00:02


В апреле 2001 Пол Грэм написал статью [«Превосходя посредственность»][1]_ («Beating the averages» — ориг)_. Этот пост о том, почему Go, следуя статье, и есть то самое секретное оружие, которое должно быть у каждого стартапа.

### Секретное оружие



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

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

[1]: http://www.paulgraham.com/avg.html
[2]: http://habrahabr.ru/post/260451/#habracut

[>] [recovery mode] Еще раз о многопоточности в одну строку
habra.14
habrabot(difrex,1) — All
2015-06-16 19:00:02


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

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

[>] [Из песочницы] Смотря на код с закрытыми глазами
habra.14
habrabot(difrex,1) — All
2015-06-16 21:00:02





Это статья — перевод блогозаписи Флориана Бейджерса, слепого программиста из Нидерландов. Перевод любительский, поэтому прошу указывать на ошибки и критиковать.
Я не нашёл корректного перевода слова . Если есть вариант получше — предложите, пожалуйста.
Почему сделал перевод? Я наткнулся на опрос на Quora.com . Ответы людей меня впечатлили, а блогозапись Флориана показалась наилучшим вариантом для введения в этот важный вопрос.



Я — программист. А ещё я слеп. Слеп, как крот, как говорится. Таков я от рождения. Когда я говорю об этом своим товарищам, то те из них, у кого никогда не было проблем со зрением, обычно задают один из трёх вопросов:

* _Как же ты тогда можешь читать то, что я пишу?_
* _Ого. А как ты тогда можешь кодить?_
* Или — самый популярный вопрос — _А ты видишь сны?_

Мне задают эти вопросы снова и снова. Поэтому в этой блогозаписи я хочу на них ответить. Я попытаюсь нарисовать картинку для тех из вас, кто интересуется _доступностью_ и тем, как слепые люди пользуются компьютером, кодят и выполняют другие работы в 21 веке. [Читать дальше][1]

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

Pages: 1 ... 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 210