Home

@masuidrive blog

CSSを拡張するプリプロセッサを考える

Photo by Aaron Landry

 CSSで、式とかマクロが使えたらなーと思うことがよくあるので、この際だからプリプロセッサを作ろうと思っています。

 文法としては、CSSの構造を大きく変えないで行きます。あくまでプリプロセッサ的な役割で。Sassの様に構文を変えてしまうと、デザイナーの人が取っつき難くなりそうで。

 今のところ、考えている文法の例を下に置きました。誰でも考えそうな所で、includeによる読み込み、ネストをサポート、式と制御構造のサポートを行います。

 このプリプロセッサはサーバサイドで動的に生成するのではなく、一度静的にCSSに変換して使うことを考えています。その為、User agentなど外部からの変数はサポートしません。

 使い方としては、コマンドラインツールによる変換と、Javascriptによる動的な読み込みをサポートする予定です。
開発中は、HTML内に<script src=”ecss_loader.js?test.ecss”></script>と書くことで、サーバに何も導入することなく、動的に拡張されたCSSを読み込むことが出来るようにします。

 文法や機能のアイディア、同じようなプロダクトを知っている!と言う方がいましたら、ぜひコメントお願いします。

Continue reading

Geohashのアルゴリズム

Photo by Ludovico Cera

 前回、最後にGeohashのエンコード・デコード方法を解説、とか書いたのですが、私が書く前にyuroyoroさんがブログで解説していました。しっかり解説されているので、ぜひ、そちらをご覧ください。

 Geohashのミソは、座標を2進数にして、それを交互に並べる所にあります。そしてそれをBASE32でエンコードすることで、座標を文字列にして表現しています。
 BASE32は、5ビットで1文字なので、Geohashの長さが奇数の場合は、経度の方がビットが短くなります。 (例: 5文字の場合 全25ビット 緯度が13ビット、経度が12ビット)
 そのため、グリッドの大きさが、Geohashが奇数の場合は縦長、偶数の場合は横長になります。

Continue reading

緯度経度を文字列で表すGeoHash

 なんか世間的に位置情報アプリが流行ってるらしいし、Google App Engine(GAE)も楽しそう。どうせだから、GAEでなんか位置情報アプリでも作ってみよう!と思ってTwitterに書き込んだところ、Geohashという、位置情報のプロトコル?を教えてもらいました。

 これは、その名の通り、位置情報をハッシュで表す規格なのですが、いろいろおもしろい特徴があり、調べているうちに楽しくなってきたので、勢い余ってPure Rubyのライブラリまで書いちゃいました。

 そのあと、結局ライブラリを作ったところで満足して、アプリは何も作らなかったので、せめてGeohashの解説でも書いておこうと思います。

Continue reading

NoSQL – SQLはもう古い?

Photo by shindotv

 ここ最近、海外のブログで「NoSQL」という単語をちょこちょこと見るようになりました。

 これは新しいデータベースのムーブメントで、「SQL=リレーショナル」ではないデータベースの事を指しています。

 NoSQL DBサーバの有名な物は、Facebookがリリースした「Cassandra」、Erlangで書かれた「CouchDB」、日本からは、mixiがリリースしている「TokyoTyrant」があります。
 またGoogle App Engineでは、DataStoreというBigTableベースのNoSQLサービスが提供されています。

 ある程度ユーザを集めたコンシューマ向けサービスは、大抵の場合パフォーマンスとの戦いとなります。

 技術誌の中でも「スケールアウト技法」的な記事を目にすることが増えてきたことからも、多くのサイト運営者が、パフォーマンスの問題を抱えていることがわかります。

 多くの場合、問題になるのは、データベースのパフォーマンスです。

Continue reading

AmazonがMySQL 5.1をサービス化 – Amazon RDS


 AmazonがAmazon RDSという、MySQL専用のインスタンスをサービス始めました。

 これは、MySQL 5.1がセットアップしてあるインスタンスで、Small(1CPU, 1.7 GBメモリ)〜Quadruple Extra Large(26CPU, 68 GBメモリ)までスペックが提供されています、Smallは$0.11/時 ($81/月)か。Largeだと$0.44時で$327/月なので、通常のEC2よりはちょっと高めの様です。
 EC2と違うのは、ネットワーク代は別でDBへ外部からアクセスした場合には、1GB辺り、Inは$0.10、Outは$0.10〜$0.17掛かります。

 これ以外に、1GB辺り$0.1のストレージ代と、100万IOアクセス辺り$0.1の代がかかります。この辺はEBSと同じみたいですね。

Continue reading

いまさらディープリンク問題?

  • 2009-10-19 (Mon)
  • life

 レシピ横断検索サイト recipe growlerの管理者宛に、“個別ページにリンク禁止”の為、リンクを削除して欲しい旨のメールが届いたらしいです。
 この手の話はひさびさに聞きました。

 さらに、各レシピのページに「簡単リンク 外部のブログにこのレシピのリンクを貼れます」って書いてあるのに。
簡単リンク 外部のブログにこのレシピのリンクを貼れます

 「トップページ以外にリンクしては行けない」という話は、「ディープリンク問題」としてかなり昔から議論され、もうとっくに「他人にディープリンク禁止は強制できない」ということで決着しているものだと思っていました。

 どうしてもディープリンクを禁止したい場合は、サイト側で技術的に対策が可能です。
 ニュースサイトのITmediaでは、画像への外部からのリンクを禁止し、実際に外部からリンクを行っても画像が見れないように対策されています。また検索エンジンにリンクされたくない場合は、robots.txtと言う方法で簡単に行えます。

 本意はディープリンク禁止ではないかもしれませんが、ネット系ベンチャーとして、いまさらディープリンク禁止を掲げるのは、恥ずかしくないのかなぁ。

[追記]
 リンクに関するページが更新された模様。素早い対応、すばらしい!

 でも「クックパッドにリンクしていること自体をサイト運営や
営業の手段としないでください。」ってどういう意味だろう?
これだと、「美味しいレシピを見つけましたブログ」の様な形態のサイトを作る事は、NGって事かな?
クックパッドにリンクしている言うことを目立つところに書かなきゃOK?

DataMapper 0.10.1をmerbで使う為のパッチ

先日、DataMapper 0.10.1がリリースされました。
DataMapperを使う上で致命的だった、count問題も直っているようです。

しかし、そのままだとmerb 1.0.12ではエラーが出て動きません。
そのときは、下記のコードを適当な所で実行してください。

class Merb::Orms::DataMapper::Associations < Merb::BootLoader
   def self.run
     DataMapper::Model.descendants.each do |model|
       include DataMapper::Resource
       touch_child_keys(model)
     end
   end

   def self.touch_child_keys(model)
     model.relationships.each_value { |relationship| relationship.child_key }
   end
end

引用元

OSXのApacheにmod_reproxyをインストールする

OSXのApacheにKazuho@Cybozu Labsさんのmod_reproxyをインストールする方法。

sudo apxs -i -a -c -Wc,-Wall -Wc,-g -Wc,-O2 -Wc,"-arch x86_64 -arch i386 -arch ppc" -Wl,"-arch x86_64 -arch i386 -arch ppc"  -lcurl  mod_reproxy.c
sudo echo "Reproxy On" > /etc/apache2/other/reproxy.conf
sudo /usr/sbin/apachectl restart

いつか作らないとなーと、ずっと思っていたので、非常にうれしい!

本をシェア出来る喫茶店があったらいいな

  • 2009-08-18 (Tue)
  • life

Photo by kana76

 日本に居るときから、原稿持って温泉行ったり、ノートパソコン抱えて沖縄行ったり、ノマドな生活していました。

 シアトルはスターバックスのお膝元って事もあってか、カフェがとても多く、今も週3-4回は気分転換もかねてMacBook持って行ってます。

勉強や仕事を第一の目的として行く場所だけど
おいしいコーヒーが飲めて
目的がただのリラックスでないところでゆるーい一体感のような空気がある場所。
みんなある種の専門家なので
常連同士で情報の交換があってもいい。
息抜きのおしゃべり相手がいることも仕事への集中力を高めるし
プロフェッショナルな人と接する機会は
自分を高めるモチベーションにもつながる。
コラボレーションから何かが生まれるかも知れない。
仕事するのにオフィスはいらない ノマドワーキングのすすめ – 自立Logbook

 まだ、この本は入手出来てないんですが、こっちでカフェに居ると、結構な比率でラップトップを出して仕事しています。
こちらのほとんどのカフェは、電源もwifiも自由に使えるので何時間もいる人が結構います。

 それで、ふと思ったんですが、技術書をシェアできる喫茶店があったらいいですよね。本は寄付とかでまかなうとして。
 蔵書の管理は、Webサービスで適当な物を探せばいいですし、結構いけるんじゃないかなぁ。

DataMapper 0.9.*のassoc+countのバグが0.10.0-RC1で直ってる

DataMapper 0.9.*には、associationでcountを使うと余計なSQLが生成され非常に重くなる問題があるのですが、これが先日リリースされた、0.10.0-RC1で修正されていました。

参考: 「DataMapperに深刻な不具合 – Hello, world! – s21g

直すまで結構長く掛かったけど、DataMapperを使っている人がホントにいるのか、不安になるなぁ。

ダウンロードは下記から
http://github.com/datamapper/dm-core/downloads

Home

Search
Feeds
Meta

Return to page top