Yashiro Takeshi氏のプログラムで、キー入力を変換してくれるソフトウェアである x11keymacs を Arch Linux で使えるようにしてみた。Libre Office のキーバインドがどうしても我慢できなかったから。
続きを読む覆面算WWWDOT - GOOGLE = DOTCOMを解く
C言語でやってみた。やっつけのひどいコードだけども。
#include <stdio.h> #include <stdlib.h> #include <string.h> /* WWWDOT - GOOGLE = DOTCOM: EとMは互換 */ /* W > G */ /* WDOTGLECM */ /* 012345678 */ typedef enum { false, true } bool; enum { W, D, O, T, G, L, E, C, M }; long word(a1, a2, a3, a4, a5, a6) { return a1 * 100000L + a2 * 10000L + a3 * 1000L + a4 * 100L + a5 * 10L + a6; } bool calculate(int a[]) { long WWWDOT, GOOGLE, DOTCOM; if (a[W] <= a[G]) { return false; } WWWDOT = word(a[W], a[W], a[W], a[D], a[O], a[T]); GOOGLE = word(a[G], a[O], a[O], a[G], a[L], a[E]); DOTCOM = word(a[D], a[O], a[T], a[C], a[O], a[M]); if ((WWWDOT - GOOGLE) == DOTCOM) { printf("%ld - %ld = %ld\n", WWWDOT, GOOGLE, DOTCOM); return true; } return false; } bool candidate(int c[]) { int b[] = {0,1,2,3,4,5,6,7,8,9, 0}; static int index = 9; if (index < 0) { return false; } if (1 <= index) { memcpy(c, b, index * sizeof(b[0])); } if (index <= 8) { memcpy(&c[index], &b[index + 1], (9 - index) * sizeof(b[0])); } index --; return true; } void concatinate(int a[], int c[], int index) { static bool used[9] = {0}; int i; for (i = 0; i < 9; i ++) { if (false == used[i]) { a[index] = c[i]; if (8 == index) { calculate(a); return; } else { used[i] = true; concatinate(a, c, index + 1); used[i] = false; } } } } int main() { int a[9], c[9]; while (candidate(c)) { /* 9個の数字を取り出す */ concatinate(a, c, 0); /* 並び替えて検証する */ } return EXIT_SUCCESS; }
Sambaでファイルサーバ
HDDの容量が余っていたので、パーティションを分けて妻の写真フォルダ用にSambaでファイルサーバにしてみた。
HDDはバックアップ用と2つあるので、1つ目をパーティションを区切ってファイルをコピー、2つ目も同様にパーティションを区切ってコピーした。備忘録に手順を記しておく。
- パーティションを分ける
gparted を使った。ずっとfdiskとか使っていたけど、やっぱりGUIの方が視覚的にイメージできて楽だね。
[2015/11/28 追記] ファイルシステムに btrfs を選択するには、core/btrfs-progs のインストールが必要。
- Sambaの設定
ArchLinuxでごく簡単にsambaサーバーを立ち上げる - opamp_sando's blog
を参考にさせていただき、自身の環境に合わせて読み替えた。とくに /etc/samba/smb.conf での設定は、sample の最後に書いてあるグループフォルダの設定にした。
- バックアップ
もともと fcron で rsync を毎朝4時に実行してバックアップをとっていたので、新しいパーティションについても追記した。あと、日曜日まではファイルを残しつつバックアップをとって、日曜日に完全同期するようにしている。
$ fcrontab -e
#min hour days month dayOfWeek command
0 4 * * * /usr/bin/rsync --times --update --archive --verbose /mnt/hoge/ /mnt/hoge2/ >> ~/log/rsync
0 5 * * 7 /usr/bin/rsync --times --update --archive --verbose --delete /mnt/hoge/ /mnt/hoge2/ >> ~/log/rsync
こんな感じで。
ArchLinux から EPSON の PX-401A で印刷する
FreeBSD の時と同様に
Kosei's FreeBSD Blog: CUPSでCanon iP 4200プリンター を参考にgutenprint をドライバにして CUPS で印刷した。
aur にある epson-inkjet-printer-px-402a をドライバとして使うと印刷できなかった。あと、Epson 公式の Mandriva Linux 用にある PIPS はビルドには成功したけど、CUPS でドライバとして選択できなかった。(というよりビルドしたのはプリンタ共通のツールで、PX-401A のドライバは別っぽい。)
ちなみに Epson 公式の PIPS は、libpng12 でビルドしないとコンパイルエラーが起きる。
./Core/pips-filter/Makefile 内の INCLUDES にあるlibxml2の次へ -I/usr/include/libpng12 を追加することでビルドは通った。