新しい世界

Xcode 6.0のBeta版をダウンロードしてみた。インストール手順は、DMGをダウンロードして、ダブルクリックし、.appをアプリケーションフォルダにドラッグ&ドロップするだけ。もちろん、既存の製品版 Xcode 5.1はそのままとして、別途インストールすることが…

経過時間計測

あかん。高精度時間計測のやり方を何度やっても忘れてしまう。以前こんなメモを残したのに、コード例を掲載するのを忘れたために、即活用するという点ではまるで役に立たなかった。今度こそ。俺は保存するぞ・・・保存をよぉ・・・ 【活用機会】 ミリ秒から…

Objective-CのEnum

標準C++03ではenumの構文が拡張され、標準C++11では更に、scoped enumerationがサポートされたそうだ。C++11のEnum 参考: http://d.hatena.ne.jp/spinor/20110918/1316321563Cのenumとの主な違いは、・enum型の前方宣言が可能 ・名前空間を汚さずに、identi…

コントロールに登録したイベントハンドラをすべて解除するには

Xcode 5.1 [someControl removeTarget:nil action:NULL forControlEvents:UIControlEventAllEvents]; 【参考】 http://stackoverflow.com/questions/3340825/uibutton-remove-all-target-actionsなるほどな〜 この発想はなかった。APIリファレンスをよく見れ…

ブログ記事を書くのは楽しい

特に、C, C++, Rubyなど、普段自分があまり使いこんでいない言語の記事を書くときが楽しい。Java, PHP, HTML, JavaScriptなど、主にWebサイトを構築するために使用している言語の記事を書くのは、それほど楽しくはない。そういえば、PHPの記事なんて、たぶん…

WebページからiOSアプリへのリンク

iOS 7.1HTML内で、とあるリンクなどがクリックされたときに、特定のiPhone, iPadアプリのDL画面に飛びたいとする。JavaScriptで、window.open(myAppUrl);とやった場合。 ・PCでは、ストアのWebページが開く(ブラウザ内で) ・iPadでは、AppStore画面が開く …

可変長引数を取るメソッドを作成するには

Objective-Cで可変長引数を処理するには、Cと同じようにva_arg系の関数を使用する。Objective-Cでは、引数の数を受け取るよりも、可変長引数をnil終端で受け取る方が一般的である。可変長引数がnil終端であることを明示するには、メソッドの定義に、NS_REQUI…

タブレットやモバイル向けにWebサイトをデザインするには

今ではずいぶん当たり前になってきているけれども。 実際に自分でやったことはなかったので、少し調べてみた。 必要な手順をメモしておく。 PC向けに、特に横長にデザインされたWebサイトは、スマートデバイスで表示したときにレイアウトが崩れてしまうこと…

認証について思うところ

昔から気になっていたことだが、Microsoftのアクチベーションのポリシーにはちょっと変わったところがあるように思う。それは、認証に失敗したときに、「アカウントのIDが違うのか、パスワードが違うのかを教えてくれる」ということである。今は亡きMicrosof…

さようならObjective-C

こんにちはSwiftAppleさんから新しいプログラミング言語が発表されたそうだ。 名前をSwiftというらしい。こいつはどうも汎用言語ではなく、iOSとOS X専用のプログラミング言語らしい。まあ、その点はObjective-Cにしたって似たようなものだ。プログラマとし…

std::unique_ptr のnullチェック

std::unique_ptr<MyObject> ptr(new MyObject()); if (nullptr != ptr.get()) { // ... } なんてことはやらなくてよくて、operator boolという便利なもんが用意されているらしく、 std::unique_ptr<MyObject> ptr(new MyObject()); if (ptr) { // ... } でよいそうだ。またひとつ</myobject></myobject>…

大魔法

まさか、あれは・・・間違いない、あの眼は、今夜徹夜で作業すると決めたプログラマの眼だ・・・!終電がなくなってしまっても一向に構わないという覚悟 システムの開発現場では、残業や徹夜は作業効率が悪いとし、禁止されている場合がある。特に、徹夜はマ…

Autolayoutされた後の座標を調べるのはviewDidLayoutSubviews内で

Xcode 5.1.1少し前に書いたStoryboardでAutolayoutに関する補足。Autolayoutが登場する以前のViewの初期座標設定というのは、UIViewController#viewDidLoadで行っていた。Autolayoutが主流になりつつある最近であっても、すべてのViewの座標をすべてAutolayo…

NSIntegerのフォーマット指定はlongで

iPhone, iPadアプリを32bit, 64bit両対応でコーディングするには、intやfloatの代わりに、NSInteger, CGFloatなどを使うことが多い。NSIntegerやCGFloatは、コンパイル時のプラットフォーム指定によって切り替えられる単なるtypedefなので、printf形式の書式…

参照外しは四則演算子よりも結合優先度が高い

たまたま見かけただけだが、ネット上で不可思議な問答に出くわした。http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php;_ylt=A7YWPRXdr3FTZxMA39vl_PN7?qid=11118107201これの回答者は全員間違っているように見えるのは私の気のせいだろうか。「…

既定のGoogleアカウントを変更するには

覚え書き複数のGoogleアカウントの切り替え方法。一度ログアウトしてから、既定にしたいアカウントでログインする。 すると、ログアウトするまで、そのアカウントが既定になる。

ストーリーボードでAutolayout

Xcode 5.1.1我々はもうAutolayoutから逃げることはできない。今からでもAutolayoutを使うことに慣れていくしかない。以下にAutolayoutを使った具体的なデザイン例と手順を掲載しておくので、Autolayoutにまだ不慣れだというひとに、チュートリアルとして参照…

そうだ、Rubyをやろう(9日目)

Ruby on Railsの開発環境を構築するOS X 10.9.2, Ruby 2.1.1, Ruby on Rails 4.0.4 【前提条件】 ・rbuenvの環境ができており、Ruby 2.1.1が動作すること(環境構築メモリンク) ・Ruby 2.1.1の環境にBundlerがインストールされていること(環境構築メモリン…

GW

多くの日本人が、観光ガイドや地図を片手に天気を気にする季節。いかにも、プログラマという職種のひとたちは、たとえ仕事が4連休だったとしても、その4日間、ただ休暇を楽しむだけではない。考えてみれば、床屋さんにはGWなんてないし、野球選手だって試合…

C++で迷走してみる

C++は色々なことができて面白い。 それゆえ、うまくプログラムを構築するのが難しいと思うこともある。 作っているうちに、どれが最適なコーディングなのかわからなくなってしまうのだ。今回はすごく単純なクラスを作りながら、同じ動きをするけど、どのやり…

コレクション内の要素を削除するには

コレクション内から特定の要素を削除するいくつかの手法を考えてみる。 (Objective-C, Java, C++ それぞれの場合。) 最も単純なのは、コレクションに対してインデックスを指定して削除するというものだ。i番目の要素を削除する。Objective-Cの場合1 NSMuta…

そうだ、Rubyをやろう(8日目)

Bundlerというものがあるらしい今回の記事は、Mac OS X上で、rbenvとBundlerを使って、システム全体への依存性を極力排除した上で、独立した環境で動作するRuby + SQLiteの簡単なアプリを作ってみる、という主旨です。rbenvのインストールは、前回の記事で実…

長すぎる名前空間に別名をつける

それができるということをつい先日に知った。 Javaにはパッケージというものがって、たとえば、パッケージ名を package jp.co.my_company_name.app_name; public class MyClass { // パッケージ内で一意な名前であれば名前衝突は起きない } のようにすること…

そうだ、Rubyをやろう(7日目)

OS X上にRubyの開発環境を構築するOS X 10.9.2, Ruby 2.1.1, rbenv※諸事情により、Homebrewを使わずに、主にMacPortsとgitを使って環境構築します。 rbenvというものがあるらしいhttps://www.ruby-lang.org/ja/installation/#rbenvなるほど。このrbenvという…

そうだ、Rubyをやろう(6日目)

Homebrewをインストールして、即刻アンインストールした件Mac上にRubyの環境構築に関するブログ記事などを見ると、どうもHomebrewを使っている人が多いようだ。というか、Rubyに限らずMacのパッケージ管理システムといえばHomebrew、みたいなこの風潮。どん…

そうだ、Rubyをやろう(5日目)

些細な問題、というより全く何の問題もないが、去年の4月からほぼ1年間、Rubyカテゴリの記事を1件もUPしていないことに気がついた。ええ・・・もちろん、ちゃんと使っていますよ。 いやだなあ、ただ日記につけていないだけですよ。 今日は、あれから1年間、…

Xcode 5.1.1 GM seed リリースノート翻訳

今日の昼頃、外人からメールが来た。 名前は「Apple Developer」というらしい。どうやら、Xcode 5.1.1 GM seedというものがプレリリースされたらしいので適当に翻訳してみる。ちなみに、リリースノートにはGM seedが何なのか記されていなかった。たぶん、た…

Vimの正規表現における先読み、後読み

Vim

・Vimで使える正規表現の一覧 http://archiva.jp/web/tool/vim_regexps.html・先読み、後読み http://vim-jp.org/vim-users-jp/2009/09/20/Hack-75.html特定のパターンが対象のパターンの後ろに来るという条件 → 先読み 特定のパターンが対象のパターンの前…

iPhoneの新機種の毎年リリースに意味はあるのか

2011年にJava SE 7がリリースされてから、今月Java SE 8がリリースされるまでの間、iPhoneは4s, 5, 5sとリリースされた。このように毎年、新しいiPhoneを発売することに意味があるのかと、ふと考えたが、よくよく考えてみれば物凄く便利になっている。今私が…

Java 8 リリース間近

ただの日記です。 Java 8のリリースが3月18日に予定されている。Java 8のリリースは、確か去年の8月に予定されていた思うが、いつの間にか延期されていたようだ。セキュリティフィックスとラムダ式の導入が原因でリリースが遅れているとのこと。JARの代わり…