2013 年 8 月の記事一覧です(6 件)

[Bootstrap3][FontAwesome]ブログのデザインを変えました

とりあえずBootstrap2からBootstrap3とFont Awesomeの組み合わせに変えました。ちょっとフラットデザインっぽくなっています。とはいっても、なんてことはなく、以前からお世話になってるBootswatchが3対応になっていたので、替えちゃった次第です。

こまかいところはまだ調整が必要ですが、前よりはスッキリしたと思っています。

Internet Explorerに関しては9以上でちゃんと見れると思います。自分はWeb屋さんではないので、8以下は完全に意識から除きました(笑)


[Twitter][bot]cookpad_recipeを開始してから丸5年が経過しました


スクリーンショット 2013-08-26 21.05.36

5年前に勢い(だけ)で作成したこのbotもなんだかんだ続けられて丸5年経過しました。

途中、Twitter側ではBasic認証の廃止とOAuth1.0の採用、OAuth1.0の廃止と1.1の採用、こまかなAPI仕様変更。某レシピサイト側ではロボットっぽいUAがリジェクトされるようになったとか、突然、拾いたい情報がJavascript生成になってしまった等、いくつかの困難(?)を乗り越えここまでやってこれました。

すぐに思い出すのは、震災の時に暫く動かすのを止めて、いつ再開しようか悩んだこと、Xvfb+firefox+selenium web driverを半泣きで一晩中ググりまくったことですかね。

とにかく某レシピサイト様が黙認してくれているから出来るのであって本当に感謝しています。ありがとうございます。

時間があればリファクタリングしたい。あとよく考えたらPythonも5年間使っていることになるけど全然Python力が上がらない。。どーゆうこと?


[JavaScript]ノンプログラマのためのJavaScriptはじめの一歩を読んだ


ノンプログラマのためのJavaScriptはじめの一歩 (WEB+DB PRESS plus)

ノンプログラマのためのJavaScriptはじめの一歩 (WEB+DB PRESS plus)

いつかはちゃんとやらなければならないと思っているJavaScriptですが、分かったふりしてjQuery使い始める前に一回読んでおこうと思っていたこの本を読みました

ひとつのサンプル(スライドショー)のコードを最初から最後まで使いまわして理解させ、最終的に同じ要件でjQueryだとこう書けるよって見せてくれています

いつもは作りたいものがあって、調べながら作って、調べ散らかしておしまいって流れが多かったんだけど、JavaScriptは中小規模なエンタープライズにも入り込んでくるだろうし、作りたいものが明確に無いときでも知っておきたいなと。

bookmarklet作成にも役立つし


JavaScript ライブラリ実践活用〔厳選111〕 (Software Design plus)

JavaScript ライブラリ実践活用〔厳選111〕 (Software Design plus)

つぎはこれを買うつもり


[pip][zsh]zshでpipのタブ補完を実現させる

zshでpipのタブ補完が出来ることを最近知った。ドキュメントに普通に書いてあった。

基本、ドキュメント通りなのだけど、自分の場合は.zsh_file/.zshrc.pythonというふうにpython関係のzshrcはまとめているのでそちらに書いた(実際には標準出力をリダイレクションでファイルへ追記)

$pip completion --zsh

# pip zsh completion start
function _pip_completion {
  local words cword
  read -Ac words
  read -cn cword
  reply=( $( COMP_WORDS="$words[*]" \
             COMP_CWORD=$(( cword-1 )) \
             PIP_AUTO_COMPLETE=1 $words[1] ) )
}
compctl -K _pip_completion pip
# pip zsh completion end

pip completion --zsh すると上記のように標準出力されるので、>> .zshrc のようにしてあげればOK

freezeって打ちにくいなあって使うたびに思っていたのでもっと早く知りたかった


[Flask][Jinja2]同一テンプレート内で同じ名前のブロックを複数定義する方法

最近このブログの各エントリーで付与したタグの一覧ページを作成したのですが、その一覧ページにてサイドバーが邪魔に感じたので表示させないようにした際、少しハマったのでメモしておきます。

現在、メインページと各エントリページは2カラムで、細かく言うと、bootstrap2を使い、containerをspan9とspan3で区切ってそれぞれの下に {% block body %} と {% sidebar %} を置くようにしています。

サードバーを取り外す為には、span9とspan3を一本化する必要があるので、request.endpointで条件分岐をし、 タグ一覧ページにリクエストが来た時だけ、1カラムにするようにしました。

ただし、この際、 {% block body %} を複数置くとエラーになります。なぜエラーになるかはマニュアルに記載されています。

これはマニュアルにあるように、selfを使ってbodyを呼び出すことでエラーを回避出来ます。最終的にはこのようなテンプレートになっています

<div class="container">
        {% if request.endpoint == 'show_all_tags' %}
        <div class="row">
            <div class="span12">
                {% for category, message in get_flashed_messages(with_categories=true) -%}
                <div class="{{category}}">{{message}}</div>
                {%- endfor %}
                {% block body %}{% endblock %}
            </div>
        </div>
        {% else %}
        <div class="row">
            <div class="span9">
                {% for category, message in get_flashed_messages(with_categories=true) -%}
                <div class="{{category}}">{{message}}</div>
                {%- endfor %}
                {{ self.body() }}
            </div>
            <div class="span3">
                <div id="sidebar">
                    {% block sidebar %}{% endblock %}
                </div>
            </div>
        </div>

jinjaの日本語マニュアルは2年前くらいに初めて読んで、ここらは俺にとっては縁がない箇所だろうなって思っていましたが、ようやく使うことになりました。


PAGE TOP