はわわーっ

はわわわわっ

bashのコーディングスタイル

googleのやつを見つけた。https://google-styleguide.googlecode.com/svn/trunk/shell.xml

weechatメモ

ngircd入れてweechatで接続するまでのメモ。 $ sudo apt-get install ngircd wheechat $ service ngircd start $ weechat/server add test localhost /connect test /join #test /exit

golangしてみる(続き

go

ゴルーチンを使ってみるよ。まず、ゴルーチンなしの場合。 package main import ( "fmt" "log" "net/http" ) func main() { urls := []string{ "http://example.com", "http://example.net", "http://example.org", } for _, url := range urls { res, err :…

golangしてみる

go

web+db pressにgolangの特集があったので、やってみる。 $ sudo apt-get install golang// hello.go package main import ( "fmt" ) func main() { fmt.Println("hello") } $ go run hello.go hello $ go build hello.go $ ./hello hello簡単なパッケージを…

dmsetup snapshotメモ

$ dd if=/dev/zero of=mituski.img count=0 bs=1M seek=30000 $ dd if=/dev/zero of=mituski.img.$$ count=0 bs=1M seek=1024 $ sudo losetup -f mituski.img $ sudo losetup -f mituski.img.20222 $ sudo losetup -a /dev/loop0: [fe00]:4332326 (/home/yom…

aufs rootメモ

https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash見ながらやってみた。aufs.koをinitramfsに入れてswrootするまえにrootをaufsでマウントする。 $ echo aufs | sudo tee /usr/share/initramfs-tools/modules.d/aufs $ sudoedit /usr/share/i…

ansible使ってみる

docker使う。 FROM debian:wheezy ADD sources.list /etc/apt/sources.list ADD preferences /etc/apt/preferences RUN apt-get update -y && apt-get dist-upgrade -fy RUN apt-get install -fy automake build-essential \ python python-dev python-setup…

qemuネットワークメモ

NATネットワーク的なものをやりたい。必要なパッケージをインストール。 $ sudo apt-get install bridge-utils uml-utilitiesdhcpdとかiptablesとか必要があればインストールして設定。ブリッジの設定。 $ sudo brctl addbr kvm0 $ sudo ip link set dev kvm…

systemdメモ

自分で簡単なunitを作ってみる。 起動時にコマンドをいくつか実行するだけのサンプル。/lib/systemd/system/foobar.service [Unit] Description=systemd sample After=network.target [Service] Type=oneshot ExecStart=/bin/echo foo ExecStart=/bin/echo b…

raspberry piでファイルサーバ

raspberry pi買ったのでsambaでファイルサーバを動かしてみる。まず、SDカードにraspbianを入れる。NOOBS Setup | Raspberry PiとかみながらNOOBS入れようと思ったけどなんかうまくできなかった。しょうがないので、raspbianのイメージをダウンロードしてdd…

TokyoVim #18 に行ってきたよ

TokyoVim#18 - connpassに行ってきました。今回はmac率が高くてちょっと疎外感を感じながらいろいろした。 9/11がmac使っていた。作業は unite から docker を触るためのプラグインを書きかけたりした。 とりあえず docker ps とかの結果を出すくらいはでき…

Yokohama.vim #5 に行ってきたよ

Yokohama.vim #5 に行ってきました。 http://atnd.org/events/48511 こういうイベントに参加するのはかなり久しぶりでした。アットウェアが移転したらしく会場が横浜からみなとみらいになってました。オフィスめっちゃきれいで羨ましい。 特にホワイトボード…

debianでxenとlinuxカーネルをビルド

依存パッケージとかのメモ。 # apt-get install -y build-essentials python-dev gettext bin86 bcc iasl uuid-dev libncurses5-dev pkg-config glib2.0 libaio-dev libyajl-dev libc6-dev-i386 libpixman-1-devxenはいらないものをビルドしないようにした。…

dhcpサーバ入れた

ローカルで使うVMようにdhcpサーバをインストールしました。 参考: DHCP_Server - Debian Wiki # apt-get install isc-dhcp-serverで、/etc/default/isc-dhcp-server に INTERFACES="tap0"/etc/dhcp/dhcpd.conf に subnet 10.0.3.0 netmask 255.255.255.0 { …

無線LANの設定

/etc/network/interfaces にこんな感じで書く。 参考: WiFi/HowToUse - Debian Wiki auto wlan0 iface wlan0 inet static address 192.168.0.223 netmask 255.255.255.0 gateway 192.168.0.1 wpa-ssid [ssid] wpa-psk [password]dhcpのときはstaticじゃなく…

nfsを使う

メモです。サーバ側。 # apt-get install nfs-kernel-server portmap # cat /etc/exports /var/nfs *(rw,sync,no_subtree_check) # mkdir /var/nfs # chown nobody:nogroup /var/nfs # chmod 777 /var/nfs # service nfs-kernel-server restartクライアント…

debianでsambaサーバたてた

メモです。 # apt-get install samba/etc/samba/smb.conf を編集。 [global] workgroup = WORKGROUP server string = %h server dos charset = CP932 unix charset = UTF-8 interfaces = 127.0.0.0/8 10.0.3.0/24 bind interfaces only = yes map to guest =…

qemuのネットワークとか

VDEを使ってみた。(VDEが何なのかよく知らない)あと、ホスト側でNATの設定もした。 いろいろ試行錯誤したのを思い出しながら書いてるので、これで本当にうまくいくか不明。必要なパッケージ入れる。 # apt-get install vde2 uml-uitilities iptables/etc/n…

chefでvirtualboxインストールしようとしたらタイムアウトしたぽ

apt_repository 'virtualbox' do uri 'http://download.virtualbox.org/virtualbox/debian' key 'http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc' distribution 'wheezy' components ['contrib'] end package 'virtualbox-4.3' do actio…

debianにvagrantとchefをインストールした

メモです。historyみて思い出しつつなので、おかしいところあるかも。基本的に今っぽい Vagrant + Chef Solo チュートリアル - Qiita [キータ] 見ながらやった。めっちゃわかりやすい。とりあえず、debian testingでインストールしてsidに上げた。 ruby入れ…

chefでnodejsをインストールする

メモです。 debianのwheezy-backportsをリポジトリに追加して、nodejsをインストールするレシピ。 definitionsでリソースの定義をしてみた。 # site-cookbooks/nodejs/definitions/apt_repo.rb define :apt_repo, :uri => '', :distribution => '', :comporn…

chef-solo使ってみた

メモです。 % knife solo init chef WARNING: No knife configuration file found Creating kitchen... Creating knife.rb in kitchen... Creating cupboards... % cd chef % ls cookbooks/ data_bags/ environments/ nodes/ roles/ site-cookbooks/ % knife…

qcow2の差分ディスクイメージ

毎回インストールからやるのが面倒なのでインストール直後のイメージを作っておいてそれを元に別のイメージを作成してそれをつかうようにしてみようと思った。 % qemu-img create -f qcow2 wheezy.img 30G Formatting 'wheezy.img', fmt=qcow2 size=32212254…

qemuにdebianをインストールする

メモです。ネットワーク周りのやつ。 % cat /etc/netctl/bridge Description="Bridge connection" Interface=br1 Connection=bridge BindsToInterfaces=(eno1) IP=dhcp ## Ignore (R)STP and immediately activate the bridge #SkipForwardingDelay=yes % ip…

あけましておめでとうございます

あけましておめでとうございます。() ^o^) ちくわ!

Cでファイル全体を読み込む

c

やってみたけど、fseek() とか ftell() とか rewind() とか初めて使ったからよくわからん。 エラー処理もちゃんとできてんのかよくわかってない。 #include #include char *readfile(const char *filename) { FILE *fp; long size, n; char *buf; fp = fopen…

インプットデバイスの情報を表示する

/dev/input/event* のデバイスの名前とかを表示する。 #include <dirent.h> #include <fcntl.h> #include <linux/input.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> int is_event_device(const struct dirent *dir) { return…</unistd.h></sys/types.h></sys/stat.h></sys/ioctl.h></string.h></stdlib.h></stdio.h></linux/input.h></fcntl.h></dirent.h>

カーネルモジュールを作ってみる

まず簡単なところから。 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("GPL"); static int __init hello_init(void) { printk(KERN_ALERT "hello, world\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_ALERT "bye\n"); } module_init(hello_i</linux/module.h></linux/init.h>…

Arch Linuxでカーネルをビルドする

% tar xf linux-3.11.tar.xz % cd linux-3.11 % zcat /proc/config.gz > .config % make menuconfig % make -j8 # make modules_install # cp arch/x86_64/boot/bzImage /boot/vmlinuz-linux-3.11.0-ARCH # mkinitcpio -k 3.11.0-ARCH -g /boot/initramfs-li…

gnomeでibusを無効にする

gnome3.6からibusがgnomeに統合されたらしく日本語入力環境作るのにハマったのでメモ。 ibusに環境変数とかをいじられて、他のIMEが使えなくなってたのでibusを無効化する。 % gsettings set org.gnome.settings-daemon.plugins.keyboard active falseってや…

trifectaでスタイルの設定とか

やってみた。 とりあえず動くようになったけど、いろいろ間違ってるかもしれない。。。トークンパーザにコメントを解釈させるようにする。 trifectaにはParserっていうのがあるけど、コメントは設定できないっぽいので自分で型を作る必要がある。 {-# LANGUA…

GeneralizedNewtypeDerivingする

GeneralizedNewtypeDerivingでさよならボイラープレート - 厨二病患者のプログラミング入門みてやってみた。 {-# LANGUAGE GeneralizedNewtypeDeriving #-} import Control.Applicative newtype Foo a = Foo { foo :: Maybe a } deriving (Eq, Monad, Functo…

Lensにさわってみた

Lensをちょっと触ってみた。 詳しく知らないけど、getterとかsetterとかオブジェクト指向的なことができるライブラリらしい。 ekmett/lens · GitHubのREADMEに書いてたものの一部ををそのまま実行しただけ。まず、インポートする。 > import Control.Lensget…

neobundleをインストールした

vim

新しい環境に一からインストールするのが面倒なのでコマンド作った。 もうすでに誰かがやってるのかもしれない。 set nocompatible filetype off let s:neobundledir = expand('~/local/neobundle') if isdirectory(s:neobundledir) if has('vim_starting') …

archinstallbattleした

arch linuxをインストールしてmikutterを使うまで。 基本的には前やった時(arch linux をインストールした - はわわーっ)と同じでBeginners' Guide - ArchWikiを見ながらやった。 思い出しながら書いてるので間違ってるところがあるかも。 インストーラは2…

TokyoVim#14に行ってきた

TokyoVim#14http://partake.in/events/ac685ff5-1214-4124-95cf-9cf5e22d61edに行ってきました。関東に引っ越してきたのでこういうイベントに気軽に行けるようになっていいですね。ここ1ヶ月くらいまったく何もしていなかったのでVim advent calendarたまっ…

よみたそは社会人になります

4月から社会人になります。つらいです。 川崎あたりに生息してます。一応IT企業なんだけど寮にネット環境がありません。つらいです。 いろいろ手続きするのにも平日昼とか時間取れないです。つらいです。ということで、明日からつらい社会人生活が始まります…

配列とリストの線形探索

c

やってみた。 まず配列のほう。 #include <stdio.h> int *search(int *, size_t, int); int * search(int *array, size_t size, int value) { size_t i; for (i = 0; i < size; i++) { if (array[i] == value) { return &array[i]; } } return NULL; } int main(void)</stdio.h>…

Cでn-クイーン問題

やってみた。 #include <stdio.h> #include <stdlib.h> #define N 10 static void solve(int *, int); static int check(const int *, int, int); static int count = 0; static void solve(int *board, int i) { int j; if (i == N) { count++; return; } for (j = 0; j < N; j</stdlib.h></stdio.h>…

関数ポインタを使う

c

やってみた。 #include <stdio.h> int add(int x, int y) { return x + y; } int subtract(int x, int y) { return x - y; } int main(void) { int (*func_ptr)(); int (*func_array[])() = { add, subtract }; func_ptr = add; printf("%d\n", func_ptr(1, 2)); prin</stdio.h>…

連結リスト

c

やってみた。 #include <stdio.h> #include <stdlib.h> #include <string.h> struct List { int value; struct List *next; }; struct List * new_list(void); void delete_list(struct List *); void print_list(struct List *); void append_elem(struct List *, int); int main(void) {</string.h></stdlib.h></stdio.h>…

逆ポーランド電卓みたいなやつ

c

Cで書いてみた。Cムズいな。。。 #include <ctype.h> #include <stdio.h> #include <stdlib.h> #define STACK_SIZE 64 static int stack[STACK_SIZE]; static int stack_ptr = 0; void error(char *s) { fprintf(stderr, s); exit(1); } void push(int x) { if (stack_ptr >= STACK_SIZE)</stdlib.h></stdio.h></ctype.h>…

構造体とか

c

Cの構造体とか。 勉強ついでに適当に書いた。 #include <stdio.h> typedef struct { double x; double y; } coordinate_t; void print_coordinate(coordinate_t); void print_coordinate_ptr(const coordinate_t *); void print_coordinate_array(const coordinate_t </stdio.h>…

yokohama.vim#4に行ってきたよ

Yokohama.vim.reverse #4 : ATNDに行ってきた。今回は reverse ってあるように懇親会からスタート。 アイスブレイクっていうのをやってみたけど、やっぱりみんなもくもくしてた気がする。 でも、アイスブレイク楽しかった。あとは Advent Calendar の中から…

scheme処理系っぽいもの

やってみた。 簡単な計算とdefineとlambdaくらいならできてるっぽい。 module Main where import Control.Monad.Identity import Control.Monad.State import Data.Maybe import System.IO import Text.Parsec import Text.Parsec.String import qualified T…

QuickCheckのArbitraryのやつ

QuickCheckでテストに使われるランダムな値の設定とか。 QuickCheckを使うには Test.QuickCheck モジュールが必要。 参考: 本物のプログラマはHaskellを使う - 第17回 QuickCheckでデータ駆動型テストを行う:ITpro 本物のプログラマはHaskellを使う - 第18…

Vimで突然の死に備える

vim

この記事はVim Advent Calendar 2012 : ATNDの66日目の記事になります。 65日目はおしょーさんのそうだ Vim で画像を表示させよう - C++でゲームプログラミングでした。さて、Vimで突然の死というと Unite.vimで突然の死に備える | かなりすごいブログ mattn…

cabalでビルドとテスト

ちょっと前にHaskellの単体テスト最前線 - あどけない話を読んで試してみようと思ってたのをやってみた。ディレクトリ構成は hello/ hello.cabal src/ Hello.hs test/ HelloSpec.hs Spec.hsこんな感じ。ファイルの中身は -- src/Hello.hs main :: IO () main…

sbtとかspecs2とか

scalaのビルドにsbtってのが便利らしい。 ついでにテストにspecs2ってのを使ってみるよ。とりあえず、sbtインストール。 archにはパッケージがあった。さすがや。 % yaourt -S sbtHello, World — sbt Documentationを参考に。。とりあえず練習用に hello と…

scalaでリスト処理とか

リストを処理する関数を作ってみる。 scala> val intlist = List.range(0,10) intlist: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) scala> val strlist = List("abc", "def", "xyz", "uvw") strlist: List[String] = List(abc, def, xyz, uvw) scala> …