イメージを取得して起動するだけです。 コンテナはデタッチモードで動かしたいので -d オプションを指定しています。また、コンテナには名前を付けておくと便利なので --name で「postgres」という名前を付けました。 ポイントは環境変数として「-e LC_ALL=C.UTF-8」を指定しているところです。これは initdb でデータベースクラスタを初期化するときのエンコーディングを UTF-8 とするためです(デフォルトでは SQL_ASCII になります)。 Rails 開発用のイメージを作成する 次に Rails 開発用のイメージを作成します。 PostgreSQL は既存のイメージをそのまま使用しましたが、今度は個人用の開発環境を作りたいのでそうもいきません。 Dockerfile を書いて自分用のイメージを作成することにしました。 FROM ubuntu:14.04 MAI
Railsの仕組みを体系的に学べる大型コンテンツ Rails Guides に基づいた1,600ページ超えの大型リファレンスです。 プロダクト開発に役立つ実践的な知識が満載 Railsチュートリアルを完走し、Webサービス開発中の人に最適です。 全文検索やバージョン毎の検索にも対応 Proプランでは、さらに効率的な活用をサポートします。 このアイコンが付いているガイドは現在作業中 (WIP: Work In Progress) です。作業中のガイドはそれなりに有用ではありますが、不完全な情報やエラーが含まれている可能性があります。 はじめに Rails をはじめよう Railsのインストール方法と最初のRailsアプリケーションの作成に必要なすべてを解説します。 モデル Active Record の基礎 Active Recordの基礎となるモデル、データベースへの永続的な保存、Acti
セコン (id:secondlife, @hotchpotch) です。ウェブサービスにはよく「このエントリーに関連するブログ記事」や「このレシピに関連するレシピ」という機能が実現されてますよね。さて、この機能はどのように実現すれば良いでしょうか。例えば tf-idf で単語の類似度を求め…といった実装が必要になり、いささか面倒です。 しかしながら Elasticsearch や Solr *1を使うと手軽に実現できます。例えば、クックパッドニュースの記事では Solr を使い「この記事を読んだ人におすすめ」の機能に、最近クックパッドにジョインしたインドネシアの会社の DapurMasak では Elasticsearch を使い「Resep serupa(関連レシピ)」の機能で利用しています。 クックパッドニュースでのこの記事を読んだ人におすすめ DapurMasak での関連レシピ 使
Webアプリと同じプロセスにworker入れてお金が節約できる。 Webアプリは “リクエスト来る→サーバーで処理→レスポンス返す” というのを繰り返すわけだが、サーバーでの処理に時間がかかる場合にそこを別のプロセスに任せて、先にレスポンスを返しておいて、あとで結果は取りに来てよ、という実装をする事がある。 時間がかかる処理は2つに大別できる。 動画をエンコードするとか。CPU負荷が高くて時間がかかるのでWebサーバーとは別の場所で動かしたい Twitter APIを10回ぐらい使った結果をまとめて返すとか。CPU負荷は低いけどIO待ちが長い 2の方について、HerokuのRuby環境で安く上げる方法をまとめる。 手法 HerokuのcedarスタックでRuby使う時はwebサーバーとしてThinが起動する。 ThinはEventMachineの中で動いてるので、EM::defer等が使え
プログラミング言語の最初の1歩を解説するサイト「How I Start」から、Peter Bourgon氏によるGo言語(golang)の始め方について。Goのシンプルさと標準ライブラリの使いやすさに焦点を当てた、分かりやすい解説。 Goは、信頼に値するスマートな人達によってデザインされ、大規模かつ成長を続けるオープンソースコミュニティによって継続的に改善されている、愛すべき小さなプログラミング言語である。 Goはシンプルであることを標榜しているが、時にはそのしきたりが少々分かりにくくなる時もある。ここでは、私がGoのプロジェクトをどのように始めたか、そしてどのようにGoの慣習に従うようになったかをお見せしようと思う。Webサービスのバックエンドを構築してみよう。 環境設定 もちろん、最初のステップはGoのインストールだ。オフィシャルサイトで、使用しているOSのバイナリディストリビューショ
CoffeeScriptのリファクタリング - ワザノバ | wazanova CoffeeScriptのリファクタリングと聞いたので、いてもたってもいられなくなった。まず、お題の結果を見ずにやってみる。 これが元のコード $(document).ready -> photoHTML = (photo) => "<li> <a id='photo_#{photo.id}' href='#{photo.url}'> <img src='#{photo.url}' alt='#{photo.alt}' /> </a> </li>" $.ajax url: '/photos' type: 'GET' contentType: 'application/json' onSuccess: (response) => for photo in response.photos node = $(phot
ぼくらが迂闊にUIを作ると、そこにはユーザの正直な目線があり、非常に様々な、そして真っ当な反応がある。 曰く「わからん」「まさかそこをクリックするとは」「不思議な動作」「独自宇宙」「モリスUI」。 反応がもらえるのは非常に良いことだが、何度も何度も繰り返しているとつらくなってくるので、できれば避けたい。分かっている(いた)ことは最初から対応しておきたいものだ。*1 ということで、ここではブラウザで操作する管理画面等のWebUIを作るとき、真っ先に心得ておくべき5つの鉄則を紹介したい。これを守っていてもDISられなくなるというわけではないが、これを守らないと間違いなくDISられるので注意しよう。 なおこの記事ではオリジナリティというものについては考慮しない。オリジナリティとか犬に食わせろ。 クリックできる場所はcursor:pointerを指定しろ これを忘れるとこの世のものとは思えないくら
CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way. The golden rule of CoffeeScript is: “It’s just JavaScript.” The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can u
この記事には、Rubyを書いているときに「これは言語化されたり公式化されたりしていないけれど基本的には必ずこのパターンに則ってプログラムを書いているな」ということをふと思い出したときにやってきてそのパターンを書く。多分3パターンぐらいで終わると思う。ウケが良ければ思い出す確率が高くなると思う。題材さえあれば何も考えずに書けるので、これを書くコストは全然高くない。 名前が"?"で終わるメソッドは必ずtrueまたはfalseのどちらかを返す trueとfalse以外(例えばnil)が返る可能性がある場合は、必ず式の先頭に!!を付けてtrueかfalseになるようにしてる。 このパターンを守ることがとても大事だという風には全く考えていないけど、もしhas_user?がuserを返すとして、has_user?という名前のメソッドがUserオブジェクトを返すというのは一体どういう意味を持っているのだ
TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIはレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or
通常,C++のテンプレート関数(orクラス)をライブラリ化するとき,それを利用するソースから,そのテンプレート関数の実装(定義)も含めてインクルードしなければならない.そうしないと,特定の型に対してテンプレート関数のインスタンスを生成できないからだ.しかし,この仕様には ヘッダファイルの肥大化(コンパイル速度の低下) 望ましくない実装の公開 などの問題がある.これを回避するために,特定の型に対してテンプレートのインスタンスを明示的に生成する explicit instantiation という方法がある. explicit instantiation はテンプレートの特殊化 (explicit specialization) とは別物なので注意しなければならない.後者は,特定の型に対して特定の実装を与えるためのものだ. さて,引数の2乗を返すテンプレート関数 template <typen
複数プラットフォームにGoアプリケーションを配布する tcnksm/jj 最近試しにGo言語でCLIアプリケーションを作成した.joelthelion/autojumpをシンプルにしただけのツールで,ディレクトリを保存して,どこからでもその保存したディレクトリへの移動を可能にする. Goの環境さえあれば,このようなGo言語のアプリケーションの配布はとても簡単で,インストールは以下のようにするだけでよい. $ go get github.com/tcnksm/jj_ これだけではなく,Goはクロスコンパイルが簡単で,様々なプラットフォーム向けにバイナリを生成することができる.つまり,Goがインストールされていない環境に対しても簡単にツールを配布することができる. Packerなどの最近のHashicorp制のツールは,Go言語で書かれており,OSX,Linux,Windows,FreeBSD
どうも、ご無沙汰してます有末です。 Pythonistaならpyenvだよねーってことで当初からバリバリ使わせていただいているのですが、最近djangoのプロジェクトを書く際に困ったのでまとめておきます。 具体的にはpyenvでPytho 3をインストールし、pyenv-virtualenvを用いて仮想環境を構築し、その仮想環境に django をインストールしただけでは jedi-vim の補完が効かないという問題です。 いくつかの要因が複合して複雑に成っていたので、ひとつずつメモしていきます。 忙しい人のための簡易書 普段からpyenvとpyenv-virtualenvを使用していてjedi-vimでdjangoの補完が効かなくて困っている。 とにかく補完を効かせたい。 戯言なんてどうでもいいという人は下記を~/.vimrcに記載してください。 " ~/.pyenv/shimsを$PA
pystone benchmark PythonJS using the dart backend is 6x faster than CPython. pystone.py nbody benchmark PythonJS using the fast javascript backend is faster than CPython and even 2x faster than PyPy. nbody.py richard's benchmark PythonJS using the dart backend is 7x faster than CPython. richards.py float benchmark PythonJS using the dart backend is 3x faster than CPython. float.py Micro-Benchmarks
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く