タグ

2013年2月9日のブックマーク (16件)

  • こたつつきみかん » なぜ Objective-C はメッセージ式なのか

    Objective-C が奇妙に見える大きな要因のひとつは、明らかにメッセージ式の存在だと思います。なぜ Objective-C はメッセージ式という奇妙な式を用いてメソッドを呼び出すようになったのでしょうか? Objective-C の作者にどういった意図があったのかは知りませんが、私なりに Objective-C がメッセージ式でなければいけない理由を見つけていますので、そのお話をしようと思います。 まず、他の多くの言語で採用されている、 . によるメンバアクセスによるメソッド呼び出しを考えてみましょう。 anObject.method( ); みなさんはこれをどう解釈するでしょうか? インスタンス anObject の method メソッドを実行する。そう解釈するのが普通だと思われます。なぜなら、 . は、多くの場合メンバへのアクセスを意味するもので、 anObject のメンバで

    gologo13
    gologo13 2013/02/09
    フーンって感じ。わからんでもない。
  • 矢沢久雄の早わかりGoFデザインパターン(9)

    プログラミングテクニックの中には、「かっこいい!」と感動しちゃうものがありますね。たとえば、再帰、インターフェイス、メッセージフックなどです。再帰は、メソッドの処理の中で同じメソッドを呼び出すテクニックです。繰り返し処理をスマートに記述できます。インターフェイスは、複数のクラスに同じ構文のメソッドを強制的に実装させるテクニックです。多態性(異なるオブジェクトを同じ方法で使うこと)を実現できます。メッセージフックは、メソッドの呼び出しを横取りするテクニックです。既存のクラスのメソッドに任意の処理を挿入できます。今回紹介する2つのパターンは、これらのテクニックを応用しています。 【お役立ち度】★★★★★ ●再帰とインターフェイスを応用したCompositeパターン 奇抜な例で恐縮ですが、町内会の連絡網を思い浮かべてください。Aさん~Dさんの4件の家庭があって、順番にお知らせを伝えるとします。こ

    矢沢久雄の早わかりGoFデザインパターン(9)
    gologo13
    gologo13 2013/02/09
    Hook Pattern. いちいちメソッドごとにインスタンス化しなくてもいいと思うけど。
  • 鶏むね肉の激ウマ料理(12) 鶏むね肉でつくるしっとりチキンの特製カレー

    カレーに使う肉といえば牛肉? 豚肉?? 鶏肉??? 「チキンカレーが好き」という人も骨付き肉やジューシーな鶏もも肉を選ぶ人が多いだろう。ここでは、安価な鶏むね肉でもおいしいチキンカレーに仕上げるコツを人気ブロガーの筋肉料理人さんに教えていただく。 鶏むね肉でつくるチキンカレー 材料(4人分) 鶏むね肉 1枚(300g) / 玉ネギ 2個 / ニンニク 1かけ / 人参 1/4 / ジャガイモ 1個 / タカノツメ(種を取り除く) 1/2個 カレールー 80g前後 / サラダ油 小さじ1 / 水 600ml / 鶏がらスープの素 小さじ1/2 / ごはん 適量 A(ウスターソース・日酒 各大さじ1 / 片栗粉 大さじ2 / ガラムマサラ(あれば) 小さじ1 / 塩 小さじ1/2) つくり方 鶏むね肉にラップをかぶせ、瓶の底などで半分くらいの厚みになるまでたたき、2.5cm位の角切りにして

    鶏むね肉の激ウマ料理(12) 鶏むね肉でつくるしっとりチキンの特製カレー
  • Facade パターン - Wikipedia

    Facade パターンあるいは Façade パターン(ファサード・パターン)とは、GoF(Gang of Four; 4人のギャングたち)によって定義された、コンピュータソフトウェアのデザインパターンの1つである。Facade(ファサード)とは「建物の正面」を意味する。異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める事を目的とする。 Facadeパターンの例として、サブシステムとしてのコンパイラーを考える。システムとしてのコンパイラーは字句解析器や構文解析器などから構成されている。これらの構成要素は、新たなコンパイラーやその他ソフトウェアを作成する上でサブシステムとして利用することが出来る。しかし、一般ユーザーにとってコンパイラーはソースコードからプログラムを生成するためのものであり、ソースコードをコンパイルできる機能があれば十分である。

    Facade パターン - Wikipedia
    gologo13
    gologo13 2013/02/09
    MVC の Controller 的な感じか
  • 矢沢久雄の早わかりGoFデザインパターン(4)

    図1●複数のクラスを1つのクラスに見せかけるFacadeパターン。もともと三つのクラスを使う必要がある機能(a)を,Facadeクラスによって一つのクラスに見せかけることができる(b) IT Proに、アラン・ケイ氏が2003年1月に来日した際のインタビュー記事があります。それによると、氏は、生物の細胞が複雑な構造を作り上げる様子からヒントを得て、オブジェクト指向を考案したそうです。細胞から細胞へメッセージを送る(メッセージ・パッシングする)ことで、目的の機能が実現されると考えるのです。筆者のような凡人には、思いもよらない奇抜な発想ですね。細胞は、プログラムにおけるオブジェクトに相当します。メッセージを送るとは、他のオブジェクトが持つメソッドを呼び出すことです。こう言ってしまうと、実に味気ないのですが。 アラン・ケイ氏は、1972年にSmalltalkというオブジェクト指向プログラミング言

    矢沢久雄の早わかりGoFデザインパターン(4)
    gologo13
    gologo13 2013/02/09
    Facade/Delegate. ぼんやりとイメージが。Facade は factory とどう違うんだ
  • Java脳でもわかるObjective-C入門

    ちょいAndroidTypescriptいいよ。JenkinsとかGradleとか。APTもいいなー。 photo: Some rights reserved by yukiv Javaと比較しながら「へぇーObjective-Cってそういう感じか」と理解した気になろう。 流れ 軽くジャブ クラスファイルの構成 コメント import文 変数の定義 クラス定義 メソッドの定義 メッセージ式 プロパティ セレクタ プロトコル カテゴリ 文字列リテラル ログ出力 ひと通り使ってみる感じのソース まとめ 軽くジャブ まずは以下のソースを眺める //SampleClass.h #import <Foundation/Foundation.h> #import "SampleClassDelegate.h" @interface SampleClass : NSObject <sampleclas

    Java脳でもわかるObjective-C入門
    gologo13
    gologo13 2013/02/09
    これはわかりやすい
  • JavaとInterfaceとObjective-Cあたりの話の感想など(Interface != Protocolという話) - 矢野勉のはてな日記

    Javaこのあたり経由:2007-12-02 - みねこあ 元ネタ != 発明 - カレーなる辛口Java転職日記 どちらもいつも読ませてもらっています。ありがとう。 ええとあまりこの議論に参戦する気もないんですけど、Macでプログラムに夢中になって今でもObjective-CでMac OS Xのプログラムを作りつつもJavaラブな私の感想などを。JavaのInterfaceがObjective-CのProtocolに発想を得たものだという点について議論の余地はないでしょうね。実際すごく似ているし、Goslingがそう言ってるならなおさらです。JavaのInterfaceの発想がObjective-CのProtocolからきてるのは薄々感じていました。似てますからね。使ってればすぐに似ていることに気がつく。一方で、両方触ってる私からみて、同じものだという感じもなかった。 Objectiv

    gologo13
    gologo13 2013/02/09
    納得しそうになったが、コメント欄を入ると、結局どうなの?と思った
  • でらうま倶楽部 : Objective-C プロトコルを最短で理解するプログラム例

    2010年07月28日16:49 カテゴリiPhoneプログラム Objective-C プロトコルを最短で理解するプログラム例 おひるごはん買いに行くのにも命がけです。 暑すぎ!! そんな暑い中、今回はObjective-Cのプロトコルについてー。まだうろ覚えなんで、指摘とか頂けると嬉しい限りです。 これとカテゴリを覚えとくとサブクラス地獄から解放されるかもしれないので覚えておいて損は無いと思います。 今制作中のアプリはテキスト処理メイン。んで、アドベンチャーゲームとかでよくある、以下のような演出も要求されていました。 テキスト表示中に背景画像を表示したり動かしたりテキスト表示中に効果音を鳴らしたり選択肢を表示して選ばせたりんで、これをいい感じに「実装をクラス別にしよう」と考えたのが事の発端。文字クラスとか背景クラスとか効果音クラスとか選択肢入力クラスとか。 この時、ルートクラスを何にし

    gologo13
    gologo13 2013/02/09
    おぉ。ポリモーフィズム。id 型って Java でいう Object?
  • 【図解】Xcode 4.5の使い方リファレンス超まとめ

    【図解】Xcode 4.5の使い方リファレンス超まとめ:iOS SDKで始めるObjective-C入門(3)(1/3 ページ) Windowsを使っていたけど、iOSアプリを作るためにMacを使い始めた初心者を対象に、開発ツールXcode/iOS SDKを使ってiPhoneiPadアプリを作る方法を、プログラミング言語「Objective-C」の書き方/文法を交えて解説。今回は、iPhoneiPadアプリ開発に必要なiOS SDKの概要や標準開発ツール「Xcode」の画面構成を紹介。iOS SDKはInterface BuilderやInstrumentsなど便利なツールを備えています

    【図解】Xcode 4.5の使い方リファレンス超まとめ
  • iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール

    iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール:iOS SDKで始めるObjective-C入門(2)(1/4 ページ) Windowsを使っていたけど、iOSアプリを作るためにMacを使い始めた初心者を対象に、開発ツールXcode/iOS SDKを使ってiPhoneiPadアプリを作る方法を、プログラミング言語「Objective-C」の書き方/文法を交えて解説。今回は、iOSアプリを開発するうえで必要なプログラミング言語Objective-Cや統合開発環境「Xcode」の概要、環境構築の仕方などを紹介 前回の「WinユーザーがiPhoneアプリ開発を始めるためのMacの基礎知識」では、Windowsと比較しながら(Mac )OS Xの基的な使い方を学習しました。今回はiOSアプリの開発環境構築を行っていきます。 iOSアプリを開発するうえで必要なプログラミング言

    iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール
  • 近頃の開発環境 : Mosh、z、tmux、Emacs、Perl について - naoyaのはてなダイアリー

    昨日は年始の挨拶ついでに ELPA について脈絡もなく突然書きましたが、引き続き近頃の開発環境についてもだらだらと書いてみよう。 Mosh mosh というと一部の人間はひげなんとかさんが開発しているモナー的なあれを思い浮かべるかもしれないがそうではなく、mobile shell のことである。 思い切り簡略化して言うと「快適なssh」。回線が不安定な所でもエコー遅延など全く気にせず使えるし、Mac をスリープさせて復帰させたときもリモートホストにそのまま繋がりっぱなしのように見せかけてくれたりする。 詳しくはこの辺を。 mosh: MITからモバイル時代のSSH代替品 - karasuyamatenguの日記 インストールはリモートとローカル両方に必要ですが、まあ大概パッケージがあると思います。EC2 の Amazon Linux でも yum レポジトリの EPEL を有効にすれば y

    近頃の開発環境 : Mosh、z、tmux、Emacs、Perl について - naoyaのはてなダイアリー
  • Debian Backports

    Introduction You are running Debian stable, because you prefer the Debian stable tree. It runs great, there is just one problem: the software is a little bit outdated compared to other distributions. This is where backports come in. Backports are packages taken from the next Debian release (called "testing"), adjusted and recompiled for usage on Debian stable. Because the package is also present i

  • Qiita 2-day Hackathon で発表されたプロダクト全41作品総レビュー! - Qiita Blog

    先日はQiita 2-day Hackathonにご参加いただきありがとうございました! スペシャルゲストも登場して盛り上がったQiita 2-day Hackathon総まとめ! – The Official Qiita Blogに引き続き、日は、全41チームによる二日間に渡るHackの末に生み出されたプロダクトをご紹介いたします! テーマは「GitHub APIを用いた開発」+「プログラマの問題を解決するサービス」 それではプロダクトの発表です! 1.ばばちゃん 解決する問題

  • スペシャルゲストも登場して盛り上がったQiita 2-day Hackathon総まとめ! - Qiita Blog

    2013年2月2日(土)から3日(日)の2日間にわたって開催された、Qiita 2-day Hackathonの総まとめレポートです! ハッカソンの概要今回のハッカソンは下記の内容で実施しました。会場を提供していただいた株式会社デジタルガレージ様ありがとうございました! 日時: 2月2日(土)〜2月3日(日)場所: 株式会社デジタルガレージ 9Fテーマ: 「GitHub APIを使った開発」+ プログラマの問題を解決するサービス賞品: iPad miniなど詳しくはこちら当日の流れハッカソン当日は2日の13時から開発を開始、希望者の方は夜もそのまま開発を継続し、3日の夕方に1チーム3分間のDEMOを行うという流れでした。宿泊設備があるわけではなく普通の会議室の床で寝るという、すごいイベントでした。(※宿泊は任意であり、宿泊設備がないことも事前了承済みでした。念のため。) 受付の様子 開発の

  • 【登山】8000m峰死亡率ランキング 2ch登山部ログ

    山の順番は標高順のようで、>>1がどこから数字を拾ってきたか分かりませんが どの山も元々挑戦者が少なく、1人増えるだけでも%はすぐ変動するので最新の正確な数字とは思わないで下さい。 8000メートル峰 - Wikipedia 地球上にある標高8000メートルを超える14の山の総称である。それらの山は全てアジアのヒマラヤ山脈およびカラコルム山脈にある。 全ての8000メートル峰の登頂に成功した最初の人物はラインホルト・メスナー(イタリア)で、1986年10月16日に達成した。 アンナプルナ © By Autumn Snake 元スレ:http://hayabusa.2ch.net/test/read.cgi/livejupiter/1358431666/ エベレスト   4.29% © By Luca Galuzzi エベレスト - Wikipedia ヒマラヤ山脈にある世界最高峰の山。英名

    gologo13
    gologo13 2013/02/09
    ひぃー。もっとこういう情報知りたい
  • 外国語を身につけるための5つの心得とは? | 無料で楽しむ! オンライン英会話

    海外友達を作って楽しく勉強こんにちは、秀一です^^ 日では英語や外国語を身につけるための参考書に、「簡単に~」とか、「聞き流すだけ~」というように、簡単さを売りにしている物が多くありますね。 それでは、海外ではどんな風にして外国語習得を捉えているか気になったので、調べてみましたので抄訳にて紹介します。 参考にしたのは以下のサイトですので、原文で読みたい方は挑戦してみてください^^ なお、言語は英語に置き換えて紹介しますね。 How to Learn a Foreign Language 1. 時間をかけること ! 英語を学ぶにおいて、一番重要なことはどれだけの時間を英語に費やすことができるかである。より多くの時間を使えたなら、それだけ速く学ぶことができる。リスニング、リーディング、ライティング、スピーキング、そして単語やフレーズの暗記などに使う時間のことだ。ただし、これは英会話教室でた