Как стать автором
Обновить
10
0
Лалетин Михаил @whiteglasses

Пользователь

Отправить сообщение

История создания Absolute Games

Время на прочтение13 мин
Количество просмотров23K
Статья, которую можно назвать “Тёмная история AG.ru”, представляет собой описание подробностей возникновения и развития проекта Absolute Games, которые смогли сообща вспомнить его создатели — Zombiek и ваш покорный (Sly). Статья написана по просьбам уважаемых хабровчан, интересующихся проектом.

Добавление от Зомбика: ну, моего в тексте мало — основные дифирамбы пойте Слаю. Я лишь дополнял статью техническими деталями, на которые у меня оказалась на редкость хорошая память.

Прошу прощения за сумбурное изложение — ностальгические слёзы периодически душили автора, запас салфеточек убывал с угрожающей скоростью. Также простите за непонятные слова — Фидо, ББС, резидентная программа, MS-DOS и пр. К сожалению, если расшифровывать их все, статья превратится в роман. А писать автобиографию мне ещё рано.
Читать дальше →
Всего голосов 261: ↑250 и ↓11+239
Комментарии131

Рынок телекоммуникаций в России — что, где, как, почем

Время на прочтение7 мин
Количество просмотров35K
Так сложилось, что я давно на рынке сверх-высоко-нагруженных-проектов и связи.

Делал тех. часть (NDA уже снято, да?) begun, mamba, badoo, innova, многих других.

Сейчас — badoo и DI — любимые компании. Хотя — badoo это старая но нерушимая любовь, DI — это нечто для exUSSR — never seen before.

Badoo — мы наконец взорвали рынок Европы, США и Латинской Америки (>100 миллионов пользователей — мне правда очень радостно быть частью процесса).
DI — мы скоро сокрушительно взорвем рынок СНГ, но должны четко представлять куда и на каких условиях мы будем отдавать наш трафик.

Речь сейчас об одной из насущных проблем — связь.

На самом деле — это набор неких субьективных тезисов, которые возможно кому-то помогут, а кого-то возмутят…
Все ниже написанное — глубокое IMHO.

Рынок связи в России — это то что было на западе около 10-15 лет назад — пора диких правил, конкурентной борьбы и мутной воды в которой ловится рыбка.

Читать дальше →
Всего голосов 193: ↑185 и ↓8+177
Комментарии155

Ускорение загрузки Windows for fun and profit

Время на прочтение4 мин
Количество просмотров805K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Всего голосов 533: ↑517 и ↓16+501
Комментарии365

Домашняя бухгалтерия с использованием Google Docs

Время на прочтение7 мин
Количество просмотров40K
Так уж получилось что меня всегда интересовало сколько и на что я потратил. Долгое время я старательно перебирал различные способы учёта личных финансов. Использовал и оффлайн инструменты, и онлайн решения, носил данные на флешке и так далее. Не скажу что перепробовал всё из доступного, но, как мне кажется, накопил приличный опыт и сделал соответствующие выводы.

Прежде всего всё что написано не мою — написано другим. Это очевидно. Но следствие из этого — это другой разрабатывал логику, исходя из собственных представлений об удобстве и функционале. А значит нет уверенности в том что чужие представления на 100% совпадут с моими. На хабре эта тема уже звучала.

Второй важный момент — если системой будут пользоваться двое (не говоря уже о большем количестве), то вероятность ошибок возрастает многократно. Многие системы подразумевали наличие счёта, отображающего количество денег в кошельке. Ах, как мне нравилась программа GnuCash… Но каждый месяц я должен был добавлять транзакции для корректировки счета по кошельку жены. И на что она тратила деньги оставалось только догадываться потому как сама она не могла вспомнить, а чеки благополучно терялись.

Исходя из вышеописанных проблем я породил ещё одну домашнюю бухгалтерию на Google Docs. Методом проб и ошибок, анализируя чужие решения и исходя из собственных потребностей я пришёл к следующим выводам.
Читать дальше →
Всего голосов 76: ↑70 и ↓6+64
Комментарии42

Силовые тренировки: раскатываем HTTPS под высокими нагрузками

Время на прочтение6 мин
Количество просмотров17K
В сентябре Почта Mail.Ru включила HTTPS-шифрование для всех пользователей.

Преимущества защищенного соединения очевидны всем разработчикам крупных интернет-проектов. Большинство современных web-серверов (nginx, Apache, etc) и браузеров поддерживают HTTPS. В то же время сайтов, на которых безопасный протокол включен всегда и по умолчанию, не так много. Почему это так? С какими трудностями мы столкнулись при поддержке HTTPS? Читайте под катом.
Читать дальше →
Всего голосов 49: ↑42 и ↓7+35
Комментарии33

Использование отладчика GDB по максимуму

Время на прочтение4 мин
Количество просмотров39K
В нашей повседневной работе, как и всем, требуется много пользоваться отладчиком. В силу специфики работы: (разработка ОС, использование технологий виртуализации наподобие Intel-VT, ит.д.) нам часто требуется использовать отладчик для работы со специфическими случаями: отладка кода загрузчика ядра, отладка загрузчиков виртуальных машин, а так же в принципе обеспечение возможности отлаживать ОС собственной разработки. Именно эти особые случаи так пафосно названы в заголовке ”по максимуму”.

Для решения всех этих задач (и конечно, многих других) мы используем gdb. Возможно использование и таких оболочек как DDD, но лично я предпочитаю использовать cgdb как оптимальный выбор, особенно для случая работы с отладчиком по ssh.
В этой статье мы расскажем о том, как можно использовать gdb для отладки кода загрузочных секторов и загрузчиков.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии3

Модуль nginx для борьбы с DDoS

Время на прочтение6 мин
Количество просмотров67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →
Всего голосов 142: ↑140 и ↓2+138
Комментарии43

Функциональное и экономическое сравнение российских операторов предоставляющих облачные услуги

Время на прочтение12 мин
Количество просмотров16K

В связи с тем, что рынок облачных услуг в России стремительно развивается, я решил изучить основных игроков на этом рынке, понять, что в действительности они из себя представляют, а также выяснить ценовой диапазон предоставляемых услуг.
Для тех, кому интересно, как я все это делал поясню.
Все информация собиралась более двух месяцев. Была выбрана определенная конфигурация ресурсов и ряд вопросов.
Данный запрос был разослан облачным операторам, по итогам переписки составил таблицу для сравнения.

Итак, операторы, предоставляющие облачные услуги, с которыми велась данная работа:
Читать дальше →
Всего голосов 83: ↑75 и ↓8+67
Комментарии69

Определение страны по IP: тестируем скорость алгоритмов

Время на прочтение4 мин
Количество просмотров35K
Для определения страны по IP необходимы специальные базы данных, состоящие из диапазонов IP адресов и соответствующих им стран. Обычно такие базы данных распространяются в виде CSV или SQL файлов для использования в СУБД, либо бинарных файлов специального формата.

Для проведения тестирования была выбрана февральская база GeoLite Country, бесплатная версия GeoIP Country от MaxMind.

В тестировании приняли участие несколько популярных решений и мой «велосипед» на эту тему.
Читать дальше →
Всего голосов 66: ↑57 и ↓9+48
Комментарии93

Подборка html/javascript/css инструментов и библиотек от SmashingMagazine

Время на прочтение5 мин
Количество просмотров22K
Разработка вебинтерфейсов дело не самое легкое. Причем начать вроде бы несложно, а вот добиться совершенства поистинне проблематично. Уж очень многое необходимо учесть. Просто масса настроек и ньюансов, в которых легко запутаться и сделать что-то не так. К счастью, разработчики и дизайнеры склонны упрощать этот нелегкий труд и постоянно изобретают всяческие инструменты позволяющие сделать больше и лучше за то же самое время, а главное не погрязнуть в мелочах и состредоточиться на чем-то более важном.

Множество удобных инструментов, найденных командой популярного онлайн журнала SmashingMagazine, приводится под катом
Читать дальше →
Всего голосов 125: ↑123 и ↓2+121
Комментарии19

Как улучшить выбор страны из списка

Время на прочтение6 мин
Количество просмотров14K
Представляю вашему вниманию перевод статьи под названием "Redesigning The Country Selector" от Christian Holst. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.

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



Однажды, проводя масштабные юзабилити-тестирования (о которых мы писали на Smashing Magazine в апреле 2011. Примечание переводчиков: мы перевели и эту статью тоже. Обязательно ознакомьтесь :), мы последовательно столкнулись с несколькими проблемами, связанными с выбором страны. Якоб Нильсен сообщал о похожих моментах в 2000 и 2007 годах, когда он тестировал выпадающие списки с большим количеством внутренних элементов, к примеру, таких, как перечни штатов или стран.

Читать дальше →
Всего голосов 103: ↑95 и ↓8+87
Комментарии55

Расширения Firefox для веб-разработки на все случаи жизни

Время на прочтение6 мин
Количество просмотров56K
Исторически сложилось так, что Firefox пользуется широкой популярностью среди веб-разработчиков благодаря его расширяемости через подключение всевозможных плагинов и дополнений, написанных сторонними разработчиками. Идея выделения функционала в расширения позволила решать массу всевозможных задач прямо в браузере, не прибегая к внешним инструментам.

Безусловно в этом списке вы обязательно найдёте уже знакомые расширения, однако огромный пласт полезных расширений всегда остаётся в стороне. Так что приготовьтесь установить ещё парочку расширений! :)

Встроенные инструменты разработки в Firefox


Перед началом списка было бы неправильно не упомянуть об инструментах, уже встроенных в Firefox. Здесь речь идёт о тех самых инструментах разработки в Firefox Aurora 10 и том функционале, который сегодня можно найти в любом современном браузере.

При разработке интерфейса этих инструментов было перепробовано множество подходов и решений. В результате получился довольно приятный интерфейс, который любой желающий может испробовать, установив Firefox Aurora (хм, вы ещё его не поставили?)



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

Читать дальше →
Всего голосов 216: ↑197 и ↓19+178
Комментарии55

Алгоритм сортировки Timsort

Время на прочтение6 мин
Количество просмотров153K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы.
Читать дальше →
Всего голосов 292: ↑285 и ↓7+278
Комментарии63

Замыкания и объекты JavaScript. Переизобретаем интерпретатор

Время на прочтение12 мин
Количество просмотров25K
Обычно концепции или парадигмы программирования объясняют либо описательно — «разжёвывая» новые идеи простыми словами, либо метафорически — уподобляя их хорошо знакомым аудитории предметам и понятиям. Но ни первый, ни второй способ не дает такого точного и полного представления о предмете, как взгляд с точки зрения низкоуровневой реализации.

Когда в изучении языка доходишь до нетривиальных вещей, бывает полезно сместить уровень абстракции, чтобы понять, как на самом деле всё устроено. Ведь, по большому счету, любые конструкции языков сколь угодно высокого уровня сводятся к старому доброму машинному коду. Писать в объектно-ориентированном или функциональном стиле можно и на чистом C, и даже на ассемблере. Грубо говоря, любой высокоуровневый язык — это зафиксированный на уровне компилятора или интерпретатора набор синтаксических карамелек и шоколадок. Повышение уровня абстракции позволяет писать более сложные программы с меньшими усилиями, но вот понять в начале пути, что конкретно имеется в виду под наследованием или замыканием, как это всё работает и почему, гораздо легче, разобравшись, каким образом всё это реализовано.

JavaScript, как никакой другой язык, нуждается в именно таком объяснении. Функциональная природа, скрытая за Си-подобным синтаксисом, и непривычная прототипная модель наследования поначалу сильно сбивают с толку. Давайте мысленно понизим уровень JavaScript до простого процедурного, наподобие Си. Отталкиваясь от этого «недоязыка», переизобретем функциональное и объектно-ориентированное программирование.
Читать дальше →
Всего голосов 114: ↑113 и ↓1+112
Комментарии30

Изменение часовых зон в России, Белоруссии и на Украине

Время на прочтение44 мин
Количество просмотров39K
Как вы, наверняка, уже слышали, осенью 2011 сразу несколько государств приняли решение об изменении порядка исчисления времени на своей территории, а также об отмене сезонного перехода на летнее время.
В списке этих государств: Россия, Белоруссия, Украина, частично признанные государства: Абхазия и Южная Осетия, а также непризнанное государство Приднестровье. Т.е. во всех часовых поясах этих стран теперь круглый год будет фиксированный сдвиг относительно UTC, без дополнительных сезонных сдвигов.
(Примечание: Украина сначала приняла решение о переходе на время UTC+3 без летнего времени, но потом отменила принятое ранее решение и пока вернулась к прежнему порядку исчисления времени с сезонными переводами часов. Подробности ниже.)

Server clockВ этой статье я опишу суть принятых изменений часовых поясов и опишу техническую сторону вопроса касательно IT-систем (корпоративной инфраструктуры, серверов, рабочих станций, сервисов, приложений и т.п.). Постараюсь ответить на ряд основных вопросов, возникающих в связи с этими изменениями:
— Какие IT-системы может затронуть изменение часовых поясов?
— Какие проблемы это может вызвать?
— Как подготовиться к этому, чтобы по возможности избежать проблем?

Полагаю, многим системным/прикладным администраторам, а также некоторым разработчикам приложений/сервисов, полезно будет ознакомиться с этим материалом. А потом предлагаю всем заинтересованным обсудить и дополнить эту информацию в комментариях.
Для начала немного общей информации...
Всего голосов 263: ↑254 и ↓9+245
Комментарии101

Подборка видео с различных конференций

Время на прочтение2 мин
Количество просмотров4.2K
На конференции попасть получается не всегда, а умных людей послушать хочется. Решил собрать воедино скопившиеся ссылки на видеоматериалы. Надеюсь кому то пригодится.

Известные
Читать дальше →
Всего голосов 154: ↑151 и ↓3+148
Комментарии50

Как мы «бэкапим» серверы в Amazon и отбиваемся от пираний

Время на прочтение8 мин
Количество просмотров18K
Многие владельцы веб-проектов, размещенных в популярном облачном провайдере Amazon, наверняка задумываются о том, как создать эффективную и надежную конфигурацию веб-решения, как проводить резервное копирование машин, как действовать в случае коллапса датацентра, в котором размещены ваши серверы. К сожалению, официальная документация облачного хостинга «несколько» скупа на тему надежности и внутренней реализации веб-сервисов — поэтому приходится полагаться на собственный боевой опыт эксплуатации и армейскую смекалку.

Ситуацию усугубляет наблюдаемое ныне противостояние распространенного заблуждения, что в облаке все очень надежно и можно крепко спать: жесткие диски «из титана», сетевой трафик течет «по золотым проводам», а инженеры там крутые парни из Челябинска, рассекающие писсуар пополам — с рекомендациями облачного провайдера на тему «мы предоставляем сервисы достаточной надежности и быстрые каналы между ДЦ, а задача архитектора проекта — комбинировать наши технологии, доводя девяточки справа до нужного количества».

В статье хочу поделиться нашими наблюдениями за поведением сервисов в течение полугода, архитектурными решениями на EBS-дисках для обеспечения надежности и производительности веб-проектов и конкретными техниками резервного копирования, которые мы используем в повседневной работе.
Читать дальше →
Всего голосов 72: ↑63 и ↓9+54
Комментарии22

Произносим правильно

Время на прочтение2 мин
Количество просмотров151K
Из знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить C++ как «си-плюс-плюс», а не «си-плас-плас» или «опен-бэ-эс-дэ», а не «оупэн-би-эс-ди».
Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.

В топике представлен небольшой список «сложных» слов, которые часто произносят неправильно.
Ориентироваться лучше не на мою (весьма приблизительную) транскрипцию, а на аудио.

♫ — прослушать произношение в словаре
► — прослушать произношение на youtube

Начнем с названий:
ABBYY аби
Adobe эдоуби [əˈdəʋbɪ]
Apache эпэчи [əˈpætʃiː] от «a-patchy»
Asus офиц. э́сус
амер. э́йсус

 
BenQ бенкью
Cisco сискоу [ˈsɪskoʊ]
EBay ибэй
Eee PC и писи
Ethernet изэрнэт [ˈiθərˌnɛt]
Itanium айтэйниум [aɪˈteɪniəm]
Juniper джу́нэпэр [ˈdʒunəpər]
LaTeX лэйтех
лэйтек
латех
латек
[ˈleɪtɛk]
['leɪtɛx]
[ˈlɑːtɛx]
[ˈlɑːtɛk]
Linux офиц. линэкс
вар. линукс
[ˈlɪnəks]
[ˈlɪnʊks]

 
Mac OS X мэк оу-эс тэн
MySQL офиц. май-эс-кью-эл
вар. май-сиквел
как «My Ess Que Ell», см. оф. сайт
nginx энджин-икс (от engine-x)
PuTTY пати [ˈpʌtɪ] см. оф. сайт
Qt кьют [kyut] см.
TeX тех
тек
[ˈtɛx]
[tɛk]
не «текс»
XBox 360 экс-бокс фри сискти
Xen зен [ˈzɛn]
Xeon зион
Xerox зирокс [ˈzɪərɒks]
Xilinx зайлинкс [ˌzaɪliːŋks]
ZyXel рус. зайксел
амер. зайзел
см.


Аббревиатуры:
GNU гну вар. гню
GWT гвит [ˈɡwɪt]
ICANN айкэн
IEEE ай-трипл-и как «I triple E»
ISO айсо
PNG пинг [ˈpɪŋ] как «ping», см. спецификацию
PXE пикси [ˈpɪksi]
RUP рап
SCSI скази ['skʌzi]
SOAP соуп [soʊp]
SQL эс-кью-эл [ˈɛsˈkjuˈɛl] неофиц. «сикуел»
SWF свиф [ˈswɪf] см. спецификацию
WYSIWYG визивиг [ˈwɪziˌwɪg]
XAML зэмл [ˈzæməl]
XUL зул [ˈzuːl]
Yii длинное «и» [ji:]

Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.

Обычные слова дальше
Всего голосов 388: ↑344 и ↓44+300
Комментарии514

Набор инструментов для построения графиков, блок-схем и диаграмм

Время на прочтение3 мин
Количество просмотров174K


Есть много разных сервисов, облегчающих жизнь веб-разработчику или дизайнеру, в том числе создающих разные графики, диаграммы, блок-схемы и т.д. Ниже представлена небольшая подборка.
(Осторожно, много изображений)
Читать дальше →
Всего голосов 151: ↑144 и ↓7+137
Комментарии40

Уязвимость связки PHP+nginx с кривым конфигом

Время на прочтение1 мин
Количество просмотров60K

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

Читать дальше →
Всего голосов 163: ↑146 и ↓17+129
Комментарии109

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность