RSS
Pages: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 210
[>] Как пасти котов. Наставление для программистов, руководящих другими программистами
habra.15
habrabot(difrex,1) — All
2015-08-25 14:30:02


Привет, Хаброжители! У нас вновь вышла книга Дж. Рейнвотера. [![image][1]][2] [«Как пасти котов»][3] — это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды программистов. Даже если вы еще месяц назад были блестящим и дисциплини-рованным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач. В таком случае без этой книги вам не обойтись. А может быть, вы — опытный менеджер, желающий пересмотреть свои принципы лидерства? Тогда, опять же, эта книга для вас. Вне зависимости от возраста, пола и социального статуса она поможет вам укрепить свои позиции в роли лидера программистов. Материал изложен довольно компактно и легко укладывается в голове. Стоя в книжном магазине и раздумывая, что же купить, задайте себе один простой вопрос: «Нужно ли мне совершенствовать свои лидерские навыки?» Полагаю, вы ответите: «Да», — а значит, данная книга окажется для вас небесполезной. [Читать дальше →][4]

[1]: https://habrastorage.org/files/0bd/20c/e95/0bd20ce959cc449f90779c58ed044d3c.jpg
[2]: http://www.piter.com/collection/new/product/kak-pasti-kotov-nastavlenie-dlya-programmistov-rukovodyaschih-drugimi-programmistami-2
[3]: http://www.piter.com/collection/new/product/kak-pasti-kotov-nastavlenie-dlya-programmistov-rukovodyaschih-drugimi-programmistami-2
[4]: http://habrahabr.ru/post/265389/#habracut

[>] Карьера в информационной безопасности
habra.15
habrabot(difrex,1) — All
2015-08-25 15:00:02


![][1]

>

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

[1]: https://habrastorage.org/files/8cf/c84/2a8/8cfc842a89774829b672fe276044b6f5.jpg
[2]: http://habrahabr.ru/post/265187/#habracut

[>] [Из песочницы] Зачем выполнять рутинную работу, когда её можно поручить машине?
habra.15
habrabot(difrex,1) — All
2015-08-25 15:30:02


В очередной раз пересматривая «Железного Человека» вместе с другом, меня снова пропитывало желание создать свой железный костюм, ну или _хотя бы_ Джарвиса. И вдруг меня посетила гениальная идея.

Пару дней назад был матч СуперКубка Европы 2015 по футболу, который я включил лишь на 70 минуте. Да, я досмотрел оставшуюся часть игры, но все равно остался неприятный осадок из-за того, что 70 минут отличного футбола я смогу посмотреть лишь в записи (что, как вы понимаете, совсем не то), ведь я как-то напрочь забыл про то, что летом тоже идут официальные матчи. Поплакали и хватит.



Так вот, с недавнего времени я начал активно пользовался системным календарём на Mac, и подумал, а почему бы не добавить все игры Барсы в этот самый календарь? [![][1] ][2] [Читать дальше →][3]

[1]: https://habrastorage.org/files/73a/b0b/f4c/73ab0bf4cd394168813bc95ef9793cd3.jpg
[2]: http://habrahabr.ru/post/265393/
[3]: http://habrahabr.ru/post/265393/#habracut

[>] [Из песочницы] О сертификации межсетевых экранов
habra.14
habrabot(difrex,1) — All
2014-12-18 17:30:03




#### Инструмент защиты от нежелательного трафика

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

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

[>] Википедию уже не блокируют
habra.15
habrabot(difrex,1) — All
2015-08-25 16:00:02


_Дисклаймер: в посте приведены факты, ссылки и т.д. на момент, когда википедия была заблокирована Роскомнадзором. На данный момент, 25 августа, 14:55 по Москве, блокировка снята и сайт удален из реестра запрещенных. Все приведенное ниже — писалось перед тем, как сайт разблокировали._ То, чего по нашим меркам году так в 2008-м, случиться не могло никак, случилось. Википедия уже блокируется. Почему? Смотрим на [сайте ведомства][1]. [Читать дальше →][2]

[1]: http://rkn.gov.ru/news/rsoc/news34253.htm
[2]: http://habrahabr.ru/post/265367/#habracut

[>] [Из песочницы] Запросы в CoreData с агрегатными функциями и группировкой в одну строку
habra.15
habrabot(difrex,1) — All
2015-08-25 16:00:03


Почти всем, кто использует CoreData, рано или поздно приходится создавать запросы с _агрегатными функциями_ и _группировками_. Однако, синтаксис таких запросов в CoreData сложен для понимания и неоправданно многословен. Используя [конструктор запросов][1] мы можем, например, сделать вот такой запрос:

NSDictionary *productTotalSumAndAveragePriceGroupedByCountries =
[[[[[Product all
] aggregatedBy:@[
@[kAggregateSum, @"amount"],
@[kAggregatorAverage, @"price"]]
] groupedBy:@[@"country"]
] having:predicate
] execute];


[О том как это работает и какой профит можно из этого извлечь][2]

[1]: https://github.com/appleios/ALCoreDataManager#query-builder
[2]: http://habrahabr.ru/post/265319/#habracut

[>] [Из песочницы] Сборка пакетов библиотек для rpm-based дистрибутивов Linux
habra.14
habrabot(difrex,1) — All
2014-12-18 17:30:03


Во многих наших проектах используются open-source библиотеки. Когда разработка ведется под одну конкретную платформу, нет смысла собирать одни и те же библиотеки из исходников каждый раз, когда к проекту подключается новый разработчик. Кроме того, установка библиотек а-ля `make && sudo make install` считается плохим тоном, поскольку система засоряется «бесхозными» файлами, о которых нет информации в базе данных менеджера пакетов RPM. В качестве решения предлагается из скомпилированных библиотек собирать RPM-пакеты и хранить их в едином репозитории, доступном для всех разработчиков. Ниже приводится инструкция и некоторые советы по сборке пакетов. [Читать дальше →][1]

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

[>] Надёжно как в сейфе
habra.15
habrabot(difrex,1) — All
2015-08-25 17:00:02


Центры обработки данных ориентированы на решение бизнес-задач путём предоставления услуг в виде информационных сервисов. Современный ЦОД, несмотря на такие относительно новые требования как высокая степень гибкости и масштабируемости, по-прежнему должен, прежде всего, обеспечивать высокую надёжность. Всё, что вы хотели знать о надёжности ЦОДов, но боялись спросить – под катом. [![][1]][2] [Читать дальше →][3]

[1]: https://habrastorage.org/files/3a0/9b3/c3d/3a09b3c3d418423a89c73f3581b6a6bb.jpg
[2]: http://habrahabr.ru/company/safedata/blog/265311/
[3]: http://habrahabr.ru/post/265311/#habracut

[>] Установка и настройка VPS с CentOS 6.x парой команд с VestaCP
habra.14
habrabot(difrex,1) — All
2014-12-18 18:00:03


Приветствую, Хабр! Для своего продукта я сделал инсталлятор на чистый VPS с CentOS 6.x и оперативной памятью 512MB+. Это такой VPS, который можно приобрести у DigitalOcean.com за $5 в месяц. Но инсталлятор получился довольно универсальный, и его можно форкнуть с гитхаба, чтобы исключить ненужные вам компоненты. В качестве панели управления была выбрана [VestaCP][1], о которой я раньше и не слышал, так как несколько лет слепо пользуюсь cPanel/WHM, в последнее время вместе с CloudLinux. Но это платная панель, и CloudLinux тоже платный, и последнее дело просить у пользователей еще за что-то платить, кроме как за продукт. [Читать дальше →][2]

[1]: http://vestacp.com
[2]: http://habrahabr.ru/post/246223/#habracut

[>] Open Broadcast Encoder
habra.14
habrabot(difrex,1) — All
2014-12-18 19:30:04


Сегодня хочу рассказать о замечательном продукте английской компании [Open Broadcast Systems Ltd.][1] Это софтверный энкодер видео-аудио потока. Я познакомился с этим продуктом на выставке IBC-2013. Там же на конференциях выяснил ряд интересных подробностей о том, откуда «ноги растут». А растут они из EBU и BBC, двух гигантов научно-исследовательской деятельности в сфере теле-радио вещания. Так чем же является OBE, а чем не является? [Читать дальше →][2]

[1]: http://obe.tv/
[2]: http://habrahabr.ru/post/246183/#habracut

[>] YouTrack 6.5 — Баг-трекер для всей команды
habra.15
habrabot(difrex,1) — All
2015-08-25 18:00:02


Доброго дня, Хабр! Спешу рассказать вам, что совсем недавно вышла новая версия нашего баг-трекера — YouTrack 6.5! ![image][1] В новой версии мы сделали акцент на улучшение UIX, полностью изменив дизайн административной части продукта, добавили несколько важных интеграций и упростили импорт из Jira до одного клика. [Читать дальше →][2]

[1]: https://habrastorage.org/files/de7/a9e/687/de7a9e68721c4b158eb8887e35acb906.png
[2]: http://habrahabr.ru/post/265265/#habracut

[>] Рабочие группы в OpenCL 2.0. Неоднородные рабочие группы
habra.14
habrabot(difrex,1) — All
2014-12-18 20:00:02


Среди новых возможностей OpenCL 2.0 появилось несколько новых полезных встроенных функций, так называемых функций рабочих групп. Эти встроенные функции предоставляют широко используемые параллельные примитивы, работающие на уровне рабочих групп. В этой статье кратко описываются функции рабочих групп, приводятся данные производительности для устройства OpenCL Intel HD Graphics, а также рассматривается пример использования неоднородных рабочих групп. [Читать дальше →][1]

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

[>] [Перевод] Пять причин попробовать новый выпуск Intel Media Server Studio 2015 R6
habra.15
habrabot(difrex,1) — All
2015-08-25 19:30:02


![][1]Представляем вам [Intel Media Server Studio 2015][2] – набор инструментов для разработки, отладки и оценки медиа приложений и решений корпоративного уровня на базе процессоров Intel. Если вы занимаетесь как раз такими решениями, то сейчас самое время попробовать Intel MSS, ведь буквально недавно вышло ее очередное обновление. Под катом — список основных улучшений, появившихся в новой версии. [Читать дальше →][3]

[1]: https://habrastorage.org/files/be2/563/294/be25632949424ffdafd86c9f70e5a862.png
[2]: https://software.intel.com/en-us/intel-media-server-studio
[3]: http://habrahabr.ru/post/265343/#habracut

[>] IPv6 SLAAC Attack
habra.14
habrabot(difrex,1) — All
2014-12-19 03:30:03


![image][1] Прочитал недавно статью [«IPv6 под прицелом»][2] и решил написать более подробно об атаке SLAAC (SLAAC Attack), т.к. эту атаку я уже давно в голове держу, развернутого материала на русском не нашел, да и самому интересно ее было повторить.

#### Суть атаки

В чем суть атаки? Во-первых, она очень простая и надежная, т.к. использует стандартные технологии и инструменты ОС. По сути, вы просто становитесь единственным IPv6-маршрутизатором в сети и раздаете клиентам IPv6-подсеть, из которой клиенты берут себе адреса либо автоматически генерируя их (SLAAC), либо спрашивая у вашего же DHCPv6-сервера. Напомню, что IPv6 включен по умолчанию во **всех** современных десктопных, мобильных и серверных ОС, имеет приоритет над IPv4 (кроме некоторых случаев), адрес IPv6, в отличие от IPv4, может быть получен в любой момент, а не только в момент совершения подключения, и крупные веб-сайты уже давно доступны через IPv6. Атака работает как в проводных сетях, так и в беспроводных. Не все свитчи, даже современные, поддерживают фильтрацию Router Advertisement, и, как я полагаю, не все включают эту функцию, даже если она поддерживается свитчем, полагая, что раз в сети нет IPv6, то и фильтровать ничего не нужно. К слову, на данный момент, фильтр Router Advertisement можно обойти на всех свитчах, использовав недостатки реализации. Я смог придумать две реализации атаки [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/424/aed/937/424aed937f4db1e74b47bc8adad3b5c9.png
[2]: http://habrahabr.ru/company/xakep/blog/244383/
[3]: http://habrahabr.ru/post/245935/#habracut

[>] LinuxONE: мейнфрейм от IBM, работающий только с Linux. Подробности проекта
habra.15
habrabot(difrex,1) — All
2015-08-25 20:00:02


![][1] Корпорация IBM, одновременно с заявлением о расширении стратегии использования на мейнфреймах технологий с открытым исходным кодом и других решений сообщества разработчиков Open Source, представила два новых мейнфрейма в линейке [LinuxOne][2]. Мейнфреймы позиционируются, как самые защищённые Linux-системы в своей отрасли. Плюс ко всему, это еще и самые мощные безопасные корпоративные сервера, которые адаптированы для работы с гибридными облачными технологиями и мобильными приложениями. IBM приняла решение открыть код мейнфреймов для сообщества разработчиков открытого программного обеспечения. В частности, была раскрыта технология мейнфрейма IBM, предназначенная для обнаружения проблем и предотвращения сбоев в работе системы предприятия, повышения производительности на всех платформах и обеспечения лучшей интеграции с более широкой сетью и облаком. [Читать дальше →][3]

[1]: https://habrastorage.org/files/407/519/9ff/4075199ff7214f46aa6e1ad01bb01091.jpg
[2]: http://www.ibm.com/linuxone
[3]: http://habrahabr.ru/post/265413/#habracut

[>] Разработка игры для социальной сети «Вконтакте»
habra.15
habrabot(difrex,1) — All
2015-08-26 10:00:02


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

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

[>] Первичный ключ – GUID или автоинкремент?
habra.15
habrabot(difrex,1) — All
2015-08-26 12:00:02


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

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

[>] [Из песочницы] Алгоритм Дейкстры и наш тленный мир
habra.15
habrabot(difrex,1) — All
2015-08-26 12:30:02


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

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

[>] [Перевод] Миром движет язык С
habra.15
habrabot(difrex,1) — All
2015-08-26 13:00:02


![][1] Недавно мы опубликовали [перевод статьи][2], в которой приводились аргументы в пользу изучения языков семейства С. Этот пост вызвал немало споров, в том числе была высказана точка зрения, что языки семейства С сходят со сцены; их востребованность хоть и велика, но снижается. Возможно, это и так. Но всё же язык С по-прежнему остаётся одним из наиболее распространённых. [Читать дальше →][3]

[1]: https://habrastorage.org/files/53a/ee7/c72/53aee7c72386478b9e3ec297999662e2.jpg
[2]: http://habrahabr.ru/company/nixsolutions/blog/264559/
[3]: http://habrahabr.ru/post/265427/#habracut

[>] [Из песочницы] Обратимая транслитерация кириллицы
habra.15
habrabot(difrex,1) — All
2015-08-26 13:30:02


Возможно, кто-то еще помнит, как писали SMS, а иногда и письма, «транслитом». Но зачем транслитерация сегодня, когда везде уже unicode? К сожалению, унаследованные приложения выходят из эксплуатации намного медленнее, чем хотелось бы. Например, и сегодня используются томографы, не допускающие кириллицу в именах пациентов. При том, что информационная система, используемая тем же отделением, прекрасно кириллицу понимает. И оператору томографа нужно не просто позвать пациента на исследование, но и правильно записать его фамилию в какие-нибудь документы. Похожие ситуации могут встретится в разных местах. То есть, возникает задача как-то передать текстовые данные в унаследованную систему, чтобы:

* человек — оператор унаследованной системы смог прочесть полученный текст «по звучанию»
* при необходимости можно было бы однозначно восстановить исходный кириллический текст

Чтобы не было скучно, добавим более подробных требований, связанных с совместимостью и простотой для человека:

1. использовать только буквы в узком смысле, без знаков препинания и диакритических элементов (это заодно позволит сохранить регистр)
2. каждую исходную букву преобразовывать независимо от остальных (без сложностей вроде «в начале / в конце слова» и т.п.)
3. замены как можно более короткие, в идеале одно-буквенные
4. правила обратного преобразованния как можно проще, например, замены должны соответствовать [условию Фано][1]
5. близкие по звучанию замены, в представлении «обычного человека» — на практике это некая смесь из латыни, английской, французской, немецкой и, иногда, испанской фонетики

Конечно, перечисленное не совсем требования (кроме первых двух), а, скорее, эвристики. Можно найти много готовых вариантов транслитерации кириллицы в латиницу. Но среди них не нашлось ничего, что бы удовлетворяло всем требованиям в приемлемой степени. То использует диакритические символы, как стандарты, то выбрасывает буквы (обычно «Ъ»), то предлагают необратимые (щ —> shch) или фонетически дикие (ш —> w) варианты замены, или имеют другие [фатальные недостатки][2]. Значит, делаем свой велосипед. Собственно, нужно составить таблицу соответствия, и описать алгоритм преобразования туда и обратно. [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5_%D0%A4%D0%B0%D0%BD%D0%BE
[2]: http://www.drdobbs.com/windows/a-brief-history-of-windows-programming-r/225701475
[3]: http://habrahabr.ru/post/265455/#habracut

[>] [Из песочницы] Steam Stealer или троян, крадущий вещи в Steam. История появления и схема работы
habra.14
habrabot(difrex,1) — All
2014-12-19 14:30:03


Написать статью побудила публикация [«Троян, ворующий предметы из инвентаря Steam»][1]. Моя статья содержит: 1) Историю появления и распространения в рунете; 2) Историю борьбы «Стима» с данным зловредом; 3) За счёт чего мошенники получают прибыль? 4) Что делают в стиме в связи с этими мошенничествами? В статье нет полного исходного кода или ссылок, где можно его достать/купить. Кому интересно — добро пожаловать под кат. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/246175/
[2]: http://habrahabr.ru/post/246279/#habracut

[>] [Перевод] 15 важных карьерных советов для разработчиков
habra.15
habrabot(difrex,1) — All
2015-08-26 14:00:03


_Перевод от [Alconost Translations][1]_ Сначала позвольте объяснить, как выглядят отличные карьеры. Они не похожи на ровную линию, где вы поднимаетесь чуточку выше каждый месяц. ![][2] Даже “так себе” карьеры так не выглядят. Вы не двигаетесь вверх по карьерной лестнице каждый месяц. Вы просто планомерно укрепляете свои позиции, шагая вперед редко, но крупными скачками. Образцовые же карьеры больше похожи на такой график. Здесь есть периоды замедления роста и что-то вроде ключевых точек, где карьера “выстреливает”. ![][3] Разные цвета? Это смены направлений: из разработки в продуктовый менеджмент, из продаж в основатели стартапа и т.п. На графике есть и неудачи. И знаете, почему? Потому что быть лучшим предполагает некоторый риск. А если принять достаточно рисков, то обязательно в чем-то оступитесь. Принимая во внимание все вышесказанное, позвольте дать вам 15 советов о ваших карьерных выборах, кодинге, амбициях и всем остальном. [Читать дальше →][4]

[1]: http://alconost.com/?utm_source=habrahabr&utm_medium=article&utm_campaign=translation&utm_content=15-career-advices
[2]: https://habrastorage.org/files/c00/65f/799/c0065f7998e040b291cf2c907fd81538.gif
[3]: https://habrastorage.org/files/5b1/ec5/d38/5b1ec5d38378496ebb3ecb5a5086ab9f.jpg
[4]: http://habrahabr.ru/post/264839/#habracut

[>] Криптографические решения. От облачной подписи к доверенной среде
habra.14
habrabot(difrex,1) — All
2014-12-20 08:30:04


Данная статья является продолжением статьи [«Криптографические решения. От криптопровайдеров до браузерных плагинов»][1] и охватывает криптографические решения:

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

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

[1]: http://habrahabr.ru/company/aktiv-company/blog/241221/
[2]: http://habrahabr.ru/post/242603/#habracut

[>] [Из песочницы] Vim как не IDE
habra.15
habrabot(difrex,1) — All
2015-08-26 14:00:03


Очень давно хотел написать что-нибудь полезное, но не знал, чем можно поделится, и тут наткнулся на очередную [статью][1] про рассуждения, что же все-таки лучше — vim, emacs или IDE? Сначала я хотел написать сравнение IDE и vim, но слишком мало пользовался IDE и боюсь быть необъективным. Поэтому просто опишу причины, по которым использую vim. Просто чтобы показать, что редакторы занимают свою нишу. Также попробую рассказать о проблемах, с которыми я столкнулся, используя vim, и как я их решал. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/265197/
[2]: http://habrahabr.ru/post/265441/#habracut

[>] [Перевод] Выразительный JavaScript: Проект: Веб-сайт по обмену опытом
habra.14
habrabot(difrex,1) — All
2014-12-20 11: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]
* [Проект: веб-сайт по обмену опытом][22]
* [Песочница для кода][23]

На встречах по обмену опытом люди с общими интересами встречаются и делают небольшие неформальные презентации на тему своих знаний. На встрече по обмену опытом среди фермеров кто-нибудь может рассказать о выращивании сельдерея. На встрече программистов вы можете выступить с рассказом про Node.js Такие встречи – отличный способ расширить свой кругозор, узнать о новинках области, или просто пообщаться с людьми со схожими интересами. Во многих городах есть встречи любителей JavaScript. Обычно их посещение бесплатное, и я нашёл те, которые посещал, дружелюбными и гостеприимными. ![][24] В последней главе-проекте мы устроим веб-сайт по обслуживанию выступлений, которые делаются на таких встречах. Представьте себе группу людей, которые регулярно встречаются в офисе одного из участников, чтобы поговорить о моноциклах. Проблема в том, что когда предыдущий организатор встреч переехал в другой город, никто не занял его место. Нам нужна система, которая позволит участникам предлагать и обсуждать темы друг с другом, без участия организатора. [Читать дальше →][25]

[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://habrahabr.ru/post/246331/
[23]: http://eloquentjavascript.net/code
[24]: //habrastorage.org/files/597/169/8a7/5971698a71ae43bdb44fc2fa84b9eb33.png
[25]: http://habrahabr.ru/post/246331/#habracut

[>] Деплой: Nginx, Puma и Mina
habra.15
habrabot(difrex,1) — All
2015-08-26 14:30:03


В этой небольшой статье я бы хотел показать настройку Rails — приложения работающего на Nginx'е с Puma и как это все деплоить с помощью Mina. [Подробности][1]

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

[>] [recovery mode] В Telegram появились спамеры?
habra.15
habrabot(difrex,1) — All
2015-08-26 14:30:03


Видимо настал тот день, когда и в популярном мессенджере Telegram появились спамеры, хотя этого и следовало ожидать. Сегодня утром получил 12 сообщений такого плана: ![image][1] При переходе ссылка редиректит на урл:

> ody://tapgerine\_ios\_campaign

По видимому, ссылка для владельцев iPhone и, возможно, там что-то нехорошее. Самому проверить не представляется возможным, ибо телеграмм у меня стоит на маке. Остается открытым вопрос, как, пусть даже за минуту, написать 12 сообщений с таким объемом текста? [][2]

[1]: https://habrastorage.org/files/6be/6c1/2ac/6be6c12ac58049bba6f762fa5c40a2fb.png
[2]: http://habrahabr.ru/post/265447/#habracut

[>] Осенние онлайн-курсы от Computer Science Center и Академического университета
habra.15
habrabot(difrex,1) — All
2015-08-26 15:00:03


![][1] Этой осенью СПб АУ РАН и CS центр предлагают несколько новых онлайн-курсов на разные темы: от теории графов до программирования на языке Haskell, и перезапускают некоторые из прочитанных ранее. Год назад состоялся первый запуск онлайн-курсов CS центра. Сначала появились курсы по программированию, а весной их дополнили курсы по математике, подготовленные вместе с Академическим университетом. Все онлайн-курсы разработаны на платформе Stepic.org.

* Java. Базовый курс (А. А. Владыкин)
* Алгоритмы: теория и практика. Методы (А. С. Куликов)
* Введение в архитектуру ЭВМ. Элементы операционных систем (К. В. Кринкин)
* Введение в математический анализ (А. И. Храбров)
* Ликбез по дискретной математике (А. В. Омельченко)
* Основы перечислительной комбинаторики (А. В. Омельченко)
* Основы теории графов (А. В. Омельченко)
* Погружение в СУБД (Д. В. Барашев)
* Программирование на языке C++ (А. В. Смаль)
* Функциональное программирование на языке Haskell (Д. Н. Москвин)

Часть курсов входит в годовую [онлайн-программу][2] по основам программирования. [Подробнее о курсах][3]

[1]: https://habrastorage.org/files/fbd/088/03d/fbd08803dd28459eb768e3cb44ace29e.png
[2]: http://code.stepic.org/
[3]: http://habrahabr.ru/post/265403/#habracut

[>] Кластеризация графов и поиск сообществ. Часть 2: k-medoids и модификации
habra.15
habrabot(difrex,1) — All
2015-08-26 15:30:02


[][1] Привет, Хабр! В этой части мы опишем вам алгоритм, с помощью которого были получены цвета на графах из [первой части][2]. В основе алгоритма лежит **k-medoids** — довольно простой и прозрачный метод. Он представляет собой вариант популярного **k-means**, про который наверняка большинство из вас уже имеет представление. В отличие от k-means, в k-medoids в качестве центроидов может выступать не любая точка, а только какие-то из имеющихся наблюдений. Так как в графе между вершинами расстояние определить можно, k-medoids годится для кластеризации графа. Главная проблема этого метода — необходимость явного задания числа кластеров, то есть это не выделение сообществ (сommunity detection), а оптимальное разбиение на заданное количество частей (graph partitioning). С этим можно бороться двумя путями: [Читать дальше →][3]

[1]: http://habrahabr.ru/company/dca/blog/264811/
[2]: http://habrahabr.ru/company/dca/blog/265077/
[3]: http://habrahabr.ru/post/264811/#habracut

[>] Ещё один способ автоматического вызова unit-тестов на языке Си
habra.15
habrabot(difrex,1) — All
2015-08-26 16:30:02


![][1]На Хабре уже [есть][2] несколько [статей][3] о том, как разрабатывать [модульные тесты][4] на языке Си. Я не собираюсь критиковать описанные подходы, а лишь предложу ещё один — тот, которым мы пользуемся в проекте [Embox][5]. Пару раз мы уже ссылались на него на [Хабре][6]. Кому интересно, прошу подкат! Но предупреждаю: там много портянок из макросов и «линкерской» магии. [Читать дальше →][7]

[1]: https://habrastorage.org/files/ec6/584/f50/ec6584f5014b4e4d901e14c70090a604.png
[2]: http://habrahabr.ru/post/240565/
[3]: http://habrahabr.ru/post/252439/
[4]: http://habrahabr.ru/post/123344/
[5]: http://embox.github.io/
[6]: http://habrahabr.ru/company/embox/blog/239387/
[7]: http://habrahabr.ru/post/265461/#habracut

[>] Intel Parallel Studio XE 2016 — бесплатных продуктов стало больше
habra.15
habrabot(difrex,1) — All
2015-08-26 17:30:02


![][1]Вчера, 25 августа, произошло важное для большого числа программистов событие: компания Intel выпустила новую версию программного комплекса [Intel Parallel Studio XE][2] — 2016, включающего в себя компиляторы Intel, библиотеки для повышения производительности, средства анализа и отладки программ, а также библиотеку Intel MPI и MPI инструментарий. Но это еще не вся радость. В новой «студии» к имевшей и ранее бесплатную версию библиотеке [Intel® Threading Building Blocks][3] добавилось целых три продукта с community (то есть бесплатной) лицензией: новая библиотека [Intel® Data Acceleration Library][4], о которой мы только что [писали][5], а также два очень полезных компонента: [Intel® Math Kernel Library][6] и [Intel® Integrated Performance Primitives][7]. Используйте на здоровье, какие-либо ограничения у бесплатных версий отсутствуют. Community лицензиям для продуктов Intel посвящен [отдельный сайт][8] — там вы найдете подробности программы. [][9]

[1]: https://habrastorage.org/files/ebb/368/ccd/ebb368ccd9ee4f919f7763dd3033fb12.png
[2]: http://software.intel.com/intel-parallel-studio-xe
[3]: https://software.intel.com/en-us/intel-tbb
[4]: https://software.intel.com/en-us/intel-daal
[5]: http://habrahabr.ru/company/intel/blog/265347/
[6]: https://software.intel.com/en-us/intel-mkl
[7]: https://software.intel.com/en-us/intel-ipp
[8]: https://software.intel.com/sites/campaigns/nest/
[9]: http://habrahabr.ru/post/265471/#habracut

[>] Публикация iFrame / HTML5 игры во ВКонтакте. Основы
habra.15
habrabot(difrex,1) — All
2015-08-26 19:30:02


Что ж, недавно вышел [видеоурок][1] о том, как разработать приложение на JavaScript и разместить его в социальной сети ВКонтакте. Воспринят он был неоднозначно, на одних ресурсах (Включая youtube) к нему отнеслись положительно, на других — отрицательно в силу того, что подобную инфу лучше преподносить в текстовом варианте. Статья на эту тему готова, кому интересно, прошу под кат. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/265429/
[2]: http://habrahabr.ru/post/265469/#habracut

[>] Несколько интересных особенностей MySQL
habra.14
habrabot(difrex,1) — All
2014-12-20 12:30:02


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

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3 Duplicates: 0 Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, **_a_**, тип ENUM, у второго, **_b_**, INT. В таблице три строки, у всех трех значение **_b_** равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце **_a_**?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c | b |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'. А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a | c |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат. Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении. Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)


Когда я показал этот запрос своему коллеге, который занимается разработкой парсера SQL, его вопрос был не «почему этот запрос возвращает две строки», а «как надо написать SQL парсер так, чтобы такой запрос был валидным, без того, чтобы написать правило, специально разрешающее такой запрос». Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом [Читать дальше →][1]

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

[>] [Из песочницы] Сборка и установка пакетов системы мониторинга Calamari для распределенного хранилища CEPH 0.87 на Ubuntu 14.04.1 (Trusty Tahr)
habra.14
habrabot(difrex,1) — All
2014-12-20 12:30:02


Дано: существующий кластер CEPH 0.87. Задача: обеспечить мониторинг. Задача № 2: Написать инструкцию (попроще). Я погуглил и нашел Calamari. Покопал дальше и нашел несколько статей на английском по сборке и установке. Попробовал поставить, наступил на несколько «граблей». В результате пришел к написанию этой статьи. Отмечу, что пакеты, собранные в результате, вряд ли полностью соответствует debian-policy по сборке deb-пакетов. Обеспечить мониторинг важнее. [Читать дальше →][1]

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

[>] [Перевод] Анатомия программы в памяти
habra.15
habrabot(difrex,1) — All
2015-08-27 00:30:01


Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти. Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро. ![image][1] Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов: [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/cc3/380/eba/cc3380ebad2255adc77a24364e46e731.png
[2]: http://habrahabr.ru/post/265509/#habracut

[>] IPv6, miredo, dynamic DNS AAAA
habra.14
habrabot(difrex,1) — All
2014-12-20 18:00:03


![][1] Захотелось странного — чтоб мои IPv6-enabled (miredo) хосты еще и динамически обновляемую DNS запись имели. Поизучав вопрос выяснил, что многие распространённые dyndns сервисы или не предоставляют возможность регистрации AAAA (IPv6 эквивалент записи типа A для IPv4), или не предоставляют её бесплатно, или имеют мутные настройки динамического обновления неизвестного уровня безопасности (или вовсе http/plaintext). Перепробовал с десяток сервисов и решил остановиться на [freedns.afraid.org][2] Плюсы:

* Человеко-понятная админка (без всяких «купить AAAA за $0 USD»)
* Бесплатно дают AAAA
* Безопасное (https) обновление
* URL-based обновление (не приходится испытывать сомнений о конфиге для агентов типа ddclient)

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

[1]: //habrastorage.org/files/33b/1fb/8b5/33b1fb8b5ea340eb9fb808cb580a48cc.png
[2]: https://freedns.afraid.org/
[3]: http://habrahabr.ru/post/246341/#habracut

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


Обнаружена новая критическая уязвимость CVE-2014-9390 в Git, позволяющая выполнить произвольные команды на клиенте. ![][1] Суть уязвимости заключается в возможности совершить коммит в **.Git/config**, что равносильно служебному пути **.git/config** на регистронезависимых файловых системах. Это дает возможность инициировать запуск произвольных команд на клиенте. В общем случае уязвимости подвержены рабочие станции на Windows и Mac OS X, Linux-системы будут подвержены в случае использования регистронезависимых файловых систем. [Подробности под катом][2]

[1]: //habrastorage.org/files/e94/8f4/9da/e948f49dadbb4dc8af8da57a8843a635.png
[2]: http://habrahabr.ru/post/246377/#habracut

[>] [Из песочницы] Внедрение через URL: www.site.ru/?jn=xxxxxxxx
habra.14
habrabot(difrex,1) — All
2014-12-21 09:00:02


Буквально на днях столкнулся с новым (\*?) вариантом спам-вируса для веб-сайтов. Гугл определяет его как «Внедрение через URL».

##### **Описание**

На вашем сайте появляются ссылки которых не было и быть не могло — вы, например, четко знаете структуру сайта и оригинальный вид URL, который отличается от «левых» URL. В частности, в индексе поисковиков появляются ссылки вида:

> [www.site.ru/?jn=xxxxxxxx][1]



##### **Поиск и устранение**

Яндекс-Вебмастер пока не реагирует на них, а вот в инструментах Гугла для вебмастеров выдается предупреждение о возможном взломе сайта. Там же даны рекомендации по поиску. К сожалению они довольно общие и конкретный поиск проблемы занимает время. Антивирусы и он-лайн анализаторы сайтов — результата не дают. Только ручками.

##### **Вариант А: Код не обфусцирован**



1. Ищем в исходниках кто и как у нас пользует переменную $\_GET['jn']
2. Далее по коду смотрим кто где гадит (например: \\js\\swfupload\\plugins\\jquery\\)



##### **Вариант Б: Код обфусцирован**



1. Ищем каталог с файлами, названия которых идут после "?jn="
2. Ищем подозрительные исполняемые файлы типа images/c0nfv.php
3. Можно сделать поиск путей где могут быть файлы а-ля "/img/icon/thumb/jquery.php"
4. Проверить дату изменения конфигов CMS
5. Рекомендуется проверить на наличие (корректность) файлов base.php — это само тело вируса, код обфусцирован
6. Проверяем дату jquery.php и сравниваем ее с датой обнаружения вируса по мониторингу инструментов вебмастеров Гугла.



##### **Встречается**



* CMS: Joomla, WordPress, DLE, PrestaShop, HostCMS
* Plugins: ImageZoomer, SWFupload, BlockCategories
* Велика вероятность появления практически во всех плагинах, которые используют JQuery и в тех местах, где у админов ручки не дошли до настройки.

Полный код (необфусцированного) зловредного кода под катом. [Читать дальше →][2]

[1]: http://www.site.ru/?jn=xxxxxxxx
[2]: http://habrahabr.ru/post/246353/#habracut

[>] rusEfi: итоги года и планы
habra.14
habrabot(difrex,1) — All
2014-12-21 19:30:03


В [конце лета][1] у открытого блока управлением двигателем внутреннего сгорания rusEfi появилась первая интегрированная плата — [Frankenso][2] 0.1, ложкой дёгтя тогда была парочка перепутанных трасс. ![image][3] [Читать дальше →][4]

[1]: http://habrahabr.ru/post/233393/
[2]: http://rusefi.com/forum/viewtopic.php?f=8&t=580
[3]: http://habrastorage.org/getpro/habr/post_images/a46/627/3f5/a466273f5e15ab497e6f227c1645a34f.jpg
[4]: http://habrahabr.ru/post/244737/#habracut

[>] Творческая попытка взлома сайта: пишут от имени Роскомнадзора
habra.15
habrabot(difrex,1) — All
2015-08-27 02:30:02


Получил следующее письмо: ![][1] Для тех, кто не помнит PHP наизусть: assert() исполняет строку, поданную на вход. [][2]

[1]: https://habrastorage.org/files/d45/8f6/134/d458f61341a84f5aad6b33c255767b99.png
[2]: http://habrahabr.ru/post/265513/#habracut

[>] Математика аукционов. Лекция в Яндексе
habra.14
habrabot(difrex,1) — All
2014-12-21 20:30:03


Аукционы используются для торгов практически любых товаров — рыбы и цветов, лицензий на 3G-cвязь, государственных ценных бумаг, акций частных компаний, рекламных объявлений на Яндексе. Базовые правила некоторых аукционов остаются неизменными на протяжении столетий. При этом аукционы — динамично развивающаяся область современной экономической теории. Это в первую очередь вызвано их практической важностью, а также наличием данных и возможностью формально проанализировать аукционы как игры, чьи правила совпадают с практикой. За исследование аукционов и в целом экономических механизмов было присуждено несколько Нобелевских премий.




В рамках Малой Школы анализа данных лекцию, посвященную аукционам, прочитал Сергей Измалков — профессор экономики Российской экономической школы, председатель ученого совета РЭШ. Именно аукционы стали темой его докторской диссертации. В лекции Сергей Борисович рассказывает о том, чем похожи торговля жёнами в Вавилоне и размещение рекламных объявлений в интернете. Под катом вы найдете текстовую версию лекции, но мы бы рекомендовали вам все же посмотреть видеозапись — лектор рассказывает обо всем достаточно доступно и очень увлекательно. [Читать дальше →][1]

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

[>] Необычный развод под видом Роскомнадзора
habra.15
habrabot(difrex,1) — All
2015-08-27 09:00:02


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

[1]: http://habrahabr.ru/company/tm/blog/238165/
[2]: https://habrastorage.org/files/aa7/cd3/83d/aa7cd383d2154e88abca558d7e98f3be.jpg
[3]: http://habrahabr.ru/post/265515/#habracut

[>] IBM добавляет поддержку Apache Spark для z Systems
habra.15
habrabot(difrex,1) — All
2015-08-27 09:00:03


![][1] Корпорация IBM заявила о том, что Apache Spark для Linux будет поддерживаться z Systems. Такая поддержка будет осуществляться в рамках проекта «аналитика на мейнфреймах». Благодаря этому специалисты по дата-майнингу смогут использовать Apache Spark на мощных мейнфреймах z Systems. Обеспечение поддержки Apache Spark для Linux на системах типа z Systems открывает возможность расширения экосистемы таких систем, одновременно увеличивая число сфер их применения. Разработчики IBM интегрируют Apache Spark с z/OS уже в этом году. Специалисты по работе с данными смогут использовать стандартный программный фреймворк вне зависимости от специфики формата данных. [Читать дальше →][2]

[1]: https://habrastorage.org/files/2b1/836/d74/2b1836d74e6a45d789d38f4736d13c3e.jpg
[2]: http://habrahabr.ru/post/265505/#habracut

[>] PyCon UK 2014
habra.14
habrabot(difrex,1) — All
2014-12-21 21:30:03


С 19 по 22 сентября в [Coventry][1] прошла ежегодная конференция python-разработчиков [PyCon UK][2]. ![][3] [Читать дальше →][4]

[1]: http://en.wikipedia.org/wiki/Coventry
[2]: http://www.pyconuk.org/
[3]: //habrastorage.org/files/697/1d1/21b/6971d121b0b44dcab90f94c5f7d2a483.png
[4]: http://habrahabr.ru/post/246391/#habracut

[>] Поиск самых длинных цепочек слов в русском языке с помощью языка Wolfram Language (Mathematica)
habra.14
habrabot(difrex,1) — All
2014-12-21 23:00:04






_Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно [здесь][1] (архив, ~5 МБ)._

### Введение

В русском языке, как и во многих других языках, существуют слова, которые имеют одинаковую длину, но при этом отличаются всего лишь одной буквой. Такого рода пары слов называются [метаграммами][2]. Предположим, что у нас есть несколько последовательных метаграмм, скажем: **мнение-мление-тление-трение-прение-поение-роение-рдение-бдение-биение** они образуют цепь метаграмм, или цепочку слов. Отсюда проистекает игра под названием цепь слов ([word ladder][3]), которую придумал в далеком 1879 году [Льюис Кэрролл][4]. Ясно, что далеко не для каждого начального слова может быть составлена такого рода цепь, а некоторые слова, по-видимому, должны порождать довольно длинные цепи. В этом посте мы постараемся проанализировать цепочки слов, которые могут быть построены в русском языке, а также найдем цепочки наибольшей длины. [Читать дальше →][5]

[1]: http://goo.gl/Bdal4B
[2]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B
[3]: http://en.wikipedia.org/wiki/Word_ladder
[4]: https://ru.wikipedia.org/wiki/%D0%9B%D1%8C%D1%8E%D0%B8%D1%81_%D0%9A%D1%8D%D1%80%D1%80%D0%BE%D0%BB%D0%BB
[5]: http://habrahabr.ru/post/246411/#habracut

[>] А-машина Тьюринга и кофе-машина Хоаре пит-стоп
habra.14
habrabot(difrex,1) — All
2014-12-22 03:30:03




> Всякий, кто полагается на практику, не зная теории, подобен кормчему, вступающему на судно без руля и компаса, – он не знает, куда плывет.
>
>
>
> Леонардо да Винчи

В Священных Языковых Войнах в качестве окончательного аргумента нередко приводят — поскольку языки полны по Тьюрингу, постольку они и равноценны. Под катом попытка уточнить этот тезис для тех, кто уже справился с Python и теперь планирует изучить Erlang или Haskell по спецификации. Материал обзорный, не методичный **с картинками**. [Читать дальше →][1]

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

[>] Несколько версий php на одном сервере. suphp
habra.14
habrabot(difrex,1) — All
2014-12-22 11:30:03


В соседнем топике от [bondbig][1]'a прозвучал [вопрос][2]: «Расскажите лучше, как самому запилить две версии php на одном сервере (5.3 и 5.5, например).» И я попробую на него ответить на примере suphp, не останавливаясь на деталях, а описав только общую концепцию. suphp это модуль для apache, который вызывается вместо mod\_php и изначально был рассчитан на запуск apache от разных пользователей. Это придумано для того, что бы злоумышленник взломав 1 сайт не получил доступ ко всем сайтам на сервере (ведь по умолчанию apache работает от одного пользователя для всех сайтов на сервере). Но его можно приспособить и под наши задачи. Я не буду сравнивать suphp с mtm-itk, скажу лишь что компания, в которой я работаю применяет suphp на серверах виртуального хостинга (да, я работаю в хостинг провайдере), применяет успешно и жалоб на этот модуль на моей памяти никогда не было. [Читать дальше →][3]

[1]: http://habrahabr.ru/users/bondbig/
[2]: http://habrahabr.ru/post/245293/#comment_8172409
[3]: http://habrahabr.ru/post/245549/#habracut

[>] История 6 лет установки драйверов
habra.14
habrabot(difrex,1) — All
2014-12-22 12:00:02


![][1] Здравствуй, Хабрахабр! Это наш первый пост на ресурсе, поэтому просьба не судить строго и выслушать историю, которую мы хотим рассказать. В далеком, уже, 2008 году, создатель DriverPack Артур Кузяков, пытаясь сократить время собственной работы с компьютером в компании «Компьютерная помощь», которая занимается установкой операционных систем, настройкой и обслуживанием компьютеров, написал первую версию программы. Причины, по которым он взялся за это, прозаичны: у людей, которые сталкиваются с большими размерами компьютерных парков, то есть у системных администраторов, мастеров настройки и всех остальных, причастных; огромное количество времени уходит на установку и обновление драйверов. Время, сравнимое с установкой самой операционной системы. И хотя инсталляция ОС автоматизирована, а программы можно установить удаленно или пакетом, возможности автоматически просканировать оборудование и установить нужные драйверы из большого архива (не зная, с каким, конкретно, железом вам придется столкнутся), просто не было. А хотелось иметь именно универсальный инструмент, который можно носить на диске или флешке, чтобы автоматизировать эту задачу. [Читать дальше →][2]

[1]: //habrastorage.org/files/1c8/a61/5c3/1c8a615c3a674e8da6729fac7b2833a2.png
[2]: http://habrahabr.ru/post/246297/#habracut

[>] [Из песочницы] Решение задачи коммивояжера с помощью метода ветвей и границ
habra.14
habrabot(difrex,1) — All
2014-12-22 14:00:03


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

[1]: http://habrahabr.ru/post/160077/
[2]: //habrastorage.org/files/f0f/92b/66d/f0f92b66dfb243b99233650ae7808432.jpg
[3]: http://habrahabr.ru/post/246437/#habracut

[>] Новый профилировщик памяти в Visual Studio 2015
habra.15
habrabot(difrex,1) — All
2015-08-27 12:30:02


Долгие годы С++ программисты, пишущие под Linux язвительно пеняли разработчикам на С++ под Windows отсутствием в Visual Studio нормального профилировщика памяти. Вот в Линуксе, дескать, есть Valgrind, который решает все проблемы, а в студии что: расставляй какие-то макросы, анализируй какие-то логи — мрак. Клевета! Хотя и правда. Вернее, это было правдой до выхода Visual Studio 2015, в которой наконец-то (ура 3 раза!) присутствует нормальный профилировщик памяти, позволяющий ловить утечки памяти с закрытыми глазами, одной левой и даже не просыпаясь! В этой статье мы посмотрим, что он умеет и как им пользоваться. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/538/d27/e44/538d27e447264c80aab983edf8a7e6b0.PNG
[2]: http://habrahabr.ru/post/265507/#habracut

Pages: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 210