Home

Previous 20

Nov. 29th, 2009

Bradshaw

Defaulting with No Default

# This option is deprecated.  Directory for chroot symlinks and sbuild
# logs.  Defaults to the current directory if unspecified.  It is used
# as the location of chroot symlinks (obsolete) and for current build
# log symlinks and some build logs.  There is no default; if unset, it
# defaults to the current working directory.  $HOME/build is another
# common configuration.
#$build_dir = undef;
- Example configuration for sbuild(1)


Like the Fail Blog slogan:

Molko

Глобальное потепление

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

Nov. 28th, 2009

Valtiel

Регистрация письмом на CAPTCHA-адрес

Возникла идея регистрации в Web-системах с помощью отправления письма на адрес, показываемый на изображении CAPTCHA.

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

Также можно использовать адреса типа 53db-c45e-94ca@register.example.com и ограничиваться изображением кода, а не полного адреса.

Nov. 26th, 2009

Valtiel

Сестра с мамой в Греции



Сестра и мама (кстати, сама наполовину гречанка) были рады побывать в Греции в октябре этого года.
Tags:

Nov. 25th, 2009

Molko

Словари лямбда-выражений

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

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

Следует отметить, что в самой системе лямбда-бета-эта, результат прямой десериализации бета-эта-нормальных форм в общем случае не является нормальной формой. Однако, он всегда оказывается на одинаковом расстоянии от таковой в смысле количества необходимых бета-эта-редукций для всех экстенсионально равных термов.

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

Сериализация лямбда-выражений

Известно, что любое лямбда-выражение можно детерменированно, хотя и не в реальном времени, перевести в комбинаторную логику с одноточечным базисом. Выражения в последней эквивалентны скобочным структурам, так как являются, по сути, бинарными деревьями без нагрузки в узлах. Такие структуры можно представить префиксными бинарными кодами переменной длины, если заменить символ "(" битом 1, а ")" - битом 0, а также добавить завершающий бит 0. Полученные коды можно передавать по сети и сохранять в файлы, то есть использовать данный метод для сериализации лямбда-выражений, если считать выражения равными с точностью до альфа-бета-эта-конверсии. Последнее - существенное ограничение данного подхода, так как десериализация в общем случае не восстанавливает исходное лямбда-выражение текстуально, даже с точностью до альфа-конверсии.

Nov. 24th, 2009

Valtiel

Using `schroot', `debootstrap', and `sbuild'

After `sbuild' and `debootstrap' packages and their dependencies, including schroot(1) software, had been installed, schroot(1) environment was prepared using the steps described below.

1 Adding the following configuration to /etc/schroot/schroot.conf:
[lenny]
type=directory
description=Debian Lenny (stable)
priority=1
root-groups=sbuild
location=/srv/chroot/lenny
aliases=stable,default
2 Running the following command to create the environment for schroot(1) which can be also used with sbuild(1):
sudo debootstrap --include=fakeroot --variant=buildd lenny /srv/chroot/lenny
3 Appending the file /srv/chroot/lenny/etc/apt/sources.list with the following line allowing sbuild(1) to retrieve the source packages from the local Debian repository inside schroot(1) environment, and build them:
deb-src http://localhost/debian codedot main
4 Adding the current user $username to `sbuild' group, e.g. using `sudo usermod -a -G sbuild $username' command.

5 Creating sbuild(1) configuration as follows:
$distribution = "lenny";
$chroot = "lenny";
$sbuild_mode = "user";
$log_dir = "logs";
$stats_dir = "stats";
1;
After the above steps have been done, the user (if re-logged in the system to get included into the `sbuild' group) is able to enter schroot(1) session just typing `schroot' command. /proc filesystem and home directory will be automatically mounted by schroot(1) into the guest system from the host one.

debootstrap(8) used above is also useful to install Debian userspace for those targets where Debian installers are hard to start for some reasons.

Finally, the schroot(1) environment created similarly to the above is a good way to build Debian packages using sbuild(1) to check dependency correctness. To build a source package that is available in the local repository (`schroot -u root apt-get update' is recommended before this step), the command `sbuild $package_$version' can easily be issued. It will then build the package and save the build logs and the resulting binary packages in the current directory.
Tags: ,
Valtiel

Local Debian Repository

The below steps are to set up a local Debian repository which would be available through APT with the following lines in /etc/apt/sources.list:
deb http://localhost/debian codedot main #Codedot Repository
deb-src http://localhost/debian codedot main #Codedot Repository
1 Installing `apache2' and `reprepro' packages, and creating directories /var/www/debian/{incoming,conf,temp}. Then, setting mode 777 for /var/www/debian/incoming to upload new packages there using method `local'.

2 Creating /var/www/debian/conf/distributions as follows:
Origin: Anton Salikhmetov
Label: Codedot
Suite: unstable
Codename: codedot
Version: 3.1
Architectures: amd64 source
Components: main
Description: Codedot Repository
SignWith: default
3 Creating /var/www/debian/conf/incoming as follows:
Name: codedot
IncomingDir: /var/www/debian/incoming
TempDir: /var/www/debian/temp
Allow: codedot unstable
Default: codedot
4 Putting the GPG keys (~/.gnupg directory) with empty passphrase into root's home directory to allow `reprepro' program to sign the Release files in the repository automatically.

5 Creating crontab file /etc/cron.d/reprepro to automatically process the incoming directory every minute:
* * * * * root /usr/bin/reprepro -b /var/www/debian processincoming codedot
6 Editing the dput(1) configuration file /etc/dput.cf, section `local', as follows:
[local]
method                  = local
incoming                = /var/www/debian/incoming
run_dinstall            = 0
After the above steps have been done, new packages can be uploaded into to the local repository using the command `dput local *.changes'.
Tags: ,

Nov. 14th, 2009

Valtiel

Среда "Codedot Desktop"

После того как в Synaptic появилась выделенная группа со статусом "Install (manual)", к которой принадлежат установленные пакеты, не имеющие флаг "Automatically installed", в системе Ubuntu Karmic удалось выделить минимальный набор пакетов, от которых через зависимости и рекомендации (включена опция "Consider recommended packages as dependencies") зависят все остальные из установленных. Позже полученный список был использован для метапакета "codedot" в репозитарии "PPA for Codedot". Теперь в списке "Install (manual)" лишь один упомянутый пакет. Копия используемого файла /etc/apt/sources.list доступна по следующему адресу (кроме основных репозитариев Ubuntu и PPA, подключен также архив Medibuntu):

http://pygx.sourceforge.net/sources.list

В зависимостях "Codedot Desktop" есть также браузер Conkeror, основанный на Mozilla XULRunner, и оконный менеджер Awesomе, который недавно был настроен средой по умолчанию со следующей конфигурацией в файле ~/.config/awesome/rc.lua (выбрана тема Sky, убраны меню приложений и текстовое поле с панели, а также добавлены комбинации WinKey-Shift-Enter и WinKey-Print для запуска браузера и сохранения скриншота, соответственно):

http://pygx.sourceforge.net/awesomerc

После отключения запуска оконного менеджера Metacity при старте сессии GNOME (с отключенной в "gnome-session-properties" панелью и с оформлением ClearLook, сочетающимся с темой Sky в Awesome) с помощью удаления строки "windowmanager" из значений ключа /desktop/gnome/session/required_components_list в Gconf-editor команда "awesome" в файле /usr/share/xsessions/awesome.desktop была заменена на вызов следующего скрипта, чтобы использовать настройки клавиатуры, апплет NetworkManager, управление громкостью звука и дисковыми устройствами с помощью Nautilus, а также индикатором заряда батареи и другое:
#!/bin/sh

gnome-session &
exec awesome

Nov. 13th, 2009

Valtiel

"Autocomplete Me" Syndicated

A syndicated LiveJournal account [info]autocomplete_me has been created for another bwahahalet (Russian: "бугагашечка") website, Autocomplete Me (found via Fail Blog which is available in LiveJournal, too - [info]thefailblog).

Valtiel

SSH Proxy

Direct access to a target available via an intermediate host can be set up using SSH aliases, ProxyCommand configuration option, and nc(1):
Host target
HostName targethost
User targetuser
ProxyCommand ssh proxyhost nc targethost 22
This way, both ssh(1) (`ssh target') and scp(1) (`scp file target:') will be available.
Tags:

Nov. 11th, 2009

Bradshaw

Совмещение "приятного" с "полезным"

Письмо Медведеву Бизнес газета РБКdaily
 
Письмо Медведеву
В России будет создана почта для переписки граждан с госорганами

Правительство России планирует создать почтовый сервер для государственных нужд в доменной зоне «.рф». Такое решение обсуждалось на встрече главы Минкомсвязи Игоря Щеголева с президентом Дмитрием Медведевым. Создание собственного почтового сервера может обойтись бюджету государства в сумму до 20 млн долларов, полагают аналитики.... Читать далее >

Газета РБК daily

Nov. 10th, 2009

Valtiel

MakeHuman в Launchpad

После назначения бага 236625 в Launchpad была подготовлена предварительная версия соответствующего Debian-пакета для программы MakeHuman. Для этого была использована утилита dh_make(8). Установить пакет "makehuman", который был успешно протестирован на 64-битной версии архитектуры x86, можно из созданного для дебьянизации нескольких пакетов, имеющих отношение к 3D-моделированию, репозитария PPA группы Animux, зарегистрированной для одноименного дистрибутива GNU/Linux, добавив следующие строки в файл /etc/apt/sources.list:
deb http://ppa.launchpad.net/animux/ppa/ubuntu karmic main #Animux' PPA
deb-src http://ppa.launchpad.net/animux/ppa/ubuntu karmic main #Animux' PPA

Nov. 9th, 2009

Molko

Salary Increasing Shell Script

#!/bin/sh

cat >>main.c <<!
#if 0
Dear John Smith,

Please increase my salary this month.

Best regards,
Poor Developer
#endif
!

git commit -m "Just profit." main.c

Nov. 8th, 2009

Bradshaw

Кэрри и Петровский (Cold War, Sex and the City)

Nov. 5th, 2009

Bradshaw

ШЗ с Гиппенрейтер (Compiling and Shappiness)



Evil Shappiness )

Nov. 4th, 2009

Valtiel

Печати для припечатывания


<a href="http://www.opengroup.org/onlinepubs/9699919799/toc.htm"><img border="0" src="http://bestsmileys.ru/s/603841.gif" /></a>


<a href="http://ru.wikipedia.org/wiki/Полнота_по_Тьюрингу"><img border="0" src="http://bestsmileys.ru/s/123532.gif" /></a>


<a href="http://lib.mexmat.ru/books/8840"><img border="0" src="http://bestsmileys.ru/s/785082.gif" /></a>


<a href="http://lurkmore.ru/Haskell"><img border="0" src="http://bestsmileys.ru/s/672973.gif" /></a>

Nov. 3rd, 2009

Molko

POSIX (Sword Dancer, Hellsing)

Oct. 27th, 2009

Valtiel

GNU Screen в Uniweb

Пакет "screen", соответствующий программе GNU Screen, добавлен в зависимости метапакета "uniweb". Так как система Uniweb лишена каких-либо устройств позиционирования, функциональность режима "copy/scrollback" в screen(1), позволяющая в стиле редактора vi(1) копировать любой текст из текущего окна и сохранять его в буфере или в файле обмена для использования с другими окнами, пришлась очень кстати:
       C-a <       Reads the screen-exchange file into the paste
                   buffer.
       C-a ]       Write the contents of the paste buffer to the
                   stdin queue of the current window.
       C-a [       Enter copy/scrollback mode.

         h, j, k, l move the cursor line by line or column by column.
         G moves to the specified absolute line (default: end of buffer).
         g moves to the beginning of the buffer.
         C-b and C-f scroll the display up/down a full screen.
         space to set the first or second mark respectively.
         x exchanges  the first mark and the current cursor position. You can
           use this to adjust an already placed mark.
         > sets the (second) mark and writes the contents of the paste  buffer
           to the screen-exchange file (/tmp/screen-exchange per default) once
           copy-mode is finished.
Tags: ,
Valtiel

SSH aliases

SSH configuration allows a user to introduce aliases for user@host names both for ssh(1) and scp(1). In order to do that, the ~/.ssh/config file can be appended by the lines similar to the following:
Host js
HostName jsinc.com
User john

Host tom
HostName tommy.supergnu.org
User tommy
This way, to copy a file /tmp/xml to John's machine as John himself, and then log in Tommy's host using the name `some1' (not the default user name `tommy'), one could just type `scp /tmp/xml js:/tmp', then `ssh some1@tom'.
Tags:

Previous 20