タグ

ブックマーク / qiita.com (257)

  • 《REST思想》と《リソース指向》と《Webページ》に関する(主にRailsの)話 - Qiita

    これはいわゆるWeb APIについて、ということかなと推測しました。RESTというのはAPIのプロトコルのことだと思われている傾向がありますが、そういうわけではありません。Web全体についてのもので、APIについてもWebアプリについても適用されるものです。 実はRESTでは「統一インターフェイス」の制約からメソッドについて規定されていますが、URLの形については特に規定されません(もちろんAddressabilityの面で重要であることは言うまでもありません)。なので実は/books,/books/1でなくてもいいのですが、これを規約(CoC)でズバッときれいに決めてしまったのがRailsのすごいところの1つです。 の追加や削除を行う場合は、情報をJSON形式でPOSTリクエストのボディとして送ります。application/x-www-form-urlencoded形式で送ることは

    《REST思想》と《リソース指向》と《Webページ》に関する(主にRailsの)話 - Qiita
    t-wada
    t-wada 2014/03/24
    やや混乱気味だった元エントリに対する素晴らしい回答になっている @tkawa++
  • Dart について思っていること - Qiita

    追記 いくつかフィードバックを頂いたので補足。 まず、 Dart と NaCl は比較対象じゃないだろ的な話は、別に比較してません。 何か新しい実行環境を載せるなら LLVM が乗った方が汎用性があるのでは?という意味です。 Dart も NaCl で動けばいいんだろうし。 あと、 Angular.Dart は確かに Angular.js のポーティングに留まらず、 Dart ならではの実装になっていると聞きます。 Angular は流行ってるように思いますが、 DI 周りとか見ても結構 JS の限界を突破している感じがするので、 そこから Dart に流れる人もいるのかもしれませんが、そこからの流入はあまり現実的な気がしないなぁ。。 話はずれるけど、 HTML5 の下りはあまりよく無かったです。うまく書けてなかったけど、例えば Gears のことです(HTML5 が始まる前から、俺の中で

    Dart について思っていること - Qiita
    t-wada
    t-wada 2014/02/19
    “でも、 HTML5 は Web に確実に影響し、 SPDY にいたっては長い潜伏期間の果てに HTTP を塗り替え始めた。 Google は、そういう「夢の様な話」を実現させてきた実績がある”
  • https://qiita.com/ta9to/items/46171d2fbb735b98dcd3

    t-wada
    t-wada 2014/02/13
    Selenium をラップして色々なテスト用 API を提供する Nightwatch.js の紹介エントリ
  • gitのdiff, status, logを極限までコンパクト化+便利化する - Qiita

    git diffを見やすくする git diff --color-words で差分を小さく表示する 通常のgit diffは行単位なので、例えば変数名を一括変更した場合見づらいです。 --color-wordsを指定すると記号やスペースで区切られた単語単位でのdiffを表示できます。gitの設定は不要です。 より細かな表示のカスタマイズも可能です。man git-diffで--word-diffを検索してみてください。 ※ただし、変更が複雑な場合は、通常のgit diffのほうが見やすいこともあります。 .gitattributesを設置してもっと小さく表示する .gitattributesファイルを設置することで、言語文法に基づいて変数名、関数名といった単位でdiffを表示できます ファイル設置後にgit diff --color-wordsとすると、下記のようにさらに小さく表示できま

    gitのdiff, status, logを極限までコンパクト化+便利化する - Qiita
    t-wada
    t-wada 2014/02/12
    おお、これはいいなぁ
  • Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita

    ファイル編集がコンフリクトした場合 下記はよくある(忌々しい)コンフリクト画面ですね。 皆さんはコンフリクトのmergeはどんな方法でやっていますでしょうか? vimemacsで直接編集している方が多いイメージですが、実際開いてみると、下記のように差分が表示されていると思います。 この画面を見ただけではどのようにmergeすればよいのかわかりません。(Objective-CのARC/MRC双方の開発経験がある人は目をつぶってください・・) gitにはこのようなコンフリクトのmergeを支援するgit mergetoolコマンドが搭載されています。 このままEnterキーを押すと下記のような画面が立ち上がります。 画面幅の都合でフォントが小さいのですが、ここで「mergeしたい差分が作られる直前の状態」と「mergeしたい差分」に注目してみます。 この2つを見比べると、@propertyの

    Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
    t-wada
    t-wada 2014/02/12
    git mergetool あまり使っていないので (いつも emacs でやっちゃう) 参考になった
  • パスワード問合せシステムを作る (clojureのreducers) - Qiita

    現在のパスワードを教えてくれるからといって、「平文で保存してる!くぁwせdrftgyふじこlp‎」と脊髄反射してはいけません。 JALの6桁数字パスワードがどう格納されているか? 古いシステムなのでMD5でハッシュ化していると想定しますが、もちろんsaltは付けているでしょう。 さて、そんなパスワード保管方式で、現在のパスワード問合せに応答するシステムを作ってみます。 パスワードを「567890」、saltを「hoge」として、データベースには"hoge$567890"のMD5値"4b364677946ccf79f841114e73ccaf4f"が格納されているとします。 総当りしてみましょう。 (ns six-length.core (:require [clojure.core.reducers :as r]) (:import [java.security MessageDigest

    パスワード問合せシステムを作る (clojureのreducers) - Qiita
    t-wada
    t-wada 2014/02/10
    擁護するふりをして全力で背中を撃っている変化球エントリ。 6桁数字パスワードならハッシュ化してソルトを付けていてもすぐに解読できる。
  • Ansibleのカレンダー | Advent Calendar 2013 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    Ansibleのカレンダー | Advent Calendar 2013 - Qiita
    t-wada
    t-wada 2014/02/02
    Ansible Advent Calendar があったのか
  • AngularJSのMVWパターンを理解する - Qiita

    12/4の記事(AngularJSを使ったWebアプリのアーキテクチャ設計)で書くと言ったまま放置していたので、AngularJSのMVCパターンについて書いてみたいと思います。 AngularJSのMVCについては、12/19のお前のAngular.jsはもうMVCではない。と言われないためのTutorialというすばらしい記事がありますが、記事ではもう少し抽象的な内容を扱ってみようかと思います。 MVW(Model-View-Whatever)パターンとは MVCパターンには、MVC2、MVP、MVVMなど数多くの派生パターンがあります。 目的は同じなのに派生パターンがたくさんあるのは、それぞれのプラットフォーム固有の問題(フレームワークの違いや、サーバサイドかクライアントサイドかの違いなど)によってMV*の*の役割が異なるからです。 AngularJSは公式ページで"Superhe

    AngularJSのMVWパターンを理解する - Qiita
    t-wada
    t-wada 2014/01/24
    "MVW(Model-View-Whatever)パターン" "MV*について議論するのは時間の無駄だから、そんな暇があったらコードを書け。MV*の*の部分なんて"Whatever"でいいんだ"
  • Chrome/Firefox の JavaScript Debugger でステップ実行時にライブラリ・フレームワークをスキップする - Qiita

    JavaScript のデバッガ、便利ですよね。つかって、ますよね! Chrome, Firefox 両方の Developer Tool (Web Inspector) には JavaScript デバッガが付属しています。両者には Event Listener Breakpoints 機能が存在し、特定イベントのリスナ全部にブレークポイントを仕掛ける事が可能です。 しかし、jQuery の $.on, $.bind, その他 $.click(fn) 等でイベントハンドラを定義すると jQuery の中で addEventListeners が呼ばれ内部で処理をした後に実際に jQuery に渡した関数が呼ばれます。 そのため、JavaScript デバッガは jQuery 内部でブレークし来飛んでほしいはずの関数に一発で飛んでくれません。 そこで Firefox には Library

    Chrome/Firefox の JavaScript Debugger でステップ実行時にライブラリ・フレームワークをスキップする - Qiita
    t-wada
    t-wada 2014/01/23
    これは便利そう
  • 「Haxerから見たJSX」という感想文を書いてみた。 - Qiita

    HaxeからJSXをスパイ活動してきました@nobkzです Haxerから見たJSXについて。 そもそもなぜHaxerなのにJSXのAdvent Calendarに参加したか? 12月7にきしださんが主催していたイベントに参加したときのことでした。言語パフォーマンスについてのイベントで、いろいろと勉強になったのですが、それで、JSXの人(@kazuhoさん )が来ていました。普段AltJSとして、CoffeeScriptや、Haxe(AltJS以外でもですが。)、TypeScriptなどは書いたことがありましが、JSXは一番疎いところであり、また、「JSXは速い」って散々言われてそれに疑問を抱いていたので、丁度良い機会でした。 それで、いろいろとJSXの高速化の話しを聞き、なるほど納得して、じゃあ家に帰って実際にJSXでコードを書いてみようと思いました。んで何を思ったか、 「せっかくだしJ

    「Haxerから見たJSX」という感想文を書いてみた。 - Qiita
    t-wada
    t-wada 2013/12/24
    “JSXの静的型はなんというか、速度と安心感のための静的型付けと感じました” "一方Haxeは、安心と生産性向上のための静的型付け" "JSで書かれてたライブラリのバインドするときのつらぽよ"
  • Go の Test に対する考え方 - Qiita

    この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg/testing/ 命名規則 では、

    Go の Test に対する考え方 - Qiita
    t-wada
    t-wada 2013/12/10
    “「何が落ちたか」よりも、「なんで落ちたか」が書かれています” "Go は、 assert やその他テストを構造化する仕組みなどを標準で提供しない代わりに、最小の API と十分なコマンドを提供する"
  • RSpecの最新の動向・RSpec 3へのアップグレードガイド - Qiita

    この記事はRuby Advent Calendar 2013の6日目の記事です。 昨日はShindo200さんのRuby で paiza.jp のオンラインハッカソン問題に挑戦するときに少し役に立ちそうなことでした。 概要 Rubyのデファクトスタンダードなテストフレームワークと言えるRSpecですが、現在バージョン3.0のリリースへ向けて開発が進められており、先日2013年11月8日には3.0.0.beta1がリリースされました。 この記事ではRSpec 3における変更点と、RSpec 3へのアップグレード手順、また既存のspecを最新の記法に変換するツールを紹介します。 追記 RSpec 3は2014年6月2日に正式リリースされました。この記事は2013年12月6日に書かれたものですが、正式版においても通用する内容になっています。 正式版における主要な変更点は、以下のページが参考になる

    RSpecの最新の動向・RSpec 3へのアップグレードガイド - Qiita
    t-wada
    t-wada 2013/12/09
    "モンキーパッチshouldはRSpec 3.0からdeprecated扱いになりますが、ワンライナーshouldは3.0でも現役なため (略) ワンライナーshouldを使い続けても問題ありません" "既存のspecを最新の記法に書き換えるツール Transpec"
  • grunt-releaseでversionを上げられる男になろう - Qiita

    弊社の大先輩、mashさんがpull-req送っていたのを偶然見て、 grunt-releaseというプラグインの存在を知りました。 dry run support by mash · Pull Request #29 · geddski/grunt-release これが、npmやbowerにがんがんライブラリを置いている自分には、 めちゃくちゃべんりでした! bowerでライブラリ公開するハードルを下げることにもなる、 と思うのでちょっと紹介してみます。 grunt-releaseとは geddski/grunt-release grunt-releaseは、git管理しているライブラリの versionアップ時の作業を自動化してくれる gruntプラグインです。 具体的には、 設定ファイルから、現在のversionを取得 次に使うべきversionを計算 (semver形式) そのv

    grunt-releaseでversionを上げられる男になろう - Qiita
    t-wada
    t-wada 2013/12/06
    よさそう。 npm リリース時に semver でバージョン上げつつタグを打って publish するの面倒なので便利につかえるプラグイン (設定で bower も使える)
  • ActiveRecordにこういう機能があったらどうでしょう?をgemにしてみた - Qiita

    class User < ActiveRecord::Base # User.admin scope :admin, -> { where(role: 'admin') } # user.admin? # => true or false def admin? self.role == 'admin' end end scope(クラスメソッド)とインスタンスメソッド両方の定義が必要ですが、内部でやっていることは質的には同じことです。 これをscope :adminだけ定義しておくと、admin?も自動的に使えるようになるっていう機能、作ったら需要ありますかねぇ? https://github.com/amatsuda/arel_ruby を使ったらできるんじゃないか、という思いつき。複雑なのは無理だろうけど…。 実装してみた (9/6 追記) arel_ruby の対応の都合で、Rai

    ActiveRecordにこういう機能があったらどうでしょう?をgemにしてみた - Qiita
    t-wada
    t-wada 2013/09/18
    おおお、これはほぼ毎回書くパターンですよね。便利 gem の予感!
  • 突然の死に備えて sudden-death.el を導入しよう - Qiita

    _人人人人人人人人人人人人人人人人人人人人人人人人人人_ > 全国 1000 万人の Emacs ユーザのみなさんこんにちは <  ̄YYYYYYYYYYYYYYYYYYYYYYYYYY ̄ さて、業務内外を問わず、ふいに「突然の死」ネタを貼りたくなる場面というのは少なくないと思います。 突然の死ジェネレータというものもありますが、やはり Emacs 内で完結させたいところです。 そういった需要にお答えするために、拙作の elisp を紹介させていただきます。 インストール auto-install が導入済みであれば以下のコマンドを実行していただければ簡単にインストール出来ます。 M-x auto-install-from-url https://raw.github.com/yewton/sudden-death.el/master/sudden-death.el 使い方 「突然の死」風に

    突然の死に備えて sudden-death.el を導入しよう - Qiita
    t-wada
    t-wada 2012/12/19
    _人人人人人人人人人人人_ > 不覚にもワロタwwww <  ̄YYYYYYYYYYY ̄
  • JavaScriptの対PHPerトラップ 13: その傾向と対策 - Qiita

    JavaScriptPHPとよく似たシンタクスを持っています。PHPerにとっては親近感を感じる言語かもしれません。しかし、両者の言語仕様の違いはおそらくPHPerの想像以上です。『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』の著者、Douglas Crockford 氏が「JavaScriptはCの皮をかぶったLISP」と表現するくらいです。 PHPJavaScriptが似ている(ように見える)が故に、はまりそうなポイントとその対策について簡単にまとめてみました。より詳しく知りたい方は『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』や『JavaScriptパターン ―優れたアプリケーションのための作法』を読んでみることをオススメします。 あと、自分も経験が浅いところがありますので間違

    JavaScriptの対PHPerトラップ 13: その傾向と対策 - Qiita
    t-wada
    t-wada 2012/02/06
    某所で行っている JavaScript 講義の参考にしよう
  • js->coffee移行にあたって考えたこと - Qiita

    個人製作のシステムのjsをcoffeeに完全移行したのでその雑感を書きます。あくまでも個人的な感想です。感じ方は人それぞれです。 ちなみに僕は勉強を兼ねて手で移行させましたが、js2coffeeというツールを使うと自動で変換してくれるらしいです。 先に結論 coffeeの方がいいと思う。 よくある批判に「js書けばいいじゃん」というのがあるけど、極端な話、「アセンブラ書けばいいじゃん」と高級言語が出てきた頃に言ってた人と主張の方向性は似てると思う。極端すぎるけど。 jsには落とし穴がいっぱいある。慣れてもたまにはまる。varを忘れたり「関数の頭で全部のvarを列挙する」というプラクティスに従ってたら、冗長になって管理するコスト高くなったり。 coffeeを使うとそういう余計な問題を意識しなくてよくなるのはとても大きい。 しかもjsでできることの全てをcoffeeでできる。工夫が必要になる場

    js->coffee移行にあたって考えたこと - Qiita
    t-wada
    t-wada 2012/01/20
    ふむふむ "よくある批判に「js書けばいいじゃん」というのがあるけど、極端な話、「アセンブラ書けばいいじゃん」と高級言語が出てきた頃に言ってた人と主張の方向性は似てると思う。極端すぎるけど"