четверг, 24 марта 2011 г.

Штирлиц получил новую шифровку из Центра

Мы тут случайно наткнулись на очень необычную функцию древнейшего UNIX-калькулятора, и именно свойство печатать цифры из стека в виде букв. Нам это так понравилось, что я сначала написал черновую версию преобразователя текста в такие цифры, а потом, кучей итераций на #linux скриптик медленно преобразовался в такое вот коротенькое:

echo some text | perl -Mbigint -pe 'map{($s<<=8)|=$_}unpack"C*";$_="dc -e ${s}P\n"'

на выходе получается готовая команда для запуска dc, которая печатает some text. Этот окончательный вариант принадлежит перу ams, так что можете считать его perl-гуру. Другой гуру - ramok, он же komar, тоже приложился к этому делу.
Конечно, это не имеет никакой практической ценности, но является само по себе забавной вещью.

суббота, 5 марта 2011 г.

rlwrap - используем readline в приложениях, в которых его нет

rlwrap позволяет обернуть ввод в приложение, снабдив его функциями редактирования строки от readline. То есть, мы запускаем через rlwrap любую программу, которая просто читает ввод с терминала, например cat, telnet, netcat и получаем историю ввода, передвижение по строке курсорными клавишами, редактирование строки и прочие плюшки нормального, удобного ввода.
Устанавливается rlwrap в виде отдельного одноименного пакета и есть в репозиториях большинства дистрибутивов.

Пример использования:
$ rlwrap netcat localhost 25
- подключаемся к локальному SMTP-серверу и имеем чуть более удобную возможность говорить с ним напрямую.

вторник, 1 марта 2011 г.

Как скопировать файлы из другой ветки репозитория git

Кросспост из ЛинСовета

Что же делать, если нужно скопировать файлик из одной ветки git в другую? Браться за голову и делать это руками? Совсем нет. :)


Достаточно сделать в нашей ветке, где файла нет вот такое действие:
$ git checkout другая_ветка путь_к_файлу
и файл магически скопируется из другая_ветка. Останется добавить его и закоммитить.