April, 2009の過去記事

Posted in Web, javascript at 1:47:36 by ジュンヤ

任意に指定された HTML カラーコードで表された色と、それを少し濃くした色とのペアを取得するという必要にせまられた。これを実現する Javascript のコードを探したのですが、適当なものがみつからなかったので自分で書いてみました。

エントリー末尾の Javascript コードを読み込み、

darken(’ff0000′, 0.8)

のように darken 関数を呼んでください。2つ目の引数は濃くする度合いで、1に近いほど濃くする度合いは弱く、0に近いほど度合いが強くなります。

以下、実際どのように濃くなるかの例です。

  ff0000
  darken(’ff0000′, 0.8) = cc0000

  ffccff
  darken(’ffccff’, 0.8) = cca3cc

» Miscellaneous : True Color Darkening and Lightening / The JavaScript Source

のコードを参考にしました。

上記は逆数を取ったりとちょっとややこしいことをしているのですが、#ff0000 のような原色をうまく変換してくれなかったので、

» Darken and lighten color? - Usenet Forums

To lighten, increase RGB values by 10% each. To darken, decrease RGB values by
10% each. Maybe replace 10 with whatever the “certain amount” is.

(RGBの各色を10%ずつ増やせば色を薄く、10%ずつ減らせば色を濃くできる)

という発言を参考にして書き直しました。

不備があったり、もっと良い方法がありましたら、コメントなどでお知らせください。


Webカテゴリの最近の記事             

Posted in Web, Joker Racer at 18:11:16 by ジュンヤ

あとで読むフレッシュリーダーを開発されたサイドフィードの赤松さんに誘っていただき、一ヶ月ほど前から参加しているプロジェクトなのですが、これがかなり良い感じで進行しています。

いろいろ説明するより見てもらった方が早いです。

Linux サーバーを積んだラジコンを無線経由でインターネットに接続し、iPhone から操作!

車の前面に搭載されたカメラからリアルタイムに配信される動画が映し出されているので、ネットにつながりさえすればラジコンが世界中のどこにあっても、また操作する側も世界中のどこにいても可能なのです。(理論的には、という話ですが。。。)

ラジコンのスピードに比べて、オンボードカメラから映し出される動画から感じられる体感速度が超高速に感じられ、テンションがあがります。

速く数台を表で走らせ、競争したい!

詳しい情報は、以下のリンク先にあります。

» Joker Racer - remote drive our real racing car

» iPhone からラジコンを操作してみる : a++ My RSS 管理人ブログ


Webカテゴリの最近の記事             

Posted in Web, rails at 16:28:25 by ジュンヤ

東京 - 長野間は約1時間40分。その間に Rails プラグインを作り、公開して、ブログまで書けるかやってみました。

作るプラグインはとても簡単。

帳票などの機能を作っていると、日付や時刻を年度で考えなければならない、ってときがあります。
そこで、DateやTimeクラスを拡張し、fiscal_yearというメソッドを追加して、

% script/console
Loading development environment (Rails 2.2.2)
>> Date.new(2009, 3, 31).fiscal_year
=> 2008
>> Date.new(2009, 4, 1).fiscal_year
=> 2009

のように年度を返すようなことをやっていたのですが、これをプラグイン化してみました。

13:24 東京駅出発。

パソコンをリュックから取り出し、準備万端。

上野駅到着。

script/generate plugin fiscal_year

でプラグインのひな形を作成。

う、emobile つながらない。ま、いいや。とりあえずすでに config/initializers 以下に置いて利用していたコードをコピーします。

ほとんどコピペですむので早くもプラグイン完成。

% script/console
Loading development environment (Rails 2.2.2)
>> Date.new(2009, 3, 31).fiscal_year
NoMethodError: undefined method `fiscal_year’ for Tue, 31 Mar 2009:Date
from (irb):1

ありゃ NoMethodError。

init.rb に

require ‘fiscal_year’

と書き忘れてました。

% script/console
Loading development environment (Rails 2.2.2)
>> Date.new(2009, 3, 31).fiscal_year
=> 2008
>> Date.new(2009, 4, 1).fiscal_year
=> 2009

OK。ほぼ完成。

README を書く。

大宮駅でやっと emobile つながった。

github にレポジトリを作り、表示された以下の指示の通りに実行。

mkdir fiscal_year
cd fiscal_year
git init
touch README
git add README
git commit -m ‘first commit’
git remote add origin git@github.com:champierre/fiscal_year.git
git push origin master

git push origin master で、公開準備も整った。

写真をぱしゃり。

20090403135648.jpg

サンプルアプリから、githubに置いたプラグインをインストールして実行してみる。

script/plugin install git://github.com/champierre/fiscal_year.git

テストを書き足す。

» The Complete Guide to Rails Plugins: Part II | Ruby on Rails for Newbies

を参考に。

A surprisingly large number of plugins have no tests at all.

と揶揄されている。僕は書くぞー。

なんの進展もないまま高崎に着いちゃった。

山がみえてきた。トンネルも多いし、これはやばい。emobile 切れそう。

軽井沢につくころ、ようやくテストが通った。

テストの冒頭に書く

require ‘test/unit’
require ‘test/test_helper’
require File.dirname(__FILE__) + ‘/../lib/fiscal_year’

あたりでつまづいていた。

レポジトリに再度プッシュ、サンプルアプリからもう一回プラグインをインストールして、テストまで通るか試す。

% script/plugin install git://github.com/champierre/fiscal_year.git
Initialized empty Git repository in /Users/ishihara/rails/sample/vendor/plugins/fiscal_year/.git/
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 19 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (19/19), done.
From git://github.com/champierre/fiscal_year
* branch HEAD -> FETCH_HEAD
% cd vendor/plugins/fiscal_year
% rake test
(in /Users/ishihara/rails/sample/vendor/plugins/fiscal_year)
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -Ilib:lib:test “/Library/Ruby/Gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb” “test/fiscal_year_test.rb”
Loaded suite /Library/Ruby/Gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
..
Finished in 0.00118 seconds.

2 tests, 2 assertions, 0 failures, 0 errors

ok。完成。

残り時間は急いで、このエントリーの下書きを書く。酔いそう。

エントリーも完成。

15:04 長野駅到着。

FiscalYear プラグインは以下で公開しています。

» champierre’s fiscal_year at master - GitHub


Webカテゴリの最近の記事