しげぽん日記

技術屋の魂は失わない

勤怠とChrome Extension

最近JavaScriptを書いている。理由はイントラの勤怠システムを使っていて不便を感じるから。Chrome Extensionでその不満を解消しようというのが目的。

深夜、通常の業務が終了してから、あるいは、大勢の会議で自分と関係のない議論がすすんでいる時間等に書いている。Chrome ExtensionならPCだけあれば開発できるから気軽に開発できるのも良い。

とりあえずぽちぽちと書き始めたらまぁJavaScriptも書けなくないけどあんまり好きな言語ではない気がしている。pythonに慣れ過ぎただけなのかもしれないけど。varの宣言を忘れてしまってforループが無限ループにはまったり言語仕様をいまいち理解していないままに見よう見真似で書いているからかもしれない。

それでもContent ScriptsでDOMをコネコネして普段の勤怠システムでは表示されない便利情報を表示できるようになった。Chrome Extensionの仕組みをよく知らない人からはこんなことできるの?的な驚愕の声も聞こえたりして内心はほくそ笑んでいる。ローカルに持ってきたコンテンツを変形して表示するだけなのに、あたかもサーバが変わったように見えるのだし、特にソフトを専門としない人たちからすれば驚くと思う。

そんなこんなで書き始めると、あれもこれもと思い始めてBackground PageにLocat Storageとどんどんはまりつつある。どうせWindowsでしか使わないのだからCOM連携してExcel出力できれば提出書面だって思いのままになるはず。

という夢を描いてみて、さすがに提出書面自動生成までしてはくれなくても、どうせ同じJavaScriptで書いているのならオリジナルの勤怠システムでやってくれてもいいのに、なんで手元でJavaScript拡張してんだろ。使ってる人が作る事がつくづく大事だと思う今日この頃。

Chromeをイントラの公式ブラウザにできないかなと思っているが…こういうExtension書きが社内に増えるのを嫌う人がいるとならないんだろうな。あーでもFirefoxはいいのか。可能性あるかな。どこから話を持って行こうかなぁ…

Androidアプリ作る

デジカメのデータを出先で見たいとかいうのをtwitterFacebookで問い合わせたらEye-Fi使えというリプライを多数いただいた。

でもEye-Fiできっちり連携しようと思ったらPCを間にはさまないといけないような気がしてきた。うちのPCは古いので新しいの買えよという話もあるけどあいつを間にはさむのはイヤだ。WiFiのAPにHDDをくっつけているので自動的にそこに入れて欲しいし、自動的に縮小してPicasaに入れて欲しいのだ。

なのでデジカメのSDカードをひっこぬいてAndroidに挿しておいたら寝てる間にこれをやってくれるアプリを書いてみる事にした。誰かそういうアプリがあれば教えて欲しいけど。

挿し換える方がPC起動よりハードルが低いのだ、私は。

gitフロントエンド

gitは自分は良いものだと思っているけれどもコマンドラインでだといまいちイメージがわきにくいところもあるのでgitkやgit guiもあるんだけどいまいち好かんというのもあって過去に一度フロントエンド作ったことがある。WinCVSのgit版のようなのが作りたくて。

でも最近自分でコードを書く機会がとんと減ってしまったのでその作業もストップしてしまっている。パブリックドメインにでもして公開しちゃっていいんじゃないかという気もするけど誰も興味ねーんじゃねーかとか。

てか、公開できる程きれいなコード書いてたっけ?という気もする。

gitの内部の構造を理解したりするのに非常に役に立ったので、これは自分としては良い経験と思っておくことにする。というかもっとうまくpython書く自分自身の練習台としてしばらくあたためておこう。

デバッガ屋さん泣かせ

過去の話を1つ。

いくつかICEは触ってきたが過去に使ってきたICEの中にTcl/Tkでデバッガの機能を拡張できる機能を持ったものがあった。その当時そのデバッガは私にとって必要な機能を備えていなかったためにTcl/Tkでデバッガを拡張した。そのデバッガの特徴は…

  • 全てTcl/Tkで記載
  • ARMの逆アセンブル機能もTcl/Tkで記述
  • デバッガのUIは一切使わずにデバッグが可能
  • メモリダンプやレジスタの変更等の基本的な機能に加えコールスタック解析をdwarfがなくてもある程度実現
  • Tcl/Tkでも遅さを感じない応答性

できるものだった。elfのシンボルテーブルくらいはこのツールで読んでたんじゃないかな。ブレークポイントとかはさすがに手動ソフトウエアブレークポイントとかは実装しなかったけどものすごく便利だった。そのうちデバッガ屋さんがボクの不満を解消してソフトウェアに反映してくれるようになったのでこのツールはその時点で役目を終えたのだけど。

てか全部Tcl/Tkで書いたために誰もメンテナンスできなくなってしまった時点でTcl/Tkの限界を感じてしまった。Tcl/Tkの言語仕様はものすごくシンプルで誰が書いても同じ書き方になるし後から読み返しても意味がわかるしいいんだけど、どうしても書かないといけないコードのサイズが大きくなる。という反省からpythonに移っていったという。

今から思うとアホやなぁと思う。でもそれがある事で本当に作業の効率が上がったんだよ。という昔話。

管理職

管理職って労務管理等の業務をこなす立ち位置の人ってことだと思ってるんだけど、それだけやってれば良いってもんじゃないと思っている。むしろ労務管理なんてほとんどしない人の方がいいと思っている。といっても労務管理にまつわる作業量が少ないのではなくて、労務管理にかける時間量が少ないのが良いと思っている。労務管理というルーチンワークに関してはできる限り時間をかけずに処理してしまい、自分のグループのメンバーを導くような仕事をきっちりこなせるのが良い管理職だと思っている。

ということで管理職になってからもいろいろとツールを作っている。部門内の業務の体制を書いて出したりする資料があるけれどExcelで提出しないといけないらしいのでyamlの簡単版みたいなテキストを書けばExcelの資料に変換するツールとか、勤怠入力で残業時間の入力忘れとかがないかをチェックするツール(こんなのイントラで対応して欲しいけど)とかを自作して効率を上げている。書いてるのはpython+wxPythonでExcelの操作はxlrdやxlwtを使っている。でも管理職の業務ってルーチンワークといえども日々発生する作業よりも半年に一回とか月に一回のものも比較的多いのであんまりツール作るモチベーションが高くないのも事実としてはあるかなぁ。

という事で管理職というポジションをやりながらもpythonでツールを作成するという事も並行してやっている。忘れてないよね、魂。