3D mode!

Entries in category "Technology"

BlueTripと960.gsとSassと、CSSフレームワークについて、少しずつ

先日、このブログをリニューアルしました。作業としては、WordPress のテーマ作成で、もっと具体的に言うと、HTML と CSS のコーディングになります。そういや、自分はどうやって HTML と CSS のことを学んだかなぁと思い返してみると、ほぼ完全な独学です。

専門学校時代に演習で HTML を書いたこともありましたが、そのときは「HTML とは何か」「HTML はどうあるべきか」なんてことは考えもしませんでしたし、「こう書けば、こう表示される」を習って試してみて課題をこなして、それで終わりでした。

その後、色々を経て「Web アプリケーションを作りたい!」と思うようになり、まずはブログのテーマを自作しよう、というところから始まり、なんやかんやと触っているうちに、最低限のマークアップはできるようになりました。

そんな自分ですから、プログラミング言語に比べると、マークアップについては自分流とも呼べないような「ただ書きました」レベルのものになってしまいます。きっと、このブログのマークアップを他の人にメンテナンスしてもらおうと思ったら、とっても大変だと思うのです。

さてさて、場面を「Web アプリケーションのチーム開発」の現場に移してみると。自分が思うままに書いたマークアップをチームのコードベースにコミットするのは、なかなか気が引ける作業でした。そこで、CSS フレームワークの導入を検討します。

BlueTrip について

ゆーすけべーさんの日記BlueTrip を知って、興味を持って触ってみました。ゆーすけべーさんのリビドー駆動開発の速度を支えているのだとしたら、試しておいて損はなさそう、と思ってのことです。


BlueTrip

ざっと CSS ファイルを読んでみて。なるほどなぁと思うことがいくつかありました。

最初の感想は「よくできているなあ!」です。HTML の要素がざーっと列挙されていたり、Internet Explorer 用の記述がまとまっていたり。これを読めただけでも、BlueTrip に触れてみてよかったな。記述は空っぽの style.css も「こういうふうに整理して書く方法もあるのか」というような内容でした。

その次に感じた印象は「CSS の非力な部分は、ぜんぶ俺が面倒を見てやるよ」的な雰囲気でした。「細かいところまでがんばっているのはすごいのだけれど… そこは、がんばるところ、なのかなあ」感です。BlueTrip さん、色々とがんばりすぎていて、見ていてつらくなるときが、たまに、あります。たまに、ね。

今の自分の理解では、CSS は「レイアウト」と「装飾」の両方の面倒をいっぺんに見なきゃいけなくて、それが、コード中で入り交じってしまうと、可読性が低くなり、メンテナンスもしにくくなる、のだと思っています。そして「レイアウト」も「装飾」も、素の CSS では担当できなくもないけれど、とにかく非力なんですよね。扱う人が一生懸命にがんばらなきゃいけない。

だから、「レイアウト」をばっちり担当する人と「装飾」をばっちり担当する人を、きれいに分けられたら、全体が整うんじゃないか… と考えてみると、グリッドレイアウトをフレンドリーにする 960 Grid System と、「Powerful CSS」であるところの Sass の組み合わせは、納まりがよさそう。


960 Grid System


Sass

…とかってことを書けたので、他の人はどんなことを言っているのかなって調べてみたら、だいたいすでに既出でした。

CSS フレームワークのアレの話、960gs(とかsass対応してるグリッドフレームワーク) + sass 使って sass で extend すれば css 命名も綺麗になるしいいんじゃないんですか、とか hotchpotch は hotchpotch は思ったりして

Twitter / @Yuichi Tateno

というのをだいたい通り過ぎた人たち(多分)が考えたのがSass。Sassならグリッドシステムで言うところのカラムの幅などを変数として定義しておき、デザインの変更が必要になったら新たに変数を定義し、変数の参照を変更するだけで良い。「サイドバーを右置きに変更!」という時でもカラム幅の指定の変数とfloatする方向の変数を分け、方向の変数のみを変更すれば簡単に実現できる。

グリッドシステムのCSSフレームワーク – おれ ここ めも かきなぐる おまえ ここ よむ なぐる – subtech

欲しいのは、ロケットスターターキット

とはいえ、960.gs と Sass で「ちゃんと作ろう」と思ったら、ゼロベースで書かなきゃならんのですよね。いま自分が欲しいのは、とりあえずロケットスタートできて、ちょっと使い方を覚えるだけで基本部分は誰でも使えるような、スターターキット。

CSS Framework を駆逐したいなら Sass Haml のテンプレートセットでも書けばいいのかな。

Twitter / @neotag

SassというかSCSS – おれ ここ めも かきなぐる おまえ ここ よむ なぐる – subtech に書かれているようなものが一式揃うと、あえて CSS フレームワークを使わなくてもよさそう。

というわけで、今後の発展に期待しつつ、現時点での現実解として、BlueTrip を使っておくのはアリだな、と思いました。

リニューアルしました

2週間ほど前には、すでに反映させていましたが、改めて。当ブログ「準二級.jp」のリニューアルを行いました!2006年6月29日に WordPress でこのブログをスタートさせてから、早いもので、もう5年近くになります。ブログの見た目を着せ替えするのは何度目かしら… 恐らく、5回目くらい。

Manage Themes

今回は、ほぼフルスクラッチの自作です。このテーマは、けっこう気に入っています。自分専用の WordPress テーマ、名付けて「wp29」です。ソースコードの一式は GitHub に置いてあるので、もし WordPress のテーマ作りに興味があれば、覗いてみてください。何かの役に立つかもしれません。

june29/wp29 – GitHub

PHP のことはまったく分からずにテーマを作っているので… おかしな書き方をしている箇所は、けっこうありそう。

リニューアルにあたって

特に明確な理由なんてなくったって、時間が立てばブログの着せ替えをしたくなるものですが、今回は、試したいことがいくつかあって、リニューアルに臨みました。

  • Twitter / Facebook ウィジェットを導入する
  • 各種 Web アプリケーションの june29 のページへのリンクを目立つ位置に置く
  • HTML5 / CSS3 等の新しい技術を試せる場所にする

Twitter / Facebook ウィジェットを導入する

2年くらい前は、ブログ本体の「コメント欄」と「はてなブックマーク」に加えて「はてなスター」を設置しておけば、ここを読んでくれている人の反応はだいたい拾えているだろうと思っていました。しかし、時は流れて2011年。今となっては、ブログのエントリに Twitter で言及されるのは当たり前のことですし、日本でも Facebook ユーザが増えて、はてなスターのような感覚で Like ボタンが押されることも多くなりました。

そんな時代の変化を受けて、Twitter と Facebook のユーザさんとの会話も密にするべく、各種ウィジェットを導入してみたかったのです。

Facebook の Like ボタンを設置するに当たり、The Open Graph Protocol について調べる機会を持つことができました。こういうのは、実際に動いているものに触れていないと、なかなか調べないので、この機会はよかったです。たとえば、このエントリにはこんな感じの情報が設定されています。

各種 Web アプリケーションの june29 のページへのリンクを目立つ位置に置く

ヘッダの部分ですね。このブログ以外にも様々なアウトプットの場がありますから、それらの場所でも読者さんと交流できるように、目立つ位置にリンクを置いておこうと思いました。いろんなところで june29 をよろしくお願いします。

HTML5 / CSS3 等の新しい技術を試せる場所にする

せっかくの自前のサイトですから、自由に遊べる場所にしたい。

そんなことを思って、さっそくひとつ、遊び心を入れてあります。加速度センサ付きマシンの Firefox からアクセスして120秒が経過すると、ある変化が起きるようになっています。興味があったら、2分間、お付き合いくださいな。

そのときそのときで気になっている技術にどんどん触れて、遊んでみて、成果物をこのブログにぶっ込んで読者さんに楽しんでもらえたらいいなあ。

まとめ

Before:

Before

After:

After

当ブログ「準二級.jp」のリニューアルを行いました。今後とも、どうぞごひいきにー!

iReblogとの出会いをもう一度やり直した

その昔、iReblog という Web アプリケーションを作りました。

iPhoneから指1本でReblogを楽しむためのWebアプリ – 準二級.jp

思い返してみると、これを作ったのは2年前で、サーバを移し替えたりなんだりしている間に動かなくなってしまっていました。ですが、ひとつ前のエントリ「ビューと操作を極限まで気持ちよくしたInstagramに触れながら、いつか作ったiReblogを思い出した」で Instagram や Tumblr に想いを馳せ、これから自分が Web アプリケーションをデザインしていくに当たり、あらためて「iReblog は、いつでも触って確かめられる状態にしておかなくてはならない」と強く思ったので、出会いをもう一度やり直しました。

iReblog のコンセプト


RPMが低いヤツは多くを語るべきではない。

iReblog は、以下のコンセプトを体現する「ひとつのモデル」になります。コンセプトモデルだ、と明確に意識しながら作った作品です。

  • 隙間時間における RPM (Reblog per Minutes) の最大化

このコンセプトを実現する要素として、次のふたつを持たせました。

  • 疑似恒常更新 (いつアクセスしても新着がある)
  • 疑似無限 (どれだけアクセスしても終端がない)

Tumblr に ireblog というアカウントを作成し、6,400人以上を follow してあります。このアカウントの Dashboard を情報源として活用することで、まるで「蛇口をひねればいつでも水が出てくる」ように、常になんらかの新着情報があり、かつ、どこまでいっても終わりが見えないような状況を作り出しています。

iReblog の実装

サーバサイドの Ruby と、クライアントサイドの JavaScript で構成されています。

2年前に作ったときは require “cgi” していたのだけれど… 今回、Heroku に置こうと思って Sinatra アプリとして書き直しました。

また、Tumblr の Dashboard へのアクセスや Reblog の処理は、自前のスクリプトに担当させていたのですが、今になってソースを読み返してみると凄まじい泥作業… 当時の自分がこれを書き上げるモチベーションをどうやって保っていたか思い出せないレベルです。ここはまるっとごっそり gem の tumblr-rb に入れ換えました。一通りの API は揃っていて、よくできたライブラリだと思います。感謝。ドキュメントやサンプルコードが少なくて苦労しましたが、iReblog 用に自分が書いたコードを見てもらえれば、なんとなくの使い方は分かるでしょう。

当時は jQuery の 1.3.1 を使っていたようなので、1.4.2 にアップデートしておきました。

iReblog の使い方も README に書いておきました。というわけで、裏側を作り直して、Heroku にデプロイして、あらためて iReblog の紹介です。

「キーボードの j を押す」か「画面の右半分をクリックする」と、Reblog せず次に進みます
「キーボードの u を押す」か「画面の左半分をクリックする」と、Reblog して次に進みます

README.md at master from june29′s ireblog – GitHub

iReblog : http://ireblog.heroku.com/
Source : june29/ireblog – GitHub

iReblog 上で Reblog したエントリは weReblog に出現するようになっています。

ソースコードを clone して、あなたの Tumblr のアカウント情報(メールアドレスとパスワード)を設定すれば、ご所望のアカウントで動かせるようになっています。Heroku にデプロイする場合は、コマンドラインで「heroku config:add EMAIL=XXXXXX」「heroku config:add PASSWORD=YYYYYY」してください。

iReblog 後の世界

そういえば。2年前に「iReblog を作りました!」というエントリを書いて、その後、どうなったかは書いていませんでしたね。なので、今、書きましょう。

己の Web サーフィンとネットウォッチに限界を感じ悩みに悩み抜いた結果
彼がたどり着いた結果(さき)は
感謝であった
自分自身を育ててくれた Web への限りなく大きな恩
自分なりに少しでも返そうと思い立ったのが

一日一万回 感謝のリブログ!!
気を整え 拝み 祈り 構えて リブログ
一連の動作を一回こなすのに当初は5〜6秒
一万回のリブログを終えるまでに初日は18時間以上を費やした
リブログを終えれば倒れる様に寝る
起きてはまたリブログを繰り返す日々

2年が過ぎた頃 異変に気付く
一万回のリブログを終えても 日が暮れていない
齢27を越えて 完全に羽化する
感謝のリブログ 1時間を切る!!
かわりに 祈る時間が増えた

ブラウザを閉じた時 タンブリスタのリブログは
光回線を置き去りにした

そんな具合に、ものすごい速さで Reblog できるようになったのはよかったのですが、あるところまでいくと思うんですよ。「そういや、人は何故、Reblog するのだろうか」って、ね。賢者モードですよ。

ふぅ…

消費の加速と枯渇


Twitter / @ogijun

これが、とても示唆富みです。ボクは人の顕在的欲求と潜在的欲求と消費と加速と枯渇について考えている。そうして Instagram は今後どうなっていくのだろうと、考えている。この感覚はあれだ、若くして頭角を現わしたスポーツ選手が過剰とも思えるほどの注目を浴びているのを見たときに、ちょっぴり心配になってしまう感覚に似ている。どうか、すべての Web アプリケーションが、健全に成長できますように。興味や好奇にさらされて、不健康な成長の中で、消費されてボロボロになってしまいませんように。

この Tweet の数日後に ogijun さんと面と向かってお話できる機会があったのは、本当に幸運だったな。考えを整理できた。京浜東北線、どうもありがとう。

こんなことを考えていたからFlickrこそがInstagramのようなサービスを作るべきだったのではないかという TechCrunch の釣りタイトルには腹が立ったんだ。悲しかったんだ。記事の本文を読めば、ちゃんとしたことが書いてあって、別に怒らなきゃいけないようなことはなかったんだけど、タイトルに煽られてしまった。おちんこでたりもしたけれど、私はげんきです。

ボクは Flickr を愛しすぎているので、もしかしたら変なことを言っているかもしれないけれど。Flickr は、変にユーザの消費をかき立ててモチベーションを枯渇させるようなことはしていないよ。Web 上の情報の種類を「ストックとフロー」にざっくり大別するとして、2006年以降に日本で盛り上っている Web アプリケーションは、ほとんどが「フロー」を助長する類のもの。良い言い方をすれば「お手軽」「お気楽」で「楽しい」もの、悪い言い方をすれば「インスタント」で「モチベーションとデータの使い捨て」と言えると思う。そんな中で、Flickr には「それなりに整理された、地球の写真アーカイブ」つまり「ストック情報」としての高い価値があるので、ある部分を Instagram に押さえられてしまったからといって、価値が失われるわけじゃあない。別のものだ、共存できる。Flickr は、ユーザの欲求を枯渇させずに、上手に人々の日々をデザインしていると、ボクは考えている。

まとめ

作り直した iReblog について、あらためて紹介の文章を書きました。「消費力」を究極まで高めた先に「枯渇」があるのではないか、というお話をし、iReblog や Instagram や Flickr を通じて感じていることを書きました。人々と Web が大好きなので、人々と Web がゆきずりの関係でダメになるのではなく、健全なお付き合いを続けていけたらいいなぁ、と思っています。

ビューと操作を極限まで気持ちよくしたInstagramに触れながら、いつか作ったiReblogを思い出した

instagr.am が好調のようですね!

Instagramのファウンダー:「サービスはシンプルな機能を中心に始めるのがベスト」

Instagram

身近にいる何人かの友人たちと「Instagram のこと、どう思う?」なんて会話を重ねてみて、なるほど、みんなそれぞれ着目するポイントは色々だし、だけれど、それぞれに「ふむふむ」と思わせてくれる感覚を持っているのだな。そんな中で、Instagram についてボクがたったひとつだけ自信を持って断言できることは「ドメイン芸がかっこいい」ってことだ。ちくしょう、ボクも .am ドメインを取りたいよー。

Instagram について、少し

Instagram の iPhone アプリに触れていると、そこに「独自の世界」ができあがっていると気が付く。TwitterFacebook をインフラとして活用する他の多くのソーシャルアプリ、たとえばそうだね、ひとつ挙げるとして Twitpic なんかは、「Twitter の世界」に何かを付け加えている感じなんだけれど、Instagram は「Instagram の世界」を持っているように感じられる。どっちが良いとか悪いとかじゃなく、印象のお話ね。

Instagram の世界で楽しそうにしている人がいたり、Instagram 上で仲良くしている交友関係があったり。数年前にこんな感覚を抱かせてくれたのは Tumblr だったなあ。ブログの世界や Twitter の世界ではぜんぜん知らない人なんだけれど、Tumblr の世界ではよく名前を見かける人、ってのが存在している。ソーシャルアプリが創る独自の世界の住人だ。

Tumlbr

Instagram の「何」が面白いのか

みんなそれぞれ思うところはあるだろうけれど、ボクは「Instagram 世界の歩き方」について書こうと思う。

ひとつめは「Share」について。「写真をアップロードしたくなる」仕組みについて。これは、とことん気持ちよくなるように作られている。なんでもいいから、日常の一場面をパシャリと撮る。適当にフィルタをかける。アップロードする。たったこれだけで、いとも簡単に「Like」をもらえる。ボクらにとってストレスになることが、まず、ない。Instagram で写真に Like をもらうのは、Flickr で写真に Fav をもらうより100倍くらい簡単で、とってもお手軽だ。

ふたつめは「Feed」のビューについて。とにかく Feed がとことん気持ちよくなるように作られている。Feed にはボクらにとってストレスになることが、まず、ない。ボクらは馬鹿みたいに「画面を下にスクロールして、どんどん写真を見る」に没頭し、少しでも「いいなぁ」と感じたら Like ボタンにそっと触れる。難しい操作が一切ない。視界には、パッと見できれいな写真しか入ってこない。ネガティブな要素がない。他の住人たちも、口々に「Like!」と言っているだけ。悪い人がいない。

加えて、写真をすべて正方形にしているのも、ビューの気持ちよさに一役買っているように感じるよ。色んなサイズが混在する画像を含むビューを作ったことのある人なら分かると思うけれど、写真をきちんと揃えてまとめて見せるの、けっこう大変なのよね。正方形のみ、と割り切って、それに合わせてビューを作り、とことん気持ちよくする。比較として picplz の「My Network」のビューは、縦長の写真を見るときに左右のぽっかり抜けた空白が気になる。

Instagram Feed

Instagram の世界では、このふたつが見事に相互作用している。どんどんアップロードされる写真が、どんどん流れてきて、そこに悪い人はいなくて、Like して Like されて、どんどん気持ちよくなる。にゃーん。

やっぱり、Tumblr と似ているなあ

Instagram の体験は Tumblr の Dashbord が実現する「疑似無限快楽」と「Reblog」に似ているなぁと感じ、いつだったか自分が作った「iReblog」を思い出したのだった。

iPhoneから指1本でReblogを楽しむためのWebアプリ – 準二級.jp

iReblog については、次のエントリ「iReblogとの出会いをもう一度やり直した」に書きます。

まとめ

Instagram がずいぶんとノリノリらしいので、Instagram について書きました。次のエントリでは「人々を気持ちよさに溺れさせて消費を加速させた先にどんな未来があるのか」について書こうと思っていますが、別のことを書いてしまうかもしれません。

閲覧中のページにソーシャルアテンションとLikeボタンを表示するユーザスクリプト

なんて説明したらいいか分からないものを、自分用に作ってみた。Firefox と Greasemonkey の上で動かしている。

gist: 764564 – GitHub

このユーザスクリプトをインストールすると、閲覧中のページの最上部に「Twitter での言及数」「はてなブックマークでの被ブックマーク数」「Facebook で Like された数」のウィジェットが並んで表示されるようになります。以下、スクリーンショットです。

Tumblr に

Socialcount on Tumblr

Notwife に

Socialcount on Notwife

Skitch に

Socialcount on Skitch

Embedly に

Socialcount on Embedly

2011年のソーシャル Web と、思考実験

これまで、閲覧中のページがソーシャルブックマークでどれだけの人にブックマークされていて、どんなコメントが付いているか、ってのは、数年に渡ってチェックしていて、もはやそれは無意識の行動になっていました。

しかし、いわゆる「Twitter 世代」と呼んでいいのかしら、ソーシャルブックマークと聞いてもピンとこないような人たちが Twitter にはたくさんいて、でも、気になった Web ページの URL を tweet して共有している。そういった状況なので、ちゃんと Twitter 上での言及も合わせてチェックしなきゃなあと思うに至った次第です。ようやく行動に移せた。だいぶ遅れた。

年末に2010年をふりかえってというエントリを書いたとき、2010年に書いた全エントリの「はてなブックマークにおける被ブックマーク数」と「Twitter での言及数」を並べてみたら、だいたい同じくらいの値になるってことが分かりました。はてなブックマークと Twitter を連携させて使っている人も少なくないので、その分は差し引いて考えるとしても、反応を知りたかったら、ちゃんと Twitter もチェックしなきゃいけないってことです。

加えて、興味を持ったのが「Web ページに対する Facebook の Like」です。Facebook の status や photo に対する Like は、なんとなく雰囲気が掴めてきたのですが、どうにも Web ページに Like するってのがどういう行為なのか、いまいち分からずにいる。普通にしていると、ブックマークと違って、Like ボタンが設置されていないページは Like できない。なので、すべてのページに Like ボタンがある状態を体験してみたかったのです。

つまり、もう6年くらい Web のことばかりを考えている自分が、変わりゆく Web の中で、古いものと新しいものを比べてみることで理解を深めたい、ということなのでしょう。Twitter や Facebook は、おじいちゃんからするとよく分からない…!

ついでだから言っておこう。おじいちゃんは「はてなスター」が大好きです。Facebook の Like が全部、はてなスターに置き換わったらいいのになぁって、よく思っています。なのでなので、はてなさんを応援しています。次は、どんな面白い体験を届けてくれるんかなあ。

まとめ

自分用にユーザスクリプトを書きました。準備ができたので、しばらく思考実験してみようと思います。自分の思考と行動がどのように変わるか、観察しよう。