サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
blog.44uk.net
久々にRailsでのお仕事をすることになったので、リハビリがてら弄っている今日このごろ。 タイトル通り、実際Webアプリを作り始めるとフォームの入力確認画面って必要になります。 安直な実装パターン 今までやったことのある実装パターンはこんな感じ。 users/confirm ルートを作っていったん引き渡すJavaScriptで確認UIを作る お察しの通り、confirmルートを作るのは何か間違っている感じがするし、JSを使わずになんとかならないかとも思って調べたところ、賢い方法を書いている方がいました。 参考サイト 追記:(この方法だけでは、モデルインスタンスの操作に不都合がありましたので、後述したサンプルにて対策をしています) 「Rails 確認画面」で検索するといくつかエントリが引っかかりますが、この実装が一番賢くシンプルだと思います。 ぱっと見ただけだとわかりにくいですが、要するにバ
Redis の GUI クライアントを調査してみました (2021年度) 以前書いた記事からかなりの時間が経ったので、再調査してみました。 元の記事からは、サイトが消えていたり、入手できないものは除外し、最近リリースされたものなどを… 2021年に再調査してみました。上記をご覧ください。以下、古い記事の内容です。 以前はとりあえずで RDM を使っていましたが、少し時間も経って、いろいろ出たのかなと思い調べてみました。 Medis Mac OSX, Windows に対応し、Electron を採用した、美しくて、簡単なクライアント、とのことです。 luin/medis: Medis is a beautiful, easy-to-use Mac database management application for Redis.Medis – GUI Manager for Redis
タイトルのキーワード通り、React を使った Javascript 開発の入門的なのをやってみました。 44uk/demo-browserify-babelify-react-arda 考えたり試行錯誤したことを丁寧に記述してみた(つもり)ため前置きが長いです。ご了承ください。 この記事では、 Browserify の働きと使い方 Baberify を組み合わせる React のコンポーネントを表示してみる Arda でコンポーネントの切り替えをしてみる というのがトピックです。 当方は、仕事上 jQuery で DOM をこねくり回していますが、このままではいけない危機感と、もう一つ上の男になりたく行動した次第です。 この界隈、いろいろググってみましたが、こう!といったベストプラクティスが見えるような見えないような…そんな感じです。 その中で色々考えてみた結果、タイトルのキーワードを選
Canvas などに画像を描画する際に Image オブジェクトを生成して src にパスを渡して、画像が読み込まれたら描画処理を行う、という流れが基本です。 var canvas = document.getElementById("#canvas"); var context = canvas.getContext("2d"); var img = new Image(); img.src = "http://dummyimage.com/64.gif?text=hello"; img.onload = function(){ context.drawImage(img); }
Rails 開発にとっても便利な pow ですが、ちょっと困ったことに、Mac に入っているローカルの Apache への接続を奪ってしまい、もともと php などの開発で割り当てていたバーチャルホストを軒並み奪ってしまい、pow のエラー画面が出てしまいました。 Pow: Zero-configuration Rack server for Mac OS X 調べてみると、apache への接続と hosts の設定を IPv6 で行うと回避できるというのを発見したのですが、いまいち上手く行きませんでした(単純なミスしてるだけだとおもうけれど) つまりのところ、一時的に pow を停止できればいいので、なにかいい方法はないかと思っていたところ、ピッタリな gem がありました。 rodreegez/powder · GitHub powder は pow のヘルパーのような gem です
今更ながら、munin の導入をためしたりしてみているのですが、どうにもモニタリング画面がイケてない…。 テンプレを使って html を吐き出しているんだからそのテンプレを差し替えていい感じにできるんじゃん? でもつくるのは面倒だなーと思っていたらちょうどいいのがありました。 Munstrap jonnymccullagh/munstrap: Alternative Munin 2.x templates based on Twitter Bootstrap Twitter bootstrap 3 を取り入れた munin 用のテンプレートです。 インストールは至ってシンプル。 README 通りに /etc/munin/ にある static/ と templates/ のディレクトリをリポジトリのものと差し替えるだけです。 差し替えて、一度 html の結果の出力されているディレクトリ
トピック的には Rails4 どころか Rails3 でしかも初歩的な話なのですが、久々に触ったらちょっと困ったので備忘録。 Rails には 3 あたりから AssetPipeline という、画像、js、css をよしなに扱ってくれる app/assets/ というディレクトリがあるのですが、css を sass で書いたときに @import を使う場合に書き換えが必要でした。 application.css を .css.sass にリネーム application.css はAssetPipeline が最初に読み込む、ハブ css のようなものですので、ここで @import してあげます。 sass として動作させたいので、拡張子を .css => .css.sass に変更します。これだけでOK。 さらに、 application.css に書いてある特殊なコメントを利用し
ついに intelliJ を購入し、早速持て余しているのですが、HTML + CSS + JS のお仕事がありそうなので(じゃあWebStormでいいじゃんというのは言わないで)少し環境を整えてみました。 使っているのは最高級のIntelliJですが、WebStorm などでもできると思います。 LiveEdit 編集した HTML を動的にブラウザで表示してくれるプラグインです。ブラウザにも拡張を入れる必要があります。 プラグインから LiveEdit を検索して導入したら、IDE Settings の Live Edit の項目を開いて設定を確認します。 Enable live editing: 有効化 Highlight current element in browser: 編集中の要素にハイライトします メニューの View -> Live Edit のチェックも確認します。 E
前回のポストでリンクだけはった friendly_id を導入してみる。 ほぼ README をなぞっただけですが。 Rails3 id でなく文字列をURLにしてアクセスしたい (stringex編) インストール norman / friendly_id いつも通り、Gemfile に追記してインストールします。gem install friendly_id でも良いです。
お仕事で静的HTMLのモックやらページを作ることになったわけですが、モダンな FW に浸かってナヨナヨな私としては、共通部分を分離できないとかありえないわけで。 ヘッダーとかの修正をしたら全部直さなきゃいけないとかもう…。はじめは slim を使ったらできるかと思いましたがパーシャルが使えないので肝心なことが解決できませんでした。 というわけで、レイアウトからパーシャルまで面倒見てくれる rails からビューだけ抜き取ったような、middleman という静的サイトフレームワーク(?)がありました。 Middleman middleman はデフォルトでは erb (Embeded ruby) です。 Middleman: Hand-crafted frontend development
さらに改良したものを用意しましたので、こちらを推奨します。 git の特定のリビジョンからファイルや差分を取り出すスクリプト(SourceTree で使える) 世の中には、差分のファイルだけ用意して上書きコピーなどという実にざんねんな運用で回っている非モダンな開発現場があるわけで…。 いや、もろもろの事情でそうせざる追えない、ということにしておきましょう。 とにかくとあるタスクで作業したファイルだけを取り出して、どこぞへ保存するということを求められることが多々あります。 せっかくgit を使っているのだし、その辺楽にしたいと思って試行錯誤してみました。 他にも、同じようなスクリプトはありましたが、どうもやりたいことにマッチしなかったので今回は作成しました。 SourceTree のカスタムアクション チームでは SourceTree を使っているので、カスタムアクションで取り出せるようなス
メールのデバッグWebサービスを使う機会があったのでいろいろと試していたのですが、なかなか良いサービスを見つけたので紹介します。 debugmail.io ググラビティの低いサービス名ですね。 しかし、機能も画面もシンプルで使いやすくてなかなか良好です。 サインアップはメールアドレスでアカウントを作るか、FacebookアカウントかGoogleアカウントで行うようです。 ログインするとサンプルプロジェクトとメールが最初からあります。 TEXT/HTMLメール、添付ファイルにも対応しています。 Project という単位で接続情報を切ることができるので、複数のプロジェクトで横断的に使うこともできます。 Newボタンからプロジェクトを作ることができます。 Share withはそのメールアドレスのアカウントとプロジェクトを共有します。 他の開発者と同じメールボックスを見ることができます。 Fo
この前作ったスクリプトをより改良しました。 SourceTree で指定のリビジョン間の差分ファイルだけ取り出したい ターミナルでも使えますが、SourceTree のカスタムアクションで使うほうがわかりやすいです。 こんな感じの機能が git export みたいな感じで実装されてればよいのですが…。 このリポジトリをクローンしてください。必要なのはスクリプトだけなので、アーカイブでもファイルだけでもいいです。 44uk/git-export-tools: export files from git repository 任意の場所に保存したら、SourceTree のカスタムアクションに登録します。 引数としてハッシュが必要なので $SHA を Parameters に画像のようにセットします。 後は、リビジョン一覧から取り出したいリビジョンを選択して、アクションを呼び出してください。
この先、Webサイト+ハイブリッドアプリ公開が主流になるのではないかと予想して、WebView の使い方を勉強してみる。 ハイブリッドアプリとは、スマートフォン向けのアプリケーションだが、コンテンツ自体は通常のWebサイトを表示するようなアプリのことを指す(と思ってる) 8割ネイティブアプリ、2割がWebviewでサイト表示している、またはその逆でほとんどWebviewだけの外側だけのアプリなど、程度によりけりなんだろうけど、割合としてWebViewでサイトをレンダリングしているコンテンツが多くを占める場合はハイブリッドアプリと呼びそう。 ちなみに今回参考にするのは、Android公式ページのチュートリアル。 Building Web Apps in WebView | Android Developers Building Web Apps in WebView 和訳 クライアントアプリ
いつも通りに bundle install を叩いてみたところ、見慣れぬエラーが…。 Gem::RemoteFetcher::FetchError: Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/gems/rmagick-2.13.1.gem) # rmagick 入れようとしたんです あんまり穏やかじゃない…。 原因 どうやら rubygems の tokyo サーバ(http://tokyo-m.rubygems.org/)が落ちていたようで、ブラウザで rubygem へ行ってダウンロードしようとしても、やはり繋がりませんでした。 多分IPによって、サーバの振り分けをしていると思われるので、tor(外国のプロキシなら多分なんでも)経由で接続してみたところ、ダウンロードできました。 一
コマンドの最後に & を付けて、バックグラウンド処理へまわす $! で直前のバックグラウンド処理の pid を取得して変数へ保持 wait $hoe で指定した pid の処理の終了を待つ バックグラウンド処理はおなじみ hoe & で出来る。 この pid を取るには、直後で $! にアクセスすることで参照できる。 wait コマンドは、指定した pid のプロセスが終了するまで待ってくれる。 サンプル #!/bin/sh echo "[info] run multiple background proc." echo "[info] -----------------------------" _dummy_proc(){ sleep $1 ret=`expr $1 % 2` exit $ret } _dummy_proc 2 & pid1=$! _dummy_proc 3 & pid
大抵の場合、hoge/:id のような URL でアクセスし、Hoge.find(params[:id]) レコードを探すが、id ではなく、文字列でアクセス出来る様にする方法。 rsl / stringex norman / friendly_id この二つが、メジャーな gem そうでした。今回は stringex を導入して見ました。 適当なプロジェクトを作成 導入デモ用に作るだけです。 mkdir demo_stringex cd demo_stringex rails new . rails g scaffold cat name:string sex:integer breed:string url:string rake db:migrate
githubにはgithub pagesという、gh-pagesという名前のブランチにコミットされたファイルをプロジェクトの静的ページとしてhttp://{username}.github.com/というアドレスで公開できるすんばらしい機能があります。 GitHub Pages Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live. gh-pagesというブランチをコミットすれば表示されるのですが、管理画面からボタン1つでテンプレート込のCoolなページを作成してくれます。 そして生成されたgh-pagesというブランチはmasterからの派生ではない、独立したブランチとして生成されていました。 普
0からレコード数未満の整数をランダムに作り、それで適当にオフセットする。 シンプルで特定のDBにも依存してないので良さそう。同じ考え方でほかのORMでも通用するはず。 RDBの関数を呼ぶ方法もあるけど、それだとデータベースに依存しちゃうのでいまいちです。 (SQLITE は RANDOM() 、MySQL は RAND() という関数はあるが、関数名が異なる) 全件取って、ランダムに一件取り出す、のはダサいしパフォーマンスも悪そう。
asset pipeline は Rails3.1 から標準で実装されている、app/assets 以下にスタイルシートやスクリプト、画像を配置すると、それらを一つのファイルに結合して、出力してくれる機能。 Ruby on Rails Guides: Asset Pipeline 基本的にはこの中のディレクトリに配置すれば勝手に読み込んで出力してくれるが、ちょっとカスタムしてやりたいことがあったので備忘録&共有。 jQuery Mobile を導入したい スマートフォンレイアウトと切替を行いたいので、JPMobile を導入してビュー切替をまかせます。 jQuery Mobile は gem があったのでそれを使います jpmobile – A Rails plugin for Japanese mobile-phones dbloete / jquery_mobile-rails 今回は
git で git rebase -i master とかやって、コメントを編集後に ZZ や :wq で保存すると、
追記: Google謹製 Android Studio が発表されたので、こちらを使う方が賢いかもしれません。 Getting Started with Android Studio InteliJ がベースなので操作感は同じで、Android 開発に特化したウィザートなんかも実装されています。 それでもよろしければ続きをどうぞ… 最近 IntelliJ というIDEがナウなヤングにバカうけらしいのですが、これが結構お高い($199… いや良心的価格)のです。 IntelliJ IDEA :: Best Java IDE to do more high-quality code in less time サムライズム #Samuraism » 製品 » JetBrains » IntelliJ IDEA 対応言語は幅広く、十分お釣りが返るくらいの価値はありそうですが、やはり躊躇してしまう。
ログイン/ログアウト後などの遷移先をカスタマイズする場合は、各コントローラーで以下のメソッドで、移動させたいパスを返すようにオーバーライドします。 Devise::*sController を継承したコントローラーを設置します。 以下、オーバーライド用コントローラーは app/controller/users/*_controller.rb に設置したものとします。 もっとあるのかと期待していたけど、案外少ない…。見落としがあるのかな…?
たとえば API キーとか、基本的には固定だけど調整で時々変えたい定数みたいなものを定義したいことはよくあると思いますが、それに便利な gem のメモ。 特に目新しいものでもなく、割と定番そうなものですが。 Settingslogic RailsConfig Settingslogic gem をインストールしたら、以下のようにクラスを定義します。 場所は読み込まれさえすればどこでもよいですが、config/initializes/ がよいかもしれません。 class Settings < Settingslogic source "#{Rails.root}/config/application.yml" namespace Rails.env end source に渡した yaml を読み込み、設定値として扱ってくれます。上記は README の抜粋ですが、必要があれば任意のパ
2.2系では bundle package が廃止されているようです。 gem パッケージをがっつりインストールしてくれる bundler はとても便利ですが、オフライン環境に何もできなくなってしまい、どうにもなりません。 限られたネットワーク内で rails アプリなどをセットアップしたい場合、あらかじめ gem をダウンロードして、ローカルインストールしたいです。 rails での利用を前提に考えましたが、bundler を使う限り同じだと思います。
ちょっとしたrubyの自作クラスの時に、インスタンスの初期化で変数を渡したいとき、ActiveRecord っぽくやれるといろいろ手抜きができていいなと思ったので。 スニペット ActiveRecordとActiveSupportを参考に。 class Person # 任意の属性プロパティ attr_accessor :name, :job def initialize(attributes = nil) attributes.each do |k, v| send("#{k.to_s}=", v) if respond_to?("#{k.to_s}=") end if attributes yield self if block_given? end end new で渡したいだけなのでいろいろ省いて最小限に。 使い方 プロパティを初期化時に渡すのが目的ですので、事前にattr_acc
Android カメラを起動して、ビューに表示してみる から応用というか、コードの付け足しで、カメラで写真を撮るか、ギャラリーから選択するのか、ダイアログを表示して、それぞれ内臓カメラと内臓ギャラリーアプリを利用してみました。 以下のコード中に特に明示しないプロパティ変数が出てきますが、前記事をベースに付け足したことを前提としているので、Android カメラを起動して、ビューに表示してみる のコードも同時に参考にして頂ければ幸いです。 選択ダイアログ表示 AlertDialog に選択肢を表示して、タップされた選択肢で呼び出しを切り分けました。 public void picture(View v){ //選択項目を準備する。 String[] str_items = {"カメラで撮影", "ギャラリーから選択", "キャンセル"}; new AlertDialog.Builder(t
次のページ
このページを最初にブックマークしてみませんか?
『NizLog | Planned Happenstance Theory.』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く