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

フルスタックなJavascriptのWebフレームワーク

Mean http://mean.io Tower.js http://towerjs.org Sails http://sailsjs.org/ Meteor http://www.meteor.com Wakanda http://wakanda.org Derby http://derbyjs.com/ Geddy http://geddyjs.org Compound http://compoundjs.com/ Yahoo! Mojito http://devel…

zipのファイルサイズ

zipを作成してクライアントに返すようなcontrollerのコードがあって、 それに対応するrspecで以下のように書いていた。 レスポンスのzipファイルが想定するサイズか確認している。 describe "zipファイル" do before do get(:show, { :id => 1, :format => :…

Watir WebDriverのインストールに失敗する

bundle installするときにエラーとなった。 ... Installing ffi (1.9.3) Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/h_yamaguchi/.rbenv/versions/1.9.3-p392/bin/ruby extconf.rb checking for ffi.h... n…

Google Custom Search API

使い方が結構面倒 リクエスト回数の制限が結構ひどい。 https://developers.google.com/custom-search/ http://offsidenow.phpapps.jp/archives/415 Yahooなど他のサービスでも事情は同じらしい。 検索して、画面に表示するには以下のようなURLでGetして、結…

Google Map API for iOSのマーカーのドラッグが使えない。

以前、Google Map API for iOSでマーカーのドラッグ&ドロップができるようになったと書いたが、 Google Mapsでマーカーをドラッグする - H_Yamaguchiのブログ 自分の環境ではうまくいかない現象が発生している。 self.marker = [GMSMarker markerWithPositio…

マーカーのアイコン画像を変更する

できるにはできる。GMSMarkerにiconプロパティがあるので、そこにUIImageを設定してあげるだけだ。 CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127); GMSMarker *london = [GMSMarker markerWithPosition:position]; london.ti…

GMSGeocoderクラスの使い所

がわからない。 - (void) reverseGeocodeCoordinate:(CLLocationCoordinate2D) coordinate completionHandler:(GMSReverseGeocodeCallback) handler のメソッドを使って、その緯度・経度に対応する住所を検索してくれるのだが、 [[GMSGeocoder geocoder]reve…

Google Mapsのズームをアニメーションで。

単純にズームしたいだけなら、GMSMapView setCameraUpdateなどを使用する。 GMSCameraUpdate* update = [GMSCameraUpdate zoomBy:17.0f]; [self.map moveCamera:update]; ただ、これだとズームが即座に行われてなんかカッコよくない。 アニメーションしなが…

Launch imageを透過でつくる。

ios

と、アプリのアイコンが引き伸ばされたものも一緒に表示されて、残念な感じになる。 うまい方法はないかと調べてたんだけど、無いみたい。Launch Imageは透過でつくるなと。 参考 http://stackoverflow.com/questions/19067480/appicon-overlays-with-launch…

acts_as_paranoidを抽象クラスに適用すると検索に失敗する

抽象クラスを継承してクラスを作る。継承元の抽象クラスにacts_as_paranoidを適用する。 class Hoge < ActiveRecord::Base self.abstract_class = true acts_as_paranoid ... end class Piyo < Hoge ... def self.search where(...) end end こんな感じの実…

FactoryGirlでfixture_file_uploadが使えない

fixtures/images.rb include ActionDispatch::TestProcess FactoryGirl.define do factory :image do content { fixture_file_upload("/test/sample.jpg","image/jpeg", true) } end end こんな感じで、fixtures/test/sample.jpgを置いてspecを走らせてみた…

UniqueIdentifierを文字列にする

あるテーブルに名前と別テーブルへのキー(guid)を保持している。 で、名前別にその件数をしらべて、それと同時に1件だけの場合はキーも出力するようにしたい。 2件以上の場合はアプリ側では無視するので何が入っていてもとりあえずはOK。 というのがあったけ…

Google Mapsでマーカーをドラッグする

Google Maps SDK for iOSの1.5からマーカーをドラッグできるようになってる。 https://developers.google.com/maps/documentation/ios/releases GMSMarker *marker = [GMSMarker markerWithPosition:coordOPin]; marker.draggable = YES; marker.map = self.…

auto layoutのconstraintをアニメーションで変更したい

iOS

最初はこんなふうに実装してたが、これだと意図したとおりにアニメーションが動いてくれない。 [UIView animateWithDuration:1.0f animations:^{ self.menuButtonHeight.constant = 120; self.menuButtonWidth.constant = 120; }]; これが正解。 self.menuBu…

モデルにメソッドとか属性とかmixinしたい。

railsもruby初心者なのでいろいろ困ってます。 えっと、今やってるアプリケーションは"開始日"と"終了日"を持ってるモデルがたくさんあって、属性の名前も同じ、やってるバリデーションも同じ、やってる検索もだいたい同じ。だけど、今は全部コピペで記述し…

Gridを初期表示でcollapseした場合にセルの編集ができない。

CellEditorプラグインを適用したTreeGridを表示する際にcollapsed:trueを指定すると、 表示後、expandしてもセルの編集ができない。 サンプルソース Ext.define('User', { extend: 'Ext.data.TreeModel', mixins: ["Ext.data.NodeInterface"] fields: [ {nam…

Ext.Ajax.timeoutが効かない

Ajax通信しているところでは30秒でタイムアウトになっていて、大量データを処理する場合にタイムアウトがしばしば発生していた。 とりあえずの処理で、タイムアウトを120秒にしたくて以下のコードを書いた。 Ext.Ajax.timeout= 120 * 1000; が、うまく動かず…

CheckboxModelで行を選択した時にチェックがつくのを抑止する

GridのselTypeにCheckboxModelをつけるとチェックボックス付きのグリッドを作ることができる。 Ext.define 'HogeGrid', { selType: 'checkboxmodel' ... } で、こうするとグリッドにチェックボックスが右端に追加されるけど、デフォルトだとチェックボックス…

MySQLのデータをCSVに吐こうとするとエラーになる。

MySQLで顧客テーブルのデータを全部CSVに抜いてこようとして以下のSQLを実行した。 mysql> select * from customers into outfile "customers.csv" fields terminated by ',' optionally enclosed by '"'; 下記のようなエラーとなった。 ERROR 1045 (28000):…

MongoDBなRailsでrspecしようとするとfixture_file_uploadが・・・。

fixture_file_uploadをrspec内で使用して、ファイルアップロードのテストを行おうとしたが、"file does not exist"って言われて、テストが失敗する。 Failure/Error: @file = fixture_file_upload "/stations/import.csv", "text/csv" RuntimeError: /statio…

DateFieldのフォーマット

DateFieldを使ったフォームで サーバからは"2013-01-01T00:00:00Z"みたいな形式でデータを受け取って 表示は"2013/01/01"の形式で 保存のためにサーバに送信するときは"2013-01-01"の形式で とかいう困った仕様に対応するには以下のように書く ... { xtype: …

グリッドの最終行にスクロールする

テーブルにフォーカスを当てた後で、selectionModel使って、最後のデータを選択状態にすればOK. コントローラーの実装はこんな感じ。 @getHogeGrid().getView().focus(); @getHogeGrid().getSelectionModel().select(@getHogeStore().getRange().length-1);

Mongoid::Paranoiaで論理削除を実装する。

Mongoid::Paranoia使って論理削除ができる class Person include Mongoid::Document include Mongoid::Paranoia end って書くと、persion.destroyしたときに、データは完全には削除されず、論理削除されるようになる。 物理削除は行われずdeleted_atに日付が…

ExtJS+Railsでdeployできない、まだ。

昨日、deployがうまく行かないと悩んでたけど、なんとかなりそうな雰囲気。 precompileでjsが1つのファイルにマージされちゃうとうまく動かないような気がするので、以下のようにしてみた。 app/assets/javascripts/application.jsで 以下の部分を削除して、…

ExtJS+Railsでdeployできない。

ExtJS+RailsなアプリをAWS上にdeployしてみたが、precompileがうまく行ってないのかエラーとなってしまう。 これと同じだと思う。 http://stackoverflow.com/questions/14962016/using-extjs-along-with-the-rails-assets-pipeline assets pipeline使わない…

x-hide-visibilityとx-hide-display

前のエントリでも出てきたCSSのclass x-hide-display とは別に x-hide-visibility というclassもある。 どちらも要素を非表示にするけど、 -displayの方は非表示にされた要素のあった場所に次の要素が詰めて表示。 -visibilityはもともとあった空間を開けて…

Ext.grid.column.Actionの表示/非表示を制御する。

Ext.grid.column.Actionはグリッド上のセルにボタン(アイコン)などを配置して、ユーザーのクリック操作に対応して何らかの処理を行うためのもの。 使うにはgridpanelのcolumnsとかにxtype:'actioncolumn'として記述する。 Ext.define 'example.Grid', { alia…

Ext.ux.Routerの話

ExtJSのMVCではControllerでviewが発火するイベントをlistenして、モデルの適切な処理を呼び出す。 でよいはずだが、Controllerから別のコントローラーを呼び出す時のコードの書き方がいまいち良くわかってない。 遷移元に遷移先のコントローラXXXの定義を書…

通知ウィンドウを出す。

アプリからToast的な通知を出すにはExt.ux.window.Notificationを使う。 http://www.eirik.net/Ext/ux/window/Notification.html { xtype: 'button' handler: ()-> Ext.create('widget.uxNotification', { title: 'お知らせ' position: 'br' # 右下(bottom -…

ボタンに外部サイトのリンクを付ける。

ExtJSのButton(Ext.button.Button)をクリックしたときに別のURLに遷移する(または新しいウィンドウで開く)にはhref、hrefTargetを設定してやればいい。 { xtype:'button' href:'http://google.co.jp/' hrefTarget: '_blank' text: '新しいウィンドウでgoogle…