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

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

Send message

asp.net: описание механизма кэширования страниц через OutputCache

Reading time5 min
Views9.7K
Одним из способов управления кэшированием страниц в asp.net является декларативный способ с помощью директивы <%@ OutputCache %>. Ниже приводится описание и исследование работы данной директивы. Большая часть сведений взята из msdn, но это не перевод, а скорее изложение. В тексте также присутствуют мои собственные исследования того, как тот или иной параметр влияет на http-заголовки.
Читать дальше →

Самый простой способ создать трафик на сетевом интерфейсе

Reading time1 min
Views34K
Есть программа iperf, которая позволяет проверять скорость интерфейсов (у меня на тестах из 10G интерфейса она выжимала 9.37 Гбит/с).

Пакет (в дебиане и убунте) так и называется — iperf.

Применение очень простое: на одном сервере запускаете iperf -s X.X.X.X (свой собственный адрес сервера, на котором слушать). Можно запустить просто iperf -s, тогда слушать будет на всех интерфейсах.

На клиентской части пишем iperf -c X.X.X.X (адрес сервера из предыдущего этапа). Клиент подключается, работает 10 с и показывает скорость работы канала.

Пример: сервер имеет адрес 192.0.2.1, клиент 192.0.2.200. На сервере запускаем iperf -s 192.0.2.1 на клиенте iperf -c 192.0.2.1.

Для того, чтобы сделать много байтов (привет хостерам с соотношениями) нужно просто указать опцию -t (время в секундах). Многие гигабайты трафика в нужном направлении вам обеспечены. С учётом текущих тарифов для дома — можно даже с домашней машины, за 3-4 часика можно выправить любое соотношение с минимальной нагрузкой как на сервер, так и на клиента.

Сохранение и восстановление прошивки медиаплеера из журнала Vogue

Reading time7 min
Views13K
Эксперименты с плеером из журнала Vogue это очень хорошо, но старая добрая админская привычка делать бекапы всего и вся не даёт мне покоя. Ибо испортить игрушку при экспериментах с чужими прошивками очень легко, а как вернуть её в первозданное состояние не ясно. Обидно будет испортить такую халяву.

Так вот после 3-х дневной мозговой атаки на этот девайс мною был разобран до мелочей процесс сохранения родной прошивки и заливание её обратно. Отдельное спасибо tronix286 за то, что он модифицировал оригинальную программу usb_boot, добавил в неё возможность чтения прошивки в файл и за то что подкинул пару дельных даташитов.
Читать дальше →

Objective-C для C# разработчиков

Reading time5 min
Views20K
«Если единственный язык, который вы знаете — это Java или C#, я не думаю, что вы профессиональный программист — вы как молодой плотник, который пока работал только с одним видом дерева.»
Дядя Боб


Несколько месяцев назад я начал разрабатывать приложения для iPhone. Переключение с платформы .NET и C# на Cocoa и Objective-C проходило не без приключений, но было достаточно интересным и познавательным. Скоро мне предстоит помогать осваивать новую платформу и другим разработчикам нашей компании. Поэтому решил написать серию вводных заметок, которые, надеюсь, сделают этот переход более плавным.

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

KBookOCR for Linux. Убийца FineReader-а для Linux на начальной стадии

Reading time4 min
Views24K

Вступление


Возможно каждый из нас переживал период в своей жизни который сопровождался активно оцифровкой аналогов материала. Я имею в виду необходимость работы с текстом из неоцифрованных источников. Имеется в виду не только проблема сканирования, но и так же множество материала который к сожалению доходит до конечного потребитель не совсем в пригодном для использования виде. И я думаю у каждого из нас очень часто в голове пробегали лестные мысли об распространителя книги в формате djvu или pdf в котором весь контент был представлен сугубо графически без возможности использование материалов для своей деятельности.
Читать дальше →

Локальная уязвимость в ядре линукс (и не только), DoS

Reading time2 min
Views2.6K
Опубликован код, приводящий к зависанию компьютера (100% загрузка всех ядер, исчерпание файловых дескрипторов).

Ссылка на код: lkml.org/lkml/2010/11/25/8

Проверял на 27, 32 — зависание воспроизводится. 32/64 бита.

Уточняю: через 1-2 секунды пролетает крашдамп (не успеваю прочитать), хост перегружается. В другом тесте система упала уже после завершения программы (примерно через 5-7 секунд).

PS Эксперты с лора говорят, что FreeBSD 8.1 тоже падает.

PPS Внезапно — на CentOS 5.5 с 2.6.18 не падает. Если запустить из-под рута, роняет, из-под пользователя — просто спокойно отрабатывает. При этом руту в соседней консоли ничего не мешает работать и система не падает.

Пытаюсь уточнить ситуацию:

1) CentOS 2.6.18/64 с непривелегированным пользователем не подвержен.
2) Debian Squeeze 2.6.34/64 с непривелегированным пользователем подвержен (kernel panic).
3) По слухам, в некоторых FreeBSD удалось воспроизвести (из комментариев — FreeBSD 8.2-PRERELEASE не воспроизводится)
4) Из комментариев — на Ubuntu 2.6.32/64 воспроизвести не удалось, на 2.6.36 воспроизводится.
5) Ubuntu 2.6.34/64 — воспроизводится
6) Из комментариев — RHEL5.5 не зависает, но тормозит и мешает убивать процесс.
7) Из комментариев: FreeBSD 4.11, 8.1, OpebBSD 4.6, 4.8, DragonFLY BSD 2.8.0 — подвержены
8) OpenVZ + 2.6.18 Debian/Centos — не воспроизводится.

PPPS тем, кто тестит — запускать надо от непривелегированного пользователя.
Читать дальше →

Настройка Active/Passive PostgreSQL Cluster с использованием Pacemaker, Corosync, и DRBD (CentOS 5,5)

Reading time16 min
Views29K
В этой статье объясняется, как настроить Active/Passive кластера PostgreSQL, с использованием Pacemaker, Corosync и DRBD.
Подготовлено Рафаэль Марангони, из команды BRLink Servidor Linux
Читать дальше →

AmbilightUSB

Reading time3 min
Views40K

Привет, strangers!



Обновление проекта Лайтпак: Прокачан и открыт

Эта история о том, как сделать супер мега дешевую и простую ambilight подсветку для эвм. В роли дирижера будет выступать микроконтроллер ATtiny44, а в роли оркестра 4 RGB-светодиода.

Несколько картинок, дабы пробудить интерес:

  

Кому лень читать: полное описание в «картинках» (=
UPDATE: Добавлено видео http://www.youtube.com/watch?v=tdp1QeS_JCg
UPDATE2: в списке деталей уточнил название используемого микроконтроллера (ATTINY44-20SSU)
UPDATE3: добавлены фьюзы (дико извиняюсь, что забыл про них)
UPDATE4: исправлена принципиальная схема (v2.1.3)

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

Поддержка доменов.РФ в Бигго и Python

Reading time1 min
Views3.2K
Пару дней назад мы следуя общей тенденции стали поддерживать домены.РФ, к тому же сделать это оказалось несложно.
Как известно, перекодировка в punycode происходит на стороне клиента, поэтому все что нужно было сделать — это перекодировать кириллическое название в формах создания и переименования сайтов, а также в функциях работы с регистратором и DNS хостингом. Очень понравилось, что возможность перекодировки встроена в сам язык(Python):

domain_rf = u'сайт.рф'
domain = domain_rf.encode('idna')


То есть кодек idna делает все за нас. Сравните с решением на PHP =)
Названия доменов мы храним в виде xn--80aswg.xn--p1ai и это работает точно также как и для других доменов.

Обратно перевести можно так:
domain = u'xn--80aswg.xn--p1ai'
domain_rf = domain.decode('idna')

База GeoIP – страны и города

Reading time1 min
Views75K
При разработке одного проекта встала задача – определить по IP-адресу посетителя его страну и город, на русском языке. Поиск готового решения оказался безуспешным – русскоязычные базы стран можно найти (например, wipmania.com), но баз городов нет. Помощь пришла из-за границы, в лице англоязычного maxmind.com. База была приведена к нормальному состоянию (MySQL) и частично переведена на русский язык с помощью нескольких справочников (~6,000 названий, с учетом городов-тезок ~15,500).   Результат этой работы доступен для свободного скачивания.
Читать дальше →

Пользуетесь PHP на 64-х битной платформе? Значит потеряли в производительности!

Reading time4 min
Views1.7K


По идее, эта статья должна была выйти в блоге «Linux для всех». Однако, данная проблема не проявила себя в аналогичных тестах на python и perl, а следовательно специфично-зависимая от PHP и разрядности платформы. А так PHP у нас прежде всего связан с сайтами, то и блог соответствующий — хостинг.

Внимание! Следующий текст содержит сцены насилия фрагменты исходного кода и может нанести неисправимый урон вашему мозгу и разрушить веру в человечество linux php.
Читайте продолжение только на свой страх и риск.

Еще раз об архитектуре сетевых демонов

Reading time13 min
Views20K
Во многих статьях, в том числе на хабре, упоминаются и даже описываются разные способы построения архитектуры сетевых сервисов (демонов). При этом мало у кого из авторов есть реальный опыт создания и оптимизации демонов, работающих с десятками тысяч одновременных соединений и/или гигабитным трафиком.

Так как большинство авторов не удосуживается хотя бы залезть в документацию, то обычно в таких статьях вся информация базируется на неких слухах и пересказах слухов. Эти слухи бродят по сети и поражают википедию, хабрахабр и другие уважаемые ресурсы. В результате получаются опусы вроде "Вы наверное шутите, мистер Дал, или почему Node.js" (пунктуация автора сохранена): она, в основном, верная по сути, но изобилует неточностями, содержит ряд фактических ошибок и изображает предмет с какого-то непонятного ракурса.

Мне было сложно пройти мимо статьи, изобилующей фразами вроде «эффективные реализации polling'а на сегодняшний день имеются лишь в *nix-системах» (как будто poll() есть где-то, кроме некоторых *nix). Этот пост начинался как комментарий, разъясняющий уважаемому inikulin ошибки в его статье. В процессе написания оказалось, что проще изложить предмет с самого начала, что я собственно и делаю отдельным постом.
В моем очерке нет срыва покровов или каких-то неизвестных трюков, здесь просто описываются преимущества и недостатки разных подходов человеком, который проверял, как всё это работает на практике в разных операционных системах.
Для желающих просветиться — добро пожаловать под кат.
Читать дальше →

OpenDPI (определение типов трафика) + iptables

Reading time6 min
Views23K
OpenDPI — библиотека для классификации трафика на основе технологии глубокого анализа пакетов (DPI — Deep Packet Inspection). Проект IPP2P более не поддерживается, и, в качестве замены, предлагает использовать именно OpenDPI. В отличие от IPP2P, основной целью которого является определение именно p2p трафика, OpenDPI поддерживает широкий набор различных протоколов. OpenDPI изначально спроектирован для очень низкого уровня ложных положительных срабатываний. В отличие от L7-filter не требует наложения патчей на iptables и ядро; работает в виде модуля ядра и библиотеки xtables. Также определения протоколов представляют собой не список регэкспов, а модули на C, что повышает быстродействие. Недавно для этой библиотеки была реализована поддержка iptables.
А теперь давайте попробуем использовать OpenDPI на практике.
Читать дальше →

Видео с HighLoad++ в Mail.Ru: чего изволите?

Reading time1 min
Views5.2K
Дорогие коллеги!

26 и 28 октября в Mail.Ru прошли дни HighLoad ++. Как всегда, мы облегчили жизнь нашим многочисленным разработчикам высоконагруженных проектов, избавив их от необходимости выезжать в полном составе на конференцию.

Но сейчас не об этом: если вам интересно, мы готовы поделиться видеозаписями интересующих вас докладов.

Выбирайте, голосуйте!

Stoyan Stefanov (Yahoo) — Progressive Downloads and Rendering
Joe Damato — Performance tweaks and tools for Linux
Bruce Momjian (PostgreSQL) — Building Global Teams Like Postgres
James Golick — Scaling to Hundreds of Millions of Requests: What Worked and What Didn't
Константин Осипов (Oracle) — MySQL проблемы роста (о проблемах роста проекта и его команды)
Юрий Ковалев (Performance Lab) — Нагрузочное тестирование без границ
Петр Зайцев — Диагностика и исправление проблем производительности MySQL

Sencha Animator — средство для создания анимации средствами CSS и HTML

Reading time2 min
Views5.4K
image
Пока компания Adobe анонсирует Edge prototype tool, компания Sencha выпускает пробный релиз Sencha Animator — декстопное приложение для создание анимации для всего, что поддерживает HTML5. Как утверждают создатели, создание такого инструмента вызвано заявлением Apple исключить Flash из их iOS, что приводит к тому, что приходится писать кучу строк кода для создания анимации через CSS3. Поэтому они предлагают для начала посмотреть демо, а потом скачать и воспользоваться аниматором самому.
Читать дальше →

pv — маленькая, но очень полезная утилита

Reading time2 min
Views86K
Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
Читать дальше →

История развития и оптимизаций одного высоконагруженного ресурса

Reading time5 min
Views14K


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →

Information

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