2012/02/29

2012/02/24

2012/02/24

日記(3分の1ルール)

どうもこんばんわ。SE/PG広報を担当しているvalvallowです。

昨日の日記がまさかのホッテントリ入りで少々ビビりました。
どうしてこうなった・・・。ビビりなので今朝出社して上司に報告しときました。上司「いいぞもっとやれ」。ということもあり、せっかくなのでこの流れに乗って続きを書いてみます。ただ相変わらず派手な内容はありません。

今日は以下のことについて書いてみます。
  • 「3分の1ルール」
  • ラーメン代稼ぎ
  • 「Lisper採用枠」始めました

「3分の1ルール」

「3分の1ルール」というものがあります。これは何のルールかというと「儲かったらみんなで山分け」という会社のスタンスにおける利益分配ルールです。

割り振りは
  • 会社
  • 社長(追記:というか株主だね)
  • 社員
となります。こうやって見ると「社長ズルくね?」と思うかもしれません。これは会社がヤバくなったら社長のフトコロが頼りになるためです。それに社長はいろんなリスクを負ってますからそれなりの報酬があって然りかと思います。結果的に3分の2を会社に割り振ってるようなものと思っていいかも知れません。

残りの3分の1が社員の取り分です。素敵ですね!

これを見ると「社員の人たち相当もらってんだろうな」と思う人もいるかもしれません。世の中そう甘くはないもんで、そもそも会社の利益なんて運転資金や設備投資費などを引けばそうそう残るもんじゃありません。給与も至って常識的な金額です。ただこの「3分の1ルール」のお陰で、会社に貢献すればその分ボーナスが爆発的に上がる可能性があるわけです。良いモチベーションになりますね!(追記:というより決算ボーナスとか臨時ボーナスとして支給されたりする)

ラーメン代稼ぎ

現在会社としてどういうステージにいるのか、私の視点で書いてみます。

「ラーメン代稼ぎ」と聞いてピンとこない人もいるかも知れません。これは
のことです。「ハッカーと画家」で有名なポール・グレアム氏のエッセイです。

これを乱暴に要約すると「自分たちが食っていけるだけの毎月の収入を手に入れたベンチャー企業は強い」ということでいいかと思います。

弊社は、創業6年目の小さなISVです。ですが、これまで一度も赤字になったことがありません。借金も0です。創業以来徹夜もありません。この業界としては珍しく、残業もありません。18時になったらみんな容赦なく帰ります。むしろ定時にならなくてもキリが良ければ帰ります。

弊社には100%自社で開発した主力のパッケージソフトがいくつかあります。これらが今よく売れています。ただ売れてるだけではなく、売れたあとのことも考えた収入モデルがあります。この辺りはちょっと勝手に書くわけにはいかないです。上司に相談後また後日書くかもしれません。

この時点で既にラーメン代稼ぎはクリアしています。それが今、ソフトの出来がよいためか、顧客満足度が高いためか、ひとりでに売れ始めています。「満足した顧客が最強の営業マン」とはよく言ったもんで、クチコミで評判が広がっているようです。

ラーメン代稼ぎをクリアして、波に乗り始めている、といった印象です。乗るしかない、このビッグウェーブに!

「Lisper採用枠」始めました

この採用枠については半分本当で半分嘘です。ごねんなさい。会社公式ではそのような枠はありません。

ですが現在開発者の約半数がLisperです。私も普段はLispをメインに使っていますし、仕事でもツールやスクリプティングにはLispを使っています。
(前の会社では実際のプロダクト開発にもLispを使っていましたがその話はまた今度。ここも熊本の会社です。)

そして、4月に入社が決定している新入社員(新卒)も私なんかより断然凄腕のLisperです。そしてさらにさらに、もっと凄腕のLisperを上司が勧誘中です。
(Lispの凄腕っぽい書き方になりましたが、もともと凄腕のプログラマがLispを使ってるので凄腕Lisperなのです。ちなみに私はただのアベレージユーザーです。)

「熊本はLispの国」とか「Lisp県」などという発言が最近ネット上で散見されるようになったのをご存知でしょうか。案外これは本当かもしれません。

ポール・グレアムがこう言ってました。
10人のLispハッカーを集められないなら、 たぶんあなたの会社はソフトウェアを開発するのに適さない都市にいるんだ
おそらく熊本なら可能です。Lispの勉強会があるくらいですからね!
最後は9LISPの宣伝になってしまいました。まだ書いてないことがあるので乞うご期待。

2012/02/23

2012/02/23

日記(転職しました)




ということで実は先日、熊本本社の独立系ソフトウェアベンダに転職しました。2月から社員として働いています。職種はSE/PGです。お客さん先に行ったりプログラム書いたりしております。

はてな界隈では華麗な転職話がにぎわいますが、私の話にはあまり派手な内容はありません。ですが下記を見るとわかるように面白い会社です。 社員も多くないので適当に仕事すると会社に大打撃を与えてしまいそうです。だからというわけではありませんが真剣に頑張ります。何よりここで働くのが楽しいのでうまくやってけそうです。
詳しいことはまた後日書いてみます。

熊本の小さなISVです。ベンチャーと言った方がいいのかな。で、今後5年間の目標が
  • 収入の自動化
  • 週休5日
のようです。もちろん汚いことをせずに真っ当に、です。上司が「働いたら負け」と言ってる。

現時点でも残業なく定時には皆帰る。創業以来、徹夜や赤字が一度もないとのこと。デスマ0でクレームというクレームもこない。というかクレームなんてきたことない。曰く「うちの顧客満足度最強」とのこと。自社パッケージソフト見て思った、そりゃそうだ、できがいいもん。
  • 楽しく働いていっぱい稼ごう
  • 儲かったらみんなで山分け(「3分の1ルール」というのがある。詳細はまた今度。)
  • 無駄なことはせず短くちゃんと働いて、できた時間で楽しく遊ぼう
というスタンス。

自社で開発したパッケージソフトがガンガン売れてる。作りこみがすごい。九州だけでなく関東・関西・中国・四国・東北など全国展開。バグ・要望対応もめちゃめちゃ素早い。すごい。

ひと月そこそこ見てわかったのは、何事にも「事前準備」と「段取」がめちゃめちゃしっかり行われてる。

見てると「Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方」を思い出す。

追記

さて、転職先を書いたので、前の会社のことも書かないと。前の会社(熊本市内)には一生かかっても到底追いつけないスーパーハカーが2人いたり、仕事でLisp(Gauche)使ったりしたので、ネタてんこ盛り、かもしれない。今でもお客さんとこのFreeBSDでGaucheが毎日元気に動いています。

追記

続き書きました。


日記

会社終わってから上司(であり先輩であり師匠であり友だち)とプールで泳いできた。田舎のスポーツ用品店でなんとなく買ったらspeedo社製だった水着で(笑)高いと思ったんだよな。 設備の整いっぷりに驚きました。年上のお姉様方が多かったです。場所が前の職場の超近くw

週一くらいで行くといいかもしれない。3年前は定期的に泳ぎに行ってたので復活したい。筋トレも丸4ヶ月経つし、これに水泳もやれば勝つる!

Speedo(スピード) メンズスパッツ ブラック×ゴールド  ブラック×ゴールド S SD88S08

日記

社長の話聞いてたら「影響力の武器―なぜ、人は動かされるのか」で読んだような話を地で行ってた。社長の元同僚の方々が口々にスーパー営業マンと呼ぶ理由がちょっとわかった気がした。

追記

社長は誠実で人がいい。汚いことはしないし真っ当に商売している。本のレビューを見たら誤解を招きそうだったので念の為に追記。

影響力の武器[第二版]―なぜ、人は動かされるのか

2012/02/20

2012/02/20

日記

下級戦士であることに慣れた。35歳定年あるかもわからんね。あと7年ももつかな。うそ。ホントはハシゴ登りたい。楽しくお金稼ぎたい。収入をハックしたい(つーにぼー

default gatewayが二つ

とあるWindows XPなPCでちょくちょくネットがつながらなくなる、という現象が発生していた。ネットにはつながらなくなるけどイントラの共有フォルダは常に見れる。TCP/IPの設定を見なおしたけど異常なし。CMDからipconfigしても特に異常なし。ウィルスもいない。ルータにもgoogle.comにもpingおk。つながらなくなってからipconfigしてみるとdefault gatewayがさっきと違う。自分のIPになってる。GUIから確認すると異常なし。PC再起動後にipconfig /allしてみたらdefault gatewayが2行。netstat -rしてみたら本来のgateway以外に自分のIPがgatewayに。何これ。route deleteで自機IP削除するも再起動後に復活。ドライバ削除して変更のスキャンして解決。こういうことってよくあるんですか?ちなみにNICは一つ。

ついでに別件。他PCの共有フォルダにあるExcelを開くと「ファイルエラー:データが失われた可能性があります。」と出て画像が表示されない。Excel2003。調べたら画像にハイパーリンクがあるとこういう症状が出るらしい。画像それぞれのハイパーリンク削除で解決。SPを当てると治るらしいが、ゴーストがやめておけと囁いたのでハイパーリンク削除での回避方法だけ伝えた。

日記

一人でPCに向かってるときはconsole.fmをダラダラ流してる。androidアプリはないそう。google listenはまだ安定してないの?全てtuneinが解決してくれた。
ところで9LISPしたいなーKPFしたいなー。人と会うのって重要ですよね。定期的に、特に変な人(良い意味)に会うのは重要ですよね。セキュリティーさくら楽しみ。変な人の話聞きたい、しゃべりたい何かしゃべりたい(≠LTしたい)。

最近バイタル低い(元気がないわけではない)。職場楽しいし。ただ、もうちっと、こう、行動したい。
職場の先輩は「好きで好きでしかたなくて頭から離れない」くらいの趣味を持ってる。それ以外にも楽しんでる趣味をいっぱい持ってる。うらやましい。楽しそう。楽しそう。

プログラミングや読書が好きだけど、あそこまで好きじゃないなー。最近やってることといえばネットダラダラ。ウィスキーおいしい。通勤中、料理中(=筋トレ中)はpodcast。寝る前にちょっと読書。かろうじて筋トレ(主に料理の待ち時間に)。腹筋がっ 割れるまでっ 筋トレをっ 止めないっ!あ、イヤホン欲しい。

podcastは音楽とかsoftware関係とかいろいろ聞いてみてるけど、最近特に面白いと思って聴いてるのがこれ。 英語しゃべれるようになりたいわけじゃないけど、聴いてたら読解力もあがるかなーなどと思いつつ、というより内容が結構面白い。

昔やってて最近やってない趣味を掘り返してみるのもいいかもしれん。水泳、ドラムあたりはいいかもしれん。昔一緒にバンドやってた友達誘ってみようかな。スティックとペダルはまだ手元にある。そういえば実家にあるボロドラムセットはいらんので処分したい。エレドラ欲しいエレドラ。

2012/02/17

2012/02/17

Linux(及びcygwin)からSQL Server(MS)にクエリを投げる

Management Studioのエディタが使いづらくて不快過ぎる。アレはクソ過ぎる。せめてVisual Studioみたいに拡張できるべき。キーバインド変更できないなんて致命的にもほどがある。爆発すべき。

で、Management Studioには見切りをつけて、FreeTDSunixODBC入れてcygwinからSQL Serverに接続してみたけど、tsql(FreeTDS同梱のコマンド)がしょぼくてほぼ無意味。sqshはなんぞエラー吐いて入らん。Management Studioで.sqlファイルを開きつつ同じ.sqlファイルをEmacsで編集する方がいいかもしれん。

結局何を求めているかというとpsqlやsqlplusみたいなもの。sqlcmdはcmd上でしか動かないっぽい。

待てよ・・・、これをtsql用にちょっと変えればあるいは・・・ それともこちらにMS SQLも期待・・・?

tsqlはこんな感じ。
$ tsql -Sconfig_section_name -Usa -Phogehoge < sample.sql
aptだと簡単に入りそうなのでubuntuでも試してみよう。

参考



UNIXという考え方―その設計思想と哲学

2012/02/16

2012/02/16

日記(qemu)

qemu + kvm(両者の関係がいまいちわからない)で、samba経由の共有が面倒・・・
  • hostとguestで特定の領域を直に共有できたりせんのか?
  • guestのスナップショットは取れないか?(VMWareのアレみたいなの)
  • CPUやメモリの割り当てと同様にディスクの容量は変更できないのか?
この辺をもうちょっと調べたい。

2012/02/14

2012/02/14

日記(samba, qemu)

sambaとか使ったことなかったけど、qemuでWindows XP動かしてるお陰で使う必要が出てきた。使ってみたらエラくお手軽で素敵だった。
qemu(というかKVM?)にWindows XP入れて.NETな開発環境整備中。結構いい感じに出来上がってきた。sambaのお陰で共有ディレクトリもできたし、usb接続な外部デバイスなんかもわりと手軽にmountできてなかなかいい。あとは、VMWareみたいなスナップショットがあると嬉しいんだが・・・、あるのかな?

redmineのファイル一覧に「任意のコメント」の内容を表示する(説明列)

redmineのファイル(一覧)が見づらい。新しいファイルを登録するときに「任意のコメント」を入力できるのに一覧には表示されない。ファイル名をマウスでポイントすればツールチップっぽく表示されるけど、そんなんじゃ見づらい。

が、調べてもうまい方法がわからん。というわけで、以前「任意のコメント」を列として表示するカスタマイズをしていた方に方法を聞いてみた。テンプレートを直に編集したそうなので私もそうしました。
app/views/files/index.html.erb
のそれっぽいところに下記の行を追加。
<%= sort_header_tag('description', :caption => l(:field_description)) %>
<td class="description"><%= file.description %></td>
こんな感じ。


Redmineによるタスクマネジメント実践技法

M-xが効かない(windows, shell, emacs)

何度か同じようにハマったことある。 これで解決

2012/02/13

2012/02/13

日記

続き さてubuntuでqemu上のWinXPにVS2010入れようとしたら、full installで7.5GB必要とか言われて死んだ。C#だけinstallするにしても1.5GBしか残らないので、XP入れ直すか・・・。25GBくらい割り当てて、ついでにF#も入れとこ。

ファイル作成からの経過日数(shell script)

ファイル作成から現在までの経過日数をshell scriptワンライナーで取得したかった。必要以上にダサい気がする。

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

2012/02/12

2012/02/12

日記

これ 取りあえずubuntu上でqemuにXP入れて、キーボードをUS配列にしたり、CapsLockをCtrlにしたり、git入れたりと、最低限の環境作ってみた。結構ダイジョウブかも?あとはVS2010使ってみてどうか、だなー。

最後に

もっとS式書きたい。

2012/02/09

日記

仕事で再びC#を使うようになった。これから先も当分ずっとC#だろうと思う。そうなってくると家でもC#書きたいよな。。Thinkpadをwindows7に戻してubuntuはcolinuxかvmで使うか・・・。それともubuntuのままwindowsをvmで使うか・・・。しかしqemuでwindows動かしてその中でvisual studio 2010使うとなると厳しいよなー・・・。うがー。

2012/02/08

2012/02/08

日記(ディレクトリを監視して新しいファイルにコマンドを実行する)

思いついたことがあったので仕事終わってからC#でちょっと作ってみた。unix/linuxならcronとshell scriptでサクっと作れるようなものをwindowsでもやってみました的な。
  • 監視先ディレクトリを登録する
  • 新しいファイルを引数にして実行するコマンドを登録する
  • 常駐して監視する
  • 監視先に新しいファイルが入ってきたら、そのファイルを引数にコマンドを実行する
というのを作ってみた。

C#だと ってのがあって、すごく手軽に作れた。私のようなゆとりプログラマにはまじでうってつけ。C#すげー。C#はすげーけどwindowsが・・・。

取りあえずC#でexcel2pdfというコマンドを作って登録して動かしてみた。監視先にExcelファイルを置くと即PDFに変換されてウケたw
登録するコマンドによっては面白いことできそうで楽しみ。・・・といいつつ思いつかない。

これもちょっと似てるかも。

追記

hookという言葉が思い浮かんでいればもっと簡単に説明できたんじゃ・・・

Effective C# 4.0

2012/02/07

C#でExcel2007からPDFに変換する

Excel 2007ってPDFとして保存する機能があるんですって。すげー!という気もするけど今更かよという気も。で、C#からもPDFに変換できる。 全てのシートを印刷するってのをやってみたけど、デカいExcelをPDFに変換するときに「発行中」ってプログレスが出るのはどうにかならんのか。
それとExcelファイルによってはわけのわからない状態になることが・・・。というのは、まだ調べてるとこだけど削除済みのシートまでPDFに変換されているような・・・。

取りあえず以上。関連はこのへん。
調べたけど、ExcelViewerじゃーPDFに変換はできないっぽい。そもそも保存ができない。(Excel 2007は保存時にPDFで保存するかどうか選べる)

追記

それとExcelファイルによってはわけのわからない状態になることが・・・。というのは、まだ調べてるとこだけど削除済みのシートまでPDFに変換されているような・・・。
非表示になってるシートもPDFとして化されてたからだった。



C#でBullZipを使ってPDFを結合する

これの続きみたいなもん。 BullZip PDF PrinterのPdfUtilのMergeメソッドで結合できる。ただし、 が必要。pdftk.exeとlibiconv2.dllをpathの通ったとこに置く。もちろんpdftkは単体でも動く。



shell script自身のプロセスIDを取得する

$ echo "$$"
2714
$ sh
$ echo "$$"
2715
$ exit
$ echo "$$"
2714
$ : > temp/"$$".txt
$ cat temp/"$$".txt
$ echo 'hello' > temp/"$$".txt
$ cat temp/"$$".txt
hello
$ 


入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

直前のコマンドの終了ステータスを取得する

直前のコマンドの終了ステータスは$?で参照できるんですね。
$ echo 'hello'
hello
$ echo "$?"
0
$ cd ...
cd: 3: can't cd to ...
$ echo "$?" 
2
$ 


入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

nullコマンド(shell)

これnullコマンドって言うんですって?
$ :
例えば
$ : > hoge
$ cat /dev/null > hoge
と同じだそうで?しかし、:は常に真を返すそうで?
 $ while : ; do ; echo 'hoge' ; done ;
とかやるとえらいことに。

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

2012/02/04

2012/02/04

google listen

プログラマもすなるpodcastといふものを、私もしてみむとてするなり。

google listenてのがあったので入れてみて、いくつかfeedを登録してみたら・・・こりゃいい!
ただ、galaxy s2に同梱のイヤホンが真っ白で絶望した。誰かイヤホンください。

取りあえずこれに書いてる「Software Engineering Radio」を登録。 Guy SteeleのインタビューとかRich Hickeyとかあって面白げ。
あとは適当なpodcastのfeedをgoogle readerのListen Subscriptionsってフォルダに登録すれば同期してくれるので素敵。関係ないけど熊本でもradiko使えるようになったのでついでに入れといた。

あとはFMトランスミッターを手に入れれば車で聴くのにもいいなー。これなんてどうなんだろう?有線がいいよとは聞いてるけども。 そういえば以前8円で話題になったIS01にはFMトランスミッターがついてるんだったな!どこやったっけ・・・

J-Force Bluetooth FMトランスミッター ブラックモデル JF-BTFMK

熊本市の慶徳校前にあるトルタコスで恵方ブリトー食べてきた


恵方ブリトーとサラダタコス(?名前忘れた)食べてきた。恵方ブリトーの方がごまダレで好みでした。@keith7miさんにご馳走になりました。ご馳走さまです!おいしかったー!

どうやら毎週のように週末このトルタコスというお店でプログラミング談義が行われているらしい。


2012/02/03

2012/02/03

C#というか.NETでExcelやWordをプログラマブルにPDF化する(BullZip)



こいつを使います。
インストールして以下のパスにあるdllを参照する。
"C:\Program Files\Common Files\Bullzip\PDF Printer\API\Microsoft.NET\v4.0"
"C:\Program Files\Bullzip"でないことに注意。

あとは下記サンプルのように簡単にPDF化できます。
PdfSetttings.SetValueがなかなかわけわかめなので、下記参照。
指定したExcelとWordを一括でPDFにするサンプル書いてみたけど、思った以上にキレイに出力されてビックリ。これは使える気がする。しかも無料で商用可能らしい(要出典)。

PDFにするときにExcelやWordがチラっと起動するのはどうにかならんもんか。。仮想プリンタだしそうはいかんのだろうねー。

検索してみると.NETに限らずAccess VBAやVBScriptからBullZip使って同じことしてる例がある。

あれあれ、改めて調べるとoffce 2007からは標準でPDF出力がサポートされてんのか?





2012/02/01

2012/02/01

windowsで毎時growlで通知する(cygwinでgrowlその2)

以前も同じようなことしてるけども。。 毎時growlの通知を出すだけ。時間の区切りがわかってはかどる。かも。お昼や定時がわかるのもいい。
ソースはこちら。

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

タイムボカンディレクトリ

私がこないだまでいた会社にはタイムボカンという名の共有ディレクトリがあった。中に入れてから丸3日経つと自動で削除されるディレクトリ。名前はtimebombで通称タイムボカン。ネーミングセンス良すぎワロスw

ということで、VPSと会社の自分のPCにもtimebombを作った。削除するためのshell scriptをcronで回すだけの簡単なお仕事。

追記


入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

shellでメモを取る

僕はメモするのがけっこう好きです。けっこういろいろなことをメモします。技術メモ、思いついたこと、ToDo、作りたいプログラム、ブログネタ、コード片、ワンライナー、Bookmark、quoteなどなど。このブログに書く内容はだいたいそのメモがもとになってます。

普段はemacsでメモしてます。emacsのorg-rememberで管理してます。以前はchangelogメモを使ってましたがorg-rememberの方が快適です。キー一発ですぐメモできて、org-agendaで時系列でメモを読んだりタグ検索したり。家や職場など各マシンごとにmemoがあって共有できるようにしているので、org-agendaすると全てのメモが時系列に並んで表示されるので、いつ何をしていたかすぐわかります。

で、org-rememberにメモするほどじゃないけど、どこかに残しておきたいメモがあるんですよね。ちょくちょく。いままでは紙や付箋に書いたりしてました。せっかくなんでそういうコマンド作ってみようかなーと試しに作って使ってみてます。こんな具合。
$ memo -tdemo shellでメモ取りたい
$ memo org-rememberに記録するほどでもないもの用
$ memo org-rememberにはのちのち参照するものと各マシンで共有したいもの
$ memo このメモは書き捨てとか直近のタスクとか付箋に書くようなもの
$ memo '-----------------------------------------------------------------'
$ memo -d
2012-02-01 22:27:23 [demo] shellでメモ取りたい
2012-02-01 22:27:40  org-rememberに記録するほどでもないもの用
2012-02-01 22:28:24  org-rememberにはのちのち参照するものと各マシンで共有したいもの
2012-02-01 22:29:36  このメモは書き捨てとか直近のタスクとか付箋に書くようなもの
2012-02-01 22:29:46  -----------------------------------------------------------------
内容は~/.shellmemoに保存される。僕の場合は自動でバックアップ取ってるディレクトリにメモ本体を置いて.shellmemoはシンボリックリンクにしてる。 ソースはこんな感じ。 なかなか便利かもしれない。

参考



入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

すまあとふぉんニシテコマッタコト

スマートフォンにして日が浅いんですが、便利ですね。GALAXY SIIってのにしました。便利ですが困ったこともありますね。「携帯電話として使いにくい」ところが特に。それはTwitterやSNSやTumblrがやりやすいことと引き換えということで、まあいいですよ。いいですけど、オサイフ携帯が使えないのは本当に困る。嫌だ。携帯でiDが使えなくなったのでiD専用のカードを追加で申し込んだですよ。届くまで大変に不便だったですよ。くそっ!iD専用カードは届きましたが、それでOKかというとそうでもない。以前は携帯だけもってればよかったのに財布も持ち歩かないとならない。ぐぬぬ。。せめてiD専用のカードがもうちょっと小さければ携帯のケースに装着できそうなんだが。。

追記

Edyはこんなのあんのかよ!iDもこういうの出しておくれよ。

追記

こんなものが・・・。評判は悪いみたいですけども。

SGP ギャラクシー S2 ケース ネオ・ハイブリッド【 ソウル・ブラック 】Neo Hybrid 液晶保護フィルム付  docomo Galaxy S2 ケース sc 02c