3D mode!

Entries in category "Thinking"

RubyKaigiとRubyとKaigi

すでにRubyKaigiという体験を経てというエントリに、頭の中にあったうちの、けっこうな部分を書くことができました。

さてさて。

整理できたものを整理した状態で書けたのはよかったのだけれど、一方で、なかなか整理できずにいることもあって、それが、たださんのエントリを読んで放っておけないものになったので、整理できていない状態で、一度、書き出します。

ぼくが RubyKaigi の運営に3度に渡って関わりながら、ずっと抱えているもやもや (Moja-Moja) のお話です。

たださんの整理

で、これ、Rubyって言語とはもはや関係ないんだよね。日本で生まれ、20年近い長い歴史のある言語で、国内のイベントに大勢のコミッタが集結できるという特殊性はあるものの、今回の講演の多くはRuby言語に依存しない。RubyKaigi 6回の歩みは、「RubyKaigi」を抽象化して「Kaigi」を作る過程だったのではないだろうか。

「The Final RubyKaigi」3日目、そして楽園からの放逐 – ただのにっき(2011-07-18)

ふむー。

今回、Twitterを見ていると、Rubyに関係ないけど参加した(そして何かを得て帰った)という人が大勢いた。規模をどんどん拡大して、Rubyist以外にも門戸が広げられ、しかも抽象化した「Kaigi」を提供できたからこそ彼らにリーチできたわけで、「Ruby」を出発点にしたイベントが最終的に「Ruby」から離れる瞬間を見られたのは、個人的にはなかなか得難い体験だった。抽象化は大切ですね(と、いかにもプログラマ的なオチ)。

「The Final RubyKaigi」3日目、そして楽園からの放逐 – ただのにっき(2011-07-18)

ふむふむー。

「RubyKaigi」を「Ruby」と「Kaigi」に分けているのが、すごいなぁと思って。

自分の立ち位置を考える

プログラマの皆さんに聞いてみたいことがあります。プログラミングに関する「執筆」や「講演」といった (直接的な) プログラミング以外のお仕事に取り組むとき、どんな気持ちでいますか。過ごす時間のうち、プログラミングに当てる時間が0%になったら、分かりやすくプログラマとしては死亡だと思うのですが、じゃあ何%までは減らせるものでしょうかね。感覚的には、100%をプログラミングに当てるよりは、少しずつ、ちょっと離れた位置でプログラミングそのものについて考えたりする時間を入れる方が、よい成果につながるような気はしています。尊敬するプログラマの皆さんは、そういった時間を活用しているように、お見受けします。

RubyKaigi との関わり合い

自分は、RubyKaigi にどんな貢献をしてこれただろうか。

誤解のないように先にきっぱりと言っておくと、別に後悔をしているとか、そういうつもりは一切なく。それでも、たとえば RubyKaigi の準備に費した日々の空き時間の半年分くらいを、すべてプログラミングのために投じていたら、今の自分と何が違っていただろうかって、ちゃんと考えるようにしたい。自分の選択に意識的でありたい。

Ruby が好きで、Rubyist の皆さんが好きで、RubyKaigi が大好きなぼくは、何に貢献してこれたかなあ。「RubyKaigi」の「Kaigi」の部分なのかなあ。KaigiSubscreen もアンチボッチランチも、よい意味で Ruby とは疎結合で、会期中にも雑談の中で「他のイベントにも提供できるといいね」なんて言葉をいただいて、それ自体は本当にありがたくて、でも、Ruby という中心から離れていく感覚は、ほんの少し複雑なものだった。

あと、これはただの自慢なのだけれど、ぼくは「レポート班」から RubyKaigi に入ることができて、本当にラッキーだったと思う。おかげで、Ruby のことや RubyKaigi の基本的なことを学びながら、RubyKaigi を楽しむことができていました。たださんのエントリにもある通り「Ruby のことはよく分からなくても、RubyKaigi に参加できるし、スタッフにもなれる」のだけれど、やっぱり Ruby のことを知っていた方が、RubyKaigi は圧倒的に楽しいものです。

こじらせていたもの

そんな、自分でもよく分からない意識をこじらせていたので、たったひとつ、意地になって守りたいことがありました。

それは「せめて、ユーザとしてでも Ruby のコードを書きながら Kaigi への貢献を目指す」ことでした。Ruby のことが好きです。プログラマとして Ruby との接点を失わずに、Rubyist として RubyKaigi の運営に関わっていたいと願っていました。「イベントスタッフを派遣すればいいよね」なんてことにならないよう、RubyKaigi は Rubyist がつくるイベントにしたいと願っていました。

成果物が KaigiSubscreen です。今日、晴れて「日本Rubyの会」のリポジトリに置いてもらえたのが、とても嬉しかったです。

ruby-no-kai/kaigi_subscreen – GitHub

それと、KaigiSubscreen に表示するために取得していた Tweets と IRC のログも、無事に公開することができました。

RubyKaigi2011の会期中のTwitterとIRCのログを公開します – RubyKaigi Nikki(2011-07-25)

自分なりに、プログラマとして、Rubyist として、最後の RubyKaigi に貢献できたんじゃないかと思っています。おしまい!

追記

自己評価はリターンで測る。気長に。 – ただのにっき(2011-07-26) を頂戴しました…!ありがたいことです。ありがとうございます。

「人の噂も七十五日」は、Twitter時代には「人のRTも75時間」というところ

100を超える ReTweet をすべて iPhone への push で受け取った身としての、実感的数値です。3日間という時間は、Twitter のタイムライン上の話題をまるっと入れ替えるには十分すぎるくらい長くて、トピックは一気に過去に流されていく。

情報の流れが早くなっているのだなあ。

ところで、この日本の諺は、英語でいう “A wonder lasts but nine days” に相当するそうで。ほうほう、ずいぶんと時間に対する感覚が違うのですね。面白い。





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 を使っておくのはアリだな、と思いました。

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