iTunesで再生している曲をTwitterに投稿するAppleScript
Macで、iTunesで再生している曲をTwitterに投稿できるアプリとかないか調べてみたが、なかなか良いものがなかった。AppleScriptを使えばiTunesで再生中の曲名が取れる事が分かったので、自分でスクリプトを書いてみた。
tell application "iTunes" set thisTrack to current track set trackName to name of thisTrack set trackArtist to thisTrack's artist set trackAlbum to thisTrack's album end tell -- 投稿メッセージのテンプレート set message to "今聴いている曲: " & trackName & " (" & trackArtist & "のアルバム「" & trackAlbum & "」より)" -- Twitterを投稿するURL set tweetUrl to "http://twitter.com/home?status=" & message do shell script "open \"" & tweetUrl & "\""
このスクリプトを実行すると、ブラウザでTwitterサイトのホームページを開いて、iTunesで再生中の曲をメッセージ欄に入力してくれる。あとは適当にメッセージを編集するなどして、「投稿する」ボタンを押せば良い。
投稿メッセージのテンプレートを変えるには、「set message to ...」の所を変えれば良い。
またTwitterクライアントにTweetie(iPhone用じゃなくてMac用の方)を使っている場合、「set tweetUrl to ...」の所を下記のように変えると、ブラウザを開く替わりにTweetieの投稿用ダイアログを開くことができる。
set tweetUrl to "tweetie:" & message
Javaで音声ファイルを音量を制御しながら再生する方法
Java Soundで音声ファイルを再生する方法を調べたのだけど、音量を制御する方法がちょっと面倒だったので、覚え書き。
音声ファイルを再生するだけならClip#start()で良いのだけど、音量を制御するには、Clip#getContol()でFloatControl.Type.MASTER_GAINのコントロールを取得する必要がある。
取得したFloatControlに設定する値もデシベル単位なので、オリジナルの50%の音量で再生とかするのに、ちょっと面倒。対数計算が必要になる。(参考:Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle)
コードとしては、以下のようになる。
public void testPlayClip() { try { Clip clip = AudioSystem.getClip(); AudioInputStream in = AudioSystem.getAudioInputStream(new File("test.wav")); clip.open(in); FloatControl control = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN); controlByLinearScalar(control, 0.5); // 50%の音量で再生する clip.start(); } catch (Exception e) { e.printStackTrace(); } } private void controlByLinearScalar(FloatControl control, double linearScalar) { control.setValue((float)Math.log10(linearScalar) * 20); }
Processingを試してみた
今週から夏休みです。時間があるときはホビープログラミングですね。ということで、前から気になっていたProcessingを試してみた。
続きを読むObjective-Cの勉強を始めてみた
- 作者: 荻原剛志
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2008/05/28
- メディア: 大型本
- 購入: 52人 クリック: 603回
- この商品を含むブログ (146件) を見る
ちょっとパラパラと読んだだけだけど、私の知っているオブジェクト指向言語と比べると、Objective-Cって、C++とC#の中間みたいな印象。C++ほど複雑でもないし、C#ほどC言語から離れた文法でもないし、という感じ。
言語的には、ガーベッジコレクトとかプロトコル(Javaのinterface相当)とかプロパティとかもあるし、最近のオブジェクト指向言語にある特徴は一通りある感じ。
やはり独特なのは、オブジェクトのメソッドなどを呼ぶときに使う、メッセージ式かな。
[aString copy] [view cellAtRow:10 column:5]
こんな感じで、大括弧で囲む。メソッドの引数は順序でなく、メッセージキーワードを付けて指定する。
C++ともJavaともC#とも違った感じで、興味深い。
Sinatra良いかも
サイトのトップページに書かれているコード。これが、サクサク感をかもし出してくれています。
require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" endhttp://d.hatena.ne.jp/shunsuk/20090422/1240401592
Sinatraか〜。数ページ程度でDBを使わない、軽いWebアプリをさくっと書くには良さそう。私はそういう用途にはRamazeを使っているのだけど、単純な記述量で比べると、クラス宣言が不要な分、Sinatraの方が優れているかも。
実行速度的にも軽いのかな。以前、下記のエントリでやったように、CGI+rubyで性能比較してみようかな。
rubyの軽いWebアプリケーションフレームワークを試してみた - NAT’s Programming Champloo
写真特大サイズ追加
http://api.xii.jp/itteharu/
写真特大サイズの機能を、イッテハルに追加しました。今まで選べたサイズの最大は320x240だったのだけど、 デジカメ写真ならもう少し大きいサイズでも貼り付けても良さそうなので、500x375の特大サイズも追加しました。
以下、貼り付け例。
続きを読む