2015年7月14日火曜日

岩田社長の訃報を聞いて

このエントリーをはてなブックマークに追加

岩田社長の訃報を聞いて

任天堂の岩田社長が55歳で死去、Wiiでゲーム人口拡大

泣いた。
岩田社長は、稀代の、天才プログラマでした。
岩田社長は、どこにもいない、天才社長でした。
岩田社長は、愛すべき、読書愛好家でした。

Nintendo Directで語る岩田社長を見て、最初はなんやこのおっさんって思ったのですが、それから色々調べて、すげえ人だって事が分かり、ファンになりました。

何か書こうと思ったのですが、何も書けないです。
一言言うならば、プログラマとして、本当に素晴らしい軌跡を残して下さったことに、ただただ、感謝です。
最後の最期まで、お疲れ様でした。

2015年6月30日火曜日

最近CSSで

このエントリーをはてなブックマークに追加
どもどお久しぶりです。 凄い普通に意味のない文章です。 ブログ書かないとダメという天啓を受けたので仕方がありませんね。 最近、CSSで幅と高さを指定するのにpxじゃなくて%で指定するのがマイブームです。 後、inline-blockが割りとどんなブラウザでも想定通りに配置されるようになったので、inline-blockも多様しています。 さて、そのinline-blockなのですが、親NodeのCSSにwhite-space:nowrapとかしていると、美味い具会に折れ曲がってくれないので、その指定を外してあげる必要があります。 また、marginやpaddingにも%指定できるので、100をベースに美味く割り算して上げると綺麗に配置出来て、とても楽しい気持ちになります。 last-childが効かないケースやnth-childをサポートしていないブラウザもまだまだ現役なので、それらを指定するようなCSSはまだ控えたほうが良いかもしれません。 あと、横幅を100%にして、padding-top:n%とすると、その横幅を基準にした高さをぴょこっと指定出来ます。そうしておいて子Nodeをabsoluteにしてwidth:100%、height:100%、top:0、left:0とするといい感じに表示してくれて幸せになれます。 ブラウザのCSSを何年も書いていますが、この歳になってもまだまだ新たな発見があって、Webって楽しいなーって思いました。 そんな非常にどうでも良い雑文でした。 意味が分かる人だけ分かってください。 そう、例えば5年後の僕とか。

2015年5月15日金曜日

UTF-8で保存しても、htmlが文字化けするお話

このエントリーをはてなブックマークに追加

UTF-8で保存しても、htmlが文字化けするお話

2009MAR051012

先日、UTF-8で保存したHTMLで何故か文字化けが発生したのでメモ書き。
結論から言うと、HTMLのタグが間違っていた。
具体的なコードは下記の通り

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta name="charset" content="utf-8" />
    <title>タイトルをここに入力</title>
</head>
<body>
    ほげほげ
</body>
</html>

こうすると、タイトルやほげほげの所が文字化けして読めなくなる。
さて、このHTMLどこが間違っているのだろうか。 正解のHTMLはこちら

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>タイトルをここに入力</title>
</head>
<body>
    ほげほげ    
</body>
</html>

そう、metaタグの書き方である。
<meta name="charset" content="utf-8" />と一見すると正しく見えるけれど、これでブラウザは正しくUTF-8のファイルとして認識してくれない。
ちなみに、この現象はPCでは発生せずMobile SafariやMobile Chromeで発生した。
正しいmetaタグを指定したら文字化けが消えた。
こんな珍現象は初めての事だったので、覚書としてここに記録しておく。
あと、魂の叫びを一言。
正しいHTML書け。

2015年4月30日木曜日

Mac OS XにVisual Studio Codeをインストールする

このエントリーをはてなブックマークに追加

Mac OS XにVisual Studio Codeをインストールする

新しいIDE等が発表されると、とりあえず、インストールするのはエンジニアの嗜みです。
まず、ファイルのダウンロードはこちらから
VSCode-osx.zipができるので、適当に展開して、Visual Studio CodeをApplicationに移動します。
その後、.bashrcまたは.zshrcに以下を追加します。

code () {
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        [[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
        open -a "Visual Studio Code" --args "$F"
    fi
}

僕は面倒だったので、

source ~/.zshrc

しましたが、多分、ログインしなおしとかそういうのやれば良いと思う。
後は、コマンドラインから

code .

とかすると、Visual Studio Code が立ち上がります。

参考

2015年4月12日日曜日

電王戦FINAL最終局についての私見

このエントリーをはてなブックマークに追加

電王戦FINAL最終局についての私見

Vancouver Shogi Club at Moii Cafe / バンクーバー将棋クラブ

昨日、電王戦FINAL最終局が行われ、21手目で投了という幕切れで終わった。
この度、AWAKE開発者の巨瀬亮一氏が、2八角をAWAKEが指した時点で投げることを決めていたとの事で、これが賛否両論を生んでいる。
僕は、プロのプログラマとして、そしてアマチュアの将棋愛好家として、巨瀬氏の判断は大変残念な判断だったと思っている。
巨瀬氏の判断は、将棋指しとしての意地というよりは単なる自分のエゴを押し通してしまったという印象が強い。
後の発言を拾っても、概ね彼のエゴ故に投げたという見方しか出来なかった。
一方、対戦相手の阿久津先生はプロとして正しい判断をしたと思っている。

プロとは

まず、プロに関しての定義は人それぞれあるかもしれないが、僕個人の見解は、それで金を稼いでいるか否かが第一基準である。
第二基準として、クオリティを常に保っているかどうかがプロとアマチュアを分ける境界だと思っている。

プロの将棋指し

今回のケースで考えるならば、阿久津先生はプロの将棋指しだ。
口さがない言い方をするなら、将棋を指してるだけで金が貰える仕事だ。
だからといって、雑な将棋を指していたらプロとして失格。
何を持ってして雑とするかだが、自分の持てる全能力を注ぎ込んでいるか否かだ。
今回、阿久津先生が選んだ手は決して雑な手では無かったのは、棋譜を見れば分かる。
最新の注意を払い、勝率の高い手を選んで指した。
心中複雑であったが、それでもプロの将棋指しとして最も求められている事、「勝ち」への執着を見せた。
それは、プロならば当然の判断であった、と僕は評価する。
自分の美学や哲学を押しのけて指した手であり、同時に、AWAKEという対戦相手に対する最高の賛辞でもあったのだ。
中盤~終盤にかけて人間では読みきれない手を冷徹に読み切るコンピュータにどれだけリードを取るか。
阿久津先生はそれをしっかりと行っただけで、批判されるいわれは一切ない。

プロのプログラマー

巨瀬氏の発言を見ると、彼がまだアマチュアのプログラマーである事がはっきりと分かった。
彼は自分のソフトが未熟だったではなく、棋士がそういう勝ち方を選びのはどうかと述べることにより、他人に責任転嫁していた。
プロのプログラマーならば、潔く自分のソフトの作りが甘かった事を認めて最後まで指させたはずだ。
結局、巨瀬氏の中途半端さが全て台無しにしてしまった感が拭えない。
棋士として見るならば、勝負への執着が甘く、プログラマーとして見るならば、自分の作品への誇りが足りない。
どちらも二流、というよりはアマチュアであるという事を露呈したにすぎなかったと僕は思っている。
実際、彼はまだアマチュアなので、そういう行動を取ったのだろうと考えている。
これを機に、彼が周りの批評をどう受け止めるか知らないが、少なくとも、そういう評価をしている人間(僕のこと)がいる事は事実だ。

これからの将棋プログラムについて

話は変わるが、今後の将棋のプログラムについてだが、中盤~終盤にかけて凄まじく強くなっているコンピュータであるが、今回の電王戦を通して、思った以上にバグがある事が判明した。
結局、コンピュータ対人間という構図に見えるが、実際の所、プログラムを作った人間対人間の戦いに終わったということだ。
この度の電王戦のルールで、棋士がアンチコンピュータを行ったらどうなるかというのを垣間見ることが出来た
今後、磯崎氏の発言などから、彼がアンチアンチコンピュータみたいなメタいプログラムを作りそうに思えるし、実際そうなるかもしれない。 そうなると、純粋な将棋の勝負ではなく、人間同士の弱点探しみたいな勝負になり、本来の将棋との勝負とは違った所で戦う事になると思う。
それはそれで面白いけれども、そうなると専門的な知識が必要になり、非常にマニアックになるので、今回ぐらいの粒度がギリギリ一般人にも理解できる内容だったのでは無いだろうかと思っている。
興業的にはこれが限界点なのだろう。
メタゲームを楽しむのは、一部のマニアだけ!

最後に

阿久津主税先生、本当にお疲れ様でした。
あなたはプロ棋士としての意地と美学を魅せてくださり、本当に素晴らしいと思いました。
公式戦もありながら、こういった実験的な棋戦もこなしてくださり、ただただ、頭がさがる思いです。 改めて、お疲れ様でした。
ファンとしては、タイトルを取って欲しい棋士の一人なので、これをきっかけにさらなる御活躍をお祈り申し上げます。

2015年4月4日土曜日

Apple pushを停止したらエクスプローラーがめっちゃ軽くなった

このエントリーをはてなブックマークに追加

最近、異様にエクスプローラーが重かった。

タスクバーでクリックするだけで動作が死ぬほど重くなっていて、最初は変だけれど、ほっとけば直ると高をくくっていたのですが、一向に直る気配がなかったので、ぐぐって調べた所、どうもApple Pushというのが悪さをしているらしい。んで、とりあえず、止めてみたらめっちゃ軽くなった。というか、本来のスピードに戻ったというか。いずれにせよ、PCが軽くなってなによりです。

参考リンク

itunes11が重い時の対処法(軽くする方法)|Weak's BLOG.

2015年3月9日月曜日

ヴァーチャルアイドル制作で学ぶ git 基本コマンド

このエントリーをはてなブックマークに追加

ヴァーチャルアイドル制作で学ぶ git 基本コマンド

Chibi-Mikus Animasa ver1 and 2

git コマンド難しいとか、コマンドプロンプト(笑)で入力いやーんとかそういう電波を受信していて、んな難しくねーよという思いでこのエントリを書いている。
僕自身、禄に git コマンド使えてないけれど、使ってる範囲でだけ書こうと思う。
この程度の知識でも git 使えるよと勇気を持って欲しい。
後、今日は3/9だし、やっぱりヴァーチャルアイドルネタ書きたかった。

そうだ、ヴァーチャルアイドルを造ろう

あなたは、ヴァーチャルアイドルにメロメロです。
多くのヴァーチャルアイドルを見て、萌え、その姿に魅了されていましたが、最近ちょっと物足りなさを感じています。
色々考えた結果、その物足りなさを埋めるために自分で新たにヴァーチャルアイドルを造ろうと思うようになりました。
しかしながら、ヴァーチャルアイドルをどうやって造れば良いのでしょう。
良く分からない貴方は、コンピュータに詳しい悪友Aと、絵が描ける悪友Cに声を掛けてみることにしました。

A「おkwww把握wwwww 今、 github に virtualidol のモックが上がってるからそこから造ろうずwwww」
C「日本語でおk」
あなた(以降B)「僕にも理解できるように話してよ」
こうして、Aの指示の元、あなたとCはヴァーチャルアイドルを作ることにしたのです。

はじめの一歩

A「とりあえず、プロジェクトをローカルにコピーしよう。 * git clone コマンド* を使えばおk」
B「すまん、意味が分からない」
A「しゃあない、細かく教えたるわ。まず、基本となるファイル類を、自分のパソコンにコピーする作業をするんだ。 git コマンドの基本中の基本だな」
C「普通にブラウザからダウンロードした方が早くね?」
A「確かにそっちの方が早い。でも、バージョン管理とか出来ないから、オススメはしない。それに複数人で作業するんだから、git は便利。まあ、今回はあんまり複雑な手法で運用はしないから、 subversion とかでも同じ運用は出来る」
B「だから日本語で話せ」
A「似たようなツールがあるって話。脱線してすまん。とりあえず、作業用のディレクトリをどっかに作ってくれ」
B「作った」
C「こっちも出来た」
A「じゃあ、作業用ディレクトリに移動して、次のコマンドを、ターミナルでコピペ」

git clone git@github.com:ArcCosine/virtualidol.git

B「git インストールしてない人はどうするの?」
A「git はインストール済という前提だ。そこは頑張れ」
C「メタ発言やめーやwwww ひどすwwwww」
A「成功したら、 virtualidol ってディレクトリができてるはずだから、そこへ移動。」
C「cd virtualidolっと。おっけー」

はじめての修正

A「よし、二人共終わったな? とりあえず、B、お前が修正しようか。設定.txtがあるだろ。それを開いて中を書いてくれ」
B「おk。うわ、何これ中身空っぽなんだけれど……」
A「アナタ色に染めて欲しいの。ヴァーチャルアイドルだからってかwwwww」
C「キモイぞ!!!」
B「年齢は17歳。身長は、145cm。体重は……」
A「チャットに書くなwwww 設定に書けwwww 終わったら、次のコマンド実行な」

git commit . -m'設定したよ'

B「こみっと?それに設定したよってなんだよ」
A「コミットは、修正が終わったよって事を git に教えるコマンドだ。-mから続くのはコメントだ。何を付け加えたのかとかを書いておくと後で見なおした時便利」
C「誰も見直さないんじゃね?」
A「それが割と見なおしたりするんだよなぁ……」
B「''で囲っている中身は他のでも良いんだよね?」
A「当たり前だのクラッカー」
C「おっさんェ……」
B「よし、じゃあ」

git commit . -m'みんなに愛されるヴァーチャルアイドルに私はなる!'

A「ウケるwwwwwwっw」
C「Bキモイwwww すげえキモイwwww」
B「ぐすん……」

はじめての反映

A「よし、コミットが終わったら、 origin に反映しよう。基本的には、以下のコマンドで良い」

git push origin master

C「Everything up-to-dateって出るんだが」
A「お前はwwww 何もwwww 更新してないだろwwwww」
B「あ、更新出来た」
A「よし。じゃあ、次は、C作業しようか」

はじめての更新

C「おk。俺、参上」
A「モモタロス乙wwwww 次のコマンド実行な」

git pull origin master

C「うお、設定.txtが更新されてる」
B「どやっ」
C「うぜえ」
A「こんな感じで更新すれば良い。Bの書いた設定見て、Cは何か修正したい箇所ある?」
C「大体こんな感じでいいんじゃね。でも絵が無いのはなんか寂しいな」
A「よし、じゃあ、絵を追加するか」

はじめての追加

C「ラフ画は既に書いてあるんだけれど、どうすれば良い?」
A「じゃあ、 image フォルダにでも追加するか。 image フォルダ作って、そこにラフ画置いといて」
C「ほいほい」
A「で、置き終わったら、次のコマンド」

git add .
git commit . -m'ラフ追加'
git push origin master

B「お、さっきのコマンドと一緒だ」
A「うむ。 git は基本的に、pull して、 add して、 commit して push すれば良い。この流れさえ覚えておけば誰でも使える」
B「pull→add→commit→pushか」
A「時には、add要らない場合もあるけれど」
C「うわ、ごめん。コミットしたら、設定.txtも追加対象になったっぽい」
A「そうか、本来はコマンド叩いて直すんだけれど、Bがもう一度修正すればいいだろ。それ、一旦 push して。んで、Bがそれを pull する。修正方法は分かるよな?」
B「もちろん」

git pull origin master

B「お、ラフ絵可愛い。じゃあ、設定.txtを修正しつつ、こんな感じでっと」

git commit . -m'萌え萌え〜'
git push origin master

A「おい、もう少しまともなコメントにしろwwww」
B「細かいことにこだわるなよw」
C「まあでも、大体どうすれば使えるか分かったわ」
A「おk。じゃあ、こんな感じで作業ススメて行こうか」

最後に

Git Cheat Sheet

git は、pull して、 add して、 commit して push する

これだけ覚えておけば大体おkです。
いや、そこは fetch 使えよとかあるかもしれませんが、僕は pull で大体大丈夫です(震え声)
他にも、git のインストール面倒だろとか、エディタを変えてないやん等色々突っ込みどころ満載だと思います。
まあ、なんやかんやするのを覚えるのがまた大変かもしれませんが、それは都度体験して覚えていけば良いのではないでしょうか(無責任)。
ここまで駄文を読んで頂き、ありがとうございました。