Mac OS Xの登場とともに脚光を浴びる"Objective-C"。NeXTでもその基盤に使用された歴史ある由緒正しい言語ながら、今なお新鮮な特徴を多く備え る言語です。ダイナミックObjective-Cではそのなかでも特に「動的型付け」に着目。同じくオブジェクト指向のJavaなどとは一味異なったこの 言語の魅力にせまることで、オブジェクト指向そのものに対する理解を深めることを目的とします。
iOS での正規表現をつかった文字列処理、Ruby や Perl はおろか、C# なんぞに比べても一段とわかりにくい気がする。どうしてこうなった。 Ruby で考える buf には次のような文字列が入っているとする。ファイルをごっそり読みこんだ状態で、改行も含まれている状態になっている。 1324650815.dat::【大阪】 ほげほげ 1324392193.dat::【電力】 ふにふに 1324640842.dat::【国際】 もこもこ 1324650659.dat::【社会】 どきどき ... このとき、'xxxxx.dat' というデータの部分の一覧を取り出したいとき、Ruby なら下のように書ける。 dat = buf.scan(/(\d+.dat)::/) これで dat に 'xxxx.dat' という文字列が配列状に詰めこまれる。とっても簡単。 Objective-C (i
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
たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になり鬱になり死
決済サービスを展開する米「Stripe」は2013年2月7日、ポピュラーなJavaScript用ライブラリ (プログラム郡がパッケージされたもの)「jQuery」と連携して仕様できる決済ライブラリ「jQuery.payment」をリリースしたと発表した。 「Stripe」は、面倒で時間のかかる決済機能の導入について、どこよりも簡単に実装できるAPIを提供する企業。大手決済サービスを展開する米PayPal 創業者や、大手有力VCから投資を受けるなど注目をあびている。 今回リリースされた「jQuery.payment」を使えば、数行のJavaScriptコードだけで決済機能を導入することができるようになる。 冒頭のスナップショットは、実際に「jQuery.payment」を使ってドネーションを受けられるようにしたサイト。決済者は面倒なユーザー登録作業などをする必要なく、この画面から利用すること
About Us Welcome to PopApp.in, your trusted source for the latest news, information, and insights. We are dedicated to delivering high-quality content that informs, engages, and entertains our diverse readership. Our MissionAt PopApp.in, our mission is clear: to provide you with accurate, unbiased, and timely news that matters. We believe in the power of information to shape perspectives, drive co
ここ最近立て続けに素晴らしいアイコン素材がリリースされたので、まとめて紹介します。 ほとんどが商用利用も無料です。
12/07/06 追記 delegateのコードを修正しました。 delegateはretainでなくて、assignにした方が良いみたいです。 その場合は、deallocの中のreleaseも必要なくなります。 参考 >> Why are Objective-C delegates usually given the property assign instead of retain? AがBを作り、BのdelegateにAをセットする。 BがretainでAをもつことにより、AとBが互いにretainで参照を持つことになります。 そうなってしまうと、BをreleaseしようとしてもAをretainしているためにreleaseできずにメモリリークするということのようです。 —————- こんにちは。きんくまです。 今回から何回かに分けて、Objective-C でのイベント伝達の扱い方に
先日 Vagrant を触ってみたら便利すぎて鼻血が出ました。しばらく見ないうちに色々進んでるもんですねえ、いやはや参っちゃいました。 Vagrant は仮想マシンの VirtualBox のフロントエンドに相当する、ruby で書かれたツールです。vagrant コマンドなどを使ってコマンドラインから簡単に新しい VM を作れる。 % gem install vagrant % vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.3-x86_64-v20130101.box % vagrant init centos % vagrant upこれだけで CentOS の Linux box をローカルマシン内に立ち上げることができる。*1 *2 なにこれすごい。 % vagra
UNIXの代表的なダウンローダにwgetとcurlがあります。 たいていの場合どんなOSでも、どちらかのソフトがインストールされているのではないかと思います。 しかし、この2つのダウンローダの機能は、一見似ているようにも見えますが、実はそれぞれに特徴が見られるので、今日はそれについて解説してみます。 wgetの特徴 wgetのスペルは「片手でもコマンドできる」ということもあって、多くの人から気に入られています。 そんなwgetの特徴として、最も際立っているのが、クローラとして動作可能という点です。 オプションで-rを付加してやることで再帰的に動作し、-lでその深さを指定することができます。 また、-Aや-Rを利用すれば、ダウンロードする拡張子のホワイトリストとブラックリストを指定することも可能です。 つまり、特定のサイト内に散らばって存在するファイルを、拡張子によって指定ダウンロードできる
HTMLはh1要素だけで、CSSの「border」や「box-shadow」「transform」「linear-gradient」、擬似要素の「:before」や「:after」を使った見出しデザインをご紹介します。まずはサンプルをご覧ください。 サンプルページ » 01.切り取り線 紙を切り取ったようなデザインです。 サンプルとソースを見る » ポイント垂直方向の影のオフセット距離を設定しただけでは、左右両脇にも影ができてしまうので、一旦5px下に影をオフセットしたうえで、広がり距離を負の値(-4px)にし縮小することで、上部の影のみを残しています。 border-top:1px dashed #aaa; border-bottom:1px dashed #aaa; background:#eee; text-shadow:1px 1px 0 rgba(255,255,255,1);
こんにちは、すどーです。 RequireJSでjQueryやjQueryプラグインの非同期ローディングを試してみました。 最近は大規模な構成になると、「ちぢめる、まとめる、かためる(minify, combine, compress)」のが主流のようです。 ですが小中規模な構成や、依存関係にあるフレームワークなども多くあるので、簡単な使い方だけでも覚えておくと便利かと思います。 RequireJS: http://requirejs.org/ RequireJS API: http://requirejs.org/docs/api.html RequireJSの主な特徴 モジュール化(AMD APIをサポート) 非同期ローディング OPTIMIZERによる最適化 1. モジュール化(AMD APIをサポート) AMD(Asynchronous Module Definition)はComm
iOS 6の完全脱獄ツール『evasi0n』がリリースされました! また、『evasi0n』はiPhone 5やiPad mini等の最新デバイスを含む、ほぼ全てのデバイスに対応しています。 では、早速脱獄を行っていきましょう!! 対応状況 『iOS 6.0』、『iOS 6.0.1』、『iOS 6.0.2』、『iOS 6.1』、『iOS 6.1.1(10B145)』、『iOS 6.1.2』が動いている以下のデバイスに対応しています。 iPhone 3GS、iPhone 4、iPhone 4S、iPhone 5 iPod touch 4G、iPod touch 5G iPad 2、iPad 3、iPad 4 iPad mini 注意 脱獄、JailBreakはとても危険な行為です。故障するリスクも大いにあります。 どのような自体になっても自分1人で解決できる能力と、全ての事柄を自己責任で実行
Twitterは自社サービスで利用しているJavaScriptフレームワーク「Flight」をオープンソースで公開しました。 Flightはコンポーネントベースの軽量フレームワーク。開発者に対して非同期で独立性の高いコンポーネントを定義する機能を提供することで、デバッグ、テスト、イベントハンドリングなどを容易にするフレームワークのようです。 Githubのページでは以下のように説明されています。 Components cannot be directly referenced, instead they communicate by triggering and subscribing to events. Consequently every component, and every component API, is entirely decoupled from every othe
jQuery Core 1.9 Upgrade Guide | jQuery の「Changes of Note in jQuery 1.9」を読んで、 自分なりにまとめました。 誤訳して間違ったことをまとめてたり、 最新の情報でないかもしれないので 読まれる際はご注意下さい。 (※ページをそのまま訳したわけではないと、思います) jQuery 1.9 では API の削除や 挙動の変更を行っています。 この記事は、前のバージョンから更新した時、 既存のコードに影響がでそうな変更を 並べたものになります。 変更点を全部網羅しているわけではありません。 箇条書きにすると以下のような感じ: 削除された機能 .toggle(function, function) の用法 jQuery.browser() .live()と.die() jQuery.sub() document 以外の要素での A
Perfect Scrollbar Perfect Scrollbar -GitHub 何をもってパーフェクトなのか Perfect Scrollbarのデモ Perfect Scrollbarの使い方 何をもってパーフェクトなのか このスクロールバーにパーフェクトとつけた理由は、下記の4つだそうです。 ページ上のあらゆる要素にCSSで影響を与えないこと スクロールバーがオリジナルのデザインに影響を与えないこと スクロールバーのデザインは完全にカスタマイズ可能であること コンテンツの大きさが変化したら、スクロールバーの大きさと位置がそれに合わせて変化すること Perfect Scrollbarのデモ デモではあずにゃんの画像をホバーすると、スクロールバーが表示されます。 デモ:領域を拡大 バーの長さが変化していることに注目してください! Perfect Scrollbarの使い方 Step
basket.jsはローカルストレージにJavaScriptをキャッシュして高速化をはかるソフトウェアです。 Webの高速化を語る上でキャッシュの存在は欠かせません。そこで使ってみたいのがbasket.jsです。何とHTML5のローカルストレージを使ってキャッシュする仕組みを提供します。 最初の実行。underscore.jsなどが読み込まれています。2回目以降は消えます。 でもちゃんとjQueryオブジェクトは存在します。 basket.requireメソッドを使って対象ファイルを読み込みます。有効期限を設定することも可能です。読み込み失敗をハンドリングすることもできます。普段はそのまま利用でき、remove()やclear()でファイルを解除できます。 basket.jsはJavaScript製、MIT Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る ロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く