2005-02-02 (水) [長年日記]
1 [本]
30歳からの成長戦略 「ほんとうの仕事術」を学ぼう(山本 真司)
某MLで紹介されていたので買ってみた。本書が優れているのは、まず最初に若者の悩みとして「3つの病」を挙げ、読者のハートをキャッチすることに成功している点に尽きる(こういう本って内容は一緒で、あとは書き方次第なんだよね*1)。
3つの病とは、
- 負け組編入恐怖症
- 戦略不在症候群
- 目標モデル喪失症
なんだけど、ぼくも(2)の戦略不在症候群にかかっている自覚症状があるのよね。いろいろやらなきゃいけないことはあるんだけど、あれこれ手をつけてらんない、あーどーしよー、時間ねえし、うおー、みたいな。
この病の悪循環を断ち切るためにどうすればいいか……というところまでが、本書の導入部。あとは、まあよくある自己啓発みたいなのと、簡単なロジカルシンキングの解説みたいなもの*2。
結論としては、「実力派天邪鬼」っていうキーワードと、(人気のないもの)×(好きなこと)というキャッチーな式になるわけだけど、書き方がうまいのでそんなに嫌な感じがしない。ビジネス書とか読む習慣のないひとは、まあ読んでもいーんじゃねーの?
作者の方はblogもやってるそうな。
※それにしてもAmazonのレビューが悉くキモいわけだが。
2 SYS-CON Media Opens Its Eighth Annual "Readers' Choice Awards" Polls (SYS-CON)
July 31, 2005 まで投票は続くらしい。
つか、IBMすげーなー(よつば風)。
4 [tDiary] delicious.rb (2)
まるでmm_footer.rbなんですが。
今度はキャッシュするようにしました。 というか、全部パクりものなんですが...。
iconvだとエラーが出ることがあるのでuconvにしてみました(これもそのまま拝借)。
前回のは僕も入れる気なかったですが、今回のはちゃんと入れましたので。
=begin
delicious.rb
del.icio.us から その日付分のメモを取ってきて表示するプラグイン
tdiary.conf で以下を設定します。
@options['delicious.id'] = 'YOUR DELICIOUS ID HERE'
@options['delicious.pw'] = 'YOUR DELICIOUS PW HERE'
proxy は以下に設定します。
@options['amazon.proxy'] = 'PROXY_HOST:PORT'
reference:
* mm_footer.rb by ishinao san
* rss-show.rb (in Hiki) by TAKEUCHI Hitoshi san
=end
require 'uconv'
require 'nkf'
def deli_get_xml
cache_file = "#{@cache_path}/delicious"
begin
deli_recent_cache(cache_file)
raise unless test(?r, cache_file)
open(cache_file).read
rescue Exception
$!
end
end
def deli_recent_cache(cache_file)
cache_time = 60 * 60
begin
raise if Time.now > File::mtime(cache_file) + cache_time
rescue
begin
require 'net/http'
proxy_addr = nil
proxy_port = nil
if /^([^:]+):(\d+)$/ =~ @options['amazon.proxy'] then
proxy_addr = $1
proxy_port = $2.to_i
end
Net::HTTP.version_1_2
req = Net::HTTP::Get.new("/api/posts/all")
req.basic_auth @options['delicious.id'], @options['delicious.pw']
req.basic_auth @options['delicious.id'],@options['delicious.pw']
Net::HTTP::Proxy(proxy_addr, proxy_port).start('del.icio.us') do |http|
response = http.request(req)
deli_write_cache(cache_file, response.body)
end
rescue
$!
end
end
end
def deli_write_cache(cache_file, xml)
File.open(cache_file, 'w') do |f|
f.flock(File::LOCK_EX)
f.puts xml
f.flock(File::LOCK_UN)
end
end
def deli_parse_xml_by_date(xml, yyyymmdd)
require "rexml/document"
require "time"
# require 'iconv'
posts = []
REXML::Document.new(xml).elements.each("posts/post") do |post|
if Time.parse(post.attribute("time").to_s).localtime.strftime('%Y%m%d') == yyyymmdd
# TODO: UTF-8 to EUC-JP
post = [
post.attribute("href").to_s,
force_to_euc(post.attribute("description").to_s),
force_to_euc(post.attribute("extended").to_s),
post.attribute("hash").to_s,
force_to_euc(post.attribute("tag").to_s),
Time.parse(post.attribute("time").to_s).localtime
]
posts << post
end
end
return posts
end
add_body_leave_proc do |date|
#add_edit_proc do |date|
if xml = deli_get_xml
posts = deli_parse_xml_by_date(xml, date.strftime("%Y%m%d"))
if posts.size !=0
rt = "<div class=section>\n<h3>Today's News Clip</h3>\n"
rt << "<ul>\n"
posts.each do |post|
rt << "<li><a href=#{post[0]}>"
rt << CGI::escapeHTML(post[1])
rt << '</a><span class=info_link>'
rt << "[<a href=http://del.icio.us/url/#{post[3]}>others</a>]</span>"
rt << '</li><br>'
rt << "<span style='font-size:70%;color:silver;'>#{post[0]}</span><br>"
rt << '<p class=expanded>'
rt << CGI::escapeHTML(post[2])
rt << '</p>'
end
rt << "</ul>\n</div>"
end
else
''
end
end
def Uconv.unknown_unicode_handler(unicode)
raise Uconv::Error
end
def force_to_euc(str)
begin
str2 = Uconv.u8toeuc(str)
rescue Uconv::Error
str2 = NKF::nkf("-e", str)
end
return str2
end
5 [BM]『capsctrldays』に関する詳細情報 - blogmap
あー便利だなあ。
2005-02-01 (火) [長年日記]
1 BBC expands podcast trial
BBCのFighting Talkという番組がpodcastを始めたというニュース。今までもmp3は公開してたんだけど、今回podcastの仕組みを入れてみたということらしい。なんか専用アプリがあったりと、ちょっと微妙な感じだけど。うわ、ちゃんと読んでいませんでした。
2 デブサミ2005参加(予定)セッション
二日目しか参加できませんが。
- オブジェクト脳をなぜつくるのか
- Enterprise Unified Process入門
- はてなの作り方
- 遂に登場、Sunの統合開発環境 Java Studio Enterprise 7
- My Framework作成の勧め:アプリケーションを30個作る時に何を用意するか
- Seasar2とS2JSFのイントロ
- S2JSFによるプレゼンテーション層の革命
見たかったけどかぶっちゃって見れないセッション
レポート希望。
- ユーザを満足させるOracleデータの社外活用!納得の先進双方向同期
- モデリング、実装、そして運用
- Webサービス/SOAの昨日、今日、明日
- SOA/ESB(エンタープライズ・サービス・バス)によるシステム構築の実際(仮)
- Webサービスは会議室で起きてるんじゃない、現場で起きてるんだっ
- ソフトウェア開発の「見える化」
- 最新版「Object Browser9.0」の新機能と便利な使い方
- SOAによるシステム開発のプロセスを考える
- ファシリテーション入門
3 企業システム開発に特化した,フリーのモデリング支援ツールXEADが登場 : IT Pro ニュース
出たみたい。触ってみよう。
4 [tDiary] delicious.rb
del.icio.us から その日付分のメモを取ってきて表示するプラグインを作ってみました。 その都度アクセスしてるのでダサいですけど。 ダサかったり間違ってたりしたら教えてください。
=begin
delicious.rb
del.icio.us から その日付分のメモを取ってきて表示するプラグイン
tdiary.conf で以下を設定します。
@options['delicious.id'] = 'YOUR DELICIOUS ID HERE'
@options['delicious.pw'] = 'YOUR DELICIOUS PW HERE'
=end
def deli_get_xml(id, password)
# プロキシ使用時...
#proxy_addr, proxy_port = @options['amazon.proxy'] .split(':')
require 'net/http'
Net::HTTP.version_1_2 # おまじない
url = "/api/posts/get?dt="
url << @date.utc.strftime("%Y%m%d")
req = Net::HTTP::Get.new(url)
req.basic_auth id, password
xml = ''
Net::HTTP::Proxy(proxy_addr, proxy_port).start('del.icio.us') {|http|
response = http.request(req)
xml << response.body
}
xml
end
def deli_parse_xml(xml)
require 'iconv'
require "rexml/document"
parsed_xml = REXML::Document.new(xml)
result = Hash.new
parsed_xml.elements.each("posts/post") do |post|
result[post.attribute("href").to_s] =
Iconv.iconv("EUC-JP","UTF-8",post.attribute("description").to_s)
end
result
end
add_body_leave_proc do
if @mode == 'day' then
all_xml = deli_get_xml(@options['delicious.id'],@options['delicious.pw'])
html = '<ul>'
deli_parse_xml(all_xml).each do |href, description|
html << '<li>'
html << "<a href=#{href}>"
html << CGI::escapeHTML(description.to_s)
html << '</a>'
html << '</li>'
end
html << '</ul>'
end
end
追記:
とか書いてたら、かんさんのblogでライブラリが紹介されてる。萎えー。
追記2:
1 せきむら [「専用アプリ」って「BBCの専用のアプリ」かと思いました。 iPodderとかの一般的な「Podcastingをダウ..]
2 せきむら [私も不安に思いながらツッコミでしたので。。]
3 はんばあぐ [個人的にプレゼンいたします]
4 kdmsnr [なんと!]
5 トオルスガルモノノ [ # プロキシ使用時... #proxy_addr, proxy_port = @options['amazo..]
6 kdmsnr [死にます?いちおー動きましたけど。とりあえず例外処理しないとですね。]
7 咳 [また聴いてもらえないのかあ。]
8 kdmsnr [ぜひ個人的に...(^^;]
2005-01-31 (月) [長年日記]
1
Ten Things a Java Programmer Should Know About Ruby
Java プログラマが知っておくべき Ruby のこと。"Ten Things" って書いてあるけど、そんなもんじゃない。
追記
まつもとさんの日記を読んだほうが良さげ。
3 チョコレートのM&Msを色別に分けてくれる装置
かっこいい!
4 質問なんですけど
チェックアウトしたディレクトリって、そのまま使ってます? それとも、一回チェックアウトして、どっか別のディレクトリにコピーして、それから使ってます? 追いかけるならそのまま使ってもいいんですけど。
5 DirCaster v0.4:
たつをさんとこ見て、podcast 配信用に使い始めたんですが、どうやらv2のタグが読めないみたいっすね。iTunes でタグを付けると v2 になるので、ちと面倒かもなぁ……。
とりあえず昨日アップしたmp3のタグを v1 に変更して再度アップしました(RSSが更新されちゃいます、すいません)。
ついでにスクリプトも変更。descriptionには comment を入れるようにしました。
// DirCaster v0.4: Automatic iPodder RSS feed maker
- echo ("<description>$mp3file->title - $mp3file->album - $mp3file->artist</description>\n");
+ echo ("<description>$mp3file->comment</description>\n");
1 smbd [tdiary/hikiはそのまま使ってます]
2 matobaa [そのまま使ってください。http://matobaa.tdiary.net/20020305.html#p01]
3 かずひこ [チェックアウトしたディレクトリをそのままじゃなく使ってます]
4 kdmsnr [そのまま使う方向で。 > かずひこさん そうすると、毎回マージしてるんですか?]
5 かずひこ [むしろマージが楽だからチェックアウトディレクトリを使っています。 正確には、cvs up 前に、別ディレクトリに s..]
6 toy2 [そのまま使う派です。 cvs up の前に cvs -n up する習慣をつけておけば、どの file が conf..]
7 kdmsnr [コミットしない状態をどうやって維持するのかが疑問でした。参考になります。ありがとうございます。]
8 yoosee [基本的にはそのまま使う派です。 止まると困るシステムは、別ディレクトリに co したものをコピーして使って、変更が..]
2005-01-30 (日) [長年日記]
1 [Hiki] 0.7-devel-20050129.
H2がないと本文が開始しないみたい。blikiが全滅。新しく追加されたプラグインの選択は要らないなあ……逆に面倒くさくなったような。1つプラグインを追加したら、全HikiFarmで設定を書き換えないといけなくなる。本文に直書きするようなプラグインは、HIKI_HOME/plugin に入ってくれないかなあ。
3 初podcasting
まだ配信するほどのもんじゃないので、mixiの日記にURLを書いておきました。
配信してみました。ネタがなかったんで、朝見た仮面ライダー響鬼について先輩とSkypeで話した内容です。iPodder には以下のURLを入れてください。
http://capsctrl.que.jp/kdmsnr/radio/
(descriptionが自動で入らないのは日本語を使っているからかなあ)
飽きてなかったら来週末もやるかも(別のネタで)。
1 かん [del.icio.usのクリップ、1つだけ化けてますね。]
2 kdmsnr [あーなんでしょうねえ。元データを書き換えとこ(手抜き)。]