タグ

2014年5月4日のブックマーク (14件)

  • Django Best Practice への道 #2

    DjangoのWebアプリを開発している際、リファクタ/テスト拡充のために集めた情報をまとめます。記事は三部作の二つ目となります。 #1 Djangoプロジェクト/アプリケーション/設定ファイル構成 #2 Djangoテスト戦術 #2 補足編 #3 Django Model/View/From/Template戦術 書くこと Django Best Practiceへの道の続きで、Djangoテスト戦術について書きます。Djangoでテストをする際に、どうしたら効率的に書けるか、メンテナンスしやすくなるか、ということに焦点を置いて書きます。 書かないこと テストをするべき、テストはいらない、どこまではするべき、といった類の話は書きません。する、しない、いまはしない、どこまではする、は各チームや開発者がその時置かれているコンテクストに非常に強く依存している為、閾値的なものや考え方を書くのは

  • Python のメタクラスを試してみる

    興味はあったけどよく分かってなかった Python のメタクラス。 リファレンスには「クラスのクラス」とある。 正直、なんのこっちゃという感じだけど、調べたら少しずつ分かってきた。 「クラスのクラス」では言葉足らずで理解できない。 これは既に分かっている人に対する説明だと思う。 一言で説明するのは難しいけど、もう少し親切にするなら「クラスを定義するのに使うクラス」かな。 以下のサンプルコードでは組み込み関数 type を使うことで class 文を使わずにクラスを定義している。 つまり class 文は組み込み関数 type のシンタックスシュガーで、内部的には組み込み関数 type が呼び出されているようにイメージすると良いと思う。 誤解を恐れず端的に言えば、この組み込み関数 type がメタクラスなんだろう。 関数なのにクラスとはこれいかに。 #!/usr/bin/env python

    Python のメタクラスを試してみる
  • NeoBundle でVimプラグインを簡単に管理する - inari blog

    2014-05-03 NeoBundle でVimプラグインを簡単に管理する みなさん、エディタは何を使ってますか? MacVim? 僕もです。とはいえ、全然使いこなせてない初心者です。 最近はずっとMacVim使ってたから今さらって感じだけど、書きますかね。 NeoBundleっていうのは、 ~/.vimrc に、インストールする vim プラグンを書いていくと、簡単にインストールできますよーってやつ。 NeoBundle のインストール $ mkdir -p ~/.vim/bundle $ git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim .vimrcに記述していく 僕のあんまり良くない.vimrcの一部です。 こんな風にNeoBundle ◯◯と記述します。 "---------

  • かっぱのほげふが | Specinfra を試してみる

    Tags hello (1) middleman (1) s3 (1) git (1) InfluxDB (5) fluentd (2) よくわからん (3) Elasticsearch (3) 勉強会 (2) MongoDB (1) Sensu (8) AWS (10) Grafana (2) Tasseo (1) Shell (1) Ruby (4) Elastic Beanstalk (1) Docker (4) ElastiCache (2) RDS (2) memcached (2) twemproxy (2) RabbitMQ (3) Jq (1) Jenkins (1) Specinfra (1) Serverspec (4) Puppet (3) Chef (7) Graphite (2) Infrataster (2) mackerel (1) Monitoring (3

    かっぱのほげふが | Specinfra を試してみる
  • /usr/local とは何なのか - 破棄されたブログ

    ご用心: この記事を鵜呑みにせず、末尾に記載された一次ソースを確認してください。 ソースからソフトウェアをビルドしてインストールするときに使う /usr/local ディレクトリだけど、/opt ディレクトリとの住み分けとか、 そもそも標準はどうなっているのかとか、まともに知らんかったので Filesystem Hierarchy Standard を確認してみた。 /usr/local は何をすべきところなのか? 他のホストと共有されない 既存のシステムの破壊防止 FHS 準拠のソフトウェアをインストールする /usr/local ディレクトリ下自体が FHS 準拠になる /usr/local ディレクトリは、システム管理者がソフトウェアをローカルにインストールするために用いる。 /usr/local ディレクトリとして隔離されるため、同名のファイル名で既存のファイルを上書きするなどして

    /usr/local とは何なのか - 破棄されたブログ
  • パーフェクトRuby on Railsという本が出ます。 - ローファイ日記

    標題の通りが出て、それに関わっています。 まずは、共著者諸氏の記事その他をご参照ください。 パーフェクトなRailsを書きました - joker1007の日記 パーフェクト Ruby on Rails というを書きました - willnet.in Twitter / Search - #sugamasao_sushi の売りとか willnetさんとjokerさんのエントリの通りなんですが、Rails 4.1に滑り込みで対応したことはあります。あと何より、敢えて内容に「現場っぽい、仕事でずっと使っていたエンジニアの観点っぽい」バイアスを掛けているところだと思います。 個人的には、今まで書籍という形では取りこぼしていたようなRailsのフィーチャーの説明とか、中盤、ある程度きっちりしたアプリの設計、コーディング、テスト、サーバのプロビジョニング、デプロイ、監視設定までを一気通貫でや

    パーフェクトRuby on Railsという本が出ます。 - ローファイ日記
  • CoffeeScriptを使う理由 - Qiita

    function Person() { this.name = "takashi"; this.age = 20; }; Person.prototype.echo = function () { return "Hello " + this.name + " !!"; }; コンストラクタ、メソッドを書いただけで、コード量が増えてきましたね。 毎回クラス名とprototypeと書く必要があります。 めげてきましたか? 私はめげてます。 次は継承してみましょう。 function inherits(ctor, superCtor) { ctor.super = superCtor; ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writ

    CoffeeScriptを使う理由 - Qiita
  • 複数バージョンのPythonを使い分ける

    なんとなくネタとして。 Pythonは大きく2系と3系になってますが、そろそろ3系に移行しつつも2系のケアをしてあげないといけません。 なので必然的に複数バージョンのPythonを使い分けることになります。 なんかそういうの簡単にできちゃうよーという 超便利ツール があるらしいですが なんでわざわざツールの使い方覚えないといけないのかさっぱり理解不能なので、 超便利ツール にさっぱりついてけないなりのやり方をメモっておきます。 方針とか プロジェクト内ごとの環境は virtualenv を使う tox を使ってバージョンごとのテストなどを実行する /opt/python-{version} にインストールする バージョンつきの pythonコマンド(python3.4,``python2.7`` など) は PATHに常に含まれるようにする とりあえずvirtualenvするには pyth

  • [MySQL][Python]8000万レコードをInsertする | Momentum

    概要 ・とある物件で8000万弱のレコードを新規のDBに効率的にぶち込む方法を考える必要に ・MySQL(Amazon RDS) + Python(mysql.connector)を想定 ・mysql.connector + pythonについては拙文ながら(http://nekopuni.holy.jp/?p=927)に書いております。 ・コミットの位置には気をつけよう + Multiple Insert最強ねというお話。 方法その1 まずは最初にやった方法。1レコードごとにInsertしてコミットしていく方法。 今までDB関連でやったコードはレコード量も大したことなかったので以下の方法でも特に問題なかった。 具体的な環境としてはテキストデータ(csv)を読み込み、それをDBにInsertしていくというもの。 csvの中身は日付(DATE)とデータ値(VALUE)がカンマ区切りになってい

  • Eight Cool Features Coming in ES6 - Tuts+ Code Tutorial

    ES6 is coming and with it brings many great things that will help us develop better and faster web applications. Let's have a look at the most significant ones. Syntax Sugar In ES6 there is a lot of syntax sugar that will shorten development time and speed up our applications. Let's have a taste, shall we? Destructuring This one is really interesting. For example, you can destructure an object int

    Eight Cool Features Coming in ES6 - Tuts+ Code Tutorial
  • Promise時代のJavaScriptの関数の処理/提供 - mizchi's blog

    最近自分で非同期前提のプラグイン書くときはThenableな感じで書いてることが多い。 Thenableってのはどういうことかというと、typescirptのes6-promises では次のように定義してある。 interface Thenable<R> { then<U>(onFulfilled: (value: R) => Thenable<U>, onRejected: (error: any) => Thenable<U>): Thenable<U>; then<U>(onFulfilled: (value: R) => Thenable<U>, onRejected?: (error: any) => U): Thenable<U>; then<U>(onFulfilled: (value: R) => U, onRejected: (error: any) => Thenab

    Promise時代のJavaScriptの関数の処理/提供 - mizchi's blog
  • Kyoto.なんかで“Introduce browserify”という発表をした - Sexually Knowing

    Kyoto.なんかという Kyoto.js の潮流を汲んだような汲んでいないような、勉強会のようななんなのかよくわからないイベントで発表した。 browserify という Common JS Modules/1.0 などに互換のあるモジュールを、Common JS Modules/1.0 などモジュール機構に対応していないブラウザで動かせるようにするツールについて簡単な紹介をした。 browserify-shim を使って jQuery plugin も browserify で扱えるようにするのがとても便利。 実際には browserify-shim が require() を解決し展開するやりかたはけっこう凝っている (出力されたコードとちょっと実装を読んだくらいで、僕も詳しい実装はあまり追っていない)。 作者の substack さんは browserify という比較的大きなツー

    Kyoto.なんかで“Introduce browserify”という発表をした - Sexually Knowing
  • MVCの先、状態管理、ジェスチャー

    わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~

    MVCの先、状態管理、ジェスチャー
  • FluentdとAWSを使ったログの運用

    16. fluentdの設定(1) # Input <source> type tail path /var/log/messages format syslog pos_file /var/log/fluentd/messages.pos tag messages </source> # Output <match messages> type forward send_timeout 60s recover_wait 10s heartbeat_interval 1s phi_threshold 8 hard_timeout 60s <server># <= 送信先サーバーの指定 name log_proxy host 192.168.1.1 port 24224 </server> </match> 18. fluentdの設定(2) # Input <source> type forwar

    FluentdとAWSを使ったログの運用