プログラミング

railsにおけるデータベース間のリレーション

railsでデータベースのリレーションはMODEL.rbファイルに記述する. 1対1の場合所有しているモデルにhas_one,所属しているモデルにbelongs_toを設定する.設定するときは最初の一文字を小文字にする. リレーションの設定が完了したらコントローラ内でデー…

Settingleton (Setting + Singleton)

あまりデザインパターンにこだわるほうではないけど一つ多用しているパターンがある. それはシングルトンパターン. どう使うかというと設定値を保存しておくクラスをシングルトンにしておき,アプリの起動時にsqliteとかからロード,終了時に保存するとい…

Socialフレームワーク

SocialフレームワークとはiOSにビルドインされたFacebookとTwitter連携機能. jsonをやり取りするので非同期でないと処理がハングアップする. if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { SLComposeViewController …

Railsの*_urlと*_pathの違い

_pathは相対パスを _urlは絶対パスを返す 基本的には同じものと考えて問題ない

IntelliJ IDEAでPhoneGapアプリを開発するためのプラグインを作りました.

IntelliJ IDEAでPhoneGapアプリを開発するためのプラグインを作りました. これによりIntelliJの強力なコード補完やLiveEditをPhoneGapアプリ開発に利用出来るようになります. 開発はGithubで.

Railsでredirect_toでアクションを呼び出す

redirect_toでアクションを呼び出すことが出来る. 現在のコントローラのアクションを引数つきで呼び出す.引数は省略可能 redirect_to :action => :show, :id => 1 別のコントローラのアクションを呼び出す. redirct_to :controller => "users", :action =>…

UITableViewの使い方

ViewControllerをUITableViewDelegateとUITableViewDataSourceに準拠させておく viewDidLoad内でUITableViewのDelegateとDataSourceをselfに設定 以下のメソッドを実装 didSelectRowAtIndexはセルの選択時に呼び出される.segueを呼び出すなどの処理を行う.…

UIActionSheet

UIActionSheetを使うには, UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Upload" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"DropBox", @"Evernote", nil]; [actionSheet showIn…

IntelliJ IDEAでInterfaceメソッドを一括実装する方法

JavaのclassでInterfaceを実装するとき,Interfaceのメソッドを一括で実装したい場合が多い. IntelliJ IDEAなら簡単に可能.eclipseでも可能かもしれないけど. Macの場合Command + i Windowsの場合Ctrl + i

Objective-Cで画面キャプチャ

UIGraphicsBeginImageContext(self.view.bounds.size); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); QuartzCore/QuartzCore.hのインポ…

Objective-Cで別スレッドで処理

バックグラウンドスレッドで処理を行いたい場合は [self performSelectorInBackground:@selector(method) withObject:nil]; を用いる.withObjectにはメソッドの引数を指定する. メインスレッド(画面の描画を行っているスレッド)上での遅延実行は [self per…

webアプリにACEエディタを埋め込む方法

ブラウザ上で動作するエディタにACEエディタがあります. これはCloud9IDEの一部でJavaScriptで書かれたエディタです. 準備としてGithubからACEのJavaScripファイルをダウンロードしてください. https://github.com/ajaxorg/ace-builds src-min-noconflict…

Objective-Cで画像のリサイズ

画像トリミングについて imagePickerControllerで取得した画像をリサイズしてから使う方が何かと便利かも. -(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info ピッカーで画像選択後,info…

PhoneGap3のインストールと実行

PhoneGapを試してみたので覚え書き. http://phonegap.com/install/ PhoneGapに必要なもの. npm(node.js)環境 Ant Android SDK Api 19以上. Node Nodeはnvmが使いやすくていいかんじ インストール方法は公式のREADMEをみればわかる.下記コマンドは必ず全…

segueで条件分岐する方法

segueをボタンなどではなくViewから伸ばす. segueにidentifierを設定する.ここではtoChoosePictureという名前をつけた. [self performSegueWithIdentifier:@"toChoosePicture"sender:self]; を使い,遷移を実行する.データの受け渡しは - (void)prepareF…

プログラミング言語別プログラマーの呼び方

一種のジョークなんだけどプログラミング言語にはその言語を使う人の呼び名がある. これが結構苦笑いを誘発する.こんな言語もあってそれの信望者はこんな呼び方をされているよ.なんてのがあったらぜひコメントを. 言語 C C Programmer C++ C++ Programme…

PythonでHTTPリクエスト - urllib編 -

この記事で紹介した方法よりこっちの方がやりやすいかも?って方法を見つけたので urllibの公式ドキュメント 単にページのHTMLをダウンロードしたい場合urllibを使った方が簡単そう.手順としては 1. urlを文字列で定義 2. urllib.urlopen関数でurlを開く. 3…

PythonでHTTPリクエスト

PythonでHTTPリクエストをする方法は幾つもある.ありすぎて困った. しかし一般的にはhttplibを使うようだ. 単純にGETしたいだけなら HTTPConnection関数でコネクションを作成し,request関数で実行する.getresponse関数でレスポンスを取得. responseの…

アルゴリズムチャレンジ via Python (2) - Queue編 -

前回はStack編だったので今回はQueueを書いてみました. Queueは基本的にはStackと大差ないのですがStackが後入れ先だしなのに対し先入れ先出しです.待ち行列ともいいますね. 今回もclassを使います. class要件はこんな感じでしょうか? classは内部に配…

アルゴリズムチャレンジ via Python (1) - Stack編 -

アルゴリズムの勉強のために代表的なものを書いてみました.言語はPython. アルゴリズムの勉強 今回はお題には無いのですがStackを書いてみました. 実装方法は幾つもありそうですが今回はクラスを使います. Stack classの要件はこんな感じでしょうか? ク…

Ubuntu13.10でwineが起動しなくなった

コマンドラインからwineにインストールしたwindowsアプリケーションを起動する方法

Node.jsまとめ

Node.jsはサーバサイドをjsで書けるプラットフォームでGoogle V8をコアとする. Node.js自体は単なる環境でrailsのようなリッチなフレームワーク機能はない.自分でプラグインを適切に選択する必要がある. 最も普及しているのはexpress.柔軟なフレームワー…

コマンドの出力を表示させないようにする

.bash_profileでbashの初期設定を行った場合などコマンドの実行結果を表示させないようにしたい場合がけっこうある. コマンドの出力を表示させないようにしたい場合,出力先に/dev/nullを指定する. 正確には出力をnullデバイスにリダイレクトする. 例)ls…

Rubyまとめ

クラスとメソッドの定義 クラスHogeを継承したクラスFooにメソッドbarを定義する. class Foo < Hoge def bar //処理 end end クラスのインスタンス化 class = Class.new() Hash hash = Hash["foo" => 10, "bar" => 20, "hoge" => 30] hash["hogehoge"] = 40…

Linuxの起動時にプログラムを実行する - gnome-session編 -

Linuxの起動時にプログラムを自動で実行(Windowsでいうスタートアップに登録)する方法は昨日の Linuxの起動時にプログラムを実行する. - initスクリプト編 - - masahirosuzuka's blog がお行儀がいいというか正当なやり方なんだけどUbuntu13.10の場合GUI…

Linuxの起動時にプログラムを実行する. - initスクリプト編 -

Linuxの起動時にプログラムを自動で実行(Windowsでいうスタートアップに登録)するには /etc/rc.d/rc.local に自動実行したいコマンドを書く. このファイルは起動時に最後に読み込まれるファイルでユーザが自由に記述することができる.

Xcodeのプロジェクト名を変える

あまり機会は多くないかもしれないけどXcodeのプロジェクト名を変えるときの注意点. Delegateのファイル名を変える Delegateのクラス名を変える xibファイルのobjectsのクラスを変える pch(プリコンパイル)ファイル名を変える(target) prefixのファイル…

Xcodeにフレームワークを追加する方法

TARGETS -> Build Phasesタブ -> Link Binary With Librariesから追加.

UTF-8とS-JISの改行コード

UTF-8の改行コードは\n S-JISの改行コードは\r\n 最近はS-JISを使う機会が減ってきたのであまり気にしないでいいかな

Playframeworkのプロジェクトをeclipseにインポート

初期設定 Playframworkからeclipsifyコマンドを実行 eclipseのFile -> import -> General -> Exsisting Project …からインポートを実行 eclipseのパーペクティブはJavaにしておく,PlayはJavaEEに基づいていないため 参照jarがごちゃごちゃして見にくいため…

AndroidのUIオブジェクトへのアクセス

AndroidのGUIビルダーで配置したボタン等へアクセスする方法. 基本中の基本ですが コンポーネントクラスをクラス変数として定義し,Activityで定義されているonCreat関数内でfindViewById関数を使って取得する.引数にIDを与える.IDはRファイルに自動生成…

Objective-CでJSONを扱う.NSJSONSerialization編

iOS5以降はTwitter統合の関係上NSJSONSerializationクラスが追加されたのでJSONがぐっと楽に扱えるようになった. 以下のコードはInstagramにアクセスしたときに書いた実験用のコードの一部. NSString *url = @"SOME_URL"; NSURLRequest *request = [[NSURL…

UIView(とそのサブクラス)を動的に生成する

基本中の基本ですがUIViewを動的に生成し,加える方法. //Create UIView CGRect thumbnailsRect = CGRectMake(0.0, 0.0, 150.0, 150.0); thumbnailsView = [[ThumbnailsView alloc] initWithFrame:thumbnailsRect]; ... //Set thumbnailsView [[self view] …

iOSでタッチされた座標を取得

iOSは(Androidとかでもそうだけど)画面がタッチされたらEventが発生する.Eventはオブジェクトとしてアプリに通知される.Eventオブジェクト内部にタッチされた座標などの情報が含まれているのでそれを取り出してやればOK. イベントハンドラをオーバーライ…

UIScrollViewのスクロール速度の変更

UIScrollViewのサブクラスはスクロール速度を変更することができる. UICollectionViewなどはスクロール速度が速すぎると落ちる可能性がある(経験談). プロパティの decelerationRate を変更すればOK.速度は UIScrollViewDecelerationRateFast UIScrollVie…

Cocoa ApplicationのAboutPanelの設定

Supporting Filesフォルダ内のCredits.rtfがAboutPanelに表示される リッチテキストがそのまま使える

NSMutableArrayでオブジェクトの入れ替え

オブジェクトの入れ替えなんてあまりやる機会はないかもしれないけどそれだけにあんまり情報がないので… exchengeObjectAtIndex: withIndex: を使えば簡単に入れ替え可能.

UIRefreshControlの使い方

引っ張って更新を簡単に実装するためのコントロール @property (retain, nonatomic) UIRefreshControl *refreshControl; @synthesize refreshControl = _refreshControl; しておき,viewDidLoadとかで _refreshControl = [[UIRefreshControl alloc] init]; […

NSManagedObjectのデータ操作

NSManagedObject(とそのサブクラス)のプロパティを操作するにはKeyValueCodingを使う NSManagedObject *object … [object setValue:value forKey:@"key"];

UIImageをNSDataにして保存

UIImageをNSDataに変換するには PNGの場合 NSData *data = UIImagePNGRepresentation(self.pngImage); JPEGの場合 NSData *data = UIImageJPEGRepresentation(self.jpegImage);

Macで起動中のアプリの情報を取得

OSXではQuartz Window Serverから現在起動中アプリの情報(正確には起動中のWindowの情報)を取得できる. やり方は簡単. CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID); kCGWindowListOptionAll は全ての…

Nginx+railsでrobots.txtとsitemap.xmlにアクセス出来ない場合の対処法

Nginx+railsでrobots.txtとsitemap.xmlにアクセス出来ない場合の対処法.Nginxとrailsを組み合わせて使っている場合,静的ファイルをNginxが,それ以外のリクエストをUnicornやPassengerなどのアプリケーションサーバが処理するのが普通.でもこの場合Nginx…

目指せ家電ベンチャー - タブレットPC自作に挑戦

最近タブレットPCが本当に盛り上がってますね. タブレットの話題が出ない日はないんじゃないかってくらい x86系に代わって今後はタブレットPCが主流になるんじゃないでしょうか?世の中にはMakerムーブメントなんてのもきてるようだし格安基板業者に頼めば…

塩と胡椒-NativeClientを試してみる-

GoogleがNativeClientなるものを公開したようなので試してみる. NativeClientとは? まずNativeClientとはなんぞや?公式サイトはどうやらここのようだ.http://code.google.com/intl/ja/chrome/nativeclient/Webブラウザの内部でx86のコードを走らせるため…