Search
Write a publication
Pull to refresh
52
0.5
Дмитрий @bogolt

User

Send message

Шустрая гляделка для Nautilus'а

Reading time3 min
Views4.1K
В своих бесконечных поисках найти быструю гляделку графических файлов, наткнулся на замечательную программу Gloobus, которая наверняка порадует счастливых обладателей нетбуков с Линуксом на борту. Сразу оговорюсь, затачивается все под файловый менеджер Nautilus, но никто не мешает прикрутить это чудо к чему угодно.

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

Использование snort для блокирования атак скрипт-киддисов

Reading time3 min
Views14K
Данная статья не претендует на полноту описания системы snort, а всего лишь предлагает пользователю готовое решение для защиты своего сервера от маленьких шаловливых ручек.
Я лично ставил всё это дело на OpenBSD, но от смены системы суть не меняется.

Лирическое отступление

snort (http://snort.org) — система обнаружения атак (NIDS) для сетей ipv4 на базе libpcap. Сам по себе — обычный tcpdump. Но к нему можно создавать правила, по которым он будет блокировать вредный траффик и создавать события безопасности (alert).
У меня стоит связка snort-сенсоров, связанных между собой через коллектор на базе дописанного prelude (http://prelude-ids.org). Все правила написаны собственноручно.
Результаты (по статистике работы за 4 месяца):
Ложных срабатываний — около 2% (средний траффик — 120 мбит/сек).
Блокировок за день — около 15.
Количество пропущенных атак — 0 (после внедрения системы безопасности ни один сервер не был взломан. Под защитой стоят хостинг и VDS).
В дополнение дописаны модули автоабьюса по базе данных RIPE и блокировки траффика на корневой циске.

Итак, имеем:
Некий сервер с установленным на нём snort-inline (в случае *BSD устанавливается из портов, в случае Linux'а — из исходников с указанием опции --enable-inline).
Для начала настраиваем сам snort (для вашей ОС пути могут отличаться — смотрите дефолтный конфиг). /etc/snort/snort.conf
конфигурация

День знаний — Рекрутинг студентов

Reading time3 min
Views2.5K
Многие, даже средние компании, зачастую не прочь заняться выращиванием специалистов с нуля. Встает вопрос о том, как проводить отбор. При должной рекламе по окрестным университетам и хорошей репутации компании, желающих может оказаться достаточно много. А проводя традиционное интервью, нацеленное на проверку практических навыков, не всегда можно корректно оценить главные качества, которые хочется получить от стажера — умение учиться и желание работать.

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

Я хочу поделится с хабрасообществом опытом проведения интервью и списком вопросов. Cвежепринятые сотрудники еще стесняются критиковать старожилов, надеюсь получить какие-то возражения, или альтернативные идеи по механизму отбора здесь.
Читать дальше →

Защищаемся от HTTP DDoS и прочих Хабраэффектов

Reading time5 min
Views11K
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
Читать дальше →

LVM — это просто!

Reading time4 min
Views667K
Собственно, хочется просто и доступно рассказать про такую замечательную вещь как Logical Volume Management или Управление Логическими Томами.
Поскольку уже давно пользуюсь LVM-ом, расскажу что он значит именно для меня, не подглядывая в мануалы и не выдёргивая цитаты из wiki, своими словами, чтобы было понятно именно тем кто ничего о нем не знает. Постараюсь сразу не рассказывать о всяческих «продвинутых» функциях типа страйпов, снапшотов и т.п.
Читать дальше →

Установка Ubuntu Linux с винчестера. Скрипт

Reading time5 min
Views24K
image
Никогда не любил устанавливать Ubuntu с Live-CD/DVD. Иногда может быть диск поцарапан и установка прерывается на самом интересном месте, музыку не послушаешь, фильмы не посмотришь. Я устанавливаю Ubuntu из iso-образа со своего жесткого диска на другой винчестер или раздел. Читая раньше в инете статьи, как ставить с жесткого диска, я просто слепо следовал инструкциям, копируя и выполняя команды. Бывали проблемы с загрузчиком grub, приходилось дополнительно искать в интернете решения, как исправить эти ошибки. Затем, чтобы не мучаться, я сделал свой скрипт установки.

Задача: Нужно, используя уже установленную Ubuntu, установить систему на другой винчестер.
Читать дальше →

C++0x (С++11). Лямбда-выражения

Reading time13 min
Views306K
Буквально на днях случайно наткнулся на Хабре на статью о лямбда-выражениях из нового (будущего) стандарта C++. Статья хорошая и даёт понять преимущества лямбда-выражений, однако, мне показалось, что статья недостаточно полная, поэтому я решил попробовать более детально изложить материал.

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

Использование метаклассов в Python

Reading time11 min
Views43K
Некоторые средства метапрограммирования не так часто используются в ежедневной
работе, как обычные в ООП классы или те же декораторы. Для понимания же целей
введения подобных средств в язык требуются конкретные примеры промышленного
применения, некоторые из которых и приведены ниже.

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

Сортировка миллиона 32-битных int'ов в 2 мегабайтах памяти на Питоне

Reading time4 min
Views8.5K
Мой перевод статьи Гвидо ван Россума:

Меня тут в шутку спросили: смогу ли я отсортировать миллион 32-битных int'ов в 2 мегабайтах памяти на Питоне. Во время размышления, мне пришло в голову задействовать механизм ввода-вывода с использованием буферной памяти.

Вообще, это именно шуточный вопрос — одни только данные займут 4 мегабайта, при условии бинарного представления! Правда, можно пойти на хитрость — взять файл, содержащий миллион 32-битных int'ов. Как же отсортировать их, используя минимальное количество памяти? Это должна быть какая-то разновидность сортировки слиянием, в которой небольшие куски данных сортируются и записываются во временный файл, после чего происходит слияние временных файлов для получения окончательного результата.

Вот мое решение:
Читать дальше →

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

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

Что сегодня авторы предлагают инвесторам? Разбор полетов

Reading time4 min
Views821
Давно уже собирался отписаться по результатам инвестиционного предложения, но не оформлялась мысль. Вот пришла, благодаря этому посту, про ошибки соискателей на инвестиции.

С недавней инвестсессии «Полигон» получил в общей сложности порядка 80 проектов, может, чуть больше. В один мы вложились, но думаю, всем полезно будет оценить, что в общем предлагают и о чём думают сегодня начинающие «предприниматели».

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

Заметки о метапрограммировании в Python

Reading time2 min
Views7K
По мере накопления опыта программирования на одном языке, все мы нарабатываем стандартные для себя приемы программирования. Чем выше наш опыт, тем больше количество, более разносторонни методы их работы. При переходе на другой язык, мы стараемся их воспроизвести. Иногда, такое бывает что часть из них неактуальна или неэффективна. Большую часть времени от изучения языка отнимают новые несвойственные прежним нам, приемы. Я хотел бы отметить некоторые особенности Python, которые для меня были не очевидны поначалу освоения.
Читать дальше →

6 способов слияния списка списков

Reading time4 min
Views126K
Зашел тут у нас в офисе разговор как наиболее «красиво» и быстро склеить список списков в Питоне. Действительно как?

Даже такую казалось бы тривиальную задачу можно решить несколькими способами, существенно отличающимися по скорости и выразительности.

ВАРИАНТ1
Все знают, что элементы списка можно перебирать в цикле и, то что можно добавлять элементы в конец. Это приводит нас к первому варианту решения:
def listmerge1(lstlst):
    all=[]
    for lst in lstlst:
        for el in lst:
            all.append(el)
    return all

Мало того, что функция растянулось аж на 6 строк, так вдобавок она еще и не эффективная.
Попробуем её улучшить в обоих смыслах: скорости и красоты («pythonic way»).
Читать дальше →

Каким образом вы узнали то, что вы знаете?

Reading time5 min
Views2.6K
Я получил это электронное письмо сегодня от Марка…

Привет Джо,
Во-первых я хотел бы поблагодарить вас за всю информацию, которую вы опубликовали на asp.net. Я почерпнул оттуда очень многое. Так же я слежу за вашими твиттами и меня заинтересовало, с чего вы начинали, как накапливали опыт для того, что бы стать Senior Program Manager в Microsoft. Если у вас будет возможность ответьте мне, я бы был очень благодарен.
Заранее спасибо,
Марк


Я получаю сообщения, подобные этому, один раз в несколько недель и вот наконец-то, я решил ответить всем, кому это интересно.

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

Почему Mono хорош

Reading time12 min
Views12K
Мы с участниками социальной сети open-life.org решили сделать перевод статьи Джо Шилдза (Jo Shields) «Here we go again – why Mono doesn’t suck». В результате получилась статья «Почему Mono хорош». Копию данного перевода можно прочитать здесь: Почему Mono хорош — open-life.org

Прим.: Если кто захочет инвайт на open-life.org — стучитесь в личку

Я участник Debian Mono Group, Debian CLI Applications Team, и Debian CLI Libraries Team. И уже в течении года работаю над сопровождением пакетов проекта Mono и программ, которые используют его в ОС Ubuntu (и Debian). Мне хорошо известны горячие споры, угрозы и последующие переходы на личности, и сейчас я принимаю ваш «вызов». В этой статье я говорю от себя лично — не от проекта Debian, не от Ubuntu, не от Mono, и не потому, что меня попросил мой начальник.

Вам хотелось «объективного пояснения, чем хорош Mono, почему он не представляет угрозы и почему его следует включить в Ubuntu по умолчанию»? — Я отвечу на эти 3 вопроса по очереди, затем предложу общий вывод к этой статье, а так же к более широкому движению «Анти-Mono». Это сообщение подписано GPG (прим. переводчика: GPG=GNU Privacy Guard — свободная альтернатива набору криптографического ПО PGP) для подтверждения факта его публикации без изменений. Оригинальный текст доступен по адресу retro.apebox.org/herewegoagain.txt чтобы каждый желающий мог проверить его подлинность самостоятельно.

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

Скоро ICFPC 2009

Reading time2 min
Views1.1K
В эту пятницу 26 июня стартует ежегодный конкурс программирования, International Conference on Functional Programming Contest (сокращенно ICFPC). Конкурс знаменит оригинальными заданиями, варьирующимися от «очень интересных», до «срыв башни». Не смотря на слово «функциональный» в названии, никаких ограничений на используемый язык программирования нет (абсолютно! это традиция конкурса).

В прошлом году участвовало 330 команд со всего мира. В этом году снова приглашаются все желающие.
Конкурс длится три дня (72 часа). Участвовать можно, как самому, так и командой. Есть так называемый «скоростной тур» — ответ в первые 24 часа соревнования.

Задание будет выложено в Пятницу 26 июня в 22:00:16 MSD (время Московское летнее, GMT+4) на страницу конкурса icfpcontest.org (счетчик до начала icfpcontest.org/countdown.php)

Небольшой обзор заданий за прошлые годы. Многие из них стоят того, чтобы скачать условие и покопаться самому (поверьте мне это непередаваемое удовольствие).
Читать дальше →

У вас будет партнер? Предохраняйтесь!

Reading time7 min
Views1.6K
Итак, вы решили, что не смотря на всю мудрость земли и предупреждения товарищей, вы начнете бизнес с партнером, который надежен, умен, трудолюбив и обладает прочими достоинствами не свойственными другим людям.
Как показывает опыт такие «интимные» связи часто заканчиваются губительно для одного из партнеров. Поэтому хочу поделиться некоторыми наработками в плане предохранения от некачественного партнерства.
Читать дальше →

Компьютерная фирма: от абсолютого нуля до заслуженного успеха

Reading time13 min
Views3K
Решил поделиться опытом создания и продвижения компьютерной фирмы. Думаю, кое-кому да и пригодиться. Тем более, что старт был с абсолютного Кельвиновского нуля. А чего мы и как добились, можно увидеть под катом.
Читать дальше →

Учебник по языку программирования Python (хабраиндекс)

Reading time1 min
Views314K

Серия статей «Основы Python»


I, Начало
II, Строки
III, Списки, кортежи, файлы
IV, Генераторы списков
V, Определение функций, основы
VI, Расширенное определение функций

Об основах языка Python в сжатой форме

Продвинутый уровень


Сила и красота декораторов Короткий экскурс в метапрограммирование.
Итерируем все и вся Специфика циклов в Питоне.
Как я учился работать с XML
Консервация объектов в Python Использование модуля Pickle.
Memoization в Python Оптимизация работы программ.
Простейшее рисование с помощью PIL
Regexp и Python: извлечение токенов из текста
Как писать маленькие приложения на python с графическим интерфейсом (библиотека Qt).

http://netsago.org/ru/docs/1/12/
Одеваем скрипты Python с помощью EasyGui (добавляем простой диалоговый интерфейс)

http://djbook.ru/
Учебник по Django (Python-фреймворк для веб-приложений)

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

Причесываем трафик — динамический шейпер на Linux

Reading time4 min
Views59K
причесываем трафик
Предположим у вас есть домашняя сеть (или не домашняя, а сеть небольшого офиса) с выходом в интернет через не очень скоростной канал. А пользователей — много, и каждый хочет что-то скачивать, да с максимальной скоростью. Вот тут перед нами встатет задача, как максимально эффективно распределить наш интернет-канал между пользователями так, чтобы они не мешали друг другу. В этой статье я опишу, как можно решить такую задачу с помощью Linux-сервера.

Сформулируем, что же мы хотим получить в результате:
1. Чтобы канал поровну делился между пользователями.
2. Чтобы канал зря не простаивал.
3. Чтобы онлайн-игры, ssh и telnet не «лагали» даже при полной загрузке канала, например торрентами.
Читать дальше →

Information

Rating
3,277-th
Registered
Activity