タグ

ブックマーク / xoyip.hatenablog.com (71)

  • Rails: form_forでの数値用のコントロールとvalidates numericality - ぴよログ

    form_forで何が使えるのかって全然把握していなかったのですが、number_fieldってのがあるんですね。 Hamlで書くとこういう感じに。 = form_for @my_model, method: :put, role:"form", remote:true, class:"form-horizontal" do |f| .form-group = f.label :my_value, "値", class:"control-label col-sm-2" .col-sm-2 = f.number_field :my_value, class:"form-control", required:true, min:"0" .col-sm-2 = f.submit "設定", class:"form-control btn btn-default" ブラウザによっては数値を操作する

  • 自炊してできたPDFファイルの文字が薄くて読みづらい状態を解消するには - ぴよログ

    自炊したPDFが薄くて読みづらいことが多々あります。スキャナの設定によったりもするみたいなんですが、業者に頼んだものとかだとどうしようもないとう。そんなときはちょっと面倒ですが画像処理をかけてあげることで見やすいものにすることができます。 全体の流れはこんな感じ。 PDFの各ページを画像に変換する 各画像の裏写りや紙やけを解消 各画像の二値化とファイルサイズ削減 すべての画像を結合しPDF化 下準備 Xpdfに付属するpdfimagesというツールと、ImageMagickのmogrify(convert)を使用します。どちらもHomebrewでインストールできるので入れておきます。 $ brew install imagemagick $ brew install xpdf PDFの各ページを画像に変換する 対象のPDFファイルと出力ファイル名を指定して実行します。 $ pdfima

    自炊してできたPDFファイルの文字が薄くて読みづらい状態を解消するには - ぴよログ
    xoyip
    xoyip 2014/08/06
  • OpenURIでhttpからhttpsのリダイレクトを一時的に許すgem作った - ぴよログ

    RubyではOpenURIを使うとウェブページを開くことができる。OpenURIでは引数に与えたURIのプロトコルがHTTPリダイレクト先がHTTPSの場合、エラーが発生するという作りになっている。 ところで、HTTPからHTTPSへのリダイレクトは意外とたくさんある。 例えばGoogleで短縮URL。 http://goo.gl/84556T リダイレクト先はここ。 https://github.com/xoyip/open_uri_allow_redirect % irb irb(main):001:0> require "open-uri" => true irb(main):002:0> open "http://goo.gl/84556T" RuntimeError: redirection forbidden: http://goo.gl/84556T -> https://g

    OpenURIでhttpからhttpsのリダイレクトを一時的に許すgem作った - ぴよログ
    xoyip
    xoyip 2014/08/02
  • Grapeを使ったAPI実装でのネストやパラメータ - ぴよログ

    Grapeをもう少し使ってみました。関連記事は↓ RailsのGrapeとJbuilderでAPI開発 - PILOG形 # app/api/api.rb resource :items do get '/', jbuilder:'items' do @items = Item.all end end パラメータを受け取る 全てのItemではなく、idに該当するItemだけが欲しいとき。 resource :items do get '/:id', jbuilder:'item' do @item = Item.find_by_id(params[:id]) end end /api/items/1というエンドポイントでid=1のItemが得られます。 ネストする Item Entry というモデルがあって、Item has many Entriesな関連を持っている場合はリソースを

    Grapeを使ったAPI実装でのネストやパラメータ - ぴよログ
  • システムのzshにcdrが無かったのでバージョンアップした - ぴよログ

    pecoを入れてcdを便利するぞ!って意気込んでたら、使っていたzshが古くてcdrが無いって怒られてテンションが下がったうえ、しばらくその理由に気がつかなくてストレス溜まったのでメモしておく。 % cdr zsh: command not found: cdr ちなみにシステムに入っているzshのバージョンは5.0.2だった。 % /bin/zsh --version zsh 5.0.2 (x86_64-apple-darwin13.0) 2014年7月23日現在最新は5.0.5で、cdrも5.0.2以降で標準に入ったらしい。 zsh / Code / [35176b] /ChangeLog そういうわけで、Homebrewで最新バージョンをいれましょー。 まずインストール。 % brew install --disable-etcdir zsh そしたら/etc/shellsを編集。

    システムのzshにcdrが無かったのでバージョンアップした - ぴよログ
    xoyip
    xoyip 2014/07/25
  • 商用利用可能な地図配布サイト見つけた - ぴよログ

    地理とか地図に関連する勉強とか、地図データを使った何かを作るときに役に立つサイトを見つけた。 d-maps.com : free maps, free blank maps, free outline maps, free base maps 世界・国・州や県などのレベルで、白地図や境界線、川や主要道路の有無などいろいろなパターンの地図が用意されていて、以下の項目を守れば商用利用もできるみたい。 The exact URL where the original map comes from must be mentioned The number of used maps is limited to 10 for a publication (Web, DVD, book…) The number of used maps is unlimited with BeGraphic GIS u

    商用利用可能な地図配布サイト見つけた - ぴよログ
    xoyip
    xoyip 2014/07/25
  • railsのサブコマンドが使えなくなる問題の原因はbinstubs - ぴよログ

    半年ほど前ですがアプリケーションをデプロイした先でコンソールを起動できない問題に遭遇しました。よくわからなかったのでQA@ITで質問を投げたのですが、結局解決には至らず。 AWSにデプロイしたRailsアプリケーションのコンソールを起動したいがUsageが出てしまう - QA@IT その代わり同じような機能を実現するスクリプトを書いて回避したというところで僕としてはこの問題をスルーしていました。 デプロイ先のサーバーでrails consoleできないときの対応とCapistranoからの使い方 - PILOG その原因が今更ながらわかったのでメモしておきます。 Rails4以降+binstubsで起こる問題 bundlerにbinstubsという機能があります。 $ bundle install --binstubs とやると、実行ファイル系のgemを実行するのに便利なスクリプトを./b

    railsのサブコマンドが使えなくなる問題の原因はbinstubs - ぴよログ
    xoyip
    xoyip 2014/07/25
  • iPhoneのPodcastアプリOvercastを使ってみた - ぴよログ

    ここ最近Podcast当に重宝している。 僕が住んでいる浜松市は車社会なので移動中の読書ができない。家で仕事をする日が多いからものの、いざ出勤するとなると車で片道30分以上の時間をかけることになるから、1時間以上なにもできない時間を作ってしまうことになる。 そういうことから音声コンテンツがとても大事なんだけど、ラジオは聴ける内容が時間帯に依存するから聴いたときの満足度が安定しない。そこでのPodcast。 メインで聴いているのは、Rebuild - Podcast by Tatsuhiko Miyagawaで、勝手にまとめとか書いてる→Rebuild.fmを勝手に振り返る - PILOG 他には Latest Episodes – backspace.fm モンハンラジオ モンハン部放送局2nd | インターネットラジオステーション<音泉> あたりを聴いてる。モンハンラジオ…。 Ove

    iPhoneのPodcastアプリOvercastを使ってみた - ぴよログ
  • iOS用グラフ描画ライブラリCorePlot超入門 - ぴよログ

    iOS(とかOSX)でグラフを書けるCorePlotいいよー。オプションとかいろいろあって煩雑だけどそこはさておいて簡潔にまとめてみようと思います。 まずは導入編 CocoaPods使いましょう。 pod 'CorePlot' からの$ pod installでいけます。 散布図、折れ線グラフ サンプルとしてグラフは2つ書きました。Aがオプションをできるだけ省略したほう、Bがオプションをいくつか付けてみたほうです。配列に20個のランダムな整数値を入れ、配列のインデックスを横軸、その値を縦軸にとった折れ線のグラフを描画しました。 ちゃんと使うにはグラフ用のUIViewクラスを作ってラップしたほうがいいと思いますが、今回はそれも面倒なのでViewControllerに直接書きます! 散布図を載せたいViewControllerを作ってヘッダーにはプロトコルの指定とプロット用データ置き場を書き加

    iOS用グラフ描画ライブラリCorePlot超入門 - ぴよログ
  • form_forのf.selectのhtml_options - ぴよログ

    Railsのフォームで使うform_for。レイアウト調整のために各種コントロールにもclassを設定しているのに、あるフォームのドロップダウンリストにスタイルが適用されていないことに気がついた。なんだろうと思ってリファレンスを見てみると、f.selectのシグネチャはこんなんだった。 select(method, choices = nil, options = {}, html_options = {}, &block) ちなみにfはActionView::Helpers::FormBuilderというものらしい。 で、僕が書いていたフォームはこうなっていた(f.selectの部分を抜粋)。 = form_for (...) do |f| .form-group = f.label :my_option, "選択肢" = f.select :my_option, ["hoge", "f

    form_forのf.selectのhtml_options - ぴよログ
    xoyip
    xoyip 2014/07/19
  • 久しぶりに使ったのでWindows8セットアップまとめ - ぴよログ

    1年半ぶりに仕事Windowsマシンを使うことになったんだけど、以前使っていたころの情報がほとんど残っていなくてセットアップにすごく時間がかかった。セットアップにも時間はかかったけど、そもそも何を入れるべきか、何があったほうがいいのかなんてことを思い出すのにすごく苦労した。 そこでメモも兼ねてWindows環境のセットアップについて書き残しておこうと思う。 必需品系 Visual Studio / Office 開発に使ったりドキュメントいじりに使ったりするので。 NTEmacs WindowsEmacs使うならコレ。設定ファイルなどはGit管理してある上、init-loaderで環境毎の差異を吸収するようにしているので、このバイナリさえダウンロードしてしまえばほとんど設定もなくすぐに使える。 NTEmacs Cygwin コマンドでできることはなるべくコマンドでやりたいので。Wind

    久しぶりに使ったのでWindows8セットアップまとめ - ぴよログ
  • iPhone用タブ付ページめくりコントロール - ぴよログ

    iOSには標準でページめくり用のコンポーネントが用意されています。iPhoneのホーム画面のようにページコントロールがあって、左右スワイプでページめくりができるアレです。 この機能を実装するためにはUIPageViewControllerなどを使います。ところが実装がめちゃくちゃ面倒くさいんですよ。以前作ったときはいろいろ調べてみつけた英語の記事を参考に実装したんだけど、もう全然覚えていません。リンクだけは残してあったりして。 How To Create UIPageViewController in Storyboard | iOS Programming で、嫌気がさしてCocoaControlsを漁っていたらページコントロール系のPodを見つけたので試してみました。実装方法は標準のUIPageViewControllerに近いところもあるのですが、わりといい感じかもしれないのでレポり

    xoyip
    xoyip 2014/07/14
  • Railsのrenderでdefined?による分岐 - ぴよログ

    Railsでrender partialでいろいろなViewが使いまわしているViewがあるとき。ある1つのViewのときだけ見た目をちょっと変えるってことをやろうとしたときに、defined?を使うと便利かもなーというお話。 前提 users/A.html.haml users/B.html.haml users/C.html.haml users/D.html.haml users/_shared.html.haml 上のようなテンプレがあって、A~Dの中身は擬似的に書くとそれぞれこんな感じになっているとする。要はsharedをrenderしている。 -# A~D %h1 A~C固有のタイトル %div A~C固有の情報 = render partial: "shared" _shared.html.hamlの中身はこんな感じで、Dのときだけは追加の情報を出したいとする。 %h1 共有

    Railsのrenderでdefined?による分岐 - ぴよログ
    xoyip
    xoyip 2014/07/14
  • CarrierWave使用モデルのシードデータを用意する - ぴよログ

    画像アップロード機能を提供するCarrierWaveというgemを使ったRailsアプリケーションのテストについて以前書いた。 RSpecでファイルアップロードのテスト - PILOG 今日は同じくCarrierWaveに関連して、アップロードする画像を持つようなモデルのシードデータをどのように作成するかという話をする。 seed.rb Railsで初期データ作るならdb/seeds.rbに色々書くと思う。ここに書いたコードはRakeタスクから呼び出せる。RailsをロードしたあとなのでRailsのモデルを直に操作する感じでデータを登録していくことができる。 # db/seeds.rb Product.create(name: "product name", price: 200) Product.create(name: "product2 name", price: 1000) ...

    CarrierWave使用モデルのシードデータを用意する - ぴよログ
  • iOSで説明画面を表示するCocoaPodsライブラリ - ぴよログ

    起動時に領域に対してちょっとした説明をしてくれるアプリをちょいちょい見かけるが、そんな機能を簡単に実装するためのiOSライブラリを見つけた。 workshirt/WSCoachMarksView どんなものかはまずデモを見てもらえばわかるはず。 デモ 導入と実装方法 CocoaPodsに対応しているのでいつものようにインストールする。 # Podfile pod 'WSCoachMarksView' % pod install 実装のサンプルとして、ボタンが3つあるこんな画面に対して上から順に説明を表示することを考える。 それぞれのボタンはViewControllerクラスに関連づけてある。 #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBO

    xoyip
    xoyip 2014/07/09
  • マークダウンに見出し番号をつけるRuby Gem書いた - ぴよログ

    マークダウンでメモを書いたりブログを書いたりしていたけど、kobito-cliでPDF化すると見た目もなかなか良いということもあって、そこそこしっかりしたドキュメントもKobitoでマークダウンするのが最近自分の中での流行りになってきた。 ただそこそこ量がある報告書っぽい文書となると見出し番号があったほうがわかりやすいというのが正直なところ。見出し番号はマークダウン自身の仕様ではカバーされていない(はず)なので、マークダウンを使うのであれば別の方法と組み合わせる必要がある。 pandoc CSS 手動で番号をつける 自動で番号をつける pandocを使っていたこともあったが、使い勝手がそんなに良くない(お手軽じゃない)し、見た目もいまいちになりがちなのでトータルでKobitoに劣る。 CSSを使うという手は十分にありえる。kobito-cliからブラウザで開いたときに指定されているCSS

    マークダウンに見出し番号をつけるRuby Gem書いた - ぴよログ
    xoyip
    xoyip 2014/07/09
  • 忘れがちなXcodeの環境変数はコマンドで一覧できる - ぴよログ

    XcodeでHeader Search PathやLibrary Search Pathを設定するときには環境変数を使ってマシンや人ごとの差を吸収すべきなんですが、環境変数名が覚えにくいので何度も調べる羽目になります。 そんなとき便利なので、xcodebuildコマンドを使って環境変数一覧を表示させてしまう方法です。これを使うと全てを一覧できるので、あとは適当に使えそうなものを探すだけです。 というか、300行ぐらい出力されるので、こんなにあったのって感じで驚きますね。 $ xcodebuild -project MyApp.xcodeproj -target "MyApp" -showBuildSettings このコマンドを覚えておくのもしんどいのでシェルの関数として定義してしまうと楽です。 # .bashrc または .bash_profile xcodeenv() { xcodeb

    忘れがちなXcodeの環境変数はコマンドで一覧できる - ぴよログ
    xoyip
    xoyip 2014/07/09
  • XMLとRubyのHashを相互変換する方法 - ぴよログ

    XMLからHashへの変換とその逆変換を考えます。ここでは2つの方法を取り上げますが、結論としてはXmlSimpleを使うほうがよさそうです。 サンプルXML XMLのサンプルとしてはてなブログのAPIで返ってくるXMLを使います。入っている値は実際とは異なっていますがフォーマットは同じです。 1. ActiveSupportを使う Railsに一緒に入っているActiveSupportを使ってXML文字列をRubyのHashに変換することができるようになります。 require "active_support/core_ext/hash/conversions"により Hash.from_xml Hash#to_xml これらのメソッドが使えるようになります。 require "active_support/core_ext/hash/conversions" xml = %Q{ <?x

    XMLとRubyのHashを相互変換する方法 - ぴよログ
    xoyip
    xoyip 2014/07/09
  • MacやWindowsでの行動ログ・作業ログをトラッキングするRescueTime - ぴよログ

    Rescue Timeというサービスを利用するとMacでどんなウィンドウを開いていてどんなページを見ていたのか、その時間はどのぐらいだったのかを記録できます。 MacWindowsLinux、果てはAndroidまで対応しているようです。僕はMacで使っています。 RescueTime : Time management software for staying productive and happy in the modern workplace RescueTimeにサインアップしてMacにクライアントソフトをインストールします。このクライアントソフトが常駐しながらアクティブなアプリケーションの情報などをRescueTimeのサーバーに送っているようです。 使うとどうなるか RescueTimeのダッシュボードはいくつかのチャートからなります。 これは2014年2月の僕のトラッキ

    MacやWindowsでの行動ログ・作業ログをトラッキングするRescueTime - ぴよログ
    xoyip
    xoyip 2014/07/09
  • Railsでマイグレーションを介さずにサーバーでDBを変更してしまったとき - ぴよログ

    番環境で動いているRailsアプリケーションのDBにおいて、問題に緊急対応するために直接ALTER_TABLEしてしまったようなとき、Railsアプリケーション側ではどんな対応をすればいいか、というお話。 レアケースかもしれないし意外とあるかもしれない。 僕は実際に1年ほど前に開発していたRSSリーダーのときに経験したことがある。ある日の夜中、サービスにアクセスが集中してデータベースのレスポンスがめちゃくちゃ悪くなったとき、僕は普通に寝ていた。いや、それまでの対応で力尽きていたと言っていい。 サーバーがうんともすんとも言わないそんな状況の中、ヘルプで入ってくれている人がスキーマを調べてインデックスが足りない(!)ということに気がついたらしい。翌朝起きてみると「とりあえず直接インデックス追加してなんとかしました」という連絡が来ていた。 インデックス足りないとか!しょぼすぎるミスなのはさてお

    Railsでマイグレーションを介さずにサーバーでDBを変更してしまったとき - ぴよログ
    xoyip
    xoyip 2014/07/08