О кажущейся неправдоподобности технологических прорывов

Any sufficiently advanced technology is indistinguishable from magic.

© Arthur C. Clarke

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

Ну вот кто может поверить, что к началу 2000-х годов никому не известной конторой в Минске был разработан уникальный синаксический анализатор английского языка? Звучит неправдоподобно, да и проверить нельзя.

Несколько лет назад мне пришлось пользоваться некой мутной структурой данных. Имеющаяся в наличии библиотека не подходила по множеству причин. Библиотека эта была ориентирована на однопоточное применение, являлась по сути реализацией ORM для конкретного случая и выставляла в качестве API собственный язык запросов, явлюящийся надстройкой над SQL, тогда как мне нужен был низкоуровневый доступ и возможность бродить по дереву данных вдоль и поперёк.

Я в то время как раз собирался изучить Ruby-on-Rails, и его ORM подсистема под названием ActiveRecord мне показалась подходящей для реализации необходимой функциональности.

Сказано-сделано. Периодически мучая вопросами ближайшего гуру руби и рельсов , я за несколько вечеров написал нужную функциональность. Вышло меньше 1000 строк кода. Счастливый, я начал использовать свою библиотечку, делясь с коллегами радостью по поводу простоты и элегантности найденного решения.

Первая работа — как первая любовь

Собрано из двух постингов на dev.by.

Когда дискеты ещё только выходили из моды, а запороть компакт-диск считалось западлом, когда Invention-Machine Belarus ещё назывался Научсофтом, меня, совсем ещё желторотого несмышлёныша, уволили оттуда, прознав, что я получил предложение работы от тогдашнего лидера индустрии.

Увольнение было обставлено в лучших традициях большого и жестокого бизнеса. У входа в здание меня встретили и проводили к тогдашнему директору, который, тряся поджилками, полдня уговаривал меня подписать задним числом NDA, угрожая сделать невыездным и наслать порчу если я вдруг стану рыпаться. Верные коллеги тем же вечером размонтировали мой опечатанный комп и записали всё, что было личного, на компакт-диск. Как сейчас помню, хватилo места даже для инсталляции Quake 2 вместе со всеми сэйвами. Через месяц-другой любимый начальник предложил мне подработать по специальности на нелегальном положении, на что я с радостью согласился, и ещё шесть месяцев, пока оформлялись документы на отъезд, колбасил сявки на дому. C тех пор прошло много лет. Обида забылась. Из верных коллег на старом месте осталось только двое. Году в 2001, встретив директора Invention-Machine в зале ожидания аэропорта, я даже удосужился пожать ему руку и обсудить туманные перспективы моего тогдашнего работодателя.

Все эти годы я внимательно следил за Invention-Machine, ведь как-никак, а эта фирма дала мне путёвку в жизнь, там я встретил замечательных людей, с которыми дружу до сих пор. Но меня всегда поражало, насколько эти замечательные люди, профессионалы своего дела, незаметны даже в своей профессиональной среде.

Куда деть колонки в условиях хронического недостатка рабочего места?

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

Tags: 

A beautiful filter for SSH brute-force attacks for your admiration

A bad sysadmin changes the default SSH port.

A good sysadmin throttles the brute-force attackers by allowing one new connection in 20 seconds.

# requires xt_TARPIT
iptables -A INPUT -p tcp -m state --state NEW \
  --dport 22 -m recent --update --seconds 20 -j TARPIT
iptables -A INPUT -p tcp -m state --state NEW \
  --dport 22 -m recent --set -j ACCEPT

A brilliant sysadmin blocks intruders indefinitely

# requires hashlimit
iptables -A INPUT -p tcp -m tcp --dport 22 -m state \
  --state NEW -m hashlimit --hashlimit 1/hour \
  --hashlimit-burst 2 --hashlimit-mode srcip \
  --hashlimit-name SSH --hashlimit-htable-expire 60000 
  -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 22 \
  --tcp-flags SYN,RST,ACK SYN -j DROP 

iptables -A INPUT -p tcp -m state \
  --state NEW -m tcp --dport 22 -j ACCEPT

In the last example, the 1st rule allows up to two connections per hour. After the limit of two connections per hour is reached, the second rule becomes active and the hashlimit module starts to countdown from 1 minute (60 000 milliseconds). If you connect within 1 minute, the hashlimit counter is reset to 60 000. If you connect after 1 minute, you drop to the 3rd rule and are allowed access.

Cherry-picked from Habr

А в Кении Гоблинов-Пучковых оказывается пруд пруди

Пришла ко мне сегодня афишка от Kaaitheater. В ней — анонс театрального перформанса девки из Кении. В краткой аннотации говорится, что в Кении популярны «живые» переводы фильмов, совсем как у Гоблина. Ничто не ново под луной.

Простейший сниффер TCP и UDP трафика в три строчки

mknod backpipe p 
mknod log p
while :; do cat backpipe |nc -l -p 3001 |tee log| nc localhost 3000 |tee log >backpipe; done

Зависимости: (ba,k)sh, netcat, mknod, tee.

Работает следующим образом. Скажем, нам нужно просмотреть трафик на порту 3000. Устанавливаем netcat сервер на 3001 порту, форвардим соединение в оба конца на порт 3000. Копию всего, что передаётся в обоих направлениях, пишем в файл log. Если вдруг соединение закрывается, запускаем всё заново.

Pages