Friday, January 30, 2009

Mail for spam and registrations

Sometimes I need temporary e-mail account just for pass some forum registration. Sure, I don't want to sign in with my lovely e-mail box to just avoid spam messages.

That's about it. All you need is to go to one of the following links and register an e-mail for, say, 10 minutes. And we're done with registration.

This post is a collection of such links, cause I'm always forget them.

So, here are links
Sources:

Wednesday, January 28, 2009

Linksys WRVS4400N

Хаха… Что-то меня пробило на роутеры. Ну а так как я работаю в Cisco Systems, то попадаются мне только Linksys'ы ;-) С другими я не имел такого тесного общения.
Итак, встречаем — Linksys WRVS4400N.



Очень интересная начинка (кратко):
  • 4 гигабитный порта
  • Wireless N-draft
  • VPN и QoS
  • 2 процессора, 64 МБ оперативной памяти, 8 МБ флеш-памяти

Первый процессор STAR 9109 загружает линукс, имеет доступ в 32 МБ памяти, управляет Marvell WLAN чипсетом, гоняет hostapd и управляет шифрованием. Соединён с основным через гигабитный мост. Основной ЦПУ STAR 9202 подсоединён к Vitesse VSC7385 (SparX G5), который управляет гигабитным свичем. Главный проц может оперировать 64 МБ памяти и 8 МБ флеша. Самое интересное, каждый проц работает со своей операционной системой, то есть, там два линукса одновременно, и общаются они через гигабитный канал.
Меня интересовало — будет ли на нём работать мои уже любимые прошивки DD-WRT или Tomato. Ответ отрицательный. Пока никто не поддерживает эту железку, кроме индусов, которые пишут родную глючную прошивку.
Материал по теме:

Документы, которые смог найти в сети одним архивом (7.5 МБ), внутри:

Жаль :-(, выглядит так аппетитно. Попытаюсь на выходных покапать в сторону самостоятельного сбора образа для роутеров. Чо-то мне вдруг интересно стало.
Судя по отзывам, его лучше использовать как внутренний свич, то есть внешним поставить WRT54GL с «нормальной прошивкой», а внутри этот с отключенным IPS.

Saturday, January 24, 2009

My Linksys WRT54GL meet DD-WRT and Tomato

Такая тема, всё началось со статьи на хабре, в которой говорилось о том, как из дешёвого роутера сделать «конфетку». Об этом и пойдёт речь.



Как случайно оказалось, роутер, на который можно поставить подобную прошивку оказался у моего отца — Linksys WRT54GL. У него процессор с частотой 200 МГц, 16 МБ ОЗУ и 4 МБ флеш памяти для прошивки. Долго смеялся над 16 МБ, пока сам не увидел что он вытворяет потом :-) Мы договорились, что я возьму «поиграться», а взамен я дам ему свой навремя — 3com OfficeConnect 3CRWE554G72T (теперь для меня это «тупая железяка»).



Как только я прошил DD-WRT и «пощупал», я уже знал, завтра я куплю себе такой же девайс :-) Да и стоит он не бешеных денег — взял за 340 шекелей (примерно $75) в своём любимом пандасе с гарантией на 12 месяцев.

Единственное, на что нужно обратить внимание при покупке, это взять уже проверенную ревизию железа, которая указана на днище аппарата. На текущий момент, прошивки опробованы на версии 1.0 (стартовая) и 1.1 (с мая 2008). Мне отказали в просьбе открыть упаковку, чтобы проверить. В вики я нашёл соответствия с серийных номеров (которые указаны на упаковочной коробке) с версией железа. В частности у 1.1 серийник начинается на «CL7B» или «CL7C».

Итоги эксперимента
  • Прошил DD-WRT v24 (05/24/08) mini, standart
  • Чуть не угробил свежекупленный роутер, научился заливать прошивку через TFTP
  • Прошил Tomato v1.23
  • Уже купил карту памяти и кард-ридер для SD/MMC мода, но посмотрев на плату, решил не рисковать, потому что особого смысла не видел в этом
  • Добавил вставки между лампочками, потому что в Linksys'е в упор не видят, что свет от соседних диодов попадает в соседние отверстия и кажется что вообще все диоды горят
Я бы не узнал про Tomato, если бы в DD-WRT не работал L2TP дозвон, который нужен был отцу. У меня дома нету дозвона, модем сразу выдаёт IP, и это, я считаю, в сто раз удобнее. Провайдеры у нас да — разные. Поиски по форумам навели меня на баги в DD-WRT, и я оказался не один с проблемой дозвона, особенно в Израиле :-) Там все посоветовали перешить Tomato, что я и сделал.

После всех экспериментов, субъективно понравилась прошивка Tomato, но с дизайном у них конечно каша. Оба участника эксперимента хвастаются AJAX'ом. Tomato хорошо оптимизирован по трафику, чего не скажешь о DD-WRT. Пока понаблюдаю за двумя этими установками, но уже присматриваюсь к Tomato.

Да, кстати, самый офигенны плюс в QoS, кто ещё не понял — торрент теперь может фигачить без ограничения. Приоритеты можно настроить так, чтобы он не мешал другому трафику. Респект ;-)

Хозяйке на заметку! DD-WRT основан на OpenWRT, который, в свою очередь на коде Linksys'а и Tomato на их коде. Причём в оригинальной, заводской прошивке всё настолько уёби не удобно, не понятно, не доделано. Линксисковсы явно из-за бабок не хотят продавать подобные вещи out of the box.

Ресурсы по DD-WRT
Ресурсы по Tomato
Основная прошивка OpenWRT
Другая полезная информация

Wednesday, January 7, 2009

Шоке-шоке

Давненько не писал, да ещё и по-русски:) Прежде всего, с новым 2009 годом! (если кто читает этот пост).

Случайно слушая подкаст (буквально подслушивая у Наташки) freetonik'a (или pax'а) студента, проживающего в Канаде в Оттаве, услышал о культурном шоке.

Культурный шок — эмоциональный или физический дискомфорт, дезориентация индивида, вызванная попаданием в иную культурную среду, столкновением с другой культурой, незнакомым местом. Привыкание к новому окружению может быть волнующим, стрессовым, может обмануть ожидания, быть забавным или просто сбить с толку. Термин был впервые употреблён Кальверо Обергом в 1954 году.

В общем, занятная штука эта — психология. Американский антрополог Ф. Бок даёт четыре способа разрешения этого конфликта: геттоизация, ассимиляция, промежуточный и частичная ассимиляция.
У меня, получается, частичная ассимиляция — самый распространённый вариант. Как-то хорошо на душе становится, когда открываешь подобного рода вещи, которые тревожат.

Ещё один шок, который встретил, пока искал информацию об этом — лингвистический. Лингвистический шок (англ. linguistic shock, language shock) определяется как состояние удивления, смеха или смущения, возникающее у человека, когда он слышит в иноязычной речи языковые элементы, звучащие на его родном языке странно, смешно или неприлично. Смеховой эффект в отношении иностранного языка возникает в случаях, когда нейтральное по значению слово одного языка омонимично слову родного языка, обладающему совершенно другим значением.
Весёлый постец по нему с примерами — Лингвистический шок, или перевод без смеха.

Friday, October 17, 2008

Bash feat. Ant runner

I like Ant. I made some maintenance tasks for my projects and here Bash script that launches them via crontab.

It uses native Ant XML build files that you can specify by absolute or relative path.

There is useful option -r your@email.com. When that is set and build is failed, you will recieve on specified e-mail address short message that build was broken, include it's name.

albass@cisco:~$ ./ant-runner.sh -t db/analyze
Will run ./db/analyze.xml build.

Use -d key if you want to debug it.


#!/bin/bash

# Description: ANT runner
# Author: Alexey Bass (albass)
# Version: 1.1.0, 16/10/2008
SCRIPT_VERSION="1.1.0, 16/10/2008"

JAVA_HOME=/usr
# ant location. home directory, not file
ANT_HOME=/var/family/java-ant/ant
ANT_SCRIPT=$ANT_HOME/bin/ant
PATH=$PATH:$ANT_HOME/bin

if [ ! -f $ANT_SCRIPT ]; then
echo "[ERROR] ANT not found at $ANT_SCRIPT"
echo "Please, check the location and correct ANT_HOME if need."
exit 1
fi

# Will be used for reporting to email without it.
# Example: albass => albass + DEFAULT_EMAIL_SUFFIX
# Example: admin@site.com => admin@site.com
DEFAULT_EMAIL_SUFFIX=@gmail.com

# Holds email for reports.
REPORT_EMAIL=
# need to send notice email if build failed
IS_SEND_EMAIL_ON_FAIL=0

# holds task name to run
TASK_TO_RUN=

# normally, we don't need debug. that's default.
IS_DEBUG=0

print_usage()
{
cat << EOF
Usage: ant.sh [options] [-r email] -t task

OPTIONS:
-h Show this message
-t Task to run. Absolute or relative (to PWD) path without ".xml"
-v Print version information and exit
-a Runs Ant diagnostics
-r Send fail notice to provided e-mail address if need
-d Enable debug mode, shows extra info while running

EOF
}

print_versions()
{
echo $0
echo ANT runner $SCRIPT_VERSION
echo

which java
java -version
echo

echo $ANT_SCRIPT
$ANT_SCRIPT -version

echo
}

run_ant_diagnostics()
{
echo $ANT_SCRIPT
$ANT_SCRIPT -diagnostics

echo
}

correct_report_email()
{
# check for full e-mail was specified
local TEST=`echo "$REPORT_EMAIL" | grep "@"`

if [ -z $TEST ]; then
REPORT_EMAIL=$REPORT_EMAIL$DEFAULT_EMAIL_SUFFIX
fi

if [ $IS_DEBUG -eq 1 ]; then
echo "[DEBUG] Fail notice will be sent to $REPORT_EMAIL"
fi
}

# no options specified
if [ $# -eq 0 ]; then
echo "Hey, try -h for help"
exit 1
fi

# get throught passed options
while getopts "hvr:t:da" OPTION
do
case $OPTION in
h)
print_usage
exit 0
;;
a)
run_ant_diagnostics
exit 0
;;
v)
print_versions
exit 0
;;
r)
IS_SEND_EMAIL_ON_FAIL=1
REPORT_EMAIL=$OPTARG
;;
t)
TASK_TO_RUN="$OPTARG.xml"
;;
d)
echo "[DEBUG] is on"
IS_DEBUG=1
ANT_SCRIPT="$ANT_SCRIPT -debug"
;;
?)
print_usage
exit 0
;;
esac
done

if [ $IS_SEND_EMAIL_ON_FAIL -eq 1 ]; then
correct_report_email
fi

# user has task?
if [ ${#TASK_TO_RUN} -eq 0 ]; then
echo "[ERROR] Please, specify task to run"
exit 1
fi

# if not absolute path, set relative
if [ ! -f $TASK_TO_RUN ]; then
TASK_TO_RUN="./$TASK_TO_RUN"
fi

if [ $IS_DEBUG -eq 1 ]; then
echo "[DEBUG] Task path: $TASK_TO_RUN"
fi

# does build exists?
if [ ! -f $TASK_TO_RUN ]; then
echo "[ERROR] Can not find task: $TASK_TO_RUN"
echo
exit 1
fi

if [ $IS_DEBUG -eq 1 ]; then
echo "[DEBUG] Starting ANT"
fi
$ANT_SCRIPT -buildfile $TASK_TO_RUN
if [ $? -ne 0 ]; then
if [ $IS_SEND_EMAIL_ON_FAIL -eq 1 ]; then

if [ $IS_DEBUG -eq 1 ]; then
echo "[DEBUG] Sending e-mail..."
fi

mailx -s "[ANT-RUNNER] FAILED $TASK_TO_RUN" $REPORT_EMAIL <<< "O_o ACHTUNG!!!"

if [ $IS_DEBUG -eq 1 ]; then
echo "[DEBUG] E-mail sent"
fi

echo
exit 1;
else
if [ $IS_DEBUG -eq 1 ]; then
echo "[DEBUG] Congratulations, Failed! E-mail will not sent, use -r for that"
fi
fi
fi
echo

exit 0


In case you wish to improve it and not so familiar with Bash, here is the manual.