Yet another epic failure

Now from FT.com.
А я походу Сирию от интернета отрубил ;-)

На mova.org довольно давно работал XMPP сервер со свободной регистрацией. Недавно полез посмотреть, как он живёт, и обнаружил десять тысяч каких-то мутных пользователей , в ростере у них отсылки на syria talk, в оффлайн-сообщениях — фразочки разные по-арабски. Я их от греха подальше прибил, а теперь вот сижу и думаю — может, надо было разобраться сперва, а вдруг это была живая сеть, а не спамеры. А может, вся Сирия теперь корчится в огне тоталитаризма, потеряв связь… Лопухнулся, короче.
Applying conceptual analysis to space data
Just for record. The worst paper I ever wrote.
Better MySQL output formatting: what a life saver!
Instead of the usual
SELECT * FROM users WHERE uid=1;
type
SELECT * FROM users WHERE uid=1\G
and enjoy a much better formatting!
How to block Tor exit nodes from accessing your website
Internet trolls are using Tor nowadays to avoid bans by IP. However, banning Tor exit nodes is just slightly more complex. The Tor Project provides a regularly updated list of exit nodes that can access your IP here. As there may be many hundreds or even thousands of nodes, adding them to iptables can hurt your server's network performance. Enter ipset, a user-space hash table for iptables:
# create a new set for individual IP addresses ipset -N tor iphash # get a list of Tor exit nodes that can access $YOUR_IP, skip the comments and read line by line wget -q https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$YOUR_IP -O -|sed '/^#/d' |while read IP do # add each IP address to the new set, silencing the warnings for IPs that have already been added ipset -q -A tor $IP done # filter our new set in iptables iptables -A INPUT -m set --match-set tor src -j DROP
"Independent", "impartial", "european"… professional journalism

EU Observer runs a report on Belarus. See this gem: Earthquake zone on EU border to host Belarus nuclear plant.
Earthquake zone…
Опаньки…
О вреде Test-Driven Development
(какой-то функциональный тест написанный таким образом падал и разработчик решил проблему использованием datetime2).