Привет, Хабрапользователь. Кажется, ты используешь AdBlock. Хабрахабр
развивается и существует за счет доходов от рекламы. Добавь нас в исключения.
открытое письмо как отключить

Публикации

вчера в 22:47

Как мы провели пару дней, работая над ускорением Perl перевод

Это история о значительной оптимизации интерпретатора Perl, о борьбе со сложностями кода, и о том, как мы хотели «съесть торт так, чтобы он у нас остался» [английская поговорка «You can't have your cake and eat it», означающая невозможность достижения двух противоположных целей].

На недавнем хакатоне Booking.com у нас появилась возможность поработать над ускорением функции размещения целых чисел в интерпретаторе Perl. В случае успеха это поможет ускорить практически все программы, которые работают в нашем проекте. Оказалось, что банальная реализация идеи могла бы сработать, но это привело бы к увеличению сложности поддержки кода. Наше исследование привело нас к тому, чтобы заставить препроцессор С улучшать качество кода, одновременно давая возможность ускорить выполнение программ.

Предыстория


В perlguts и PerlGuts Illustrated написано, что представление переменных в Perl обычно состоит из двух частей – заголовка и тела (представляемых как struct). Заголовок содержит необходимые для обработки переменных данные, которые не зависят от её типа, включая указатель на возможное тело.

image

Структура тела может сильно отличаться, в зависимости от типа переменной. Простейшая переменная — SvNULL, которая представляет undef и которой не требуется тело.

У строки (PV — “pointer value”) тело имеет тип XPV:

image

Структура тела PV отличается от тела PVNV. PVNV может содержать число с плавающей точкой и строковое представление того же значения.

image

Преимущество такого дизайна в том, что все ссылки на переменную ведут на заголовок. Perl свободно может изменять то место, где хранится тело, и для этого не требуется обновлять все остальные указатели.
2198
13
SLY_G 59,2
вчера в 14:59

Современный интернет ушами незрячего – Теги article и section

Всем доброго времени суток. В этой статье с подачи одного из пользователей рассматриваются теги article и section, которые появились в HTML 5. Рассматривается их влияние на поведение экранных дикторов на веб-страницах.
2409
29
Verdoga 30,5
вчера в 16:57

Дайджест: VR и AR

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

вчера в 17:44

Корреляция, ковариация и девиация (часть 3)



В первой части мы рассказали о сути преобразования девиации и его применении к матрице квадратов расстояний. Во второй немного напустили туману на спектры простых геометрических наборов.

В данной статье мы постараемся раскрыть смысл преобразования девиации, для чего обратимся к прикладным задачам, связанным с обработкой и анализом данных. Покажем, как связано преобразование девиации матрицы расстояний со статистикой — с дисперсией, корреляцией и ковариацией.
вчера в 18:08

Xonix на Javascript с картинками

Xonix — популярная игра времен DOS, клон видеоигры Qix.

На Javascript Xonix уже был портирован несколько раз. Лучшая и наиболее приближенная к оригиналу из существующих реализаций на сегодняшний день, пожалуй, вот эта. Ее я поначалу пытался приспособить для своей реализации/модификации… Но, к сожалению, код даже после деобфускации так и не стал понятным (во всяком случае для меня). К тому же, насколько я смог понять, код там местами не совсем эффективен, либо вовсе устаревший. Так что пришлось все писать с нуля.

В результате у меня получился такой вот «свой» Xonix, с картинками и ответами.

4266
34
xmeoff 6,4
вчера в 15:57

Линейка серверов HP ProLiant Gen9

Привет, Хабр! Сегодня мы хотели бы рассказать вам о младших представителях известной линейки серверов HP ProLiant, которые относятся к девятому поколению продуктов. Это надёжные «рабочие лошадки», которые предназначены для малого и среднего бизнеса. Серверы из модельного ряда Gen9 неплохо зарекомендовали себя для решения различных несложных задач, которым, как правило, сопутствует небольшой бюджет. Наследники бренда Compaq, они достойно держатся в сравнении с более мощными собратьями и с гордостью несут имя Hewlett Packard, столь хорошо известное в «серверном» мире.
image

Впрочем, довольно лирики. Встречайте героев нашего сегодняшнего материала: HP ProLiant DL60 и DL80 Gen9, предназначенные для размещения в стойке, и «две башни» на радость поклонникам толкиеновского «Властелина Колец»: HP ProLiant ML10 v2 и НР ProLiant ML110 Gen9. Первые три относятся к серии НР ProLiant 10, которая была добавлена в каталог серверов HP совсем недавно, в результате чего данные модели попросту не имеют предшественников из восьмого поколения. Что касается сервера НР ProLiant ML110 Gen9, это один из младших представителей «сотой» серии, который позиционируется компанией как «первый сервер» для тех компаний, где ранее использовались исключительно настольные компьютеры.
6166
12
Tigger 10,4
вчера в 14:16

Гаджеты как источник постоянных отвлеканий перевод



Каждый раз, когда думаешь, что образ жизни уже не может меняться быстрее, судьба услужливо доказывает обратное. Сравните свою сегодняшнюю жизнь с той, что была пять лет назад — всё стало совсем другим, и одним из ключевых отличий можно назвать переизбыток отвлекающих событий.

Мы постоянно просматриваем какие-то сообщения: в SMS, соцсетях, электронной почте, читаем новости, развлекательные публикации и т.д. Множество людей пытаются нам что-то сообщить, донести. А с повсеместным распространением умных часов ситуация только усложнится: как метко подметил техноблогер MG Siegler, «это устройство для привлечения внимания», и если смартфон ещё можно отложить подальше, то часы постоянно на руке, в поле зрения.

Есть два способа справиться с избытком всевозможных отвлекающих событий. Первый: объяснять, спорить, доказывать всем в своём круге общения, что постоянное переключение внимания вредит здоровью (так и есть, это делает нас глупее), а затем уехать на дачу, подальше от всех. И обнаружить, что и за городом теперь хороший мобильный интернет.
11904
29
Yota4All 13,6
вчера в 14:02

А вы уже поменяли $Increment на $Sequence?

Если бы это была запись для твиттера, то она была бы следующей: «Программисты на Caché ObjectScript! Используйте $Sequence вместо $Increment для генерации Id». Но тут Хабр, поэтому придётся развернуть мысль – добро пожаловать под кат.


5910
12
adaptun 23,4
вчера в 14:06

Azure RMS. Возможности службы

Автор статьи — Михаил Войтко, технический директор Energy Time

Этой публикацией мы хотим начать цикл статей о новых облачных и зачастую малознакомых технологиях Microsoft. В этой статье я постараюсь кратко «без воды» рассказать о работе службы Azure RMS. Ниже вы узнаете:
  1. Зачем нужен Azure RMS.
  2. Пара слов о работе.
  3. Killer features, или важные отличия от конкурентов.
  4. «Вишенка на торте» — режим суперпользователя в PowerShell.
  5. Реальные примеры использования у заказчиков.
1934
9
ashapo 40,0
вчера в 13:13

Архитектурные решения в системе телефонии «Битрикс24»



Несмотря на эпоху интернета и всевозможных средств коммуникации, телефонная связь по прежнему остаётся одним из важнейших каналов взаимодействия компании со своими клиентами. И каким бы ни был корпоративный сайт, — лицо фирмы — отсутствие телефона или плохое качество связи может сильно подпортить впечатление клиентов и партнёров. Поэтому, мы когда-то всерьёз озаботились тем, чтобы интегрировать в «Битрикс24» полноценную систему телефонной связи, которую наши пользователи могут применять для поддержки и развития своего бизнеса. И на страницах этого поста мы хотим рассказать об архитектуре и принципах функционирования созданной системы.
4686
27
1cbitrix 40,8