Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

長文注意。 angularjsについて今更ながらに触り始めて色々と感動したので纏めておく。 angularjsがどういったフレームワークかは公式のチュートリアルを眺めてたらぼんやりと把握できると思うので今回その辺の話はあまり触れない。 http://angularjs.org/ angularjsのAPIについては公式のドキュメント含めて様々なメディアやブログに取り上げられているが、導入から体系的に語られてるものはあまり無い印象だったので、僕のブログでは導入から具体的な目的に沿った実装方法を紹介していこうと思う。 ちなみに自分のangularjsへの理解も触り始めて一週間程度なのでだいぶ甘い。 angularjsを一週間やってみた感想 最初の2日くらいがだいぶつらい。 飲み込みが早い人ならすぐに使いこなすのかもしれないが、angularjsはdirective, controller, f
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 改訂版について (5/7/2019公開) この記事は、私がこちらに公開したもの中では最も読まれているようです。そこで、執筆後に気づいたこと、古くなった情報、新しい技術動向などを考慮に入れて改訂をしました。主な変更点は以下の通りです: 新しいセクションの追加 最近の本の紹介 細かな表現の修正 この記事は複数のセクションに分かれていますので、前編から始め、順番にアップデートして行きたいと思います。何かお気付きの点などありましたら、コメント欄、もしくはkonoアットマークucsd.eduにお願いいたします。 はじめに この記事は、可視化の専門
はじめに みなさん、2014-08-14 26:00 みたいな時間を扱おうとして困ってませんか? 文字として保存するだけならまだしも、これを元に現在時刻と比較して・・・とかやろうとすると色々大変です。 この記事ではそんな24時間超えの時間を楽ちんに扱うことができる Chronic という gem を紹介します。 そもそも何が困るのか Ruby の time ライブラリには大変便利な Time.parse メソッドがあります。 が、困ったことにこいつは 26:00 みたいな時間は理解してくれません。 irb で実行してみると以下の様なエラーがでます。 >> Time.parse('2014-08-14 26:00') ArgumentError: argument out of range 日付は 2014-02-31 とかでも良きに計らってくれるのに、時間はすごくきっちりしています。 24
まえがき データにIDを持たせたいとき、単純な方法としては、DBの提供するauto incrementを使う場合やUUIDを利用することがある。それぞれの方法の利点欠点は以下の通り。 データベースのauto incrementを使う場合 利点: 特別な実装が必要ない 欠点: DBを1台で運用するとデータベースがパフォーマンス・障害のボトルネックになる DBを二台にするとIDのユニークさや順序の保証が困難 UUID(v4)※1を利用する場合 利点: 分散環境で各々がIDを生成しても衝突しない IDを公開したくない場合に、推測されにくいIDを生成できる 欠点: 128ビット必要、DBのインデクシングやプログラミング言語で扱うときに不利なことがある IDから時間の情報が失われる、例えば2つのIDを比べてどちらが古い投稿か判断できない 世界の大企業がどうしてるか 調べてみると多くの企業がブログなど
シングルページアプリケーションやモバイルアプリなどの普及により、サーバサイドではJSONを出力するWeb APIの必要性が高くなってきています。みなさんはどのようにWeb APIを作っているでしょうか。 JSONはビュー RailsでJSON APIを定義する時、素のままでやろうとすると コントーラでto_jsonを呼んだり、モデルにas_jsonを定義したりすることになるかと思います。 モデルに書くとAPIによって出力内容を変えたい場合にとても苦労します。 API数が増えれば増えるほどモデルが複雑になっていきます。 APIレスポンスとしてのJSONはコントローラやモデルに書くべきでしょうか? ビューに書いた方が自然ではないでしょうか? これはRailsでの話ですが、Railsに限らず、フレームワークを使ってWeb APIを作るときに一般的にあてはまることだと思います。 変化に強い、再利用
Railsアプリケーションのルーティングは、config/routes.rb1ファイルで最初は開発を始めると思います。 ただ、サービスを運用していくとルーティングは膨らみ、メンテナンスコストも馬鹿になりません。 そのため、ルーティングの設定をできるだけメンテナンスしやすく作っておくことでそのコストを下げようという試みです。 Railsのルーティングは、config/routes.rb がルーティングの設定ファイルにデフォルトで指定されています。 ただ、これは変更可能ですし、複数のファイルに分割もできます。 昨今のアプリケーションの用途は、Web、native(iOS、Android)、APIサーバ、と多岐にわたるので、
HerokuでのPHPサポートが正式版になってたので、現時点でこんな感じで使っているよ、ということ。 reference Getting Started with PHP on Heroku | Heroku Dev Center Customizing web server and runtime settings for PHP | Heroku Dev Center Heroku PHP Support | Heroku Dev Center PHP session handling on Heroku | Heroku Dev Center start composer.jsonがあればPHPアプリケーションとしてdetectされる しかし、package.jsonとかGemfileとかあるとPHPのアプリケーションとして認識されない 今どきはこういうファイル、大抵ある build
Terraform - HashiCorp http://www.hashicorp.com/blog/terraform.html blog 投稿に対する日本語訳です。参考程度にどうぞ。 Terraform 今日、私たちは Terraform を発表します。Terraform は、安全かつ効率的にインフラの構築・組みあわせ・稼働をするためのツールです。物理サーバからコンテナ、SaaS プロダクトに至るまで、Terraform はサービスやアプリケーションが実行するために必要な構成物の全てを作成・構築することができます。 Terraform を使えば、複数のサービスプロバイダを使っていたとしても、完全に Infrastructure as code (コードとしてのインフラ)を記述することができます。たとえば、サーバは AWS を使っても、DNS は CloudFlare かもしれませんし
はじめに データの並び順を自由自在に入れ替えたい、という要求があったとき、ドラッグアンドドロップで順番が変えられるとなかなか便利です。 そこで本記事ではドラッグアンドドロップによる表示順変更機能をRails 4で実装する手順を説明します。 補足資料 理解しやすくするための補足資料をいろいろ用意してみました。 デモサイト Herokuにデモサイトを作ってみました。 元々のサンプルアプリケーションはCRUDができるようになっていますが、このデモサイトではデータの更新はできません。(変更できるのは順番のみ) ドラッグアンドドロップするとどうなるか、実際に動かしてみてください。 スクリーンキャスト サンプルアプリケーションを作る過程を録画してみました。 フルスクラッチでrails newするところから始めています。 http://www.youtube.com/watch?v=YQ-6HkBhVy
概要 TerraformのAWSを使って、CLIを通してインスタンスの起動→変更→停止を行うためのチュートリアル。Terraform の基本概念である plan apply show のサイクルを理解するためのもの。 追記 Terraformのblog投稿、参考訳 - Qiita http://qiita.com/zembutsu/items/402e02950ce9d59fa0e6 Terraform入門 日本語訳 - Qiita http://qiita.com/zembutsu/items/84f5478701c5391df537 Terraform とは Hashicorp (Vagrant, Packer, Serf, Consul を作っている会社) によって 7/28 に公開された新しいオープンソースのプロダクト。 Terraform http://www.terraform
はじめに RSpec 3が正式リリースされて2ヶ月ほど経過しました。(正式リリースは2014年6月) ネットの情報を見ていると、これまでは「既存のテストケースをRSpec 3にアップグレードさせる方法」や「RSpec 3で削除されたり、記法が変わったりした点」など、「守りの姿勢」に入った情報が多かったように思います。(僕自身もそういう情報をたくさんアップしていました) しかし、RSpec 3では以前のバージョンでは使えなかった新しい機能も数多く導入されています。 そこで本記事では「攻めの姿勢」で「RSpec 3から導入された新機能」をまとめてみました。 なお、ここでフォーカスするのはテストコードの書き方にダイレクトに関わってくるマッチャの新機能です。 2015.01.12:RSpec 3.1に関する情報を追記しました RSpec 3.1に関する情報も追記しました。 もともと紹介していた新機
エンジニア組織を強くするための本を出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 デメテルの法則 別名最小知識の法則。デメテルは、豊穣の女神。アスペクト指向などの研究であった「デメテルプロジェクト」に由来。 基本的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 単純化して説明すると、オブジェクトの"メンバーのプロパテ
はじめに 有名な初心者向けのRSpec入門記事として、和田卓人さん(@t_wada)の「RSpec の入門とその一歩先へ」という記事があります。 僕もRSpecを全く知らなかった頃に参考にさせてもらいました。 今読んでもとても素晴らしい資料なのですが、RSpecのバージョンが古く、現状の書き方とマッチしなくなってきているのが少しもったいないところです。 そこで、この記事では和田さんの記事をRSpec 3バージョンに書き直してみようと思います。 各イテレーション(RSpec 3バージョン)へのリンク 第1イテレーション(本記事) 第2イテレーション 第3イテレーション ソースコードのURL https://github.com/JunichiIto/rspec3-for-beginners/tree/end_of_iter1 本記事のライセンスについて 本記事は クリエイティブ・コモンズ 表
国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】 をもとにナウい感じのサービスなどをまとめた。分類がおかしいかもしれないのん コード管理 ソースコードは Git で管理しているところが増えている Git GitHub GitHub Enterprise: Enterprise 向け Gitlab Gitlab Cloud Gitlab CE: オープンソース Gitlab EE: Enterprise 向け BitBucket Stash: Enterprise 向け codebreak; RhodeCode Gitorious GitPrep GitBucket GitHubクローンまとめ 無料でGitHubのような機能を実現するための候補 | Act as Professional - hiroki.jp 料金 private repositor
前にGit Repository on Cloud Storage Servicesという投稿をしたのですが、今回はDropboxなどに作成したBareリポジトリをGitHubやBitbucketのようなGit Hosting Serviceに移行する方法を書きたいと思います。 その前に、Gitリポジトリの管理方法によって、使い方や公開度が変わってくるので、個人的にどう使い分けているかを書きます。 [公開度 public] GitHub, 誰に見られてもよいコードをアップしています。 [公開度 internal] Bitbucket, そのうち公開予定であったり、研究で書いているプログラムをアップしてます。 [公開度 private] DropboxやGoogle Drive, 誰にも見せる予定のないプログラムや書きかけの記事などを保存しています。 「Bitbucketならprivateリ
通知系を HipChat に集約しようとしているので、設定方法をメモしておく。 ちなみに、HipChat は、基本有料(2$/1 User) だが、5 User までは無料で利用できるので、少人数のチームにとっては助かるサービス。 設定方法は 2種類あって、Bitbucket と HipChat のそれぞれから設定できる。 HipChat からの設定方法 ログイン後の手順は、以下の通り。 Group admin のページへ移動 Rooms タブへ移動 My Rooms から、通知をとばしたい Room を選択。 左側の Administration から Add-on を選択。 Find New から HipChat Bitbucket Connector を Install Install 時に表示される Dialog で “Authticate with Bitbucket” を選択。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 会社でGit?GitHub Enterpriseでしょ?という今日この頃、もう一方で有名なStash/JIRAを紹介します。 聞いたことないなあ、という方もいるかもしれませんが、Bitbucketは多分ご存じなのではと思います。こちらはPrivateリポジトリが無料ということもあり、お世話になっている方もそこそこいるのでは。 Stash/JIRAはこのBitbucketを提供しているAtlassianの製品で、StashはGitリポジトリ管理、JIRAは課題管理(Trac/Redmine的なもの)、二つ合わせてプロジェクト管理、というよ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く