タグ

ブックマーク / aligach.net (62)

  • Sinatra AssetPackを試してみた

    あるいは Kanazawa.rb meetup #23 に参加してきました。 meetup #23 - kanazawa.rb | DoorkeeperMeetup #23 - Kanazawarb何をしたかったか現状では明らかに Rails に向いていないプロジェクトがあるホスティングはクラウドにしようと思うので、環境を先に決める必要がある PHP でやるとか Ruby でやるとか将来的には Rails で裏側をいじる必要あると思うんだけど、現状は表側だけで動けばいいし、Sinatra 使ってゴーじゃないかJS ヘビーになるし Sass も使いたいので Rails で言う Asset Pipeline 的なものは欲しい「手間」は少なければ少ないほどよい試したsprockets + sprockets-helperssinatra-assetpackAsset Pipeline が Spr

    poppen
    poppen 2014/07/21
  • JavaScriptをノンプログラマに教えるMEMO

    まだまったくもってメモレベル。方針とか気づいたこととかごちゃ混ぜ。 jQuery前提とりあえず jQuery 前提で。宗教戦争には興味なし。小さく十分なことができ情報が豊富、と三拍子揃ったライブラリはそれほどない。 アプリケーションを書きたいプログラマは自分の好きなものを選べばよい。 JavaScriptの記述位置JavaScript(以下、JSと略記) 外部ファイルに書く基的には HTML の </body> の上で読むこうやって書く 1, 2 は比較的簡単に説明できるが 3 は面倒なので端折る。突っ込んでくる人がいてもその人の理解のレベルを見て判断する。 JSの記述位置と実行タイミング理解する気と力のある人には説明する。 基的に JS は書いた位置でそのまま実行されるfunction で囲めば呼び出されたタイミングで実行されるjQuery( function($) {} ); で囲

  • 最小限rspec-capybara-mechanizeの準備

    ※ capybara は 2.0 で request spec ではなく feature spec で動くようにするなど API 変更が入っています。下のエントリは capybara 1.x 時代のものなので、gem のバージョンも 1.x になるように制限してあります。 PHP も end-to-end は RSpec で書こうと思っているという話は先日書きましたが、以前は capybara-mechanize を単独で動かしただけで rake で回せる環境になってなかったので、それを最小限の構成で準備してみました。 minimal rspec-capybara-mechanize env — Gist を clone して bundle install すればだいたいすぐ使えます。中身はこんな感じ。短い。ステキ。 は Capybara のドキュメント見ると Capybara::DSL

  • PHPのサイトをcapistranoで自動deployしてみた

    最近バックエンドのバックエンドの整備を進めています。今回は PHP でできたサイトを Capistrano で deploy できるようにしました。 構成今回のサイトは Rails 風のディレクトリで言うと こんな感じになっていて、DOCUMENT_ROOT のツリーの外にある public/ への symlink を作成して、そこから app/ などのコードを読む、ちょっと変わった形の PHP 製の Web サイトです。 とても残念なことにオレフレームワークでできています。 準備rubybundler gem は事前にインストールしておいてください。 上の sub/ に当たる手元のツリー上で 上の内容の Gemfile を作ってbundle install [–path vendor]bundle exec capifyCapfile, config/deploy.rb の編集bu

  • ノーフレームワークのレガシーPHPがCIに乗るまで

    ついに仕事で触っている PHP のコードがほんの一部のテストとは言え CI に乗った。 正直これは感動ものだ。 今回はここに至るまでの長大な物語をダイジェストでお届けしようと思う。 有史以前PHP 3 で作られた 1 URI : 1 スクリプト + 共通関数 時代 当然のように PHPHTMLSQL 混在まともなテスト環境がなかったので似た環境をどうにか作るパスとか絶対で埋め込みまくりなのでとりあえず共通のパス情報の変数に差し替えまくりテスト環境用のコードと番環境用のコードが違うオール目視 つらかった。 みなさんの予想通りバージョン管理なんてものは存在しなかった。 素朴なPHPを徐々にclassにclass になれば phpdoc を書きやすくなるいきなり実行しないようにすればテストしやすくなる これは後から気づいたんだけど、結局フロントはロクに自動テストできてない一時期 p

    poppen
    poppen 2012/04/17
    同じようなことやっているので参考になる。end-to-endは(本当はダメなんだろうけど)DBにどう登録されたかもテストしたくなったので、PHPUnit+Seleniumで書いている(途中)
  • CI始めました

    Welcome to Jenkins CI! | Jenkins CI なんとなく Java はメンドイという思い込みで避けていたんだけど、先週末にちょっと思い立って Jenkins のインストールを試してみた。Debian で試したところものすごく簡単だったので職場にも起こしてみることにした。 DebianにJenkinsをインストールDebian 6 にJenkinsをインストール - cactusman日誌 を参考に。 まずインストールはとても簡単。各種パッケージシステム用にパッケージが用意されてるから。 自分は Debian を使ったんだけど、上のエントリと java のパッケージが違う以外は するだけ。ここら辺とてもよく Debianize されてる印象。 Debian + Jenkins の考え方jenkins ユーザーでプロセスが動いてjenkins ユーザーのホームディレク

  • 特定の namespace の中で const_get()

    先日 Rubyで変数から定数を得る で書いたように const_get() すると与えた文字列から定数を得ることができる。1 これ、特定の namespace の中でどうするんだろうと思って

    poppen
    poppen 2012/04/16
  • LiveReloadが超気持ちいい2011

    ※ もはや2011言いたいだけ。 ブラウザのリロード自動化2011秋の流れで LiveReload のご紹介。動作イメージとしては家の screencast が分かりやすい。 LiveReload Screencast « Envy Labs エディタで編集した HTML(View) や CSS などがほぼ即座にブラウザの方に反映されている。待ち時間がなさすぎて何が起きたか一瞬分からないこともあるくらい。もちろんアプリの切り替えなどの手作業は一切なし。少々の編集ならまだしも、細かい調整のフェーズや多くの画面を一度に確認したい場合などに絶大な効果を発揮する。 まとめWeb の開発、制作者は少なくとも Safari, Chrome, Firefox のいずれかは使っていると思う。これらのブラウザを使っているならぜひオススメ。毎回の reload から完全に解放されるのはちょっと想像以上にイン

    poppen
    poppen 2012/03/29
  • SQL DBMSのboolean表現

    すいません、目新しい話はないです。単に自分の経験不足と忘却力過多です。 結論大半の SQL DBMS には Boolean は存在せず、int の 0/1 で代用するケースが多い文字列 t/f も同じように機能する場合が多いBoolean を持っているプログラミング言語と同じ感覚で true/false を書くとそのままの文字列が入って、どっちも true に見えたりする以下ちょっと試したり調べた結果。

    poppen
    poppen 2011/06/15
  • RailsのfixtureでCSVを使う場合は空のセルに注意

    CSV から fixture を読み込む場合、空つまり null になるはずのものが 0 になってしまう1もちろん ,"", と空文字列であることを明示してあればこの限りではないが、Excel ではこのような安全なカラムを作ることができない2中にある文字列を解釈して必要に応じて " を付加してくれるが、空文字列を明示することはできない空になり得るカラムが最初から fixture に存在していない場合は当然問題は起きないということで fixture は YAML が安全 ということに。ふーむ。 拙作 ModelDumper は CSV でも YAML でも出力できます。 cf. A model dumper for rails console ( Rails 3 or later ) and .irbrc for rails env — Gist

  • keychainでssh-agentと鍵を管理することにした

    鍵を体外に出したので、ssh 接続のたびに鍵ファイルを指定するのがだるくなってしまった。面倒なのはいけない。そこで ssh-agent を使うことにした。 ssh-agentをなんとなく避けていたssh-agent は今までなんとなく避けていた。というのも ssh-agentってメモリ内にパスフレーズそのまま保存してるんじゃないの? と思っていたから。ということはハイバネート状態のノートからは生のパスフレーズが抜き取れるよね、という話にたどり着いて、そんなあぶないもの使いたくないとか思っていたんだけど、そもそも PC体内に秘密鍵があるので体奪われたらagent使っていようがいまいが一緒 という状態に目をつぶって頑なにagentを拒否していても意味がない。 ということで颯爽とポリシーを変更した。 当は秘密鍵を抜き取ったことだし、今まで通り ssh-agent を使わない運用ならだいぶ

  • 秘密鍵を本体内からUSBメモリに移動した

    職場の環境が変わったのでこれを機に以前から気になっていたことを試してみた。それは 秘密鍵を体内に残さない こと。 Zebedeeはそのまま移動するだけでよかったトンネルを Zebedee で掘ってるんだけど、Zebedee に関しては 実行バイナリが体内設定ファイル、鍵などは USB メモリという組み合わせで普通に動いた。起動して detach してしまえば鍵や設定を入れた USB メモリは抜いてしまってもまったく問題ない。 OpenSSHはpermissionがキモもともと USB メモリに ssh の秘密鍵は入れてあった。しかしそれは FAT でフォーマットしてある基的に緊急時用のもので iniファイル版の putty と putty 用の鍵を用意OpenSSH 用のものも入ってたけど入ってるだけという状態だった。今回はここにすでにある OpenSSH の秘密鍵を普段から利用する

  • Evernote一本をやめてSimplenote併用へ

    最近は自宅サーバの Wiki じゃなくてあえて Evernote を使うことが増えていました。自宅サーバの Wiki に繋ぐ必要がなく、iPod touch でも自由に編集可能、ローカルにキャッシュしておけばネットワークが切れていても大丈夫、など Wiki にないメリットがやはり大きかったのです。 しかしあるとき気づきました。 Evernote は勝手にデータに手を加えている ということに。 Evernoteは正確なテキストデータを保持しないEvernote の考え方がどうなのかはよく分からないのですが、Evernote で構造化テキストが使えたら便利だなとは以前から思っていましたし、そういう意見は自分以外にも目にしていました。 自分も Markdown を使ったり reST を使ったり1していたのですが、ある日、箇条書きをネストさせたときに気がついてしまいました。 ホワイトスペースを維持

  • RubyのJSONライブラリは1.4系でescape周りで変更があった

    けど騒ぐことではなかった。 でも JS との相互運用考えると \u 形式の escape してた方がいいっぽい。待て続報。 RFC に may って書いてあったので問題解決というか問題は存在しなかったTwitter / mala: 実装依存(できる、してもよい、しなくてもいい)でしょ … なるほど。 http://tools.ietf.org/html/rfc4627 Any character may be escaped. If the character is in the Basic Multilingual Plane (U+0000 through U+FFFF), then it may be represented as a six-character sequence: a reverse solidus, followed by the lowercase letter

    poppen
    poppen 2010/11/20
  • 複数バージョンの LL を入れる話を集めてみた

    意外なことに Perl, Python は複数バージョン入れるツール自身が元の言語で書かれています。Perl はシステム標準に入っているディストリビューションが多いからまだ分かるけど、Python でこの戦略を採用するのはちょっと大胆な気がします。 ※ Python は virtualenv だけでも複数バージョンを切り替えて使うことができます。ただし、インストールや動的な切り替えまでは面倒みてくれません。そんなときに pythonbrew が便利なようです。 rvmrvm の記事はもう書いてあります。 rvmを使ってREEへの移行を考える - あーありがち(2010-07-17) BundlerBundler の記事ももう書いてあります。 Bundler 0.9.26 を触ってみた - あーありがち(2010-07-19) perlbrewgugod's App-perlbrew at

  • PYTHON-FIT 2回目

    北陸でネットワーク越しに Python を勉強しようの会の2回目が行われた。内容はチュートリアルなんだけど、 石川の社会人組が KIT から卒業し、金沢駅西APAの中のシアトルズベストコーヒーへ 同時にいつものインフラ支援を受けられない状態実は自分の機械で複数人の参加する Skype の音声チャットにそれなりに長い時間参加したのは初めてヘッドセット使うのも初めてということで今回も Python ネタ以外にいろいろ勉強になった。 ヘッドセットSkype で使う場合は体の環境設定の音声入出力とは別に Skype の方でも音声入出力に使うデバイスを指定する必要があった。なんか得意になって身構えていたのに体から音が出ててまぬけなことに。 やはりテキスト以外の情報には信頼できるネットワークが必要今回利用した石川の会場で拾える Wifi 3つのうち、2つは IP アドレスが取得できず、1つはセッシ

  • 今さらSelenium CoreでWebアプリテストの自動化

    愚痴最近は比較的自分の中では TDD のサイクルは安定して回っているんだけど、TDD でやりにくい部分についてはそれほど必死にやらないようにしている。TDD が絶対だとも思っていないし、「技法」を編み出すための時間を用意するのも正直難しい。 それでもやはりやりにくいなりに自動化したい部分はあって、その一つが各ブラウザでの検証作業。いちいちフロントエンドを直すたびにいろんなブラウザで手作業で検証するのは面倒なのでやりたくない。 以前はあまりフロントには時間を掛けていなかったというかあまりフロントで問題が出ないようにモノを作っていたんだけど、最近は JavaScript フレームワークやそれを利用したいわゆる "Good Parts" が増えてきていて、ちょっとした味付けに利用したりすることが増えてきている。 そのまま使っている場合はいいんだけど、ちょっとしたカスタマイズを加えてほしいというケ

  • 今度こそgit status, commitをsvnに近づける

    とか、適当にエラー起こしたら出たよ。どうなってんの!1しかもこれは help を得るためのコマンドの使い方じゃないから、実際に git リポジトリの中にいないと help を見ることができない。 不便すぎる。いちばん大事なはずのコマンドなのに超不便すぎる。で、分かったことは -u, --untracked-files[=<mode>] show untracked files, optional modes: all, normal, no. (Default: all)

    poppen
    poppen 2010/06/09
  • Pyに触ってみた

    昨日も書いたんだけどPython-FIT 0回目に参加してきた。その際、自分が Python の何を分かっていなかったか、何を期待しているかが少しはっきりしたので整理しておく。 Pythonも触れるようになっておこうと思った理由Rubyを始めることにした何年か前の自分は、実は PythonRubyを比較してRubyを始めることに決めている ので、Pythonを何も知らないわけではない。 いま改めて Python も使えたらいいかもな、と思った理由は勉強会で喋ってるうちに気づいたけど、 Python 製のツールを一部直したり plugin 書いたりしたくなることはよくあるGAE(要するにクラウド対応1)という感じらしい。 積極的に乗り換えようとは思ってないけど、おいしいとこどりはしたいのだ。 インストール公式バイナリシステム(OS)用のパッケージシステムからActivePythonとか使え

  • Cucumber を PHP アプリに対して本当に使えることが分かった

    何がきっかけかよく覚えていないんだけど、この数日、急に Cucumber のことを思い出したので試してみた。 Cucumber - Making BDD fun Cucumber は一部ではとても有名な受け入れテストの記述&実行フレームワークとでも呼んだらいいのかな。有名な記事はこの辺。 Cucumberがアツい - moroの日記UK STUDIO - Cucumberの登場でRailsのテスティング環境が変わったRuby Freaks Lounge:第21回 Railsアプリの受け入れテストをCucumberで書こう|gihyo.jp … 技術評論社まだあまり詳しく家ドキュメントを読んでないんだけど、あちこちの記事から分かることは、これは 外部仕様あるいは要件定義を共有しやすくするフレームワーク ということでしょうか。あたかも自然言語で書いたプレーンテキストがテストを動かすスクリプト