isomorphic所感

React・Fluxまわりをひと通り触ってみたので所感を徒然。 isomorphicなアプリを書く そこまで大した話ではない。 isomorphicなライブラリをnpmで入れる。 isomorphicなコードを書く。 node.js(io.js)ではそのまま動作。 ブラウザ用にはbrowserify。 所感: bo…

フローチャートが書けない

昔、講義でフローチャートを書かされたような記憶はあるが、 全く自慢にならないが、今「フローチャート書いて」と言われても書ける自信が全くない。 開始が四角で分岐が菱型だったけ?線引いてYes/Noみたいな。そんな感じ?とはいえ、ドキュメントでフロー…

PHPの小ネタ: タイプヒンティングの罠

タイプヒンティングとは PHP5からタイプヒンティングという似非タイプチェック機能が使えるようになっています。 run(); } run(n…

structの関数プロパティとメソッドの挙動

package main import "fmt" type OpFunc func(int, int) int type Operation struct { // associateされていないのでOperationのプロパティ・メソッドへのアクセスは出来ない。 Do1 OpFunc // 以下コメントを外すと "type Operation has both field and meth…

golangのType Assertionメモ

Type AssertionはC++のdynamic_cast的な機能。 interfaceを別の型にキャストする時に使用。 2通りの受け方がある。 package main import ( "fmt" "errors" ) type MyError struct { i int } func (e *MyError) Error() string { return fmt.Sprintf("i = %d"…

安定してよく使っているiOS/Androidアプリまとめ

↓の記事見てたら、なんとなくまとめたくなってきたのでまとめ。2014年版、2ちゃんねるでテンプレ入りしたiPhoneの神アプリ150選 : IT速報 2014年版、2ちゃんねるでテンプレ入りしたiPhoneの神アプリ150選 : IT速報 使っている端末 Xperia Z3 Android 4.4 …

Kindle書籍を買ったけどダウンロード・配信できない問題と解決法

ググっても今回起きた問題と同一のものが見つからなかったのでメモしておきます。なおTwitterで検索したら数件見つかったのでごく稀に起きる現象のようです。 今回の現象 12月14日0時頃、1-Clickで購入 購入完了画面が出る Kindle Cloud Readerで読む→試し読…

Perlワンライナーメモ

至るところで語り尽くされているネタですが、使おっかなーと思うときには大抵忘れており毎回調べる羽目になるので、備忘としてメモします。 perl -e オプションで与えた文字列をそのまま評価。 # はろーわーるど perl -e 'print "Hello, World!\n"' # モジュ…

しーぱんおーさーになってみた

いわゆるCPAN Authorデビューしたのでその記録。 何作ったのか RNCryptorというAESのベストプラクティス的なファイルフォーマット及びiOSライブラリがあるのですが、 The primary target is Objective-C, but implementations are available in C++, C#, Jav…

iPodTouch5をiOS8.0.2にアップデートした所感

公式アプリの追加:ヘルスケア、Podcast、ヒント ミュージックアプリ プレイリストに曲を追加するときに、別のプレイリストから曲を選べるようになった*1。 プレイリスト名の変更は相変わらずPCからしか出来ない。 Geniusプレイリストというのが追加された。…

EPUB3ビューワー実装論(プロット)

EPUB3について EPUB3の概要 EPUBの歴史 EPUB3ガイドライン・拡張: 電書協ガイド、KADOKAWA-EPUB 既存のEPUB3ビューワー 事実上のリファレンス実装: iBooks リファレンス実装を目指すOSS: Readium スクロールタイプの実装: BiB/i, Murasaki 日本の2大ビューワ…

ちょっとH!なホッテントリビューワー Hotentor をリリースしました。

タイトルは釣りです。最近ギョームの方でAndroid書いていたりするので、頭の整理も兼ねてAndroidアプリを作ってみました。スクショはこんなです。それにしても錦織くんすごいですね。同い年とは思えんです。H!なのはアイコンだけですごめんなさい。というわ…

ES6 Promiseのメモ

非同期処理のスマートな書き方の1つの解として注目を集めているPromise。Deferredとか呼ばれたり、実装によってメソッド名とか仕組みとかが微妙に違ったり、しょうがないことですが言語仕様次第で実装方法が変わったりと、今ひとつ安定しないデザパタですが…

Mac OS Xには/procが無いのでsysctl使う

Linuxにはprocfsという"/proc"以下にシステム情報をファイルで配置してくれる仮想ファイルシステムがあり、CPUやメモリやプロセスその他もろもろの情報を調べるときに重宝します。一方、Mac OSもといDarwinは、BSD系をベースにしており、またSUSによるUNIX認…

Perlのuseで大文字小文字

例えば、こんなモジュールを作ったとして、 # Parent.pm package Parent use strict; use warnings; our $NAME = __PACKAGE__; 1; 適当に使う側を書いて、 # test.pl use strict; use warnings; use Parent; print $Parent::NAME, "\n"; 実行すると、 $ perl…

もう怖くないCocoaの並列処理(GCD & NSOperation/NSOperationQueue)

Cocoaの並列処理(GCDとNSOperation/NSOperationQueue)に関するまとめです。この記事ではいわゆる「スレッド」については扱いません。スレッドについては、前に記事を書いたのでそちらを参照してください。 Cocoaのマルチスレッドシステム - $ cat /var/log…

Cocoaのマルチスレッドシステム

Cocoaのマルチスレッド機構について解剖してみました。実験環境 MacBook Pro Retina, 13-inch, Late 2013 OS X 10.9.2 (Mavericks) NSThread?時代はGCDでしょ! Cocoaには、GCD(Grand Central Dispatch)という新しい並列処理APIが入り、今はこちらを積極…

iOSでHTTP通信 -- NSURLConnectionのまとめ

iOSでネットワーク通信をするのは初めてだったのでメモ。iOS Developer Libraryに公式のチュートリアル(日本語版)があるので、まずはこれをこなすのが良いかと思います。実験環境: MacBook Air 11-inch, Mid 2013 Xcode 5.1.1 iOS7 (Simulator) 基本 iOS…

Apacheでシンボリックリンクを使うときに注意すべき点

Symbolic link not allowed or link target not accessible: ...とか出た時の確認事項。 Option FollowSymLinks リンクを張るディレクトリの権限。oにrxついていれば多分OK。 リンクを張るディレクトリの親のディレクトリ郡の権限。oにxがついていればOK*1。…

現在開いているファイルの入ったディレクトリ

Vim

Vimでは現在開いているファイルの入ったディレクトリを%:hで取得できるようです。%:tはファイル名を表すようなので、%:h/%:tとすれば開いているファイル自身になります。1プロセスでファイルを開きまくる場合に便利です。 参考 編集中のファイルの場所をカレ…

Perlにおけるコマンドライン引数の処理

Getopt::LongとPod::Usageというモジュールと組み合わせるのが良さそうです。Getopt::Longは色々罠があるようで、ちゃんとドキュメントを読んで、:configを設定する必要があります。 サンプル use strict; use warnings; use Getopt::Long qw(:config no_ign…

文字コード変換

使いたいと思った時には大抵忘れているのでメモ。 $ iconv -f SJIS -t UTF8 sjis.txt > utf8.txt文字コード変換ではnkfという往年のコマンドがありますが、基本的には別途インストールが必要です。一方、iconvは大抵のUNIX互換OSでビルトインされているみた…

perldocで日本語を表示するお話

結論から言えば、 perldoc -tを使う。 強調表現は無効。 Pod::Perldoc 3.2xを使う*1。 ターミナルでの閲覧にPod::Text::Termcapが使われるようになるので、見た目はPod::Manに比べると少しガッカリ感(?)。Pod::Textプラスアルファって感じ。 こだわりがない…

VimでSCSSの括弧のインデントがおかしい。

VimでSCSSを整形したら、閉じ括弧が左端に寄ってしまう現象に見舞われました。css.vimを入れても、scss-syntax.vimを入れても、vim-css3-syntax.vimを入れても治りません。さて困った…とここで頼みの綱のstackoverflowです。 This is a quick hack, based on…

MacBook Pro Retina 13inchを購入

家で使っているMacは、研究室貸与のMacBook Air 13-inch (Mid 2011)なのですが、いい加減に返却しないとねということで、初任給でMacBook Pro買いました。Retinaはやっぱり綺麗ですね。ということで、今後のためにセットアップの記録を簡単に残しておきます…

perlsubの解釈について

perlsubクイズ - $ cat /var/log/shin の補足です。perldocのperlsubには以下の様な記述があります。 ルーチンに渡されるすべての引数は配列 @_ に置かれます。 したがって、ある関数を二つの引数を付けて呼び出したならば、 その引数は $_[0] と $_[1] に格…

学生最後の日という何か

明日から社会人になるてことで、最後までいつも通り学生らしいグダグダな一日を過ごしたことを、ここに記録する。

三項演算子と関数の罠 "Use of ?PATTERN? without explicit operator is deprecated"

$ # re.plで実行 $ sub FOO { 'FOO' } $ my $foo = FOO FOO $ $foo eq FOO ? 'foo' : 'bar' # NG Use of ?PATTERN? without explicit operator is deprecated at (eval 410) line 8. Compile error: Search pattern not terminated or ternary operator pars…

perlsubクイズ

対象は自分です。 問題1 use strict; use warnings; use feature 'say'; # ↑以降省略 say do { my $a = 100; sub { $_[0] *= $_[0] }->($a); $a; }; 問題2 say do { my @a = (1..10); sub { $_[0] *= $_[0] }->(@a); $a[0]; }; 答え合わせ 問題1 A. 10000 理…

Exporterなベースクラスのuse parent

Exporterを適用したクラスをuse parentで継承した際に、子クラスで@EXPORT*な関数を裸で参照する方法です。 # Base.pm package Base; use strict; use warnings; use parent qw(Exporter); our @EXPORT = qw(foo); sub new { bless +{}, shift } sub foo { p…