Pull to refresh
27
0
Игорь @CLaiN

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

Send message

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

Reading time 4 min
Views 2.6K

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

Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 0

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

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

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

Пассивный DPI

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

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

Reading time 71 min
Views 86K

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


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


Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Comments 14

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

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

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

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

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

Reading time 5 min
Views 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 будет продолжать работать, команды перестанут выполнять то, что от них требуется.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Читать дальше →
Total votes 37: ↑27 and ↓10 +17
Comments 58

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

Reading time 6 min
Views 28K


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

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

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


Читать дальше →
Total votes 66: ↑63 and ↓3 +60
Comments 62

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

Reading time 7 min
Views 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-файла.

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 0

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

Reading time 4 min
Views 60K
image

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

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

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

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

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

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


Видео 360 + бинауральный звук
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 14

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

Reading time 2 min
Views 41K
image

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

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

image

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

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

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

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

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

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

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

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

Reading time 5 min
Views 18K


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

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

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

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



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



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

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

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



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

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

Reading time 8 min
Views 527K


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



Собираем автономку
Total votes 107: ↑106 and ↓1 +105
Comments 156

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity