タグ

ProgrammingとObjective-Cに関するpaellaのブックマーク (19)

  • Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった

    なお、メモリ消費量はtopコマンドで測ったので、かなり大雑把な数字だ。また、Cで同様の処理のコードを書くと、ほぼC++と同じ速度になる。 追記(2011/02/17 8:50):Rubyによるベンチマークを追加。 追記(2011/02/17 11:00):Smalltalkによるベンチマークを追加。ソースコードは「Smalltalkのtは小文字です」のループ回数を修正した。 追記(2011/02/17 16:00):Perlによるベンチマークを追加。 追記(2011/02/18 10:30):Java 1.6.0_22で実行した、Scalaによるベンチマークを追加。また、clang/llvmでC++とObjective Cの値を取り直し、改善が見られないのを確認。 追記(2011/02/18 14:30):Ruby 1.8.7によるベンチマークを追加。1.9.2との速度差については、@IT

    Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった
  • RegexKit Framework

    RegexKit is an Objective-C framework for regular expressions: Support for Mac OS X Cocoa and GNUstep. Mac OS X 10.4 or later required. Mac OS X Universal Binary, including 64-bit support on Mac OS X 10.5. No sub-classing required. Seamlessly adds regular expression support to all NSArray, NSData, NSDictionary, NSSet, and NSString Foundation objects with a rich set of Objective-C category additions

    paella
    paella 2010/04/19
    正規表現キット。BSDライセンス。いつか使う。
  • iPhoneネットワークプログラミング

    はじめに iPhoneプログラミングに関する筆者の前回の記事では、iPhoneアプリケーション内からWebサービスを利用(consume)し、そこから返されるXMLデータを解析する方法について考察しました。Webサービスは今とても流行っているものの、Webサービスを利用するために必要とされるペイロードはかなり大きく、わずかなデータを取り出したいだけの場合は無駄が多いように感じられます。問題は、SOAPパケット自体が多くのバイト数を消費することです。そこで、これに代わる方法としてソケットを利用することを考えます。ソケットを使えば、余分なXMLペイロードなしに情報をやり取りすることが可能です。また、サーバとの接続が確立した状態を維持できるので、アプリケーションを非同期で動かして、送られてきたデータを必要なときだけ受け取るようなことも可能です。 稿では、TCP/IPを使用してサーバと通信する方

    iPhoneネットワークプログラミング
    paella
    paella 2010/03/15
    ネットワークプログラミングをCocoaで行うときの良記事。
  • Quicksilverは如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。

    Quicksilverの検索性能が、感性をくすぐってきた。 「apple」→「AppleScript Editor」 「ase」→「AppleScript Editor」 「prol」→「Property List Editor」 「im」と入力して、「Image Capture」を起動したいが、「iMove」がトップヒットになってしまう...。 そんな状況でも、候補リストから2回連続で「Image Capture」を選択すれば、3回目以降は「Image Capture」がトップヒットになる。 直近のユーザーの好みを学習してくれるのだ。 もちろん、「ima」まで入力すれば「Image Capture」がトップヒットになる。 「ase」「prol」のような、単純な前方一致でも、部分一致でもない検索には恐れ入る。しかも、シンプルだけど学習もしてくれる。使うほどに手に馴染んでくる仕組みは、この辺

    Quicksilverは如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。
    paella
    paella 2010/03/02
    鋭い検証記事。面白い。
  • Objective-Cでクロージャ? 〜 Blocks

    ► 2010 (165) ► 6月 (13) ► 5月 (31) ► 4月 (30) ► 3月 (31) ► 2月 (28) ► 1月 (32) ▼ 2009 (366) ► 12月 (31) ► 11月 (30) ► 10月 (31) ▼ 9月 (30) プチアプリ制作続き - FireFox3.5 のペーストボードタイプは? プチアプリ制作 - SafariのURLから HTMLの<A>タグを生成する Snow Leopard で導入された NSApplicationDelegate Programming in Objective-C 2.0 LiveLessons Bundle Tips: SimpleCap から Picasa へ画像をアップロードする WPSU(19) - WebKitで新規ウィンドウを開く(window.openオプション) WPSU(18) - WebKit

    paella
    paella 2009/09/24
    簡単なサンプル。まだ^の文字が馴染まない。
  • [iPhone] 変換 CGRect <-> NSValue - satoko's blog - s21g

    iPhoneに限った話ではないのですが。メモ: via http://discussions.apple.com/thread.jspa?messageID=8157595 CGRect → NSValue CGRect rect = CGRectMake(x,y,w,h); NSValue *rectValue = [NSValue valueWithCGRect:rect]; NSValue → CGRect CGRect rect = [someNSValue CGRectValue];

    paella
    paella 2009/09/17
    NSValue *rectValue = [NSValue valueWithCGRect:rect];そしてCGRect rect = [someNSValue CGRectValue];
  • Technical Note TN2124:Mac OS Xにおけるデバッグの魔法

    このテクニカルノートでは、Mac OS Xのさまざまな「隠れた」デバッグ機能、つまり環境変数、環境設定、GDBから呼び出し可能なルーチン、特殊ファイルなどについて説明します。Mac OS X向けの開発をしている場合は、このリストに目を通して、開発作業を楽にしてくれるものを見逃していないか確認してください。 はじめにMac OS Xには、個々のサブシステムの開発とデバッグを支援するために、エンジニアリングチームが追加したデバッグ機能がいくつか含まれています。これらの機能の多くは、リリース後のシステムにも残っており、コードのデバッグに利用できます。このテクニカルノートでは、広く役立つデバッグ機能をいくつか説明します。別の場所で文書化されているデバッグ機能については、機能の簡単な概要と既存ドキュメントへのリンクを記載しています。このテクニカルノートでは、デバッグ機能を網羅的には文書化しておらず、

  • 开云·体育(kaiyun)(中国官方网站IOS/安卓通用版

    系统提示 您访问的页面未找到, 5秒后自动跳转到首页

    paella
    paella 2009/05/22
    セッターで前のをreleaseしてからretain&代入は知っていたけれど、[myObject release];でmyObject = [someObject copy];というのは知らなかった。copyをどのように実装しているか次第だけど、覚えておこう。
  • アプリでグルグル画像(indicator)をIBを使わずに簡単に表示させる方法 - わっふるわっふる

    未だにInterface Builderが使い慣れていないので、objective-cのみで 表示をさせる。 UIActivityIndicatorView を使う UIActivityIndicatorView クラスを subview に追加して、startAnimating するだけ。 サンプル @interface MyView : UIView - (void)stop; @end #define INDICATOR_TAG 100 @implementation MyView - (MyView *)init { // 大きさを指定してインスタンスを生成 UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f

    アプリでグルグル画像(indicator)をIBを使わずに簡単に表示させる方法 - わっふるわっふる
    paella
    paella 2009/04/20
    UIActivityIndicatorViewを使う。この人の他の記事もあとで読む。
  • 光学薄膜設計ソフトの設計 その14「NSOperation実験」:腰も砕けよ 膝も折れよ:So-net blog

    さて、マルチコアを使い倒すためにはthreadを生成しなければならない。それを簡単にするためのNSOperationのお勉強。このFoundationのクラスは10.5 Leopardから使えるようになった。 Cocoaアプリでマルチコアに対応させるためにはこれまでNSThreadを使っていた。NSThreadはthreadの同期の機能はなく、自分でNSLockなどを使って実装する必要があった。注意深く作法を守らないと、つまらない理由のせいでデッドロックから抜け出せないコードになってしまうなんてことがよくある。 そのthread生成から同期、特に終了処理(子threadが全部終わるまで待つ)というのを肩代わりしてくれるのがNSOperationらしい。 マルチコアを使う用途だけでなく、ある程度時間のかかる処理をマルチスレッド化する場合にも使えるらしいので、以前数値計算のためにNSThrea

  • sonson@Picture&Software - [Objective-C] NSOperationQueue - NSOperation

    Leopardから提供されたマルチスレッド用のクラス.マルチコア処理向けに提供されたものらしい.Appleのホームページにも以下のように書かれている.noviさんのTwitterでの発言で知ったAPIなのだが,非常に便利で使いやすい. アップルのエンジニアの成功の秘訣は、NSOperationを 使ったこと。 NSOperationは、マルチコア処理のために アプリケーションを最適化する、画期的な新しいAPIです 。NSOperationが計算(演算)のグループをNSOperati onQueueに追加し、現在のアーキテクチャをもとに、並 列処理の演算回数を動的に決定してくれます。複雑なスレ ッディングとロッキングのマニュアルコーディングは一切 不要。プログラムで演算と従属性を指定するだけで、あと はCocoaが処理してくれます。 NSOperationおよびNSOperationQueu

  • Core Data で画像を扱う

    前回の記事 で、「 Core Data によって、プログラムの骨格を作るのはかなり楽になるけれど、それだけでちゃんとしたプログラムができるわけではないし、もしそれができなければ、いま作っている Kaku の画像挿入機能は搭載しない」 ということを書いたと思います。 昨日はまさに、そういう「これじゃあ公開できない」という事態に直面していました。前回の記事を書く前に、うすうす気付いてはいたのですが、やはり大量の画像を登録したとき、画像挿入機能のパフォーマンスがかなり悪くなる のです。 結局原因は、Core Data に頼りすぎた、とかではなく、設計そのものがおかしかったというか、単純に、もっと勉強してから臨むべきだった、ということでしたが…(汗) …というわけで今日は、その問題を解決していった過程を書いていきたいと思います。タイトルは「Core Data で画像を扱う」となっていますが、それに

    paella
    paella 2009/04/08
    内容はタイトルのとおり。でもこの記事のよいところは、何がよくて何がダメ、どういう風に苦労してきたかが分かるところ。後からきた人が最後を覚えるときに、より深い理解が得られるからね。
  • http://homepage.mac.com/mkino2/spec/optimize/hash.html

    paella
    paella 2009/04/08
    Mac OSXで用いられているハッシュの方式がだめだめである。と言う話よりも、ハッシュとしてどういう計算を使うと良いのかというのが実例と共にかいてある良い記事。>今はどうだろう?
  • Interface Builderを使ってカスタマイズしたUITableViewCellを作る方法(追記あり) - 24/7 twenty-four seven

    [追記]大事な手順を書き忘れていました。セルの再利用のための手順を最後に追記しています。 間違ってるかもしれないけど、たぶんこう。 View Templateを選択して、新しいXIBファイルを作成します。 もともとのViewを削除します。 代わりにUITableViewCellを配置します。 適当にセルをデザインします。 名前を付けて保存します。ここではFeedListCell.xibとします。 Xcodeで対応するUITableViewCellを継承したクラスと、View Controller (FeedListCellController) を作ります。 View ControllerはUIViewControllerを継承します(UITableViewControllerではない)。 また、セルをインスタンス変数として保持します。ここではFeedListCellのインスタンスです。

    Interface Builderを使ってカスタマイズしたUITableViewCellを作る方法(追記あり) - 24/7 twenty-four seven
    paella
    paella 2009/03/18
    これだと表示は速いかなあ。
  • What is the best way to unit test Objective-C code? - Stack Overflow

    Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

    What is the best way to unit test Objective-C code? - Stack Overflow
    paella
    paella 2009/03/04
    OCUnit.Google Toolbox for Mac (GTM), GHUnitがピックアップされている。
  • BWToolkit - Interface Builder Plugin for Cocoa on Mac OS X

    Split View Give subviews max and min sizes, specify which subviews should resize, set divider colors, and hook up buttons to collapse subviews with animation – all from inside Interface Builder. Selectable Toolbar Create preferences windows and tabbed sheets without writing a line of code.

    paella
    paella 2009/03/02
    GUIのクール(扱いやすくなる、と言う意味で)なツールキット。すばらしい。ムービーとかが整備されていて、メリットが分かりやすいところもすばらしい。
  • UIImageの読み替え(releaseからの再ロード)の罠。 - mswar's はてなブログ

    UIImageでイメージロードしてたら、releaseしてるにも関わらず、メモリが一向に減らない・・・。 UIImageのクラスリファレンス読むとわかるんだが、どうやら一度読んだイメージをキャッシュしてくれちゃってるらしい。(限られたリソースしか使わないなら確かに便利だが) 内部的にはimageNamedに渡したファイル名と、生成されたイメージオブジェクトのポインタを対で覚えてるっぽい。 そのせいで、一度releaseしたのと同名のイメージを再度ロードした場合、そのreleaseしたはずのオブジェクトを返してくるせいか、それにさわるとBAD_ACCESS例外で止まる。 最初は、なんでこんな例外がスルーされるのか分からず、小一時間悩んでしまった・・・。 んで↓のように解決。 × UIImage* imageTmp = [UIImage imageNamed:@"imageName1.png"

    UIImageの読み替え(releaseからの再ロード)の罠。 - mswar's はてなブログ
    paella
    paella 2009/02/22
    UIImageでイメージロードしてたら、releaseしてるにも関わらず、メモリが一向に減らないのはキャッシュのせいらしい。そのキャッシュをクリアするための方法について。役立つ情報。
  • performSelectorに応答するワーカスレッドを作る « ku

    iviewは今までシングルスレッドで作ってきたものの、HTMLのパースとsiteinfoに従ってのデータ抽出にそれぞれ100~150msかかっていたので別スレッドにすることにしました。 とりあえずdetachNewThreadSelector:toTarget:withObjectを使っていたけれど、毎回スレッドの生成/破棄をするのは非効率的なのでちゃんとNSRunLoopでメッセージを処理するスレッドを作ることにしました。 探してみると、ひとつの長い処理をしておしまいなスレッドのサンプルコードはよくあるものの、メッセージを受け取って動作するスレッドのサンプルはあまりありませんでした。けっきょくiPhotoからmixiにエクスポートするプラグインを作っていた時によく参考にさせていただいたitokさんの記事itok’s Lab : CFRunLoopとCFRunLoopSourceの簡単サン

    paella
    paella 2009/02/16
    ボス:ワーカーモデルのサンプル。
  • UITableViewでページング処理をする。 - 24/7 twenty-four seven

    App Storeとかであるんだけど、UITableViewの最初の20件とかを 読み込んでおいて、もっと見たい場合は一番下のセルの 「ほかの??件を読み込む」 とか 「次の??件…」 ってのを押すとインジケーターがぐるぐる回って そこにセルがインサートされるみたいなやつを作りたくて 検索してみたけど実装する方法がみつからない。 あれってどうやればいいんだろう…。 もうちょっと探してみる。 UITableViewで「ほかの??件を読み込む」を実装する方法がわからない - clouderのiPhoneアプリを公開するまでの日記 - iPhoneアプリ開発グループ 「次の??件…」を表示するために最初のデータ件数+1をテーブルビューの行数とします。 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NS

    UITableViewでページング処理をする。 - 24/7 twenty-four seven
    paella
    paella 2009/02/16
    テーブルビューのdatasourceに対して,最後端のときは別の情報を表示しておく、というTips。tableFooterViewを使う,という方法もあるらしいのでメモメモ。いつか使う。
  • 1