タグ

ブックマーク / blog.ruedap.com (8)

  • HTTPメソッドのPOSTとPUTの冪等性 - アインシュタインの電話番号

    昨日の記事のはてブコメントにて、POSTとPUTの使い分けには冪等性が重要ですよとのアドバイスをいただいた。ので、冪等性について調べてみた。 冪等性と安全性 @tkawaさんに、はてブコメントにてアドバイスいただいたのは冪等という考え方。 これに加えて、性質の違いとしてPOSTは冪等ではないがPUTは冪等というのも重要です 冪等ってあまり聞かない用語だけど、この冪等についても、Webを支える技術にはちゃんと書いてあった。 冪等とは「ある操作を何回行っても結果が同じこと」を意味する数学用語です。たとえばPUTとDELETEは冪等ですので、PUTやDELETEを同じリソースに何回発行しても、必ず同じ結果(リソースの内容が更新されている、リソースが削除されている)が得られます。 安全とは「操作対象のリソースの状態を変化させないこと」を意味します。リソースの状態に変化を与えることを副作用といいます

    HTTPメソッドのPOSTとPUTの冪等性 - アインシュタインの電話番号
    repon
    repon 2019/04/01
  • ターミナル起動時に.bashrcを読み込むようにする - アインシュタインの電話番号

    Mac OS Xのデフォルトでは、HOMEに.bashrcを作成してもターミナル起動時に自動で読み込むようにはなっていないようなので、自動で読み込むように.bash_profileに記述すると良い模様。 .bash_profileを作成 HOMEに.bash_profileを作成して以下を記述。 if [ -f ~/.bashrc ] ; then . ~/.bashrc fi これでターミナルを再起動すれば、起動時に自動的に.bashrcを読み込んでくれる。 とあるプログラマーの覚書 OSXでのbashrcの設定

    ターミナル起動時に.bashrcを読み込むようにする - アインシュタインの電話番号
  • HerokuのSinatraでBasic認証を使ってアクセス制限をかける - アインシュタインの電話番号

    Heroku上にデプロイするSinatraで、Basic認証を使ってアクセス制限をかける方法について調べたのでメモ。特にHerokuに限らない方法だとは思うけど。ここだけの秘密だけど、最初普通のウェブサイトのように.htaccessと.htpasswdを用意して、Herokuアプリ直下またはpublicディレクトリに入れればいけるんだろうと思って、heroku consoleから pwd とか実行してパスを取得して.htaccessに.htpasswdまでのパスを書いて…とか壮大に明後日の方向な手順を踏んでた。 SinatraでのBasic認証の方法は全然違って、Rackの機能を使うみたい。 サイト全体をアクセス制限 Sinatraアプリの起動ファイル(config.ruから呼び出しているrbファイル)のどこかに、以下のような感じで書けばおk あ、もちろんトップレベルに書く必要はある。あと

    HerokuのSinatraでBasic認証を使ってアクセス制限をかける - アインシュタインの電話番号
  • Node.js(Express)アプリの雛形を自動生成する - アインシュタインの電話番号

    昨日の記事では、Node.jsアプリでHello worldする際に、それに必要なファイル(web.js, package.json, Procfile, .gitignore)を1個ずつ新規作成してたけど、expressコマンドを使えばその雛形を自動生成できることに後から気づいた。これを使うと、web.js(=app.js)とpackage.jsonの2つは自動生成できる。Sinatra単体には無い機能だね。 あと、Sinatraアプリ開発時に使われる自動リロード機能(ShotgunやSinatraReloaderなど)に相当するnode-devをちょっと使ってみたので、それについてもメモ。 expressをグローバルインストール expressコマンドを使うには、Expressパッケージをグローバルインストールする。 $ npm install -g express /Users/ru

    Node.js(Express)アプリの雛形を自動生成する - アインシュタインの電話番号
  • Node.jsアプリをCoffeeScriptで記述する - アインシュタインの電話番号

    Node.jsでのHello worldを済ませて、expressコマンドでアプリの雛形を自動生成できるようになったので、自分がNode.jsに興味を持った当初の目的である以下について実行してみる。 普段自分がRubyで使っているSinatra+Slim+Sassと似たような開発環境を、Node.jsでもExpress(CoffeeScript)+Jade+Sassを使えば実現できるかも? 個人的には、上記の憶測がなかったらNode.jsをやってみようと思わなかったと言っても過言ではないので、できるだけ早い段階でこの組み合わせをやってみたくて、まずはCoffeeScriptを触ってみた。 Node.jsアプリの雛形を自動生成 まずはNode.jsアプリの雛形を自動生成する。-cオプションでCSSにはSassを使うことを指定する。HTMLはデフォルトでJadeが選ばれるので指定はなし。 $

    Node.jsアプリをCoffeeScriptで記述する - アインシュタインの電話番号
  • RubyGemsでgemのインストール時に--no-ri --no-rdocをデフォルトにする - アインシュタインの電話番号

    Rubyでgemをインストールするときに、ドキュメントをインストールしないオプション--no-ri --no-rdocをデフォルトで付けるようにする方法について。毎回手動でオプションを指定してたんだけど、忘れてしまうことが多くて、忘れた場合は実行した後にドキュメントのインストールが始まって気づくことになりウボァとなる。これを忘れるとインストール時間が倍くらいになるので、個人的には常に付けたい。 DHHもこのオプションをデフォルトにしようと言ってるみたい。最近のRubyGemsではデフォルトになったりしてるのかな? 自分の使ってるRubyGemsはちょっと古いヤツ(1.6.2とか)なので、まだデフォルトにはなっていない。 .gemrcを作成して、デフォルトで--no-ri --no-rdoc 以下の内容を記述した.gemrcファイルを作成し、ホームディレクトリに配置する。 gem: --no

    RubyGemsでgemのインストール時に--no-ri --no-rdocをデフォルトにする - アインシュタインの電話番号
  • RubyGemsのバージョンをダウンしたりアップしたり - アインシュタインの電話番号

    ちょっとBundlerがらみでハマったときに「RubyGemsのバージョンが原因かな?」と思ったので、RubyGemsのバージョンを最新版から特定のバージョンに下げる方法と、また元に戻す方法について調べた。 バージョンダウン RubyGems 1.4系が出たときに、Ruby 1.9系で動かないという問題があって結構話題となり、それが解消されたRubyGems 1.5系が出たときにはRailsの特定のバージョンで動かないという問題が出た。その時にRubyGemsをバージョンダウンする方法を載せた記事を見ていたので、それを参考にやってみた。RubyGemsをバージョンダウンするには、rubygems-updateというgemをインストールして行う。 $ gem -v 1.5.2 $ gem list rubygems-update ### LOCAL GEMS *** rubygems-upd

    RubyGemsのバージョンをダウンしたりアップしたり - アインシュタインの電話番号
    repon
    repon 2011/12/13
  • Rubyのヒアドキュメントは高機能 - アインシュタインの電話番号

    YAMLについて調べててRubyのリファレンスマニュアルを見たら、かっこいい記述がされててRubyのヒアドキュメントが高機能な事を知った。以下まとめ。 普通のヒアドキュメント puts <<EOS 普通のヒアドキュメント EOS インデント対応 def hoge(word = nil) puts <<-EOS <<- のようにマイナス記号を付加すると 終了ラベルをインデントしてもおkになる 細かいことだけどこれは#{word}重要 EOS end hoge 'とても' 複数指定可能 puts <<HOGE, <<FUGA こんな感じで1つの行に複数の開始ラベルを書くことで HOGE 複数のヒアドキュメントを定義できる FUGA オブジェクトとして扱える puts <<EOS.split("\n")[2..3].join 一番面白いと思ったのは 開始ラベルの <<EOS は式なので 戻り値の

    Rubyのヒアドキュメントは高機能 - アインシュタインの電話番号
  • 1