はてなブログ2周年おめでとう!> id:hatenablogおめでとう!おめでとう!おめでとう!Tシャツください。
以前こんな記事を書きました。 Objective-Cのプロトコルとデリゲートのまとめ - $ cat /var/log/shin 現時点で、こんな場末のブログで唯一ブクマが多い記事なのですが、その文末で、 次は、カテゴリについて勉強したいと思います。 Objective-Cのプロトコル…
正直な感想としては、とにかく面倒、それに尽きますね。 iOS Developer Programへの登録 2013年11月現在でも、ほぼ完璧に以下のサイト通りでした。 日本のApple StoreでiOS Developer Programを購入しActivateするまでの全スクリーンショット | MUSHIKAGO AP…
EmacsとTextmate2をふらふらしつつ、最近Vimも始めた今日この頃。Objective-Cも書く必要が出てきたので、練習がてらVimで書いてみるかと思ったら、ヘッダファイルがC/C++と同じなので、ハイライトが微妙なことになってしまいました。Emacsならモードを切り変…
Python2.xのsuperのお話です*1。まさかの今の今まで知らなかったので戒めとして記録しておきます。 結論 結論から言えば「2回以上継承されうるクラスでは*2、super関数で親クラスを参照する場合は、super(self.__class__, self)ではなく、ちゃんとsuper(クラ…
何番煎じ変わりませんが、WSGI/Rack/PSGIに関して、何でこれらが必要とされるようになったのか、歴史的経緯を踏まえて色々調べたので、記録しておきます。ただし、特に歴史的な話に関しては、ネットで自分が納得できるまで探りはしましたが、正確性を欠くか…
試行錯誤のための良くないサンプルコード。 #!/usr/bin/env perl use strict; use warnings; use utf8; my $a = {b => 'c'}; my $n = 0; sub print_a { print Data::Dumper->Dump([$a]), "\n"; } { package Package1; sub print_a { my $a = {%{$a}, d => 'e…
Pythonでリストを操作する場合、基本的に、2つの方針があります。 新しいリストを作成する インスタンスメソッドを使う(破壊的) これを意識した上で、スライス、==とisの違い、リスト内包記法、filter, map, reduce, ...などを理解していると捗ります。 >>…
ちょっとした小ネタです。Cでswapをするには、マクロやポインタを使えば出来ます。 // int値の交換 #include <stdio.h> void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } int main(void) { int a = 0, b = 1; printf("%d, %d\n", a, b); swap(&a, &b); pr</stdio.h>…
前回に引き続き、はちゅねの描画に挑戦します。 はちゅね用チューニング 理想的には、1つCOLLADAプレビュー用のプログラムを作れば、全部のCOLLADAに対して適用出来ると思うのですが、とりあえず今回ははちゅね用に色々チューニングを施しました。 テクスチ…
前回の記事では、モダンなOpenGLでティーポットを描画するための基礎知識について整理し、ティーポットが描画できたよ、ということまで書きました。実は、前回のティーポットの描画では、ジオメトリ部分だけを読み込んで描画しています。シンプルなモデルで…
「モダンなOpenGLでティーポットを描画したい」という動機から、いろいろ調べた結果を残しておきます。シェーダーやglDrawElements*1は一応使えます、という人向けです。 モダンなOpenGL OpenGL 3.x以降のシャーダーを使うことを前提とした仕様のOpenGLのこ…
入門記事書けるようなレベルではありません*1ので、タイトルは釣りです。諸事情により、Perlのモダンな機能の予備知識0の状態で、突如分けわからないOOPなPerlの開発をちょこっとしたので、その知見をまとめたものです。オブジェクト指向のベーシックな概念…
調べても情報古かったり、よく分からなかったり、うーん。 Perlの対話モード、なんて洒落たものは標準では存在しない pythonとかirbとか涙ちょちょぎれるぐらい便利ですね。特にPythonの「デフォルトは対話なんだ」という姿勢には感服です。ではPerlは?とい…
そういえば、環境構築の話をまだ書いていなかったので、メモ残しておきます。 perlbrewとcpanmで環境構築 歴史的な話などはよく分かりませんが、perlbrewとcpanmというのが割りとホットなツールのようです。 perlbrew 複数のPerlを管理できるツールです。Rub…
所用にてスーパーPerlプログラマーにならざるを得ない感じなので、初めてのPerlを購入しました。Perlさんマジ無理っす。リャマ本だけではスーパープログラマになることはできないのですね…。モジュールの作り方とかOOPとかは続編のアルパカ本で詳しく解説し…
今日一日を費やしたので記録しておきます。 発端 今日は、PyOpenGLを使って、OpenGL 3.xでGLSL 1.4のモダンなOpenGLの勉強でもするぜー、と意気揚々としていたのですが、PyOpenGLで扱うGLSLのバージョンを1.2からどうやっても変えることが出来ず、ひたすら調…
例えば、OpenCVで2値化済みの画像から黒色(つまり値が0)のピクセルの数を数えることを考えます。一番分かりやすいのは単純にfor文で回して数を数える方法です。bin_imgは2値化済みの画像でnumpy.ndarray型の2次元配列とします。 count = 0 for color in bi…
最近ARシステムの開発をしています。果たして、修論に繋がるんだか繋がらないんだか、何とも困ったものではあるのですが、趣味としては楽しいですね。ARといえば、イマドキはUnityを使っちゃうようなハイレベルなフレームワークがいくつも出てきているし、オ…
Pythonは関数内に関数を定義し、そのネストした関数はクロージャ的に外の関数スコープの変数を参照することが出来ます*1。しかし、やったークロージャだーとJavaScriptばりに乱用できるかというと全くそうではない点に注意が必要です。というのもPythonの関…
Jadeで取得したHTMLを、underscore#template()で扱おうとした時に、ハマったのでメモを残しておきます。 問題 例えば、 a(href="<%= url %>") <%= name %>というJadeスクリプトがあった時、出力は <a href="<%= url %gt;"><%= name %></a> となります。そのため、Jadeの属性値にundersco…
色々詰まったのでメモを残しておきます。 基本方針 ざっと検索する限り、NumPyというPythonパッケージを入れれると、もれなくOpenCVのPythonバインディングが付いてくるということが分かりました。というわけでNumPyを入れることを目標とします。 Macでの方…
Mac上にOpenCV 2.4の環境を整えたので、そのメモです。 導入時の環境 Mac OS X 10.8.4 (Moutain Lion) OpenCV 2.4.6.1 Homebrew 0.9.4 OpenCVの導入 Homebrewを使います。 $ brew tap homebrew/science $ brew install opencv ... ==> Installing opencv ==>…
今週のお題「2013 日本の夏」 我ながら傑作だな(ドイヒーという意味で)*1 *1:トラックパッドは無理ゲー。指ツリそう。
ここのところ所用にてFacebookページをいじっているのですが、つい最近どうもシステムアップデートがあったようで、基本情報が更新できない問題に出くわしたので、解決策をメモしておきます。 問題1:「情報」の欄が長すぎるため、更新できませんでした。 ま…
久しぶりの更新です。気がついたら、ここのところ何も*1Webにアウトプットしていなかったので、とりま身近なネタをまとめてみました。さて、本題ですが、Macでのスクリーンショットの取り方のお話です。一般的な方法としては、以下の3つあると思います。1. …
例えば、 modules/ hoge/ __init__.py ... bin/ run.py のような配置にした時、run.pyからmodulesディレクトリ内のモジュールを参照するには、importのためのパスを追加するのがよさそうです。importの際にはsys.pathリストにあるパスを元に探索されるので、…
Pythonを使う上で、withステートメントは、やはり見逃せない機能の1つであると思います。Python2.5〜3.xまで網羅しているようにしたつもりです。 基本 まず、一番身近なファイル操作の例を載せておきます。 with open("...") as f: print(f.read()) これは…
C言語のソースを読んでいると、稀に以下のような感じのフレーズが出てきます。 void doSomething(int unused) { (void)unused; } この(void)unused;は一体なんじゃい、という話なのですが、一言で言えば「コンパイル時のunused variable系warningを減らすた…
立体音響(3D Audio)を試したかったので、OpenALをインストールすることにしました。 環境 Mac OS X Mountain Lion Homebrew 結論 OSXにはOpenALが標準装備されているようなので、OpenAL(OpenAL Soft)を別途入れる必要はありません。 OSX標準のOpenALを利…