MAC OSX Mavericks のrvmですこしはまる。

ブログなんて2年ぶりだわん。 MAC OSX の Mavericks で ruby 1.9.3 を rvm 上で使おうとしたらはまったのでメモ。 ふつうにやってruby 1.9.3のインストールとかまではできたのだけど、 ネイティブビルドの必要な mysql2 gem を入れようとしたらこけてしまう…

CRUDのRouting 設定とHelperメソッド

いろいろとひっかかてしまうので、 Rails3 のCRUDのRouting 設定と、その設定によって生成されるHelperメソッドの関連について整理してみました。 sites という コントローラーを例にしています。 Routingの定義 routes.rb で (ActionDispatch::Routing::Map…

OpenGL ESでの画角の指定

iPhone 上でOpen GL ES1を利用して、画角を指定してのオブジェクトの描画方法を調べてみまたので、 メモです。 (もっと、きちんとした方法が他にあるのだとうとはおもいますが....) 前提準備 XCodeでOpen GL ES Applicationを選択してプロジェクトを作成。…

scrollView内にImageViewを配置する。

iPhoneアプリで、scrollView内に任意の縦横比のImageViewをセンタリングして配置するための実装を行ってみる。 scrollviewの生成 前提となる準備として view load時にscrollViewの生成,セットアップを行う。 - (void)viewDidLoad { NSLog(@"photo view conto…

手続きの抽象化

sicp の1.3.3 と1.3.4 を復習。general Methodと手続きを返す手続きをつかっての手続きの抽象化。題材は主に、平方根で。 [1.3.3 general Methodを使っての抽象化] 指定した手続きの入力と出力の差が十分小さくなくなる時点(fixed point)の入力値を得るため…

addSubViewで追加されるタイミングでsub Viewを表示

課題 iphoneでViewが表示されるときに下位にViewやControlを追加するときのことです。viewDidAppear:でaddSubViewを使ってViewやControlを追加すると、viewDidAppearの処理が完了してから、UiKitによって一括して描画が行われることになります。こうすると下…

Barの表示/非表示切り替え(navigationView-scrollView構成)

navigationView の下にscrollViewがあるという構成の場合に iphone - navigationBar,statusBar,toolBarのOn/Offがされるようにする。表示がOnの場合にも、全画面表示でnavigationBar,statusBar,toolBarが半透明である状態にする。という実装をいろいろなやみ…

exercise 1.30と1.32

SICPのexercise 1.30と1.32 Excersize 1.30 a から bまで値をnext手続きで増分していき、 それらの値にterm手続きで指定した演算を適用した値を合計する手続き. (term, nextとも1つの引数を要求する手続き) 例で、linear recursiveの例が出ているので、それ…

NSURLConnectionを利用しての非同期、並行ダウンロード

iPhoneアプリの開発で、複数の画像を非同期にダウンロードしたかったので、NSURLConnectionを利用しての非同期、並行ダウンロードクラスを実装してみました。 基本的な方法 ダウンロード対象のURLはQueueのかたちに(実際はNSMutableArray)で登録されるような…

exercise 1.12 - Pascalの三角形

パスカルの三角形の問題ですが、 (リストとかはまだ出てきていないので)指定した要素の値を求めよという解釈をして解く。 レベル(上から何番目)と列(左から何番目)を引数に指定しての定義。 左上(1つ下のレベルの同じ列)と右上(1つ上のレベルの1つ右の…

Google Data API を iphoneで使う(Picasaの実装例)

Google Data APIを使って、まずiPhoneでのPicasaのViewerを作ってみようかとおもい調査。 準備は前回したので、実装例を作成。 Google Data APIの基本的なAPIの使用手順 Google Data APIでは、サービスオブジェクトを使用してGoogleのサーバーへ非同期でのリ…

Google Data API を iphoneで使う(準備)

Google Data APIを使って、まずiPhoneでのPicasaのViewerを作ってみようかとおもい、まず準備。 [GData Objective-C Client Library]のXcodeプロジェクトがコンパイルできるようにするための設定と、そのライブラリを使うためのアプリケーションのプロジェク…

CoreDataを使う3。リレーション

先日の続き。 iphoneアプリでデータの永続化にCoreDataの使用について、整理3回目。 今回は、リレーションをつけた場合の下位のエンティティの扱い。 今回の具体例では、Categoryに属する、Topic(記事)の表示、追加。 追加、削除のためのManagedObjectクラス…

CoreDataを使う2。

先日の続き。 iphoneアプリでデータの永続化にCoreDataの使用について、XCodeで自動生成されるコードをいじってみての整理2回目。 モデルの編集 「Use Core Data for storage」をチェックしてプロジェクトを作成していると 「xcdatamodel」という拡張子で モ…

CoreDataを使う1。基本的なオブジェクト。

iphoneアプリでデータの永続化にCoreDataの使用について、ちょっと整理していきましょ。 (これまで使ってきたDB接続のインターフェイスとは考え方が違うのでちょっとわかりにくかったこともあるので。) 使用している開発環境は、「XCode 3.2.1」です。 ア…

Class::Stdを使用したインサイドアウトクラスの作り方の基本

Perlベストプラクティスを参照してClass::Stdを利用したインサイドアウトクラスを使うようにしてみたので、基本のところを整理しておきます。 前提など 確認環境は、perl5.8.8です。 Class::Stdを使用するのでcpanよりインストールします。 $sudo cpan insta…

attachment_fuプラグインの保存先を変更

前回、attchment_fuでとりあえず画像アップロードをしてみたが、今回、保存先と画像を参照するurlを変更する実装を行っていみる。 アプリケーションとは別のディレクトリで画像を管理したいということと、 railsではなくapacheで画像のリクエストを処理させ…

attachment_fuプラグインで画像アップロード

前提 RMMagicをインストールしておく。 インストール railsアプリケーションのトップでscript/pluginを実行してインストール>ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu 今回の例 既存の商品モデル(product)…

RMagickインストールメモ

環境はMacBook Pro / MaxOSX 10.5.7 参考させていただいたのは、篳篥日記,Installing RMagick on OS X using MacPorts,Goodpic ブログなど。 とりあえず,jpeg,png,gif,tiffあたりのファイルタイプを使えるようにインストール。 png,jpeg, freetype /usr/loca…

i18nの整理

Rails2.2のi18nの使い方を整理しておきましょうっと。 初期化 「/config/initializers/locale.rb」で基本の設定を行う。 主な設定属性は以下のとおり。 I18n.load_path 翻訳テキストファイルのパス I18n.default_locale デフォルトの言語 I18n.locale 現在の…

コルーチンのお勉強

プログラミングGaucheのコルーチン(19.8)内容のお勉強。P299に載っているexitのための手続きが定義されるほうのコルーチンを定義するためのマクロ定義の解読。 (use util.queue) (define *tasks* (make-queue) ) (define-syntax define-coroutine (syntax-ru…

継続のお勉強

プログラミングGaucheのcall/ccでの継続(19.4-19.6)内容のお勉強。 break/next名前付き for-each 本のサンプルより単純な例(受け取るリストを可変ではなく1つに限定)で実装してみる。 (define-syntax for-each-ext (syntax-rules () [ (_ break next expr l…

メソッド適用のカスタマイズ

プログラミングGaucheの[17.5.3 メソッドの適用のカスタマイズ]の内容を復習。総称関数を標準のクラスのインスタンスではなく、これを継承した独自のクラスのインスタンスとすることによりメソッドの適用方法をカスタマイズ(今回はログ出力)する。 総称関…

sumとaverage

プログラミングGaucheを読んでいる途中ですが、リストの再帰処理の復習として合計と平均算出を実装してみる。 sum 0を初期値とし、要素の値を加えた値を引数として渡して再帰していく。最後にその値を返すという末尾再帰による実装。 (define (sum lis) (let…

プログラミングGaucheの練習問題(オブジェクト-外部表現文字列変換)

プログラミングGaucheの14.3の練習問題(P203)をしてみる。 write-to-string オブジェクトを外部表現文字列にしたものを結果として返す手続き。 write手続きで文字列ポートへ書き込めば、call-with-output-stringがそのポートに書き込んだ内容を結果として返…

プログラミングGaucheの練習問題(入れ子リストへの手続き適用)

プログラミングGaucheの7.2の練習問題(P68)をしてみる。 for-each-numbersとmap-numbers これらは、filter関数でnumberのみにフィルタリングされたリストに対して、for-eachまたはmapを適用するだけなので、以下のとうり。 (define (for-each-numbers pred l…

cookieを保持、参照するplugin

クッキーの値をDBに格納しておき(Visitorというモデル名にする)、 次回同じユーザがアクセスしたときに格納しておいた情報を参照できるようにするというもののPluginを作ってみました。 マイグレーション まず,cookieを保存しておくテーブルを生成。Pluginの…

cookieで前回アクセス時の情報を復元

クッキーの値をDBに格納しておき、 次回同じユーザがアクセスしたときに格納しておいた情報を参照できるようにするするためのベースの仕組みの試作を行ってみました。 テーブル定義 まず,cookieを保存しておくテーブルは以下のように定義します。 class Crea…

will_paginateでのDISTINCT指定など

railsでwill_paginate使う場合で結果をdistictしようとしてすこしはまったのでメモです。 selectオプションにDISTINCTを指定 まず、単純にpaginateメソッドのselectオプションに「DISTINCT」を指定してみました。 self.paginate(:all, :joins => joins, :con…

MeCabのラッパーを実装

Mecabのインストール、Mecabのrubyバインディングのインストールを行ったので、Mecabのrubyバインディングのラッパークラスを作ってみました。 目的 商品名や説明分を形態素に分解してキーワードのインデックスを作り、そのキーワードインデックスからの検索…