ぽんぽこ日記

プログラミング、読書、日々の生活

2010-01-01から1年間の記事一覧

2010年12月31日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月30日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月29日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月28日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月22日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月17日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月16日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Org-modeでタスク管理をする場合のベストプラクティス

初めに 筆者は20年来のEmacsユーザですが、ここ数年はカスタマイズもせず、昔ながらの使い方しかしてきていませんでした。しかし最近XCodeとEmacsを行ったり来たりするのにうんざりして、この記事のようなカスタマイズをしたことを皮切りに、いろいろなパッ…

2010年12月15日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月13日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月11日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月10日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月09日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

2010年12月08日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

携帯WebページをiPhoneで表示する

当ブログのアクセスを解析していると、「UIWebView内の画面遷移をフックする」がよく閲覧されているようです。今回もUIWebView関連で少し書いてみます。携帯Webページをサーバ側の変更なしiPhone/iPadで読みやすく表示したいということはよくあるかと思いま…

clangを使ったCのコード補完

私は、iOS/Objective-Cのコーディングには専らEmacsを使っています。下記ブログのおかげでかなり快適なObjective-Cのコーディング環境が手に入りました。(1) Emacs で iPhone アプリ開発を快適にするための設定ただ若干気になるところとして、auto-complete-…

2010年8月、9月に読んだ本

「悪の教典」貴志祐介著悪の教典 上 (文春文庫)作者:貴志 祐介文藝春秋Amazonこの著者の作品は「新世界より 」以来2冊目。「ハイスクール・パニック」「死のロングウォーク」「バトル・ロワイヤル」の系譜に連なる学園パニックホラーかと。久しぶりにページ…

UITableViewのヘッダーへのタッチでセルを折りたたむ方法

先日見かけたアプリで、UITableViewのヘッダ部分をタッチすると、そのヘッダに属するセルが伸び縮みするという動作がありました。 どうやってやるのか調べてみて、どうやら下の動画のような動きを実装できたので、共有します。 https://dl.dropboxuserconten…

PDFの文書構造を取り出す

今回は、PDF文書の目次情報を取得する方法について記します。アウトラインそのものはPDFカタログの「Outlines」から取得できます。このエントリは木構造になっているので、深さ優先で、「First」項目をスキャンし、木をスキャンし終わったら「Next」項目をス…

アジア言語圏のPDFのテキスト抽出 3

フォント情報から文字コードを得る方法です。まず、Font情報はそのフォントを使用するページのResourceとして登録されているので、その情報を取り出します。 CGPDFPageRef page; // page ページオブジェクトを取得。。。 CGPDFDictionaryRef pageDict = CGPD…

アジア言語圏のPDFのテキスト抽出 - 2

前回の続きです。ponpoko1968.hatenablog.com PDFの文字列描画命令は、TJ、Tj演算子のオペランド文字列のエンコードとキャラクタセットは、先だって実行されたTmオペレータのフォントの指定に従っています。 たとえば、 /C2_0 1 Tf 0 Tc 4.093 0 Td <0DFA0F6…

iPhoneシミュレータでOCUnitを実行する

前回のエントリで、XCodeのデバッガ上でOCUnitのテストを実行したいと書いたが、UIが絡まないようなロジックテストであれば思いの外簡単に実現できたので共有。まず、新規ターゲットとしてCocoa Touchアプリケーションを追加。 ターゲットを右クリック「情報…

OCUnitでテストメソッドを選択的に実行する

小ネタですが。。本来のユニットテストの趣旨とはことなるが、動作がよくわからないクラスやAPIを試してみるときなど、試行錯誤しながらコードを書いていくときに、テストプログラムを書いて試してみては、書き換えてまた別の方法を試したりと、選択的にテス…

プリレンダリングした画像イメージを圧縮形式でキャッシュする方法

意外と日本語のエントリが少ないのでメモ。PDFページの表示など、レンダリングして画像イメージを生成するのに非常に時間がかかってユーザビリティを損ねる場合、あらかじめプリレンダリングした画像イメージをキャッシュとして置いておきたい。しかしiOSデ…

アジア言語圏のPDFのテキスト抽出

この手のアプリ作っている人には既知のことなんだろうけど、このあたりでアジア言語圏で作られたPDFから抽出したテキストが文字化けするという話題があって、下記の方法で一応解決できたぽいのでメモ。 "TJ"や"Tj"のオペレータコールバックから、 static voi…

2011年新聞・テレビ消滅

読んで思ったことメモ2011年 新聞・テレビ消滅 (文春新書)作者:佐々木 俊尚文藝春秋Amazon アナログ停波でかなりの数のテレビがゴミになる。冷静に考えるとすごいことだ 難視聴地域の救済が進んでないらしい 日本ではなぜクレイグスリストのようなサイトがな…

エキスパートPythonプログラミング

職場の同僚の@methaneこと稲田直哉氏が翻訳に携わった一冊。査読を手伝わせて頂いた。私が読んだ時点ですでに原稿の完成度が高く、わずかな貢献しかできなかったのに、見本誌も頂戴してしまい恐縮の限りだ。見本誌は職場に寄付して、もう一冊を自分で買わせ…

あるディレクトリ下の特定拡張子のファイルを探す

よく使いそうだけどたぶん毎回忘れるので、snippetメモ。 // ドキュメントフォルダのパス文字列を取得 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *aDirectory = [paths objectAtIndex:0…

プログラミングにおける教養について雑感

Software Design 6月号 「老頭児エンジニアのつぶやき」より glue言語に端を発するJython/JRubyコミュニティでも、Javaが描く近未来は。思い出にすぎないのです。このように、あるコミュニティでは驚嘆に値する技術も、他では取るに足らない話題にすぎない事…

『電子書籍の衝撃』メモ

非常に中身の濃い本だった。電子書籍の衝撃 (ディスカヴァー携書)作者:佐々木俊尚ディスカヴァー・トゥエンティワンAmazonなかでも気になった部分をちょっと長いけど引用。