さくらんぼのlambda日記

lambdaちっくなことからゲーム開発までいろいろ書きます。

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

あけましておめでとうございます。今年もよろしくお願いします。

今年の目標とか

今年はたくさんやらないといけないことがあるのです。

  • 東方吸闘紀完成
  • Webの技術向上
  • 仕事に忙殺されないメンタルを身につける

具体的にはpythonJavaScriptなどなどのWeb系の技術を深めていけたらよいかなと
思っています。

ほとんど個人的なメモですが、せっかくなので世間に公開しておけばモチベーション維持になるかと思って記録しておきます。

それでは今年もよろしくお願いします。

紆余曲折あって

とりあえず、

結婚したらしいです。
挨拶しにいってみたり、引越ししたりといろいろ忙しくて全く更新できていませんでした。
まだまだ引越ししたばかりで家具も何もまだ揃っていない感じですが、これから頑張って新生活を始めていこうと思います。

そんなわけで、最近このblogの更新が全くできていませんでした。
多少は落ち着いてきたので更新頻度を前並みには戻したいですね。

最近は仕事も忙しいという感じですが、念願のAndroidデバイスを手に入れてみたり
Pythonとflaskで遊んでみたり相変わらずです。

それでは。

日本語配列のMacBookProをWindows7上で英語配列として使う方法

キーの配列を手軽に変えたい!

普段自分は日本語配列のMacBookProで生活しています。
これを英語配列にソフトウェア的に入れ替えて利用しています。

Mac OS Xの場合

Mac OS X(Mountain Lion)ではkeyremap4macbook(http://pqrs.org/macosx/keyremap4macbook/index.html.ja)を使えば手軽に日本語配列英語配列を切り替えることができます。

Windows 7 の場合

Windows 7で同じような設定にするため、以前はレジストリを書き換えて利用していました。概ね満足していたのですが切り替えるたびに再起動が必要だったり、自分がどのような設定を行ったのか記憶してられないので、手軽に切り替えられる方法を探していました。

結論としてはyamy(http://sourceforge.jp/projects/yamy/)を使うことで解決しました。標準で日本語配列(109配列)を英語配列(104配列)として使うための設定もあり便利です。

標準の設定で概ね満足なのですが、~の入力に難があります。MacBookProに標準の設定を適用すると~の入力方法がなくなってしまいます。日本語配列での\と]のキーがどちらも\の入力になってしまっているので\キーを~の入力に当てることにします。

以下の設定を.mayuに追記することで実現しました。

def subst YenSign = $CIRCUMFLEX_ACCENT
def subst  S-*YenSign =  $TILDE

以上で、望みどおりの環境となりました。あとは好みでemacs風の設定(C-pとかC-nとか)を使うかどうかなども設定すると良いかもしれません。

ALCの検索をターミナルでできるようにしたった

プログラミングしていると英語の単語が思いつかなくて悩むとか結構あります。
いちいちブラウザを起動して検索しても良いのですが、検索が頻繁になると面倒くさいです。

そこで、ターミナルからさっくり検索できれば手軽に調べられて捗るかなと思ってpythonalcを検索するプログラムを作成してみました。
せっかくなのでgithubで公開します。ここ

使い方はこんな感じ

$ python alc.py --help
Usage: alc.py [options] word_for_search

Options:
  -h, --help     show this help message and exit
  -e, --example  show examples.

実際に実行してみた結果。
testという単語をalcで検索した結果を標準出力に出力します。

$ python alc.py test
test
【名】
テスト、試験 {しけん} 、検定 {けんてい} 、検査 {けんさ}
ためすもの、試練 {しれん} 、試金石 {しきんせき}
【自動】
テスト[試験 {しけん} ・検査 {けんさ} ・検証 {けんしょう} ・吟味 {ぎんみ} ・考査 {こうさ} ]を行う
テスト[試験 {しけん} ・検査 {けんさ} ]を受ける、評価 {ひょうか} を得る
テスト[試験 {しけん} ・検査 {けんさ} ]の結果 {けっか} は~である
【他動】
~をテスト[試験 {しけん} ・検査 {けんさ} ・検証 {けんしょう} ・吟味 {ぎんみ} ・考査 {こうさ} ]する
《化》~を分析 {ぶんせき} する


オプションとしては、 -eを付けるといろいろ利用例とかでます。
出力が長くなるのであまり使わなそうですが...。

test
【名】
テスト、試験 {しけん} 、検定 {けんてい} 、検査 {けんさ}
ためすもの、試練 {しれん} 、試金石 {しきんせき}
【自動】
テスト[試験 {しけん} ・検査 {けんさ} ・検証 {けんしょう} ・吟味 {ぎんみ} ・考査 {こうさ} ]を行う
テスト[試験 {しけん} ・検査 {けんさ} ]を受ける、評価 {ひょうか} を得る
テスト[試験 {しけん} ・検査 {けんさ} ]の結果 {けっか} は~である
【他動】
~をテスト[試験 {しけん} ・検査 {けんさ} ・検証 {けんしょう} ・吟味 {ぎんみ} ・考査 {こうさ} ]する
《化》~を分析 {ぶんせき} する
TEST
【略】 = Thesaurus of Engineering and Scientific Terms 科学技術用語同意語辞典 = Travel English Standard Test 旅行業英語検定試験 {りょこう ぎょう えいご けんてい しけん}
test ~ by experiment
実験によって~を確かめる
test ~ for bacteria
~(内)の雑菌 {ざっきん} (の有無 {うむ} [数])を調べる[検査 {けんさ} する] 【表現パターン】 check [test] ~ for bacteria
test ~ for defects
欠陥 {けっかん} がないか~を調べる
test ~ for endurance
~の耐久試験を行う
test ~ for real
実現 {じつげん} に向けて~を試行 {しこう} する
test ~ for safety and efficacy
~の安全性 {あんぜんせい} と効能 {こうのう} を検査 {けんさ} [テスト]する
test ~ for serologic markers of HBV infection
《医》~のHBV感染 {かんせん} の血清学的 {けっせいがく てき} マーカーの有無 {うむ} を検査 {けんさ} する
test ~ for serological markers of HBV infection
→ test ~ for serologic markers of HBV infection
test ~ in the field
~を実地 {じっち} にテストする
test ~ on patient after patient
~を次々 {つぎつぎ} と患者 {かんじゃ} に試す
test ~ on patient with damaged spinal cord
脊髄損傷 {せきずい そんしょう} の患者 {かんじゃ} に~をテストする
test ~ oneself easily
~を自分 {じぶん} で簡単 {かんたん} に試す
test ~ out for oneself
~を自分 {じぶん} で試す
test ~ through experiment
実験によって~を確かめる
test ~ with litmus paper
~をリトマス試験紙 {しけんし} でテストする
test ~'s effectiveness
~の効用 {こうよう} [有効性 {ゆうこう せい} ]を試験 {しけん} [テスト]する
test a car
【動】 試乗 {しじょう} する
test a child's power of observation
子どもの観察力 {かんさつりょく} を試す[テストする]
test A for B treatment
A薬でB治療 {ちりょう} の(臨床 {りんしょう} )試験 {しけん} [実験 {じっけん} ]を行う[実施 {じっし} する]
test a hypothesis against the real world
現実 {げんじつ} に則して仮説 {かせつ} を検証 {けんしょう} する
test a hypothesis by conducting
~を実施 {じっし} して仮説 {かせつ} を検証 {けんしょう} する
test a machine
【動】 機械 {きかい} を試運転 {しうんてん} する
test a meteorite from Mars
火星 {かせい} の隕石を分析 {ぶんせき} する
test a microphone
マイクのテストをする
test a missile with enough range to hit
~を射程(圏)内 {しゃてい(けん)ない} に収めるミサイルの実験 {じっけん} を行う
test a missile-defence system
→ test a missile-defense system
test a missile-defense system
ミサイル防衛 {ぼうえい} システムの実験 {じっけん} を行う
test a new drug
新しい薬をテストする
test a nuclear bomb
核実験 {かく じっけん} を行う
test a nuclear weapon
核兵器実験 {かく へいき じっけん} を行う[実施 {じっし} する]
test a number of different models
ありとあらゆるモデルを試す
test a phone connection
電話 {でんわ} 回線 {かいせん} [の接続状況 {せつぞく じょうきょう} ]を検査 {けんさ} する
test a procedure
手順 {てじゅん} を試す 【表現パターン】 test [practice] a procedure
test a profound issue
深刻 {しんこく} な問題 {もんだい} を判断 {はんだん} する
test a program
【動】 プログラムをテストする
test a prototype
原型 {げんけい} を試験 {しけん} する
test a reflex
反射 {はんしゃ} を検査 {けんさ} する
test a sample
サンプル[見本 {みほん} ]を試験 {しけん} する
test a serum
血清 {けっせい} を検査 {けんさ} [試験 {しけん} ・テスト]する
test a theory
理論 {りろん} を検証 {けんしょう} する
test a water purification device
浄水装置 {じょうすい そうち} の試験 {しけん} を行う
test a wide range of clothes
いろんな服を試す
test accelerator
試験加速器 {しけん かそくき}
test accuracy
試験精度 {しけん せいど}
test activity
試験活動 {しけん かつどう}
test adit
《鉱物》試掘横坑 {しくつ よここう}
test agent
検査薬 {けんさ やく}
test algorithm
試験 {しけん} アルゴリズム

はてなBlogに完全移行してみました

ダイアリーからBlogにインポートする機能が実装されたようなので、これを機会にはてなBlogに完全に移行してみました。

このはてなBlogは賛否両論みたいですが、主にソースコードを表示するときの横幅で自分は気に入っています。スタイルシートいじって頑張る気力も無いし、デフォルトの見栄えが気に入ったので移行することにしました。

最近更新頻度落ちすぎなので、もう少し書くように頑張りたいです。

nodejsで遊ぶのに楽しそうなライブラリまとめ!

最近nodejsで遊んでるのですが、nodejs単体だと面倒な事も多いのでライブラリを色々調べてみました。今回はそのまとめです。

よく見るもの

世間でよく使われてそうで、基本的なものを並べてみます。

node-dev
スクリプトが更新されたら、自動的に再起動してくれるライブラリです。
node-inspector
chromeとかをnodejsのデバッガとして利用可能にするライブラリです。
express
世間でよく見るフレームワークです。便利。Webやるなら必須な印象です。
socket.io
websocketで遊ぶならこれです。。
connect
expressも利用しているWebフレームワーク。サーバとか作る機能があるみたいです。

コールバックを何とかする系

nodeはシングルスレッドにもかかわらずマルチスレッドで動作しているかのように見せるため、逐次処理しようとしても想定と違う動きをすることがあります。
これを回避するような書き方は面倒なのでそれを回避するための支援ライブラリ群です。

async
便利。
fab
中身までは見れてません。

CSS生成

CSSをそのまま書くのは面倒です。そこで独自の記法からCSSを自動生成するライブラリです。

less
よく見るけど詳細は見ていません。
stylus
便利機能満載すぎて良い感じです。欠点はCSSの書き方と大分離れてしまう点ですかね。

HTML生成

HTMLをそのまま書くのは面倒です。そこで独自の記法(以下略

jade
インデントとタグ名の組み合わせでHTMLを記述できます。express標準はこれを利用します。
ejs
PHPとかerubyとかみたいな、HTMLの中に一部JavaScriptが使えるようなものです。

デーモン化

nodejsをデーモンとして動作したい場合に利用するライブラリ、ツールです。

forever
デーモン化はもちろん、デーモン管理までできて優秀。

マルチプロセス化

いろいろあるようです。sparkがなんとなく良さそう?

spark
cluster
fugue
multi-node

DB

DBと言えばmongodbをよく聞きます。あとそれを利用するためにmongoose使えばよさそうです。

node.js + express で遊んでみた

最近はやりのnodeで遊んで見ました。

とりあえず、よく見るexpressを使ってみようかと思います。nodeとnpmはインストールされているとして以下のコマンドでexpressをインストール。ついでにexpressがテンプレートエンジンとして利用するjadeのインストールもここで一緒にしてしまいます。

npm install express
npm install jade # expressの標準の動作に必要なのでこれもインストール。

これで、expressが使えるようになります。

express TestProject

   create : TestProject
   create : TestProject/package.json
   create : TestProject/app.js
   create : TestProject/public
   create : TestProject/public/javascripts
   create : TestProject/public/stylesheets
   create : TestProject/public/stylesheets/style.css
   create : TestProject/views
   create : TestProject/views/layout.jade
   create : TestProject/views/index.jade
   create : TestProject/routes
   create : TestProject/routes/index.js
   create : TestProject/public/images

   dont forget to install dependencies:
   $ cd TestProject && npm install

こんな感じにファイルが自動的に作られます。
とりあえず実行してみましょう。

cd TestProject && npm install
node app.js

これでとりあえず実行されます。

http://localhost:3000/にアクセスするとデフォルトのページが表示されるはずです。

せっかくだから、新しいページをひとつくらい追加してみます。

app.jsに以下の内容を追記。

app.get('/mogeta', routes.index2);

次に、routes/index.jsに以下を追記

exports.index2 = function(req, res){
  res.render('mogeta', { title: 'もげた'})
};

最後に、views/mogeta.jadeを新たに作成して追加します。

!!! 5
html(lang="ja")
h1= title
p Welcome to #{title}
p もげた

これで、http://localhost:3000/mogetaにアクセスするとページが見えるはずです。

expressが割りと楽しそうな感じなので、色々調べてみようかと思います。