タグ

ブックマーク / zariganitosh.hatenablog.jp (14)

  • URL書式のチェックをもうちょっと考えてみる。 - ザリガニが見ていた...。

    今のURLのチェックは下記の1行で行っているが、http:、https:、ftp:で始まっていれば、その後は、ほぼ、どんな文字が来てもOKで通ってしまう。今になってそれがちょっと気になってきたので、見直してみた。 validates_format_of :url, :with => URI.regexp(['http', 'https', 'ftp']) 生成される正規表現については意味を追いきれないので、何がOKで、何がNGなのかは確認していないが...。 そもそも、rubyのURIライブラリの存在を知った時には、こんな風にメソッド定義しておくと、簡単にHTTPの書式チェックが出来ると知ったことからだ。 URIのパターンマッチとURIクラスより、タイムリーな話題に感謝です。 def http?(str) begin uri = URI.parse(str) rescue URI::Inv

    URL書式のチェックをもうちょっと考えてみる。 - ザリガニが見ていた...。
    suginoy
    suginoy 2017/11/03
    "URI.parse()の代わりに、URI()が使える"
  • render :partialカウンター、オブジェクト - ザリガニが見ていた...。

    Railsでページを表示する時に必ずお世話になるrenderメソッド。そんな一番身近とも言えるrenderメソッドなのに、昨日初めて知った機能がある。小さな機能なのだが、今まで知らずに使っていて大分損をした気分だ...。 覚えたこと 以下のようなコード例で考えて... render :partialに:collectionオプションが設定されていると... パーシャルファイル(_list_item.rhtml)のファイル名*1のローカル変数(list_item)に@slipsの内容を代入して、描画処理を実行する。(知っていた。) さらにローカル変数list_item_counter*2には0から始まるインデックス値(0, 1, 2, 3...)*3が代入されている!(知らなかった...。) Rails 2.1.0では1から始まるインデックス値(1, 2, 3, 4...)に変更になった。

    render :partialカウンター、オブジェクト - ザリガニが見ていた...。
    suginoy
    suginoy 2015/08/21
    "ローカル変数list_item_counter*2には0から始まるインデックス値(0, 1, 2, 3...)*3が代入されている!"
  • radikoをキーワードで予約する - ザリガニが見ていた...。

    timerコマンドを使ってradikoやらじる★らじるを自由に録音できるようになったのだけど、予約するためには時間を指定しなければならない。時間を指定するということは、予約するためには必須の要因なのかもしれないけど、その方法で予約できるのは、自分が過去に視聴したり、番組表を見て興味を持った内容に限られてしまう...。 このインターネット時代、番組表はWebで配信されている。そして当然のようにradikoの番組表も簡単にダウンロードすることができる。ならば、ダウンロードした番組表から興味のあるキーワード検索して、未知の番組を発見できると嬉しくなりそう。やってみた。 radiko API 参考ページ:radikomemo - foltia - Trac radikoの情報は、以下のようにURLを指定することで取得できるのであった。 放送局別の番組表 J-WAVEの今日の番組 http://ra

    radikoをキーワードで予約する - ザリガニが見ていた...。
    suginoy
    suginoy 2015/07/08
  • スクリーンショットが2倍サイズで表示されてしまう理由 - ザリガニが見ていた...。

    前回からの続き。 Retina環境でスクリーンショットを撮影すると、撮影時の2倍サイズのピクセル数の画像として保存される。 例えば、command-shift-4と押して、縦横500サイズで撮影すると、縦横1000pxの画像になる。 その縦横1000pxの画像をプレビュー.appで開くと、画面上は縦横500サイズの元の大きさとなる。 command-Iで画像情報を確認してみると、イメージのDPI=144ピクセル/インチとなっている。 Retina以前は72ピクセル/インチだったので、ちょうど縦横2倍の解像度になっているのだ。 では、144ピクセル/インチ・縦横1000pxの画像はすべて500サイズで表示されるかというと、そうではない。 プレビュー.appで「書き出す...」や「別名で保存...」を実行すると、144ピクセル/インチでありながら、画面上は縦横1000サイズの2倍の大きさとなる

    スクリーンショットが2倍サイズで表示されてしまう理由 - ザリガニが見ていた...。
    suginoy
    suginoy 2015/06/14
  • そのEAには何が書かれているのか? - ザリガニが見ていた...。

    EAとは、Extended Attributes=拡張属性。頭文字を拾ってEAと略されるのだ。普段はほとんど目立たないEAであるが、たかが付属情報と思ってはいけない。今時のOSXの便利な機能は、すべてEAによって支えられている。以前調べた、Time MachineやSpotlight、HFS+の圧縮機能が、それを物語っている。 Time Machineは過去をどのように記憶しているのか? - ザリガニが見ていた...。 圧縮されているとは気付けない圧縮ファイルを観察する - ザリガニが見ていた...。 EAなくして、便利なOSXは存在できないのだ。 覗き見る方法 例えば、lsコマンドでテキストクリッピングファイル*1をリスト表示してみると、以下のように表示される。 $ ls -l ~/Desktop/sample.textClipping −rw-r--r--@ 1 zari staff

    そのEAには何が書かれているのか? - ザリガニが見ていた...。
    suginoy
    suginoy 2015/06/14
  • 裏と表のジョブを使い分ける - ザリガニが見ていた...。

    かつて... 今どきのターミナルはタブやウィンドウをいくつでも開けるから、 フォアグラウンドでコマンド実行中に何か別のことがしたくなったら、新たにタブを開いて、そこでコマンドを実行すれば十分用が足りる。 バックグラウンドでコマンドを実行できることも知っているけど、体系的に理解してないのでうっかりミスを繰り返した。 うっかりバックグラウンドで処理していることを忘れていた...。 処理中だと思っていたら停止していた...。 終了したと思っていたら停止していた...。 停止中のプロセスを再開するにはどうする? やっぱり終了したいんだけど、どうすればいいのか? そんなうっかりを繰り返すうちに、見えないバックグラウンドで実行して悩むくらいなら、常に状態が見えるフォアグラウンドにしておいた方が益し。 好きなだけタブを開いてしまえ、という方針になってしまった。 しかし... 何かの補佐で一時的にバックグ

    裏と表のジョブを使い分ける - ザリガニが見ていた...。
    suginoy
    suginoy 2014/12/29
  • 楽観的ロックの使い方 - ザリガニが見ていた...。

    webアプリケーションでは、二人以上のユーザーが同じデータを編集中という状況が発生する。その場合、特に対策をとらなければ、最後に送信ボタンを押したユーザーのデータで更新されるはず。しかし、これではお互いの意思を確認できないまま、結果として、先に登録したユーザーのデータが、知らないうちに破棄されてしまうことになるので、あまり良くない。そこで、編集する時に何らかの制御をかける。その制御方法に、以下の二つがある。 悲観的ロック(データ編集を開始した時にロック) 既に誰かが編集中であれば、他の人はそのデータの編集ページを開くことが出来ないようにする。 楽観的ロック(データ更新した時にロック) 編集ページは複数ユーザーで同時に開くことが出来るが、途中で誰かが更新した場合は、その後の更新が制限される。 悲観的ロックが安全確実な気がするが、不要なロックが長時間続いてしまう可能性もあり、厳密過ぎるロックは

    楽観的ロックの使い方 - ザリガニが見ていた...。
    suginoy
    suginoy 2014/02/13
    "DBの値と同じならlock_versionに1加算して保存、正常終了。違っていればActiveRecord::StaleObjectErrorが発生する"
  • 改良中...明細行を挿入、削除、コピーしたい! - ザリガニが見ていた...。

    伝票入力していると、ユーザーは必ず明細行の挿入、削除、コピーをしたくなるものだ。ほとんど内容が同じ行を繰り返し入力する気にはなれないし、入力忘れがあったらその位置に挿入したくなるし、不要な行は削除したくなる。自然な要望だ。そもそもコンピューターを使えば挿入、削除、コピーが簡単にできることがウリのはず。 ところが、いざその機能を実装しようとすると、結構手強い。既にデータベースに登録されたデータを扱う場合には、Railsにはacts_as_listという拡張機能がある。それが利用できれば手軽に実現できそうなのだ。しかし、今回は以下のような状況で、果たして利用できるのか? 伝票入力中のデータはまだデータベスに保存されていない。 編集中の伝票には、未入力の行もある。未入力の行もその状態を保持して、挿入、削除、コピーできるようにしたい。 そしてデータベースに保存する時は、入力されている行だけ保存する

    改良中...明細行を挿入、削除、コピーしたい! - ザリガニが見ていた...。
  • 1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。

    今更ながら基的なことかもしれないが(自分では今も悩み続けている)、業務システムで入力する部分を作っていると、しばしば2つ以上のモデルを同時に保存したい状況に陥る。例えば、伝票を入力する場合であれば、伝票は複数の明細行を持っているので、共通情報を保持する伝票(Slip)クラスと、明細行情報を保持する明細行(Journal)クラスに分けている。そのようなシステムで、Submitボタンを押した後の処理は、模範的にはどのようにすべきなのだろうか? 保存する時には、以下の仕様を満たしておきたい。 class Slip {has_many :journals}; class Journal {belongs_to :slip}; な関連である。 検証エラーが発生したら... 保存は一切しない。 すべてのモデルの検証エラー情報を表示する。 Journalモデルの件数は可変である。 悩みのポイントは、S

    1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。
  • ターミナルから画面共有を有効にする - ザリガニが見ていた...。

    画面共有はとっても便利なんだが、たまに、接続したいマシンの「画面共有」のチェックを入れ忘れていたりして、がっくりする...。もし、sshで接続して、コマンドから画面共有の有効・無効を切り換えることができれば、その瞬間、幸せな人生を感じることが出来そう。...なんて考えていたら、そんな技が紹介されていた。早速、試してみる。 10.5: Start screen sharing remotely in Terminal - Mac OS X Hints 作業環境 MacBook OSX 10.6.3 コマンドで画面共有を入・切 拙い英語の理解力で読み取ると、その技は、以下のようなコマンドになる。(上段:有効にする/下段:無効にする) # OSX 10.5 sudo echo -n enabled > /Library/Preferences/com.apple.ScreenSharing.la

    ターミナルから画面共有を有効にする - ザリガニが見ていた...。
    suginoy
    suginoy 2011/06/20
  • メモリを解放してスワップ発生を抑える方法 - ザリガニが見ていた...。

    OSX 10.6 Snow Leopardは、極めて安定した、信頼性の高い、快適なOSとなった。但し、ハードディスクから起動する環境において、その快適さを保つためたった一つ気を付けておくべきことがある。それは、スワップ使用領域の増加を極力抑えること。 スワップへのアクセスが頻繁に発生している時は、あのレインボーカーソルがぐるぐる回っている時である。どうしようもない操作レスポンスの低下に悩まされる。そんな状態に極力陥らないように、使っていないメモリを素早く解放する方法を模索してみた。 その1 フォルダ容量を計算する フォルダ容量を計算する過程でメモリが解放されることがある。それを利用した方法は、3つある。どれも仕組みは同じなので、どれか一つの方法を実行するだけで十分。 Finderを利用する方法 Finderで起動ディスクのルートを開いて、リスト表示にする。(command-2) 表示オプシ

    メモリを解放してスワップ発生を抑える方法 - ザリガニが見ていた...。
    suginoy
    suginoy 2011/06/15
  • radikoのflvから取り出したAACはなぜiTunesで読めないのか? - ザリガニが見ていた...。

    http://radiko.jp/ は既存のラジオ放送をWebで同時配信(サイマル放送)してくれている。 その番組をradikoroを使って録音すると、20100905220904.flvのようなフラッシュビデオ形式のファイルとして保存される。 保存されたファイルは、大体1時間番組で20MBくらいのサイズ。 flvではiTunes・iPodが再生してくれないので、radikoroの録音設定でmp3に変換するようにしている。 ところが、変換後のmp3は50MBくらいのサイズになってしまう。およそ2.5倍に膨れ上がっているのだ。 今時のハードディスクは、テラバイトが標準になりつつあるので大した問題はない。でも、気分が良くない。 調べてみるとradikoの音声は、HE-AAC 48kbpsのステレオ品質*1らしい。(着うたフルと同等レベル) 上記のHE-AACは、flvというコンテナ*2に収めら

    radikoのflvから取り出したAACはなぜiTunesで読めないのか? - ザリガニが見ていた...。
    suginoy
    suginoy 2010/09/19
    「AACには、LC(Low Complexity)、MAIN、SSR(Scalable Sampling Rate)の3種類のプロファイルがある」
  • USキーボードを選択してMacBookのキー入力環境をより快適に!- ザリガニが見ていた...。

    二年前にMacBookを使い始めた時から、すっかりUSキーボードが気に入ってしまった。USキーボードを選択したきっかけは、実際に店舗で触ってみて以下の理由から。 MacBookになってから、トラックパッドがとってもでっかくなった! これだと、入力中に手のひらが触れてしまい、誤入力になるかもしれない。(慣れの問題もあるが) さらに、日語キーボードだとホームポジション(FとJの位置)が左寄りになる。(Jの位置がほとんど中央) Windowsマシンのトラックパッドが左寄りになる理由はここにあるが、デザイン性を重視するAppleはそんな対応は絶対にやらなそう。 日語キーボード USキーボード USキーボードの魅力 そこで、USキーボードを実際に使ってみると、思いのほか快適。 USキーボードだとホームポジション(FとJの配置)がより中央寄りになる。(完全に中央じゃないけど許せる範囲) 入力姿勢も

    USキーボードを選択してMacBookのキー入力環境をより快適に!- ザリガニが見ていた...。
  • 新規購入したMacBookにインストールしたApple以外のソフトウェア - ザリガニが見ていた...。

    僕のMacができるまで | Macの手書き説明書さんの記事に触発されて、いつか自分でも似たようなことを書き留めておきたいと思っていた。MacBookを新規購入したので、今こそ、そのチャンス!(こういうことって、当り前の環境として使ってしまっていると、何をインストールしていたか忘れてしまう。新規インストールする時に改めてその便利さを再確認することが多い。) インストール前のいい訳 PathFinderというOSの操作感をそっくり代替してしまうような素晴らしいソフトウェアもあるが、日常的にはOSXのFinderを利用している。*1 メールとWEBブラウザについても、(機能拡張するソフトウェアはインストールしているが)OSX標準のMailとSafariをメインに利用するようにしている。そうすると、MobileMe(.mac)を利用してメール設定やブックマークをあっという間に同期できる便利さに惹か

    新規購入したMacBookにインストールしたApple以外のソフトウェア - ザリガニが見ていた...。
  • 1