日曜日, 3月 10, 2013

stonewall開発日記11

exampleを改修してLoadNextボタンを押すと継ぎ足しできるようにした。今のexampleの処理の流れは

  1. LoadNextをクリックする

  2. Tumblrから次の20件を取ってくる

  3. 受け取ったデータを#containerに追加

  4. Stonewallで#container内の要素を全て並び替え直す


  5. となっている。「全て並び替え直す」というところはStonewallのインスタンスを作り直しているからなのだけど、既に並んでいるものをもう一度並べ直すのは無駄だし、数が増えるごとにその無駄が増えるので、追加した要素だけを並べるようにしたい。
    ということでadd()とremove()をつけることにした。並べる要素はDOM Elementのコレクションになっているので、いったん配列に変換して扱うようにしてある。まだ実装していないけど、任意の要素を削除したり、任意の位置に追加できるようにしたい。
    ただ、現状のaddやremoveは「Stonewallの管理下に入れる」「Stonewallの管理下から外す」ということでしかない。なのでaddしただけでは表示されないし、removeしただけでは表示が残ったままになる。単純に位置の計算だけを行うようにして、DOM操作を行わないようにするか、要素を追加したり削除することも含めて色々面倒を見るようにするか、考え直す必要がある。

    火曜日, 1月 01, 2013

    new new new new year

    http://nnnny.jp/

    をすごく微妙にアップデートした。元々つなぎで作ったサイトで、jsonファイルに画像のパスとかタイトルだけ書いたら、グリッド状にレイアウトしてくれるみたいなフレームワークを作ってたんだけど、画像数も増えてきたので一定数のエントリで区切って必要に応じて継ぎ足すようにした。

    画像をクリックすると元画像にリンクしてたんだけど(グラフィックの詳細が見れていいと思う)、ついでにlightbox系のビューアもつけた。以前はFancyBoxとか使ってたんだけど、新しいバージョンにしようと思ったらライセンスがCC BY-NC 3.0になってたので自作した。ポモドーロテクニックを使って、画像だけなら見積もり通り5ポモドーロでできた。完成後に見つかったバグ修正やYouTube貼付け機能の追加は入れてないので実際はもう少しかかってる。テストないしWindowsで確認してないのでバグがあるかも知れない。ひどいと思うけど、今のところ「こんなことやってましてね」って対面で見せるために作ってるので…。これがバージョン2で、データベースを使ったバージョン3を開発中。

    まだまだ整理されてないところもあるけど、それなりに去年身につけたことを反映できたのではないかと思う。今までは割と変数名やメソッド名が適当で、メソッド名が示すことの以上のことを平気でやってしまったりしていたのだけど、そういうところを意識して設計や命名を適宜修正するよう心がけた。

    ビューア、レイアウト、ページ継ぎ足しを組み合わせたシンプルなギャラリーフレームワークがようやくできそうな雰囲気が掴めた。もうちょっと色気のある見せ方をしたいのと、ちゃんとテストも書いて、ファイルの最適化もしたい。Yeomanとか使うと良さそう。クロスブラウザ対策もSauceとか使ってみたい。

    という訳で去年と今年のKPT

    Keep

    • デザインとかファッションに興味を持ち続ける
    • HTML, CSS, JavaScript, ActionScript3, Objective-C
    • Ruby, Python, PHP
    • データベースの勉強
    • 次の仕事探し

    Problem

    • インターネット見過ぎ
    • プログラムの設計
    • スケジュールの見積もり
    • 部屋の片付け
    • ごみ捨て忘れ
    • 近しいはずの人ほど適当に扱いがち
    • 自動化足りてない

    Try

    • 関数型言語で何か作る
    • 技術だけでなくマネジメントも勉強する
    • データドリブンなグラフィックデザイン
    • ゲームを作る
    • 音楽を作る
    • お金を稼ぐ

    どうせこんなことを書いていても今日の夕方には忘れるし見返したりもしないので、折に触れてリマインドする仕組みが必要ですね。「問題を根性で解決するな、エンジニアリングで解決しろ」ということです。

    今年もよろしくお願いします。

    日曜日, 9月 16, 2012

    Designing Tumblr

    Tumblr解説本、Designing Tumblrを献本していただきました。ありがとうございます。僕が関わったKAKATO梅川良満さんのTumblrも紹介してもらってます。あとthirozumiさんのページで投稿されてるのが僕のTEE PARTYの商品です。

    で、KAKATOで使ったURLをランダマイズするスクリプトの掲載部分が中途半端だったので、補足しておきます。urls配列に入れたURLをダウンロードボタンとして使っているa要素(id="downloadURL")にセットするところ。

    var urls = ["ダウンロードURL1","ダウンロードURL2","ダウンロードURL3"];
    var a = document.getElementById("downloadURL");
    a.href = urls[Math.floor(Math.random() * urls.length)];
    

    アップロード先のサーバが混雑してたり落ちてたらURLだけ分散しても意味ないので、実際にこのような目的で使う場合はアップロード先も分散しておいた方がよいと思います。

    本当は技術的なレビューとか面白いTumblrのセレクションで参加する予定だったのですが忙し過ぎで何一つできなかったので、代わりにと言うか何と言うか、せっかくなので書籍を参考にTumblrのテーマを作ろうかと思います。

    今まではCustomizeのEdit HTMLで編集してた(もしくはローカルのHTMLからコピー&ペースト)んだけどストレス溜まるので、ローカルで開発環境を整えたい。

    書籍にはfumblrが紹介されてたんだけど、環境の問題かすんなり動かなかったので深追いせずにThimbleを使うことにした。PHP製なのでXAMPPとかですぐ動かせる。どっちも微妙に古くて新しいタグに対応してなさそう。仕組みとしてはテンプレートタグをパースしてるだけっぽいので、自分で拡張すればよいかも。とりあえずforkしておいた。