タグ

2011年9月26日のブックマーク (11件)

  • Jinja2 のインクルード機能を使ってより DRY に - present

    Jinja2 って、テンプレート内で他のテンプレートを読み込めるんです。テンプレートを共通化する方法は継承だけじゃないんですよ。私も最近調べて知ったんですけどね。 Template Designer Documentation — Jinja2 2.7-dev documentation この機能を使えば、ページネーションやデータ一覧みたいな「テンプレート継承を使う程じゃ無いけど複数ページで表示するもの」を上手くまとめることができそうです。 ページネーションなら、 <!--ページネーションは複数のテンプレートで使うので、外部テンプレート化--> <!--前のページへのリンクを出力--> {% if page.has_previous %} <a href="?page={{ page.previous_page_number }}">前</a> {% endif %} <!--現在のページ

    Jinja2 のインクルード機能を使ってより DRY に - present
    t_a_o
    t_a_o 2011/09/26
  • Flask にフォームがないから WTForms 使ってみた - present

    AppEngine/Python では長らく Kay Framework を使っていたんですが、最近は Flask に浮気気味です。Flask は URL マッピングをビューのデコレーターで記述できるのがステキですよね。Kay だと作成したビューに割り当てる URL パターンを urls.py に書き忘れて、デバッグ時にうがーってなることがたまにあったんですが、Flask ではまず無いです。 そんな Flask の長所でもあり欠点でもあるのは、ビューとテンプレートだけなこと。モデルは自前で用意しなければいけません。しかし、もともと AppEngine/Python には db モジュールがあるから無問題。 …と思ってたら、フォームもありませんでした。忘れてた。AppEngine に標準で付いている django のフォームを使ってもいいんですが、WTForms を採用。 Redirecti

    Flask にフォームがないから WTForms 使ってみた - present
  • 勤務情報管理アプリをRuby1.9&Rails3で作ろう

    これからWebアプリを開発するなら、ともに最新版となるRuby 1.9とRuby on Rails 3の組み合わせが有力候補の一つになることは間違いないでしょう。格実用期を迎えたRails 3の特徴を学びながら、サンプルとしてなるべく実用的な勤務情報管理アプリを作ってみましょう。これにより、MVC(Model-View-Controller)モデルを用いたWebアプリケーションがより身近かになるでしょう。 目次

    勤務情報管理アプリをRuby1.9&Rails3で作ろう
  • サルでもわかるHTML5超入門

    L'évolution de la fonction publique et des principes qui la régissent Le Premier ministre a saisi le Conseil économique, social et environnemental (CESE) en vue d’une réflexion prospective afin d’identifier des pistes d’avenir pour la fonction publique. Après deux mois d’auditions et de concertation, le CESE qui réunit les principales composantes de la société civile, a construit ses recommandatio

    サルでもわかるHTML5超入門
    t_a_o
    t_a_o 2011/09/26
  • 僕がTDDをやめた理由 - カタチづくり

    タイトルは、まあ、半分釣り。TDDな人もそうでない人も、肩の力を抜いてお気楽にどうぞ。 題に入る前に まずお礼 ここで書くことは、前の記事 TDDはYAGNIに矛盾する? - カタチづくり から派生して色んな方と意見を交わした経験が元になっています。この場を借りて、色々とアドバイスを頂いた方に心から感謝の意を表します。 特にコメント欄にお寄せいただいた きしだ さんのコメントは、コメントと言うよりももはや一つの素晴らしい記事となっていて、もう必読といってもいいレベルじゃないでしょうか。当にありがとうございます。特にBDDについて大きなヒントを頂きました。 押し付けではなく、交換 タイトルから想像がつくとおり、ここにはどうしてもTDDに対して否定的な意見ばかりが並んでしまう。でも、だからといって僕がTDDを完全に否定しているとは思わないで欲しい。 僕が今一番恐れていることは、TDDに対し

    僕がTDDをやめた理由 - カタチづくり
  • ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ)

    ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型  構文 #t と #f はTrue

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • ((Rubyで) 書く (Lisp) インタプリタ) - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 ((Rubyで) 書く (Lisp) インタプリタ) : melborne.github.com - Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ) という記事(青木靖さん訳)がすごい 100行ほどのPythonコードで Schemeのインタプリタの基部分を書いている Pythonのコードは見た目がRubyのコードとよく似ているので Rubyしか知らない僕でも何となく読める この記事を解読してRuby版Schemeインタプリタを書いたら インタプリタ Pyhon Scheme それからRubyのことも もう少し分かるようになるかもしれない こんなお得な勉強方法はないぞ きっと そんなわけで... 以下では上記記事を参照し

    ((Rubyで) 書く (Lisp) インタプリタ) - hp12c
  • 3000req / sec と戦う - だるろぐ

    ざっくり概要 ピークで3000req / sec 毎分コンテンツ更新要求 コンテンツ更新の際は他所からデータをapi経由で受け取る コンテンツ更新にはTheSchwartzを使用 なコンテンツを色々してきたログ。 尚、ここに書く技術は大半が周囲のギークな方々にサポートしてもらったもので、僕自身が何かしたわけではない。残念すぎる。 構成 internet -> www(squid -> apache) -> app(memcached -> app) -> db フロントエンド wwwサーバがapacheとsquidを動かしている。apacheがリクエストを受け、squidのキャッシュが有ればそれを返し、無ければバックエンドのappサーバへproxy。 バックエンド appサーバがmemcachedとアプリを動かしている。 それぞれ冗長化してるけど、リクエスト数の割に台数は少ない。 技術があ

    3000req / sec と戦う - だるろぐ
  • 図で分かるgit-rebase - アジャイルSEを目指すブログ

    世間的に「Gitはコミットログを書き換えられてキモい」と言われ、肩身が狭いので git-rebase の説明を書いてみた。 git help から引用 まずは基に忠実に、ヘルプを読みましょう。 git help rebase SYNOPSIS git rebase [-i | --interactive] [options] [--onto <newbase>] <upstream> [<branch>] git rebase [-i | --interactive] [options] --onto <newbase> --root [<branch>] git rebase --continue | --skip | --abort DESCRIPTION If <branch> is specified, git rebase will perform an automatic g

    図で分かるgit-rebase - アジャイルSEを目指すブログ
    t_a_o
    t_a_o 2011/09/26
  • GitHub Pagesで楽々ホスティング

    GitHubにはGitHub Pagesというホスティングサービスがある。先日公開した『Unity入門』のページも、このGitHub Pagesを使ってホスティングしている。 GitHub Pagesが面白いのは、ウェブページのコンテンツとGitリポジトリが一体化しているというところだ。GitHub上に一定のルールに従ってリポジトリを作成すると、そのリポジトリの内容がウェブページとして配信される。コンテンツを更新するには、そのリポジトリに更新内容をpushするだけでいい。 GitHub Pagesは、単にリポジトリの内容を配信するだけではない。Jekyllという静的サイトジェネレーターを搭載しており、コンテンツに対してスタイルを簡単に適用できるようになっている。例えば『Unity入門』のページはこのようなソースファイル群によって構成されている。これを更新してpushすると、内部でJekyl