ポット使ったら「バチッ」とかいって電源タップが壊れた。と同時にTime Machine用に使ってた裸族の二世帯住宅(RAID-1)の片方も壊れた。
でかいし、うるさいし、面倒臭いのでTime CapsuleをAmazonで衝動買いしました。
実物は結構面積ありますね。ネットワーク機器は重ね置きして、熱で何個も壊してるので重ねないでおこう・・・。
![]() |
|
ポット使ったら「バチッ」とかいって電源タップが壊れた。と同時にTime Machine用に使ってた裸族の二世帯住宅(RAID-1)の片方も壊れた。
でかいし、うるさいし、面倒臭いのでTime CapsuleをAmazonで衝動買いしました。
実物は結構面積ありますね。ネットワーク機器は重ね置きして、熱で何個も壊してるので重ねないでおこう・・・。
![]() |
|
![]() |
|
所謂自己啓発本の古典だけど、たまに読み返したくなるので文庫セット買いました。(小さい箱に入っていてかわいい)
もう定年退職した僕の親父は郵便局の主にセールスの管理職として長年過ごした。(郵便貯金とか簡易保険とか)
ある時、「管理職の秘訣は?」と聞いたら、答えがカーネギーが「人を動かす」の中で繰り返し繰り返し書いている実例の一つみたいで面白かったので紹介します。
郵便局の課長や局長といった管理職は2〜3年?ぐらいで各地の局を点々とするそうで、定期的にまったく新しいメンバーと環境に入って行ってグループ全体の売上を上げるのが仕事です。
そこでまず必ずやることは、
「一番成績の悪い人達を褒めて、励ます。」
だそうです。
具体的には、どこの組織でも必ず成績の悪い集団があるので、その人達と飲みに行って、褒めて、励ますそうです。
「郵便局員であるということは全員、公務員試験を合格してきているはず。そんな優秀な人達ならばちょっとやり方を変えるだけで成績があがる筈だ。」
そして、日報(的なもの?)でのその日の行動に対して、褒めて、励ます。
「今回は残念だったが、2週間に1度くらい用が無くても顔を出してみたらどうかな。」
とか
「見込みの高いお客様のリストを作って、そこを重点的に回れば楽かもしれない。」
といったような普通のアドバイスをその人達に重点的にするそうです。
元々、最悪の成績だったので成績は伸びるしかないし、成績が伸びれば本人も嬉しくてやる気が出る。成績の悪かった集団に改善が見られると、グループ全体の雰囲気も良くなり、皆自発的に行動するようになる。そうです。
公務員に自発的な行動を促すとかとてつもなく難しいんじゃないかと思ってましたが(偏見)、親父曰く、
「公務員といっても人間。成績が悪ければ居心地が悪いし、成績が上がれば嬉しい。」
基本中の基本、大事にしなきゃいけないなあと思いました。
最近疑問に思ってる事。
「プログラミングについてブログを書く事は寒い。」
とか、
「非効率で無意味な行為だ。メリットが無い。」
とか、
「何か僕の知らない別の場所でアウトプットしてる。」
とか、
「規則で公開出来ない。」
とか、そういう風潮があるんでしょうか?
ここ2〜3年?でとても有益な情報を発信してくれていて、勉強になるし、更新をいつも楽しみにしているようなブログがどんどん更新が無くなっている様な気がするんです。
「プログラマーとして成長する = ブログを書かなくなる」
みたいな雰囲気がするんです。
「お、このブログは面白いからフィードリーダーに登録しよう!」
というブログはもちろん日々、沢山発見します。でも大体がコンピューター系の学生の人だったりするんです。
社会人になってプログラマーとして仕事がある程度認められると他者からの承認欲求が満たされるのでブログを書く必要が無くなるんでしょうか?
ちょっとぶっちゃけたところの話が聞きたいです。
CLでローカルに立てたWebサーバーの更新は出来たけど、会社のブログはリモート。そこに接続して更新する方法を覚える必要がある。
AllegroServeを立てて、ブログ用のマクロや関数を書いてくれたg000001さんにやり方を聞こうかなと思ったらSkypeにいない!!
これは「教わろうとするな、盗め!」ということに違いない。厳しス。
ssh port forwarding
とりあえず、ブログのサーバーに入って何番でSWANKサーバーが立ち上がってるのか知る必要がある。
netstat -tlnで見てみた。
Redmineと同居してるのでApacheもあるけど(仕方ないね・・・)、8888番がAllegroServeで、多分4005番ってのがSWANKだろう。
4005番を開け放つ訳にはいかないのでローカルの14005番をリモートの4005番にsshでforwardする。
% ssh -N -f -L 14005:localhost:4005 tech.actindi.net
(-fはバックグランド実行、-Nはトンネリングだけするオプションだそうです。)
リモートのSWANKサーバーに接続
EmacsからM-x slime-connectするとhostとportを聞かれるのでlocalhost, 14005をそれぞれ入力すると、
; SLIME 2008-12-25
ACTINDI>
というプロンプトが。
エントリーを評価する
g000001さんがブログエントリー用の関数をたしか書いてたはず。homeディレクトリにblog.lispというそれっぽいファイルがありました。
(in-package :actindi)
(let ((date (encode-universal-time 0 0 0 21 2 2009)))
(defentry (format nil "/~A" date)
(:title "ブログはじめました"
:author "komagata"
:date date
:category "システム管理")
"本文"))
in-packageというのは確か実践CommonLispに出て来た。多分import的な奴だと思う。:actindiパッケージにdefentryという関数が定義されてるんだろう。本文はhtml-generatorと同じ記法かな?
適当なバッファで始めてのエントリーを書いて、C-M-xで評価。
出来た!
後でもっとスマートなやり方を聞こう・・・。
参照:「MacのLeopardからはSpotlightが高機能になったのでランチャーとかあんまり要らない」
的なエントリーをどこかでみたんですが、僕の使い方が悪いのか、望んでるのと違う感じで、windowsの「ファイル名を指定して実行」(以下ファ実)と比べてストレスが溜まっています・・・。
要は、「引数付きでコマンドを入力したい」んですが、どうもSpotlightは検索用でそういう物では無い?
ファ実ではW-r(windowsキー+r)で入力欄が開き、引数付きでコマンドが実行できるので、例えばパスの通ったところにsayというコマンドを作っておいて、
W-r say これ強キック効きませんけど?
で喋るとかが出来たし、補完も効いた。
spotlightでも
C-Space scp komagata.org:/home/komagata/foo.txt ~/Documents/
とかが出来て欲しい。AppleScriptに一連の引数付きでスクリプトを作ればランチャーとして呼べるけど、引数との組み合わせで色々やりたい。
QuickSilverをインストールしてみたら動かなかった。(更新が止まっている?)
皆さんどうやってるのか非常に気になります。
関連:AllegroServeのインストール
Commonlisp(今後CL)にはasdfというパッケージシステムがあるそうです。
(require 'asdf)
(require 'asdf-install)
(asdf-install:install 'aserve)
asdfをrequireしてasdf-install:installするとwebから取って来て、依存関係を含めてコンパイルしてインストールしてくれる。
CLiki : ASDF-Installここに書いてあるパッケージを見てインストールしてくれるみたいです。
RubyでいうとGitHub RubyGemsみたいなもんなのかな?
下記の依存パッケージも入りました。
何か便利そうなのいっぱいありますね。
aserveの起動
(require 'aserve)
(net.aserve:start :port 8888)
上記で起動。
(net.aserve:publish
:path "/"
:content-type "text/html; charset=utf-8"
:function
#'(lambda (req ent)
(net.aserve:with-http-response
(req ent)
(net.aserve:with-http-body
(req ent)
(net.html.generator:html
(:html
(:head (:title "Hello World!"))
(:body "Hello World!")))))))
foo:barっていうのはメソッドかな? net.aserve:publishというのでリクエストと関数をマッピングするそうです。
「rackかsinatraみたいだ!」
と一瞬思いますが、そもそもプリミティブなHTTPってこういうもんですよね。
が、ブラウザからアクセスするとエラーが。まったくイミフですが、こちらに解決策を載せてくださってるのでそのまま実行。
長いのでファイルに保存して読み込むとか出来ないのかな?と思ってやってみました。
foo.lispという拡張子はSLIMEがSLIMEのモードとして開いてくれるらしく、C-M-xで評価できて凄く便利!
~/code/cl/boot-aserve.lisp というファイルに保存しました。
(load "code/cl/boot-aserve")
で読み込めるみたいです。
(net.aserve:publish
:path "/"
:content-type "text/html; charset=utf-8"
:function
#'(lambda (req ent)
(net.aserve:with-http-response
(req ent)
(net.aserve:with-http-body
(req ent)
(net.html.generator:html
(:html
(:head (:title "Hello World!"))
(:body "Hello World!"
:br
(JPN "へろー"))))))))
上記を実行してブラウザのlocalhost:8888にアクセス。
出た。
JPNというマクロで日本語がちゃんと出るようになってるみたいです。webサーバーの方で対応したいな。他にいいwebサーバーないのかしら?
参照:デフォルトのエディター設定
% sudo update-alternatives --config editor
Redmineのタスクの更新メール、自分に関係あるものだけ届くようにしてるんですが、複数のプロジェクトが平行して動いているのでいかんせん数が多い。(ミーティングが多い日などは1日でいきなり100通超える)
Gmailでj,kを使ってどんどん見て行くんですが、最近高速に処理するコツが分かって来た。
チケットメールを素早く処理するコツ
基本、(HTMLメールにした場合)このhr線から上だけを見て行けばサクサク処理できる。
チケット作成で繰り返し起きるコミュニケーションミスを減らすコツ
新規チケットを作る時にテキストエリアにデフォルトのテンプレを設定しておくと書かなきゃ行けないことがわかりやすい。(特に終了条件が曖昧だと作業者は非常にやり辛い。明確な成果物やエビデンスを残すことをゴールにすると上手く行く。)
「xxxを考える/決定するという」タスクが乱立するしていたら、「xxxの内容をまとめてxxxさんにメールする」「Googleサイトに内容をまとめる」などに変更すると終了条件が明確化する。
デフォルトテンプレを入れるredmine 0.8系trunkへのdiff:
Index: app/controllers/issues_controller.rb
===================================================================
--- app/controllers/issues_controller.rb (リビジョン 2819)
+++ app/controllers/issues_controller.rb (作業コピー)
@@ -115,6 +115,7 @@
@issue = Issue.new
@issue.copy_from(params[:copy_from]) if params[:copy_from]
@issue.project = @project
+ @issue.description ||= l(:default_issue_description)
# Tracker must be set before custom field values
@issue.tracker ||= @project.trackers.find((params[:issue] && params[:issue][:tracker_id]) || params[:tracker_id] || :first)
if @issue.tracker.nil?
Index: lang/ja.yml
===================================================================
--- lang/ja.yml (リビジョン 2819)
+++ lang/ja.yml (作業コピー)
@@ -635,9 +637,10 @@
setting_mail_handler_api_key: APIキー
text_email_delivery_not_configured: "メールを送信するために必要な設定が行われていないため、メール通知は利用できません。\nconfig/email.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。"
field_parent_title: 親ページ
-label_issue_watchers: Watchers
+label_issue_watchers: ウォッチャー
+default_issue_description: "h3. 目的\n\n(何故このタスクをする必要があるのか)\n\nh3. 終了条件\n\n# (終了条件1)\n# (終了条件2)\n# (終了条件3)"
setting_commit_logs_encoding: コミットメッセージのエンコーディング
-button_quote: Quote
+button_quote: 引用
setting_sequential_project_identifiers: プロジェクト識別子を連番で生成する
notice_unable_delete_version: バージョンを削除できません
label_renamed: renamed
Redmine上だけで問題を追跡するコツ
開発人数をスケールさせるにはRailsの設計思想みたいに、開発環境も中央集権的ではなくて、「何も共有しない」というようにすると上手くいくなあと感じます。 (リモートからのみの作業者と共同で開発する場合)
こんな感じでプログラミングって楽でいいかもなあと、膝パソコンを実践してみたら結構まじめに良い。
MacBookぐらいバッテリーが持てば、大抵は電源無しで済んで、寝る時に充電しとけばいいので取り回しが楽。
外部ディスプレイはリビングPC的な物として、眠ってたノートPCにつなげてみました。
windowsを192dpiぐらいに設定すると全部巨大になって結構見易い。Firefoxなら画像も拡大してくれるし、拡大しといたURLも記憶してくれるので便利。
coLinuxにremedie入れてiTunesとremedie専用になりました。(操作はMacBookからvncでする)
ThinkPad x61もあるんですが、膝パソコンすると裏面はパームレストどころじゃない熱量を発するんでちょっと厳しいです・・・。
関連:冷えピタ – p0t
・・・なんて小洒落たエントリーで終わると思ったか!!糞がぁ!
膝パソコンとか言ってる場合じゃない! 膝RAP3(REAL ARCADE PRO.3)なんですよ!
テーブル、椅子、こたつ、布団を粗大ゴミに出しました。
リサイクル業者に頼むと大きなテーブルとかは物凄く高くつくイメージだったんですが、区の粗大ゴミに頼んだらテーブルが600円、他は300円で事足りてお得な感じでした。
ネットから引き取りに来てもらう日と対象を登録して、当日8:00時までにコンビニで粗大ゴミ券買って張って出しておくだけ。
ソファーベッド以外の家具を全部出しちゃった感じです。すっきりした。
全部捨てた結果がこれだよ!