Как стать автором
Обновить
27
0
Игорь @CLaiN

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

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

Черная пятница: взгляд на нагрузку глазами разработчика

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

Прошлой весной мы начали каждую пятницу страдать от массовых рассылок: письма копились в очереди и уходили с большим опозданием. Это были обычные серые пятницы. Уже тогда, за полгода до черной пятницы, стало понятно, что осенью будет непросто. Пришлось масштабироваться. Рассказываю, как всё прошло.

Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Время на прочтение7 мин
Количество просмотров700K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
Читать дальше →
Всего голосов 212: ↑212 и ↓0+212
Комментарии352

Разнообразие версий Microsoft SQL Server и какая из них последняя?

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

В свое время из-за немного громоздкой политики по выпуску обновлений для Microsoft SQL Server путался какой же из дистриубтивов нужно установить и откуда его скачать. Углубившись в данную тематику, в интернете нашел замечательные систематизирующие ресусры, которые отвечали на мои вопросы (они приведены в начале статьи).


Надеюсь собранная информация будет полезна не только мне.


Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии14

40 ключевых концепций информационных технологий доступно и понятно

Время на прочтение16 мин
Количество просмотров159K
Представляю вашему вниманию перевод очень ёмкой, и в то же время достаточно краткой (для такого масштаба проблемы) статьи Карла Чео. Я решил, что очень хочу сделать её перевод практически сразу, как только начал читать, и очень рад, что в итоге сделал это.
Для того, чтобы сделать обучение более веселым и интересным, представляю вам перечень важных теорий и концепций информатики, объяснённых с помощью аналогий с минимальным количеством технических деталей. Это будет похоже на очень быстрый курс информатики для всех с целью просто дать вам общее представление об основных концепциях.

Важные замечания:
  • Пункты с неуказанным источником написаны мной самостоятельно. Поправьте меня, если вы заметите какие-то неточности. Предложите лучшую аналогию, если это возможно.
  • Заголовки ссылаются на соответствующие им статьи в Wikipedia. Пожалуйста, читайте эти статьи для более серьезных и детальных объяснений.
  • Аналогии — отличный способ объяснить материал, но они не идеальны. Если вы хотите по-настоящему понять перечисленные концепции, вам следует начать с фундаментальных азов и рассуждать, исходя из них.

Также зацените эту инфографику (вариант на русском), если вы просто начинающий программист.
Читать дальше →
Всего голосов 104: ↑96 и ↓8+88
Комментарии37

Telnet и echo — кто прав, кто виноват

Время на прочтение5 мин
Количество просмотров21K
image

В комментариях к предыдущей статье у нас разразился небольшой спор на тему того, помогает ли команда «set localecho» в решении проблемы с отсутствием echo при взаимодействии с сервером bat.org. Я стоял на том, что команда эта не сделает ровным счётом ничего для исправления рассмотренной ситуации, и говорил это вовсе неспроста — специально после одного из комментариев я решил ещё раз проверить мою правоту в данном вопросе. Проделав все необходимые действия (запуск telnet.exe, нажатие Ctrl-], ввод команды «set localecho» и двойное нажатие клавиши Enter), я в очередной раз убедился, что был прав. О чём же тогда так уверенно твердят остальные?

Я попросил выслать мне бинарник «работающего» telnet-клиента и версию ОС, на котором он запускался, в личку. Убедившись, что версии ОС совпадают (использовалась Windows 7 SP1 x64), я обратил своё внимание на сам telnet-клиент. Хеши совпали. Запустив «работающий», по заверению пользователя k0ldbl00d, бинарник, я с удивлением обнаружил, что на моём компьютере не работает и он.

Может быть, дело в окружении, в котором выполняется telnet.exe? Оригинальный исполняемый файл был взят из директории "%WINDIR%\System32", так что я запустил свой telnet-клиент оттуда, и… Обнаружил, что команда «set localecho» корректно отрабатывает при таком раскладе. А если скопировать тот же самый исполняемый файл в любую другую директорию и воспользоваться уже им, то, несмотря на то, что основной функционал telnet.exe будет продолжать работать, команды перестанут выполнять то, что от них требуется.

В чём же дело? Давайте раберёмся.

Как протекал процесс, и что из этого вышло, читайте под катом. Перед прочтением данной статьи также настоятельно рекомендую ознакомиться с предыдущими, т.к. в них уже объяснены многие из опущенных здесь моментов.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии4

Need For Speed III Modern Patch: более 100 изменений без исходных кодов

Время на прочтение3 мин
Количество просмотров48K
imageКогда я впервые увидел Need For Speed III, от изумления я даже присел. Диск шёл в подарок к видеокарте моего первого компьютера, и это была первая трёхмерная игра в моей жизни. До этого момента я совершенно не подозревал, что графика в играх может быть настолько потрясающей. Это был далёкий 2000 год. Не счесть количество часов, потраченных на игру в сплитскрине за одной клавиатурой с моим двоюродным братом… Музыке — отдельное слово. Мне она настолько нравилась, что я даже записывал её на кассету, а с кассеты потом обратно на компьютер, при помощи стандартной «Звукозаписи». Это единственное что я тогда смог придумать. Слушал я эти записи по кругу по много часов подряд. MP3? Что это за странные буквы? Только WAV, только хардкор!

И вот, годы спустя, мне захотелось сыграть в эту игру. Но она не заработала на современном железе. Пришлось разбираться. В процессе захотелось ещё и поддержку широкоформатных разрешений… и понеслась! Немного увлёкся этим делом, и в результате получился внушительный патч. Более 8000 строк на ассемблере, исписано 18 листов А4, огромный список изменений…
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии55

NGINX — История перерождения под Windows

Время на прочтение6 мин
Количество просмотров43K
Раз уж тут у нас «неделя» nginx, например тут или тут, то попробую и я внести свою, так сказать, лепту. Речь пойдет про nginx 4 windows, а именно про более-менее официальную сборку для этой пропритарной, некоторыми не очень любимой платформы.

Почему Windows. Все просто, в корпоративном секторе Windows на сервере, да и на рабочих станциях — нередко обязательная программа. И от этих требований к платформе, например в ультимативной форме озвученных клиентом, никуда не денешься.
И раз уж имеем Windows, но не хочется мучиться с IIS, apache и иже с ними, если хочется использовать любимые инструменты, а nginx однозначно к ним относится, то приходится иногда мириться даже с некоторыми ограничениями на этой платформе. Вернее приходилось…

Хотя нужно заметить, что даже с этими ограничениями, nginx даст фору практически любому веб-серверу под windows по многим факторам, в том числе по стабильности, потреблению памяти, а главное производительности.

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

Здесь описаны известные проблемы nginx 4 windows, а именно:

  • Рабочий процесс может обслуживать не более 1024 одновременных соединений.
  • Кэш и другие модули, требующие поддержки разделяемой памяти, не работают под Windows Vista и более поздними версиями в связи с тем, что на этих версиях Windows включена рандомизация адресного пространства.
  • Хоть и возможен запуск нескольких рабочих процессов, только один из них реально работает.

Я немного изменил порядок, т.к. именно в такой последовательности я разбирался с этими ограничениями, так сказать отсортировано «исторически».
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии81

Обновленная и расширенная версия DriverPack Online – первая по значимости, 16 по номеру

Время на прочтение4 мин
Количество просмотров115K
Когда ты поддерживаешь сотни офисных и домашних ПК, то без набора универсальных драйверов уже не обойтись. Без сомнений, самым популярным решением здесь является DriverPack Full, который имеет огромную базу драйверов, размером в 10 Gb! Это целых 910 000 драйверов собранных и протестированных вручную.

Если же нужно настроить только 1 компьютер, то качать 10 Gb — совсем не хочется, поэтому был сделан DriverPack Online. У него были свои недостатки, которые мы попробовали исправить в новом релизе. Так что остановимся подробнее на самых интересных моментах разработки.


Читать дальше →
Всего голосов 37: ↑27 и ↓10+17
Комментарии58

Тысяча дней на Марсе: неисправности и сбои марсохода Curiosity

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


Тысячу марсианских солов намотал хронометр марсохода Curiosity. В земных днях это даже больше получается. Казалось совсем недавно он только садился на Марс в клубах пыли, разворачивал мачту, разминал манипулятор, присматривался и пристреливался к Марсу… А уже пронеслось почти полтора марсианских года и почти три земных. Curiosity за это время успел пройти 10,6 км, заложить больше двух десятков скважин, найти метан в атмосфере, органику и нитраты в грунте, измерить радиацию в космосе и на поверхности, сделать почти 250 тыс. фотоснимков Красной планеты. Но ресурс техники не вечен, а изделия человеческих рук, даже такие совершенные, не безупречны. Поэтому история марсохода это еще и летопись неисправностей, повреждений, потерь, и героической борьбы команды Curiosity за возможности и функциональность.
Читать дальше →
Всего голосов 94: ↑94 и ↓0+94
Комментарии30

Как Бандеролька делает упаковку, которая пересекает океан и не боится «Почты России»

Время на прочтение5 мин
Количество просмотров49K
В конце 2012 года на рынок смартфонов вышел хороший аппарат Google Nexus 4, и наши клиенты тут же начали покупать его в американских магазинах и заказывать доставку домой через Бандерольку. Но такой телефон хотелось иметь не только им — сотрудники «Почты России» попробовали их воровать. Мы приостановили отправку, выплатили страховку и начали думать, как сделать упаковку, которую нечестные почтальоны не смогут вскрыть.


Читать дальше →
Всего голосов 66: ↑63 и ↓3+60
Комментарии62

Руководство по сетевой загрузке предустановочной среды Windows (WinPE)

Время на прочтение7 мин
Количество просмотров44K
Предустановочная среда может использоваться не только для установки операционной системы, но и как основа для инструментов системного администратора, например, восстановления системы, антивирусного лечения, диагностики сети и т.д. В данной статье будем рассматривать стандартный образ WinPE без добавления административных утилит, так как это тема для отдельной статьи.

Последовательность сетевой загрузки WinPE, начиная с версии 2.0, следующая:
  1. загружается сетевое ядро pxeboot.com;
  2. сетевое ядро загружает стандартный диспетчер загрузки bootmgr.exe, далее сетевая загрузка практически не отличается от загрузки с других носителей;
  3. диспетчер загрузки читает файл BCD (boot configuration data), где прописана конфигурационная информация (расположение загрузочных файлов), загружает необходимый шрифт (wgl4_boot.ttf) и драйвер виртуального диска boot.sdi, потом загружается образ WinPE;
  4. диспетчер загрузки передает управление программе, указанной в параметре path BCD-файла.

Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии0

Wiren Board 4 — контроллер для автоматизации

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

Год назад мы выпустили контроллер Wiren Board Smart Home. Благодаря невысокой цене и широким возможностям он имел успех среди энтузиастов.

Поэтому мы решили не останавливаться и выпустили новую версию — контроллер для автоматизации Wiren Board 4, к которому написали и новый софт.

Несмотря на название, покупатели часто использовали Wiren Board Smart Home и для совсем не “домашних” задач: сбора климатических параметров, опроса счётчиков и датчиков, удалённого контроля оборудования — то есть в качестве универсального логического контроллера.

Wiren Board 4 (как в железе, так и в ПО) лучше приспособлен для таких задач. Домашних пользователей это тоже коснулось — контроллер стал надёжнее.
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии83

Виртуальная реальность: видео 360 и бинауральный звук

Время на прочтение7 мин
Количество просмотров27K
Мы написали интересный доклад по технологиям виртуальной реальности для конференции EVA Florence 2015 (Флоренция, Италия). Статья нигде не публиковалась и, поскольку тема интересная и не слишком освещенная на Geektimes, решили разместить её здесь. Приводим адаптированный русский вариант статьи, в случае необходимости, любые дополнения, ссылки, примечания добавим.


Видео 360 + бинауральный звук
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии14

Раскрыта тайна притягательности картофельных чипсов, шоколада и арахисового масла

Время на прочтение2 мин
Количество просмотров41K
image

Моника Пишетсридер (Monika Pischetsrieder) с коллегами из Эрлангенского университета в Германии обнаружили, что крысы, имея возможность выбора, тяготеют к пище с определённым сочетанием жиров и углеводов. Волшебная формула – 50 к 35, то есть еда, в которой содержится 35% жиров и 50% углеводов. А это практически полностью совпадает с картофельными чипсами, шоколадом и арахисовым маслом. Это исследование было опубликовано 17 марта в журнале Nature.

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

image

Бытует точка зрения, что мозг просто предпочитает высококалорийную еду. Исследователи проверяли правоту этого утверждения — будут ли подопытные крысы выбирать себе еду по содержанию калорий, или отдадут предпочтения какой-либо из комбинаций питательных веществ.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии60

Слой кэширования поверх Linq to SQL

Время на прочтение10 мин
Количество просмотров7.8K
За последний год мы перенесли внушительную часть настроек DirectCRM в базу данных. Множество элементов промо-кампаний, которые мы до этого описывали исключительно кодом, теперь создаются и настраиваются менеджером через админку. При этом получилась очень сложная структура БД, насчитывающая десятки таблиц.

Однако, за перенос настроек в базу данных пришлось расплачиваться. Об архитектуре, позволяющий кэшировать редко меняющиеся Linq to SQL сущности, смотрите под катом.
image
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии9

Распределенные транзакции между RabbitMQ и MS SQL

Время на прочтение5 мин
Количество просмотров18K
Для реализации асинхронного общения между двумя системами очень выгодно использовать очереди сообщений. Даже если одна из систем лежит, другая этого не замечает и спокойно продолжает слать ей сообщения, которые будут обработаны, когда вторую систему поднимут. В качестве очереди сообщений можно использовать таблицу MS SQL, но это не особо масштабируемое решение.

Однако, как только у нас появляется отдельная система для хранения очереди сообщений (мы используем RabbitMQ), сразу возникают проблемы с транзакционностью. Например, если мы хотим сохранить в БД отметку о том, что мы отправили сообщение в Rabbit, не так уж и просто гарантировать, чтобы отметка была сохранена только в случае успешной отправки сообщения. О том, как мы справлялись с этой проблемой читайте под катом.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии33

Как строится инфраструктура сервисов email-рассылок: Опыт Pechkin-mail.ru

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


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

В нашем сегодняшнем топике мы расскажем о том, как строится инфраструктура подобных сервисов, на примере проекта Pechkin-mail.ru.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии14

Инженерное устройство дата-центра уровня TIER III, стоящего на четырех магистральных линиях

Время на прочтение11 мин
Количество просмотров50K
Мы уже рассказали о том, как проектировали и стоили наш TIER III ЦОД. Пора уже показать, что получилось.



Сначала на месте дата-центра было чистое поле, затем вырыли здоровенный 100–метровый котлован. Потом дата-центр стал похож на бетонную площадку, а еще позже – из металлоконструкций построили шестиугольное здание, внутри которого расположены шесть модулей ЦОД (на схеме выделены зеленым), «командный центр» для мониторинга магистральной сети по всей стране и офис (подробнее о строительстве можно почитать в публикации «ЦОД нашей мечты в Ярославле: фото строительства и запуска»).



Осторожно, трафик и гикпорн из ярославского дата-центра: 91 фотография только-только запущенного первого модуля, в главном здании кое-где ещё идут финальные работы, но капитального строительства больше не будет.
Читать дальше →
Всего голосов 69: ↑68 и ↓1+67
Комментарии33

Лишние элементы или как мы балансируем между серверами

Время на прочтение8 мин
Количество просмотров40K
Привет, Хабр! Какое-то время назад люди осознали, что увеличивать мощность сервера в соответствии с ростом нагрузки просто невозможно. Тогда-то мы и узнали слово «кластер». Но как бы красиво это слово не звучало, всё равно приходится технически объединять разрозненные серверы в единое целое – тот самый кластер. По городам и весям мы добрались до наших узлов в моём предыдущем опусе. А сегодня мой рассказ пойдёт о том, как делят нагрузку между членами кластера системные интеграторы, и как это сделали мы.



Внутри публикации вас также ждёт бонус в виде трёх сертификатов на месячную подписку ivi+.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии89

Полная энергетическая автономия или как выжить с солнечными батареями в глубинке (часть 2. практическая)

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


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



Собираем автономку
Всего голосов 107: ↑106 и ↓1+105
Комментарии156

Информация

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