Appleの歴史を知る。
もうすぐMacを使い始めて一年。
何となくAppleの歴史を詳しく知りたくなり購入。
- 作者: オーウェン・W・リンツメイヤー,林信行,武舎広幸,武舎るみ
- 出版社/メーカー: アスペクト
- 発売日: 2006/04/27
- メディア: 単行本
- 購入: 9人 クリック: 232回
- この商品を含むブログ (38件) を見る
- 作者: オーウェン・W・リンツメイヤー,林信行,武舎広幸,武舎るみ
- 出版社/メーカー: アスペクト
- 発売日: 2006/04/27
- メディア: 単行本
- 購入: 6人 クリック: 78回
- この商品を含むブログ (30件) を見る
インターフェイスの街角―本当に使いやすいユーザー・インターフェイスの極意 (UNIX MAGAZINE COLLECTION)
- 作者: 増井俊之
- 出版社/メーカー: アスキー
- 発売日: 2005/09
- メディア: 単行本
- 購入: 1人 クリック: 44回
- この商品を含むブログ (25件) を見る
デザインパターン。
何となくデザインパターンを復習。すっかり忘れてしまっていて悲しい。
とりあえず、こちらで公開されているAdapterパターン、Singletonパターンを自分なりに書き直してみた。
Adapterパターン
継承を使った場合
class Banner def initialize(str) @str = str end def show_with_paren puts("(#{@str})") end def show_with_aster puts("*#{@str}*") end end class PrintBanner < Banner alias print1 show_with_paren alias print2 show_with_aster end pb = PrintBanner.new('Hello!') pb.print1 pb.print2
委譲を使った場合
require 'forwardable' class Banner def initialize(str) @str = str end def show_with_paren puts("(#{@str})") end def show_with_aster puts("*#{@str}*") end end class PrintBanner extend Forwardable def initialize(str) @banner = Banner.new(str) end def_delegator :@banner, :show_with_paren, :print1 def_delegator :@banner, :show_with_aster, :print2 end pb = PrintBanner.new('Hello!') pb.print1 pb.print2
結果。
(Hello!) *Hello!*
Singletonパターン
require 'singleton' class SingletonSample include Singleton end # コンストラクタはprivateなのでインスタンスを # 取得するにはinstanceメソッドを使用する sin1 = SingletonSample.instance sin2 = SingletonSample.instance p sin1 == sin2 p sin1.object_id p sin2.object_id begin sin3 = SingletonSample.new rescue => err puts(err) end
結果。
true 21612680 21612680 private method `new' called for SingletonSample:Class
YouTubeのAPIを使ってみる。
RubyGemsで「おもしろいモジュールないかなぁ」と漁っていたらyoutubeなるモジュールを発見、さくっとインストール。
gem install youtube
使ってみる。
require 'rubygems' require 'youtube' require 'pp' # http://www.youtube.com/devから取得する DEV_ID = 'dev_id' youtube = YouTube::Client.new(DEV_ID) # tagで検索 videos = youtube.videos_by_tag('kitty') # 閲覧数の多い順にソート videos.sort { |a, b| b.view_count <=> a.view_count }.each do |video| pp video end # 人気の動画 youtube.featured_videos.each do |video| pp video end
他にもいろんなモジュールがあった。
Flickrの画像をはてなに貼り付けるためのHTMLを取得するスクリプト。
ここにFlickrにアップロードした画像を貼り付ける際、今まではFlickItというウィジェットと使っていたのですが、近頃、正常に動作しないし、一枚ずつ手作業で貼り付けるのは面倒だということで、Rubyでスクリプトを作成。
アップロードした日付で処理したかったけど、方法がわからなかったので、直近の10枚を取得し、貼り付け用のHTML作成しています。
require 'rubygems' require 'flickr' flickr = Flickr.new #usersメソッドの第1引数にはFlickrに登録したメールアドレスを設定 user = flickr.users('email') user.photos[0, 10].each do |photo| puts <<EOS <a href="#{photo.url}" title="#{photo.title}"><img src="#{photo.source}", width="400" height="300" alt="#{photo.title}"/></a> EOS end
使うには前準備が必要で、まずは、
gem install flickr
として、flickrモジュールをインストール。
続いてこちらからAPI Keyを取得。
取得したAPI Keyをflickr.rbにあるFlickrクラスのコンストラクタの第1引数に設定します。
.screenrcメモ
現在のscreenの設定をメモ。
# 修飾キーをctrl + t escape ^Tt # 最終行のウィンドウ一覧を表示 hardstatus alwayslastline "%w" # 最終行に時刻を表示 hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w" # スタートメッセージを表示させない startup_message off # ビープを鳴らさない vbell off
ディレクトリ内のファイルを再帰的に処理。
第1版とあまり内容は変わっていないらしい、衝動的に買ってしまったRubyレシピブックの第2版が届いた。
パラパラと眺めていて目に止まったのが以下の処理。
require 'find' Find.find(File.expand_path('~/')) do |path| next unless File.directory?(path) puts path end
指定されたディレクトリ内の全ファイルを再帰的に処理している。
この手の処理は今まで、何度も自分でチマチマと書いていたので何か悔しい。
これから、何か書くときはレシピブックを眺めてからにしよう。
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンク クリエイティブ
- 発売日: 2007/02/01
- メディア: 単行本
- 購入: 9人 クリック: 182回
- この商品を含むブログ (97件) を見る
MacBookへの貢ぎ物第二弾。
さすがにキーボードカバーだけじゃご機嫌は直らないだろうということで、併せてMacBook SeeThru case-CLEARなるプロテクタをこちらで購入。
取り付けは簡単。説明書がありますが、無くても全く問題なく、MacBook本体にツメを引っかけるだけです。
表面にラインが入っています。ちょっとメカメカしくなって格好いいです。
底面には廃熱のための切り込みが入っています。
タダでさえ熱いMacBookですのでいろいろと心配ですが、非常に寒い昨今、とりあえず目をつぶることにしています。
排気口部はバッチリ開いています。
コネクタ類、DVDへのアクセスも問題ありません。
単に本体保護のためだけのものと思っていたのですが、ちょっと格好良くなって棚からぼた餅気分。
これできっとMacBookも機嫌を直してくれることでしょう。