Словари грубой силы

Sun Oct 25 15:56:09 UTC 2009 [ Русский | English ]

Недавно возникла задача сгенерить словарь слов заданной длинны из заданного алфавита. Понятно где такое может пригодиться ;) Я не считаю себя сильным в алгаритмах, но эта задача мне понравилась. Очень интересно послушать ваш фидбек. Где что можно улучшить, ускорить, украсить, упростить… Вобщем пишите коменты.

module Brute
  def dict(word_size, alphabet)
    alphabet = alphabet.split('') unless alphabet.is_a?(Array)
    first = (alphabet[1] + alphabet[0]  * word_size).alpha_to_i(alphabet)
    last  = (alphabet[1] + alphabet[-1] * word_size).alpha_to_i(alphabet)
    (first..last).collect{ |n| n.to_alpha(alphabet)[1..-1] }
  end 
  module_function :dict
end

class Fixnum
  def to_alpha(alphabet)
    alphabet = alphabet.split('') unless alphabet.is_a?(Array)
    self.to_s(alphabet.size).split('').collect{ |n| alphabet[n.to_i] }.join
  end 
end

class String
  def alpha_to_i(alphabet)
    alphabet = alphabet.split('') unless alphabet.is_a?(Array)
    self.strip.split('').collect { |c| alphabet.index(c) }.join.to_i(alphabet.size)
  end 
end

Репозиторий: http://github.com/antono/brute

Код скоро опубликую в виде гема.

HTML5 Canvas

Sun Oct 18 18:47:55 UTC 2009 [ Русский ]

Очень впечатлен. Если кто не видел:

Читаю:

Добавил в подписки и список LEARNTO:

Пройдет еще 2 года и можно будет уверенно заявить что Flash ненужен.

Ubuntu Karmic Release Party Минск

Sat Oct 17 15:41:45 UTC 2009 [ Русский ]

Все активные убунтоводы Минска общаются на предмет организации Release Party по слючаю релиза Ubuntu Karmic Koala.

Общение происходит в официальной рассылке Belarus LoCo Team.

Организовано голосование за дату проведения мероприятия.

Заведен гуглдок со списком участников. Можно добавляться.

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

Встретимся там :)

Vim Macros

Fri Oct 16 13:07:57 UTC 2009 [ Русский | English ]

PS: :help q

Сохранить от root в vim

Mon Oct 12 22:36:44 UTC 2009 [ Русский | English ]

Бывает откроеш в vim что-нибудь из /etc/, внесеш правки а потом не можеш сохранить… Бывает же, да? :)

cmap w!! %!sudo tee > /dev/null %

Добавте строчку в ~/.vimrc и делайте :w!! чтобы сохранить с sudo :)

Устанавливаем Adium темы на Empathy

Tue Sep 22 22:44:19 UTC 2009 [ Русский | English ]

Empathy научили поддерживать MessageStyles от Adium и голос/видео.

Состряпал по этому случаю скриптик для установки стилей от Adium:

     #!/bin/sh
     # Adium theme AdiumMessageStyle installer for Empathy
     # Last version here: http://gist.github.com/191499

     if [ -z $1 ]
       then
     	echo
     	echo "	Usage:"
     	echo "		`basename $0` adiumxtra://some.url.here/extra"
     	echo
     	exit 1
     else
     	TMPDIR=`mktemp --directory`
     	XTRAURL=`echo $1 | sed -e "s/^adiumxtra:/http:/"`
     	DEST="$HOME/.local/share/adium/message-styles/"
     	if [ !-d $DEST ]
     	then
     		mkdir -v -p $DEST
     	fi
     
     	cd $TMPDIR
     	echo "Downloding extra..."
     	wget --no-verbose --progress=bar:force -O xtra.zip $XTRAURL
     	unzip -qq xtra.zip
     
     	THEMES=`ls -d *.AdiumMessageStyle/`
     
     	if [ -z $THEMES ]
     	then
     		echo "No themes found in downloaded file"
     	else
     		for theme in $THEMES
     		do
     			cp -r $theme $DEST
     		done
     		echo "\nTheme $XTRAURL was succesfully installed to $DEST"
     	fi
     	rm xtra.zip
     	rm -r $TMPDIR
     fi
     exit 0

Попробовал его добавлять в Firefox примерно так:

     /* Installer for Empathy themes from adiumxtra:// urls */
     pref("network.protocol-handler.app.adiumxtra","/usr/local/bin/adiumxtra-install");
     pref("network.protocol-handler.warn-external.adiumxtra",false);

Что-то безуспешно. В about:config обработчик виден. На файловой системе тоже есть а FF все равно ругается что не назначен. Если решите проблему - черканите в коменты :)

PS:

gconftool-2 -t string -s /desktop/gnome/url-handlers/adiumxtra/command "/usr/loca/bin/adiumxtra-install %s"
gconftool-2 -t bool -s /desktop/gnome/url-handlers/adiumxtra/enabled true
gconftool-2 -t bool -s /desktop/gnome/url-handlers/adiumxtra/needs_terminal false

Так можно включить для Chromium. Firefox, Epiphany и Midori обучить так не удалось.

Ruby 1.9.1 на Ubuntu Karmic

Fri Aug 07 01:02:45 UTC 2009 [ Русский | English ]

Пакетирование ruby 1.9.1 уже в процессе. Если вам не терпится попробовать новшества - собирайте пакет самостоятельно.

Ставим нужные зависимости:

 sudo aptitude install debhelper cdbs dpatch \ 
 patch autoconf m4 bison binutils libgdbm-dev \ 
 libncurses5-dev libreadline5-dev tcl8.4-dev \ 
 tk8.4-dev zlib1g-dev libssl-dev procps

Собираем пакеты:

 sudo atitude install devscripts build-essential
 mkdir /tmp/ruby191 && cd /tmp/ruby191
 dget https://launchpad.net/ubuntu/karmic/+source/ruby1.9.1/1.9.1.243-0ubuntu1/+files/ruby1.9.1_1.9.1.243-0ubuntu1.dsc
 dpkg-source -x ruby1.9.1_1.9.1.243-0ubuntu1.dsc
 cd ruby1.9.1-1.9.1.243 && debuild
 cd .. && sudo dpkg -i *.deb

Тем, кто уже тестирует Ubuntu on Rails PPA специальный бонус:

 sudo aptitude install ruby1.9.1 ri1.9.1 rdoc1.9.1 

и далее по необходимости…