Search
Write a publication
Pull to refresh
1
0
Виталий Ф. @FuN_ViT

программист, синьор-помидор :)

Send message

Сетевые детективы: ищем причины скачков трафика и нагрузки

Reading time6 min
Views31K
Предположим, у нас есть вот такая картина загрузки канала связи:


Что вызвало всплеск трафика? Что происходило в канале связи?

Действие происходит в крупном ЦОДе, например, банка. И в канале может оказаться как что угодно из тестовых сервисов, так и один из десятка бизнес-сервисов, а также — с равным успехом — бекап базы данных.

Если админ не совсем криворукий, а ситуация не очень хитрая, то минут за 10 можно будет выделить конкретные причины, создающие проблемы, и ещё минут за 15–20 проанализировать проблему. Если же ситуация сложнее (мы рассмотрим ещё пример ниже), то искать аномалии в поведении трафика можно сутками. С инструментарием обнаружения таких аномалий у нас на поиск проблемы в этом примере уйдёт 1 минута.
Читать дальше →

Пишем веб сервис на Go (часть вторая)

Reading time18 min
Views26K
Продолжение статьи о том, как написать небольшое полнофункциональное приложение на Go.

В первой части мы реализовали REST API и научились собирать приходящие HTTP запросы. В этой части, мы покроем наше приложение тестами, добавим красивый веб-интерфейс на основе AngularJS и Bootstrap, и внедрим ограничение доступа для разных пользователей.
Напишем капельку кода на Go

Пишем веб сервис на Go (часть первая)

Reading time18 min
Views58K
В этой статье, я хотел бы рассказать вам, как можно достаточно быстро и легко написать небольшое веб-приложение на языке Go, который, не смотря на юный возраст, успел завоевать расположение у многих разработчиков. Обычно, для подобных статей пишут искусственные приложения, вроде TODO листа. Мы же попробуем написать что-то полезное, что уже существует и используется.

Часто, при разработке сервисов, нужно понимать какие данные отправляются в другой сервис, а возможность перехватить траффик есть не всегда. И как раз для того, чтобы отлавливать подобные запросы, существует проект requestb.in, позволяющий собирать запросы по определённому урлу и отображать их в веб-интерфейсе. Написанием подобного же приложения мы и займёмся. Чтобы немного упростить себе задачу, возьмём за основу какой-нибудь фреймворк, например Martini.

В конечном итоге, у нас должен будет получится вот такой вот сервис:



Приступим к разработке

Концепция Shared DAS – альтернатива SAN?

Reading time5 min
Views17K


Традиционно, если серверу собственной подсистемы хранения данных оказывается недостаточно, то выбор ограничивается DAS (подключаемыми напрямую дисковыми полками) и сетевыми блочными или файловыми хранилищами. Но недавно к этим вариантам добавился еще одна весьма перспективная концепция — Shared DAS. Чем же она хороша?

Читать дальше →

LUA в nginx: горячий кеш в памяти

Reading time5 min
Views30K

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

В этом посте nginx используется как «горячий кеш» неких постоянно пополняемых данных, запрашиваемых клиентами по интервалу с опциональным группированием (некий аналог BETWEEN и GROUP BY/AGGREGATE из SQL). Подгрузка данных в кеш осуществляется самим же lua+nginx из Redis. Исходные данные в Redis складываются ежесекундно, а клиенты хотят их от сих до сих (интервал в секундах, минутах, часах...) с агрегацией по N (1<=N<=3600) секунд, отсортированные по дате и в json формате.
С хорошим hitrate на имеющейся машине получается обеспечить 110-130к «хотелок» в секунду, правда с плохим — только 20-30к. Что, в общем-то, тоже приемлемо для нас на одной инстанции nginx.
Читать дальше →

LED подсветка монитора своими руками

Reading time10 min
Views449K

Время незаметно идет и казалось бы недавно купленная техника уже выходит из строя. Так, отработав свои 10000 часов, приказали долго жить лампы моего монитора (AOC 2216Sa). Вначале подсветка стала включаться не с первого раза (после включения монитора подсветка выключалась через несколько секунд), что решалось повторным включением/выключением монитора, со временем монитор приходилось выключать/выключать уже 3 раза, потом 5, потом 10 и в какой-то момент он не мог включить подсветку уже вне зависимости от числа попыток включения. Извлеченные на свет божий лампы оказались с почерневшими краями и законно отправились в утиль. Попытка поставить лампы на замену (были куплены новые лампы подходящего размера) успехом не увенчалась (несколько раз монитор смог включить подсветку, но быстро опять ушел в режим включился-выключился) и выяснение причин в чем может быть проблема уже в электронике монитора привели меня к мысли о том что проще будет собрать собственную подсветку монитора на светодиодах чем ремонтировать имеющуюся схему инвертора для CCFL ламп, тем более в сети уже попадались статьи показывающие принципиальную возможность такой замены.
Читать дальше →

Агрегаты многомерных кубов OLAP в оперативной памяти

Reading time7 min
Views12K

Постановка


Проблематика Business Intelligence решений (Бизнес Аналитика) состоит в предоставлении заинтересованным лицам статистической, аналитической информации по результатам деятельности какого-либо автоматизированного процесса или комплекса процессов.
Например, имеется бизнес процесс фиксации покупок, совершаемых людьми в электронном магазине. В реляционной модели бизнес процесса естественно будут иметься продавцы, покупатели, товар и прочие сущности. При этом, если бизнес процесс успешен, т.е. происходит достаточно интенсивный поток данных, возникают потребности в анализе этих данных для решения различных задач, в том числе экономических. Для финансистов это будет совокупность данных, отражающих:
  • Количество проданного товара за 1-ый квартал текущего года
  • Сумма проданного товара в разрезе продавцов за прошлый год
  • Динамика продаж определенного вида товара в ежемесячном срезе
  • И многие др

При этом, если речь идет о холдинге, в который входят – магазины, рестораны, прочие виды деятельности, то количество данных возрастает, что так же ведет порой и к увеличению видов представлений аналитических данных.
Таким образом перед разработчиком встает проблема по предоставлению максимально широкого, эффективного и удобного инструмента для анализа данных. На помощь приходят OLAP решения, предлагаемые различными брендами, такими как Oracle, SAP, Microsoft, MicroStrategy, Pentaho и многие др.
Читать дальше →

Как отправлять push уведомления из Вашего Rails приложения

Reading time3 min
Views16K
Один из наиболее популярных способов связи мобильного приложения с сервером — отправка push уведомлений пользователю. Если Вы уже сталкивались с реализацией push уведомлений, то для Вас открытия Америки не произойдет, однако, новичкам в данной теме приходиться туго — это связанно с огромной путаницей в информации (от переводчика: действительно довольно много противоречивой, а зачастую и вовсе бесполезной информации). Именно эта путаница стала причиной написания данной статьи для WellWithMe, где я опишу разработку серверной части push уведомлений.

Читать дальше →

Анализ банковского трояна Win32/Corkow

Reading time10 min
Views30K
Ранее мы писали про сложный банковский вредоносный инструмент Win32/Corkow, который используется злоумышленниками для кражи данных онлайн-банкинга. Это вредоносное ПО находилось в активной эксплуатации начиная с 2011 г. и продемонстрировало непрерывную активность в прошлом году, заражая тысячи пользователей. Были обнаружены различные версии модулей Win32/Corkow, что также указывает на непрерывный цикл разработки этого инструмента.



Злоумышленники использовали типичный метод распространения вредоносного кода через drive-by download. Мы указывали его в нашем отчете за 2013 г. и упоминали, что он является самым распространенным способом доставки вредоносного кода, который используется злоумышленниками на сегодняшний день. Случай с Win32/Corkow лишь подтверждает эти данные. В этом посте мы опубликуем технические подробности анализа этой вредоносной программы, укажем банки, на которые нацелен Win32/Corkow, а также опишем другие его возможности, которые не упоминались в первом посте.

Читать дальше →

Дайкстра от Тима из Стэнфорда

Reading time2 min
Views16K
На прекрасной Coursera скоро снова начинается курс по Алгоритмам от Тима из Стэнфорда. И я не могу про него не написать. А в свете вот этого поста про дистанционное образование так тем более.

Начну с того, что это самый интересный курс, который мне вообще когда-либо приходилось брать. А я провела во всяких не самых худших университетах немало лет. Курс называется Algorithms: Design and Analysis. Рассказывается в курсе про разные алгоритмы для графов, обсуждаются подходящие структуры данных для каждого алгоритма, присутствует теория и краткие доказательства этих алгоритмов. Во второй части рассказывается в том числе про P=NP проблему и алгоритмы с неполиномиальным временем.

Почему этот курс мне так понравился. Потому что лектор невероятно классный! Он настолько вовлечен, он так все это рассказывает. И потом каждую неделю надо запрограммировать новый алгоритм (на языке по собственному выбору) и найти с помощью своей имплементации ответ на вопрос. Ответ на вопрос засабмитить на сайте, и еще раз, пока не получится правильный ответ. Каждую неделю, как я сказала, новый алгоритм. И соответственно дедлайны. Мотивировало меня это просто сумасшедше: я бежала домой с работы и я не расставалась с алгоритмами по выходным, я ездила в отпуск, сидела на вершине самой высокой точки страны и программировала merge sort.

Я ждала полгода, чтобы снова объявили о его начале, чтобы посоветовать его другим людям, потому что для меня это было как найденный клад.

Дальше - больше, и с примером

Зачем скайпу мои пароли из браузера?

Reading time4 min
Views94K
Давно жил без антивируса — не знал проблем. Точнее не знал — были ли проблемы (смайл). С другой стороны давно использую бесплатную версию фаервола от Agnitum. Подвернулась акция на «Секьюрити сюит», приобрёл. И через какое-то время меня ожидал сюрприз — из трея вылезло окошко, что антивирус заблокировал что-то там. Ну думаю, отлично, работает. Хотя, показалось что-то знакомое в названии процесса, который вызвал срабатывание защиты…
Читать дальше →

Конференция ProfsoUX-2013 — обзор-классификация + видеозаписи

Reading time7 min
Views4K
В прошлом году я снимал и транслировал питерскую конференцию ProfsoUX-2013, посвященную исключительно юзабилити. Все записи были оперативно смонтированы («докладчик+экран+зал») и через неделю опубликованы.
Но только сейчас у меня дошли руки посмотреть их самому, и предложить краткий обзор-классификацию, с ссылками на видео, так, чтобы вы могли посмотреть именно то, что вас потенциально интересует (увы, кроме меня никто обзор не написал, все приходится делать самому). Впрочем, UX — штука фундаментальная и все идеи-мысли-решения до сих пор актуальны.
Все доклады были короткие (<20 минут) и динамичные, отрасль молодая, нет академических свадебных стариков-генералов, только молодые профессионалы, ведущие UX-собаководы, мастера айтрекеров и нейротрансмиттеров, обзор тоже попробую сделать кратким, не растекаясь мыслью по древу, оформив простой самодельной классификацией.
Читать дальше →

Форс-мажоры, или как люди теряли свои данные

Reading time5 min
Views39K
Бородатая присказка гласит: админы делятся на тех, кто не делает бэкапы, и тех, кто уже делает. У большинства осознание необходимости делать резервные копии приходит после крупной личной потери данных. И, несмотря на обилие душещипательных историй о том, как люди теряли всё, до сих пор многие продолжают надеяться на то, что бэкапы кто-то сделает за них. В качестве напоминания о неверности такого подхода, я хочу привести несколько примеров того, как люди совершенно неожиданным образом лишались своих данных или были на грани этого.

Читать дальше →

«BillGates» Linux Botnet — откуда же он взялся?

Reading time40 min
Views23K
image

Буквально вчера читал статью ValdikSS «Linux Botnet «BillGates»» и после прочтения захотелось рассказать, откуда он взялся.

Отступление

На днях начальница пригнала своего сынишку поучиться уму-разуму, а так как дарование впервые видит серверную ОС, то решение учить пацана выпало на старый ubunt-овский сервер с LAMP-ом на борту (Linux + Apache + MySQL + PHP). Благо на нем тестируют проекты перед показом в свет.

После вводных лекций и кучи выданной макулатуры на сервере был создан новый недо юзер, который благополучно был добавлен к зоопарку SSH, и присвоен стандартный пароль в виде «Thispasswordiscrypt». В процессе обучения недоюзеру надоело вводить длинный пароль и он без ведома сменил его на «fack_off». В то время мы проходили бэкапы БД и выборочно сервера, но по каким-то богу известным причинам под его учеткой не завелось восстановление БД. Не сильно парясь, я добавил ему повышенные привилегии. Теперь все ОК, начальница в ажуре. Так как мама рядом, и курить нельзя, то на перекур хожу только я, а он грызет гранит науки.
Читать дальше →

Разработка игры. Путь от идеи на салфетке до кампании на Kickstarter

Reading time7 min
Views23K
Здравствуйте. Меня зовут Андрей Власенко. Живу в городе Харьков, Украина. По профессии я разработчик ПО. Работаю на должности CIO в компании ApexTech. Хочу рассказать вам о создании нашей игры «Demolition Lander».

Для начала посмотрите небольшой трейлер, который даст представление о том, что получилось в итоге (кадры из игры начинаются с 50ой секунды).


Читать дальше →

Неожиданное попадание под адалт-фильтр Яндекса — отвоёвывание утраченных позиций (код ответа 404)!

Reading time3 min
Views8.3K
Приветствую вас, дамы и господа!

Без квартала пять лет назад я создал проект Автотуристу.Ру, посвящённый, соответственно, автомобильным путешествиям и автомобильному туризму. За без малого 5 лет ресурс возмужал, стал узнаваем в интернете и по праву занял главенствующие позиции в поисковых системах по тематическим поисковым запросам, таким как «автопутешествия по европе», «автотуризм», «в грецию на машине» и многим прочим. Сейчас же я хочу остановиться лишь на ПС «Яндекс» — основной источник качественного поискового трафика для Автотуристу.Ру.

Итак, на скриншоте ниже отображена динамика роста поискового трафика с Яндекса за крайние 2 года:


Читать дальше →

Как мы :hover на iOS побеждали…

Reading time6 min
Views51K
Ни для кого, думаю, не секрет, что touch-устройства обрабатывают «мышиные» события несколько иначе, не так, как это происходит на десктоп-браузерах…

Самый яркий для меня пример, это обработка псевдокласса :hover. Для начала iOS7, например, не будет реагировать на hover если только на элемент, или его родителя, не навешена обработка события click. Это хорошо видно вот на этом примере: jsfiddle.net/H8EmG — сколько не тыкай пальцем в текст — никаких подчеркиваний не увидишь. А в этом примере jsfiddle.net/H8EmG/1 «тычок» пальцем в текст будет приводить к его подчеркиванию. Интересный факт — пока не ткнем в другой элемент, текст так и будет сидеть под ховером…

Другой интересный пример, это обработка появления элементов «по-наведению»: jsfiddle.net/ASRm9/1 Попробуйте нажать на текст. Сперва вы увидите текст «HOVER!», появившийся внутри строки, а вот второе нажатие уже вызовет alert('click'). Это происходит потому, что iOS понимает что за :hover что-то скрыто, и старается не сломать поведение, заложенное автором сайта.

Но однажды мы столкнулись с такой багой, объяснить которую мы не смогли до сих пор, а на ее локализацию потребовался не один день отладки на iPad… Желающие подробностей, а также хитрого, как мне кажется, способа решения, наверное, всех проблем с :hover разом — прошу под кат…

Читать дальше →

Жак Арсак. 1929-2014

Reading time1 min
Views20K

image


Давно собирался почитать книгу «Программирование игр и головоломок». Уж очень часто на неё наталкивался на различных ресурсах, связанных с моими интересами (в частности, одно из моих хобби — ретро-компьютеры и программы для них). И вот начал читать. Стиль и некоторые задачи мне понравились, так что я решил почитать об авторе.

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

Из этой статьи я узнал, что чуть более месяца назад, 14 января, Жак Арсак ушёл из жизни.
Читать дальше →

Как мы используем инфраструктуру обработки данных в Sports.ru и Tribuna.com?

Reading time6 min
Views47K
Год назад мы отказались от всех публичных счетчиков в пользу закрытых сервисов и собственной инфраструктуры обработки данных. Собирая на Олимпиаде по 10 млн. хитов в сутки, мы нащупали предел доброты Google Analytics, за которым бесплатное обслуживание уже не возможно. Но теперь у нас есть свой лунапарк со сверткой и графиками, поэтому мы можем легко снизить интенсивность использования GA, сохранив за ним только аудиторские функции. О том, как мы собираем данные и как используем их в своей работе – в простыне с веселыми картинками внутри.

У нас нет такого помещения с мониторами и славными бородатыми парнями. Эта картинка найдена в Интернете и сделана в NOC Wallmart. Парни могут себе позволить )
Читать дальше →

Information

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