俺の簡単カレー2
自己流カレー第2弾。
第一弾はただ辛いだけのものになってしまったので今回はレッドペッパーの量を減らして、バターをタップリといれて、トマトジュースも使いました。
材料(二人前)
- 鶏肉…200g
- 玉ねぎ…1玉
- トマトジュース(食塩無添加)
- プレーンヨーグルト…80g
- バター…大さじ3
- 調味料
- 塩…小さじ2
- クミン…小さじ3
- ターメリック…小さじ3
- レッドペッパー…小さじ1
作り方
1. 鶏肉の皮を剥く
2. 調味料をよく混ぜる
3. 鶏肉と調味料、ヨーグルトをビニールに入れてよく揉む。
その後しばらく寝かしておく
4. 玉ねぎをみじん切りにする
5. 鶏肉の皮をフライパンでパリパリになるまで炒めて脂を出す。出たら脂を残して皮を取り出す。
6. フライパンに玉ねぎ鍋にいれて20分ほど炒める
7. 玉ねぎがやわらかくなったらフライパンにバターを入れてバターが溶けるまでいためる
8. フライパンにトマトジュースをいれて軽く煮立たせる
9. フライパンに鶏肉と調味料を鍋に入れる
10. 煮込む
11. 完成
俺の簡単カレー1
自己流カレー第一弾。
材料はかなり適当です。ヨーグルトはもっと多めに、レッドペッパーはもっと少なめの方が良かったかも。かなり辛かったです。
材料(二人前)
- 鶏肉…100g
- 玉ねぎ…1玉
- 人参…小2本
- 水…100cc
- 調味料
- 塩…大さじ2
- ヨーグルト…大さじ2
- クミン…小さじ3
- ターメリック…小さじ3
- レッドペッパー…大さじ2
- リンゴ酢…小さじ2
作り方
- 鶏肉の皮を剥く
- 鶏肉にボールなどに入れて調味料を混ぜる
- 玉ねぎ、人参をみじん切りにする
- 鶏肉の皮を鍋パリパリになるまで炒めて脂を出す。出たら皮を取り出す。
- 玉ねぎと人参を鍋にいれて炒める
- 玉ねぎがやわらかくなったら鶏肉と調味料を鍋に入れる
- 鶏肉に熱がはいったら水を入れる
- 煮込む
- 完成
kotubu - Scala 製 Twitter クライアント
前提条件
使っているPCに Java SE のバージョン6 以降がインストールされている必要があります。
利用方法
以下のURLにアクセスすれば自動的にアプリケーションがダウンロードされ実行されます。
http://www.whiteboard.ne.jp/~admin2/kotsubu/kotsubu.jnlp
初回起動の時だけはTwitterアカウントとの連携を行うため以下の作業が必要になります。
- セキュリティの警告のポップアップが表示されます。もし問題ないと思ったら「リスクを受け入れて、このアプリケーションを実行します」にチェックを入れて「実行」クリックします。
- ブラウザが起動しkotubuがTwitterアカウントを利用する事を許可する確認画面がでます。もしよければ「連携アプリを認証」をクリックします。
- kotubuにあなたのTwitterアカウントのアクセスを許可するためのPIN番号が表示されますのでこれをコピーします。
- コピーしたPIN番号をkotubuのポップアップにペーストします
以上です
ライセンス
kotsubu is provided under Apache License 2.0.
kotsubu is an open source software and free of charge.
You can use kotsubu freely for any commercial and non-commercial use.
This program uses twitter4j and Scala.
Twitter4J
Copyright (c) 2007, Yusuke Yamamoto All rights reserved.
http://twitter4j.org
Scala
Copyright (c) 2002-2011 EPFL, Lausanne, unless otherwise specified.
All rights reserved.
http://www.scala-lang.org/
Also, it uses free icons from FAMFAMFAM - Silk Icons.
http://www.famfamfam.com/lab/icons/silk/
exec 可能な Solaris 向け smbfsファイルシステム
Windowsの共有フォルダをマウントできるsmbfsファイルシステムをmmap(2), exec(2) 可能なように変更しました。
この変更によってWindows共有上の Solaris の実行可能ファイルが実行できるようになりました!!
smbfs which supports access to mapped-file (英語ページ)
何を言ってるんだと思われるかもしれませんが、実はバンドルの smbfs ファイルシステムではマウントされたディレクトリ上に date コマンドなどの実行可能ファイルをコピーしても実行することはできないのです。これはプログラムの実行に必要なファイルシステムのいくつかの機能が未実装であることが原因で、それらを実装してやることで mmap(2) や exec(2) が可能になったということです。
実装された VNODE 関数
- VOP_MAP
- VOP_GETPAGE
- VOP_PUTPAGE
- VOP_ADDMAP
- VOP_DELMAP
コンパイル
展開されたディレクトリで configure, make を実行することでコンパイルできます。
$ ./configure $ make
使い方
このバージョンの smbfs をインストールする前に、バンドルの smbfs モジュールをアンロードおよび削除しておく必要があります。
なお、万一にそなえてオリジナルのsmbfsモジュールをコピーしておくことをお薦めします。というか是非やってください。
オリジナルモジュールのバックアップ
# cd /usr/kernel/fs/amd64/ # cp smbfs smbfs.org
オリジナルのモジュールのアンロード
smbfsのアンロードはroot権限で make uninstall コマンドを実行することで行えます。
# make uninstall cd usr/src/uts/common/fs/smbclnt/smbfs ; make uninstall modunload.sh rm /usr/kernel/fs/amd64/smbfs
もしくは直接 modinfo(1M) と modunload(1M) コマンドを叩いてもアンロードできます
# modinfo |grep smbfs 274 fffffffff816b000 14850 22 1 smbfs (SMBFS filesystem) # modunload -i 274
インストール
インストールは make install コマンドで行えます。
# make install cd usr/src/uts/common/fs/smbclnt/smbfs ; make install /usr/bin/ginstall -c -m 0644 -o root -g sys smbfs /usr/kernel/fs/amd64 modload -p fs/amd64/smbfs
マウント
通常の smbfs の場合と全く同様に mount できます。詳しくは man mount_smbfs(1M)をご参照ください。
例
# mount -F smbfs -o dirperms=777,fileperms=777,user=myname,uid=myname //smbserver/data /mnt
以下のエントリでもマウント方法のご紹介をしているので参考にしてください。
Solaris11でSMB共有をマウントする
ご注意
本モジュールは十分にテストされていません。万一の場合システムがパニックしたり、最悪の場合既存のファイルを破壊したりする可能性もあります。くれぐれも重要なシステムに導入しないようにしてください。
本モジュールによるいかなる責任も負いかねます。ご使用は自己責任でお願いいたします。
でもフィードバックは大歓迎です。
Solaris 11でSMB共有をマウントする
Solaris11でいわゆるWindowsの共有フォルダをマウントしようとしたときに、ちょっと手間取ったのでメモしておきます。
元ネタはほぼこちらです。
How to Mount an SMB Share on a Directory You Own
- 各コマンドは root 権限で実行されることを想定しています。
- この例では「smbserver」がSMBサーバ名で「myname」がSMBサーバ上のユーザ名になります。
パッケージの確認
以下のコマンドを実行します。
$ pkg list | grep smb
以下の2つのパッケージがインストールされている事を確認します。
service/file-system/smb 0.5.11-0.175.1.0.0.24.2 i-- system/file-system/smb 0.5.11-0.175.1.0.0.24.2 i--
もしインストールされていなければ次の「パッケージのインストール」でインストールします。
パッケージのインストール
前の手順ですでにパッケージがインストールされていることがわかっていれば飛ばして構いません。
# pkg install pkg://solaris/system/file-system/smb # pkg install pkg://solaris/service/file-system/smb
もしすでにパッケージがインストールされている場合には「No updates necessary for this image」と言われます。
サービスの有効化
SMBクライアントサービスを有効化します。
# svcadm enable -r svc:/network/smb/client:default
enable サブコマンドに -r オプションを付けて有効化すると依存するサービスも同時に有効化してくれるので楽です。
SMB共有の確認
もしSMB共有の共有名がわからない場合にはいかのコマンドで確認できます。
実行後パスワードを聞かれます。
# /usr/sbin/smbadm show-shares -t smbserver Enter password: SHARE DESCRIPTION IPC$ Data 2 shares (total=2, read=2)
SMBパスワードの保存
マウント実行時に毎回パスワードを聞かれるのも億劫なのでパスワードをシステムに保存して置きます。
# /usr/sbin/smbadm add-key -u myname@smbserver Password for SMBSERVER/myname:
マウント
マウントを実行します。
この例では smbserver というサーバの /data という共有フォルダを Solaris 上の /mnt というディレクトリにマウントしています。
# /usr/sbin/mount -F smbfs -o dirperms=755,fileperms=644,user=myname //smbserver/data /mnt
dirperms と fileperms はマウント後の各ディレクトリ、ファイルのアクセス権を設定します。これらはSMBサーバ側の実際のアクセス権とは無関係ですが、Solaris上ではこの設定によりアクセスが制限されます。(参: mount_smbfs(1M))
例えば、デフォルトではどちらも 700 となっているのでマウントを実行したユーザ、つまり root ユーザしかディレクトリに入ることもファイルを見ることも出来ません。
システム起動時に自動マウント
このままでは再起動後にもまた手動でmountを実行しなければなりませんので、/etc/vfstabにエントリを追記して起動時に自動的にマウントされるようにします。
//smbserver/data - /mnt smbfs - yes dirperms=755,fileperms=644,user=myname,uid=myname
Wireshark を使ってパケットデータをプログラムで利用
多機能さにいつも驚かされるネットワーク・プロトコル・アナライザの Wireshark ですが今回また便利機能を見つけたのでエントリ書いておきます。
キャプチャしたパケットを見ているとき「このEthernetフレームをそのままプログラムで再現したいなぁ」と思ったことはありませんか? たとえば、なんらかのテストのためにキャプチャしたパケットと同じ内容を RAW Socket 使ってネットワークに再送するとか。
そんなとき、Wireshark の Export 機能を使うと簡単に該当パケットのバイト列を C言語の配列のとして出力してくれるので簡単にプログラムからパケットデータを利用することができます。
使い方はとっても簡単。
- バイト配列として抜き出したいパケットを選択する
- File -> Export から「C Arrays(Packet bytes) file ...」を選ぶ
- 「Selected Packet Only」を選び Export to file: に書き出すファイル名を指定する
[
そうすると、指定したファイルに以下のような内容が得られます。
char pkt6[] = { 0x00, 0x0c, 0x29, 0x05, 0xa6, 0xcf, 0x00, 0x0b, 0xa2, 0xc1, 0x47, 0x98, 0x08, 0x00, 0x45, 0x00, 0x01, 0x60, 0x14, 0xc5, 0x40, 0x00, 0x32, 0x06, 0x9c, 0xa0, 0x3c, 0x20, 0x98, 0x5a, 0xc0, 0xa8, 0x01, 0x10, 0x00, 0x50, 0x88, 0xda, 0x0d, 0x99, 0xcf, 0x57, 0x26, 0xe6, 0xbf, 0xeb, 0x80, 0x18, 0xc5, 0x28, 0xd7, 0xa2, 0x00, 0x00, 0x01, 0x01, 0x08, 0x0a, 0x31, 0xbe, 0x25, 0x17, 0x03, 0x1d, 0x6b, 0x43, 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, ...中略... 0x65, 0x65, 0x70, 0x2d, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x0d, 0x0a, 0x0d, 0x0a, 0xe3, 0x81, 0x93, 0xe3, 0x82, 0x93, 0xe3, 0x81, 0xab, 0xe3, 0x81, 0xa1, 0xe3, 0x81, 0xaf, 0x0a };
これなら C言語だけでなく Java などでも利用できますよね。
とっても便利です。
さらに、パケットのHEX出力見てて「あー、ここ日本語文字列臭いけどなんてかいてあるだろ?」なんてことありませんか?
こんなときも Wireshark の Export 機能を使えば簡単に該当文字列だけを抜き出せます。
- 該当部分を選択
- File -> Export から「Selected Packet Bytes ...」を選ぶ
- Name: に書き出すファイル名を指定する
これで指定したファイルに当該バイト列が書きだされます。
あとは、Emacs などのエディタで開けば日本語が確認できます。簡単ですねっ。
CoCo壱番屋カレーふりかけで作る簡単カレーチャーハン
作り方
- フライパンに油をひき温める
- 溶いた卵をフライパンに入れ炒り卵にする
- ご飯をフライパンにいれ木べらなどでほぐす
- CoCo壱番屋カレーふりかけを入れて混ぜる
- できあがり!
簡単でとっても美味しいですよ。お試しあれ。