2009年5月30日土曜日

Operaで使えるニコニコ大百科ポップアップを更新

このエントリーをはてなブックマークに追加
昨日のコードだと、FirefoxとChromeでは動かなかったから動くようにちょっち修正。
後、見た目とかを一部修正。
影は面倒だからつけなかった。
Flashに重なると表示されないのはブラウザの仕様。あきらめてください。
これがドラッグできると良いよね。
え? 作れ?
面倒。

// ==UserScript==
// @name Popup Nico Dict for Iframe
// @namespace http://gigi-net.net
// @include http://dic.nicovideo.jp/*
// @include http://www.nicovideo.jp/watch/*
// @author giginet modified Arc Cosine
// @version 1.1
// ==/UserScript==
(function(){
/** simple version of $X
* $X(exp);
* $X(exp, context);
* @source http://gist.github.com/3242.txt
*/
var $X = function (exp, context) {
context || (context = document);
var expr = (context.ownerDocument || context).createExpression(exp, function (prefix) {
return document.createNSResolver(context.documentElement || context).lookupNamespaceURI(prefix) ||
context.namespaceURI || document.documentElement.namespaceURI || "";
});
var result = expr.evaluate(context, XPathResult.ANY_TYPE, null);
switch (result.resultType) {
case XPathResult.STRING_TYPE : return result.stringValue;
case XPathResult.NUMBER_TYPE : return result.numberValue;
case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
// not ensure the order.
var ret = [], i = null;
while (i = result.iterateNext()) ret.push(i);
return ret;
}
return null;
}


var tip = null;

var init = function(){
if( checkOption() ){
createNicoDic();
}else{
popup();
}
};

var createNicoDic = function(){
document.getElementById("container").style.display = 'none';
//clear div
var cap = document.getElementsByTagName("h1")[0].innerHTML;
var desc = document.getElementById("article");
var article= desc.innerHTML;

//置き換え用の適当な文字列生成
var rand_st ="st"+(new Date()).getTime();
var rand_ed ="ed"+(new Date()).getTime();

//ページメニューを消去
article =article.replace(/<div id..page-menu.>.*<.div>/i,"");

//見出しを適当な文字に変換
article =article.replace(/<h2.*?>/gm,rand_st);
article =article.replace(/<.h2>/gm,rand_ed);
//ページメニューを消去
article =article.replace(/<div id..page-menu.>.*<.div>/,"");
//タグを全消去
article =article.replace(/<.*?>/mg,"");
//適当な文字を見出しに戻す
article =article.replace(new RegExp(rand_st,"gm"),"<br>【");
article =article.replace(new RegExp(rand_ed,"gm"),"】<br>");
//空の見出しを削除
article =article.replace(/<br>【.*】<br>\s*<br>【/gm,"【");

var ARTICLE_LENGTH = 300;
showText = article.substring(0,ARTICLE_LENGTH-1);
if(article.length>=ARTICLE_LENGTH){
showText +="...";
}
//タイトルを追加
showText ="<h1>"+cap+"</h1>"+showText;
var descDiv = document.body.appendChild(document.createElement('div'));
descDiv.style.display = 'block';
descDiv.style.fontSize='10pt';
descDiv.style.fontFamily='sans-serif';
descDiv.style.textAlign='left';
descDiv.style.lineheight='110%';
descDiv.style.color='#333333';
descDiv.style.paddingLeft='16px';
descDiv.style.paddingRight='5px';
descDiv.style.height = "220px";
descDiv.style.background = 'cornsilk';
descDiv.innerHTML = showText;
};
var popup = function(){
var loc = location.href.match(/nicovideo\.jp\/watch/);
if(loc){
var iconList = $X('//div[@id="video_tags"]/p[@class="tag_txt"]/nobr/a/img[@class="txticon"]');
for( var i=0, l=iconList.length; i<l; i++ ) (function(list){
var link = list.parentNode.href;
list.addEventListener( 'mouseover', function(e){ showTips(e,link); }, false );
list.addEventListener( 'mouseout', function(){ hideTips(); }, false );
})(iconList[i]);
}
};
var checkOption = function(){
var loc =location.href.match(/popup=true/);
if( !loc ){
return false;
}
return true;
};
var showTips = function(e,link){
if( tip != null ){ hideTips(); };
tip = document.createElement("div");
var findPos = function(e){ return { "x":e.clientX, "y": e.clientY }; };
var pos = findPos(e);
tip.style.top = pos.y - 240 +'px';
tip.style.left = pos.x + 20 + 'px';
tip.style.width = '340px';
tip.style.height = '220px';
tip.style.zIndex = '10002';
tip.style.position = 'absolute';
tip.addEventListener( "click", hideTips, false );

var iframe = tip.appendChild(document.createElement("iframe"));
iframe.src = link + "?popup=true";
iframe.width = "340px";
iframe.height= "220px";
iframe.frameborder = "0";
iframe.scrolling = 'no';
iframe.style.zIndex = '10000';

var closeBox = tip.appendChild(document.createElement("div"));
closeBox.style.position = 'absolute';
closeBox.style.top = "2px";
closeBox.style.marginLeft = "2px";
closeBox.style.border = "sold 1px #fcfcfc";
closeBox.style.zIndex = "10003";
closeBox.style.width = '16px';
closeBox.style.height = '16px';
closeBox.style.background= '#333333';
closeBox.style.color= '#ffffff';
closeBox.style.fontWeight= 'bold';
closeBox.appendChild(document.createTextNode('X'));
closeBox.addEventListener( "click", hideTips, false );
document.body.appendChild(tip);

};
var hideTips = function(){
tip.parentNode.removeChild(tip);
tip = null;
}

//fire
var timer = setTimeout(init,1000);
})();

Operaで使えるニコニコ大百科ポップアップ

このエントリーをはてなブックマークに追加
超うそ臭いの作ってみた。
元ネタはこちらのページ
コードをまるっとコピペした。
後、iframeを動的に追加して、dic.nicovideo.jpを表示させた。んで、説明文を適当に切り張りしてる。
つまるところ、無駄にインフラを消費するという素敵無駄コード!!
変な関数とかは使っていないので、FirefoxやGoogle Chromeで動くかもしれません。
動いても嘘くさい動きですががが。
ポップアップは自動的には消えないので、適当に左上の×ボタン(?)をクリックしてください。
mouseoutで消しやがれF*ckって人は適当にコードいじってください。

// ==UserScript==
// @name Popup Nico Dict for Iframe
// @namespace http://gigi-net.net
// @include http://dic.nicovideo.jp/*
// @include http://www.nicovideo.jp/watch/*
// @author giginet modified Arc Cosine
// @version 1.0
// ==/UserScript==
(function(){
var nicodicView = {
tip : null,
init : function(){
if( this.checkOption() ){
this.createNicoDic();
}else{
this.popup();
}
},
createNicoDic : function(){
document.getElementById("container").style.display = 'none';
//clear div
var cap = document.getElementsByTagName("h1")[0].innerHTML;
var desc = document.getElementById("article");
var article= desc.innerHTML;

//ページメニューを消去
article =article.replace(/<div id..page-menu.>.*<.div>/i,"");

//見出しを【】に変換
article =article.replace(/<h2.*?>/gm,"【");
article =article.replace(/<.h2>/gm,"】");

//タグを全消去
article =article.replace(/<.*?>/mg,"");
//先頭300文字のみ抽出し、省略された場合は...をくわえる
showText =article.substring(0,299);
if(article.length>=300){
showText +="..."
}
//見出しを改行する
showText =showText.replace(/【/gm,"<br>【");
showText =showText.replace(/】/gm,"】<br>");
//タイトルを追加
showText ="<h1>"+cap+"</h1>"+showText;
var descDiv = document.body.appendChild(document.createElement('div'));
descDiv.style.display = 'block';
descDiv.innerHTML = showText;
},
popup : function(){
var loc = location.href.match(/nicovideo/);
if(loc){
var iconList = document.getElementsByClassName("txticon");
var _self = this;
for( var i=0, l=iconList.length; i<l; i++ ) (function(list){
_self.CoolTips(list);
})(iconList[i]);
}
},
checkOption : function(){
var loc =location.href.match(/popup=true/);
if( !loc ){
return false;
}
return true;
},
findPos : function(e){
return { "x":e.clientX, "y":e.clientY};
},
CoolTips : function(node){
var link = node.parentNode.href;
node.onmouseover = function(e){ nicodicView.showTips(e,link); };
//node.onmouseout = function(){ nicodicView.hideTips(); };
},
showTips : function(e,link){
if( this.tip != null ){ this.nicodicView.hideTips(); };
this.tip = document.createElement("div");
var pos = this.findPos(e);
this.tip.style.top = pos.y - 240 +'px';
this.tip.style.left = pos.x + 20 + 'px';
this.tip.style.width = '340px';
this.tip.style.height = '220px';
this.tip.style.fontSize = '13px';
this.tip.style.fontWeight = 'bold';
this.tip.style.zIndex = '10000';
this.tip.style.background = "#333333";
this.tip.style.color = "#ffffff";
this.tip.style.position = 'absolute';


var iframe = this.tip.appendChild(document.createElement("iframe"));
iframe.src = link + "?popup=true";
iframe.width = "100%";
iframe.height= "100%";

var closeBox = this.tip.appendChild(document.createElement("div"));
closeBox.style.position = 'absolute';
closeBox.style.top = "2px";
closeBox.style.marginLeft = "2px";
closeBox.style.border = "sold 1px #fcfcfc";
closeBox.style.zIndex = "10001";
closeBox.style.width = '16px';
closeBox.style.height = '16px';
closeBox.style.background= '#333333';
closeBox.style.color= '#ffffff';
closeBox.style.fontWeight= 'bold';
closeBox.appendChild(document.createTextNode('X'));
closeBox.onclick = function(){ nicodicView.hideTips() };
document.body.appendChild(this.tip);

},
hideTips : function(){
this.tip.parentNode.removeChild(this.tip);
this.tip = null;
}

};
nicodicView.init();
})();

2009年5月29日金曜日

Kifu for Flash用タグジェネレータ

このエントリーをはてなブックマークに追加
使い方
swfに、swfのアドレスを入力。
kifに、kifのアドレスを入力。
その後、createをクリックするとresultにタグが出力されるので、それをコピーすれば良い。





将棋の棋譜

このエントリーをはてなブックマークに追加
自宅鯖google sitesにFlashを置いてみた。たまに見えなくなるのは仕様です。
後手番で、矢倉。
見所は、ラストのまくり。
途中までは辛かったのですが、最後の最後でうっちゃった感じです。

2009年5月28日木曜日

Mac Book欲しい病

このエントリーをはてなブックマークに追加
Mac Book欲しい病発動中。
ひとまず13ヶ月計画で行くぜ(ぇ

Opera10 Beta

このエントリーをはてなブックマークに追加
Opera10 BetaがDesktopTeamからリリースされました。
新スキン搭載で、Coolな概観になっています。
以前のスキンは黒かったですけど、今回のは全体的に青灰色(?)みたいになっています。
タブのデザインがありえなくらいダサかったので、即効で非表示にしました。
全体的なイメージとしては、Safariを意識してるのかな? みたいな感じです。
いや、良く分かりませんが。
#分からないのかよ
ともあれ

Opera10 Betaの詳細はこちらをごらんください。
http://my.opera.com/desktopteam/blog/2009/05/27/snapshot-build-with-preview-of-the-new-skin

2009年5月26日火曜日

Webkitのバグ?

このエントリーをはてなブックマークに追加
自分のCSSが悪いと思うんですが、position:absolute;を指定したオブジェクトがスクロールすると固定されない(?)という謎のバグと格闘していました。
Webkit系列だけで発生していて、結局原因分からずで放置プレイ。
明日には直したいなぁ。意外と、WebkitってCSS系に癖があるんだなぁと改めて思いました。
見た目重視ってだからかな? うーん、良く分からない。

2009年5月22日金曜日

デザインの難しさ

このエントリーをはてなブックマークに追加
デザインって難しいですよね。という話。以上(ぇ
今日はお仕事で若干レイアウトの変更をしたのですが、これが難しい。
狭い隙間でそれなりの空白を生み出すという苦行を課せられてしまい、色々と試行錯誤しながらやったのですが、どうにも違和感がある。
結局某検索サイトのレイアウトをパクって参考にして新デザインと相成りました。
CSSの修正だけでしたが若干フォントのサイズを変えたり、marginを少し入れて、line-heightを調整。
それだけで見栄えがぐっとアップ。
んー、単純なだけに奥が深いなぁと改めて思いました。
それだけです。

2009年5月15日金曜日

popIn Rainbow Released

このエントリーをはてなブックマークに追加
ブログの右上左上をご覧ください。
popIn Rainbowというのが見えるでしょうか。
自分も一部だけ開発に携わったpopIn Rainbowの公開が許可されましたので、早速導入してみました。
popIn Rainbowは、いわゆるブログパーツと呼ばれるもので、コード一行をコピペして張り付けるだけで簡単に導入できます。

どのような機能を提供するのか。
主に二つです。

1.なぞってpopIn on Blog
なんでも良いので、文字をなぞってみてください。そしてマウスを放すと小さいウインドウがカーソルの横に現れたはずです。
その上にカーソルを移動すると、メニューがぬるっと出てきます。
これは今、popIn on FirefoxやpopIn on InternetExplorerと同じ機能です。
もっとも、メニューを用意したのはうp主。というか、Blog主=僕です。
searchをクリックすると、なぞった単語をGoogle検索してくれます。
右下にウェブというBoxがあって、その上にマウスカーソルを合わせるとGoogleの各サービスの検索が出来ます。
さらに、右下のYahooアイコンやウィキペディアアイコンをクリックするとそのウインドウのままでなぞった単語を検索できます。
ま、popInを一度でも使った事がある人には手馴れた動作です。
Operaな人もChromeな人もSafariな人もみーんな、popInがどんな動作をするのかなーってのを体験する事が出来ます。
そして、今までIEやFirefoxでpopInをインストールして無かった人もこのページを通してその「面白さ」を体験していただけたらなーと思います。


2.自動リンク
一部のリンクは別のユーザがなぞった単語に自動的にリンクが張られます。
なので、そのリンクをクリックするだけで、さっと検索内容を見る事が出来ます。
実際に自動陸が反映されたのを見た時は、若干感動しました。
この自動リンクは動的に変わるので常に同じ言葉が選ばれる訳ではありません。
なので、どんどんなぞって反映が変化するのをニヤニヤ眺めるのも新しい「楽しみ」かなと思います。

右上のFlashパーツはなぞられたら単語を表示するブログパーツです。
社長が気合を入れて作ったパーツですので、マウスオーバーして楽しんでいただければと思います。

尚、このpopIn Rainbowは特別バージョンでして、popIn ARというのも搭載しています。
ARと書かれた部分をクリックすると、FlashベースのARを楽しむ事が出来ます。
お時間のある方は試してみてください。
5/15追記
popIn ARはWebカメラが必須です。




ちなみに、このブログパーツは限定公開ですが、近日中に一般公開する予定です。
その時は是非是非、ブログ導入を検討していただけると幸いです。


以上、自作自演Postでした。

2009年5月14日木曜日

Javascriptの勉強はどこでやればいーの?

このエントリーをはてなブックマークに追加
正直、Javascriptで何をしたいのかってレベルによって、勉強する場所が違うから、ここでやれ!みたいなのは挙げられないんだけど、リンク集的な意味では、このページが役立つ。

モダンJavaScript チュートリアル集 | Diaspar Journal
http://diaspar.jp/-/javascript-ecmascript

僕の独断と偏見だけど、初心者の人にお勧めなのが、このページ

DOMから始めるJavaScriptモダン・スクリプティング---目次:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070626/275913/

ある程度HTMLが理解できてる人には上記の入門記事はとても丁寧に解説されているので、お勧め。
本格的にJavaScriptを覚えようとしたらMDCとか読むのが一番手っ取り早いけれど、いきなりあれを読むのはキツいと思うので、最低限の知識をつけるためにも読んでおく事をお勧めする。
(とほほさんのページにたどり着く人は多いかもしれないけれど、お勧めは出来ない。リファレンスとしては参考になるけれど、入門記事としてはやや冗長というのが僕の考え)

後は開発環境だけれども、以下のツールを揃えるのが良いと思う。

Windows環境
ブラウザ:Firefox+Firebug
エディタ:サクラエディタ or Terapad or 秀丸

Linux環境
ブラウザ:Firefox+Firebug
エディタ:Vim or Emacs

Mac環境
Macは持っていないんだ。ごめんね……orz

良く、Eclipse最高!とか言う人居るけど、あれはでかいコードを書く時に向いている。
便利なんだけど、起動は遅いし、動作もかなり重い。
Javascript程度の小さいコードを扱う時はシンプルなエディタがお勧め。
その辺は適当に調べればすぐに分かると思う。
文字コードで、UTF-8を扱えるエディタだったら正直何でも良い。


Operaな人だったら、Opera単体で開発できるので、Operaを用意すれば良い。
メニューの「ツール→詳細ツール→エラーコンソール」でエラーコンソールを立ち上げて、ひたすらTry&Error。
ソースの表示から中のコードをゴリゴリっと変えていくのがOperaジャスティスな使い方。
Operaをそれなりに愛している人でないと出来ない開発手法なので、お勧めは出来ない。

ちなみに僕はへたれなので、Opera+Vimでひたすら:wとRを連打するという開発手法を取っている。
効率が悪いって、分かってるんだけどねー。
そろそろvimscriptの書き方覚えるべきかなぁ。


IEでのデバッグ方法は基本的にはalertデバッグかなぁ。
もうね、正直IEの重さと独自性でイライラすること間違い無しなので、IE対応しないコード書く方が(精神的に)良いと思う。
お仕事してる人は文句言わずにキチンとIEでも動くコード書きましょう。
対応したくないのは山々ですけどね……。
以上。

2009年5月12日火曜日

Javascriptな「人」

このエントリーをはてなブックマークに追加
Javascriptな人というと誰を思いつくか。
はてな村の人たちばかりしか思い浮かばないし、僕はUserScriptが好きなので、そちらが得意な人たちに目がつく。
ともあれ羅列してみた。
世界Topクラスとか日本有数とか書いてるけど、僕の誇大妄想なので、実際のランクとかけ離れてる事が多々あるかもしれませんが、参考程度に聞き流してください。

    全般的にすげえ
  • id:amachang
    IT戦記
    ご存知、脊髄反射でコードを書く男。紛れも無い、Javascriptな人で、世界Topクラスの技術の持ち主。一度会ってみたいなぁと思いつつも、会っただけで圧倒されそう。

  • id:ma.la
    最速インターフェース研究会
    LDRの人、最速の人、京都観光の人、100万円の人、高橋メソッドゴルフな人。呼び名は多々あれ、彼もまたJavascriptの世界的権威。Operaはメーラー。速い=I/Fの正解。など、名言多し。

  • id:javascripter
    素人がプログラミングを勉強するブログ
    十代の天才。紛れもない天才。Firefox関連のJavascriptに異様なくらいに詳しい。現時点で確実に国内Top5に入るくらいの技術力があると思う。着眼点が良く、機転も利き、今後の成長に超期待。

  • id:os0x
    0x集積蔵
    oAutopagerizeの人で、OperaへのUserJavascriptの移植しまくりな人で、本当にありがたい限り。Operaだけでなくクロスブラウザに強いというイメージ。

  • id:cho45
    www.lowreal.net
    冬通りに消え行く制服ガールは、夢物語にリアルを求めないの人の方が分かりやすいかな? すげえ便利なJSDeferredを開発された方。本来はCSSな人らしいのですが、全然そう感じないくらい完成度の高いライブラリとなっております。

  • 2009/5/12 お昼ぐらい追記
    edvakfさんからこの人たちをとコメント欄で指摘されたので、追記。

  • id:secondlife
    川o・-・)<2nd life
    Rubyな人だと思ったら、結構Javascriptな人でもあったと。edvakfさん推薦。id:ma.laさん経由でJavascriptを学んだってエントリを書かれている。そりゃ凄いはずです。

  • id:nanto_vi
    Days on the Moon
    Javascriptの細かい仕様に詳しい方。ってか素で忘れてた俺馬鹿ー!edvakfさん経由。ぱっと見て面白いエントリはゆの in ECMASCriptかな?


    Operaですげえ
  • id:higeorenge
    Higeorange.com
    Twipperaの人。Opera関連のコードが多いように見えるけど、地味にクロスブラウザなコードをさくっと書いているあたり、地力の高さが垣間見える。

  • id:edvakf
    by edvakf in hatena
    Operaの変態だけど、ここ最近はJavascriptの変態へと確実に進化している人。英語にも強いので、edvakfさん経由でOperaの便利なUserJSを知るようになった人は世界中にいると思う。Opera界隈では間違いなく、世界Topクラスの技術力を持っている。

  • id:Griever
    Griever
    UserScript関連では一番面白いコードを書いている。実験的なコードが多いものの、その技術力の高さに毎度勉強をさせてもらっている感じ。着眼点がクールすぎます。



本当はmallowlabsさんとかmiya2000さんとかもカウントしたい気がしつつも、そこまでJavascriptに偏ってないかなーという僕の偏見で入れていません(ぇー
他にもこの人が入ってないよ~ってのがありましたら、教えてください。

2009年5月11日月曜日

とりとめのない駄文。

このエントリーをはてなブックマークに追加
なぜコードを書くのか。
いくつか理由がありますが、端的に言ってしまえば自分がその機能を欲しいから、でしょうね。
コードを書く人間の半分位は自分の欲求がベースになってコードを書いていると思います。
そして、残りの半分が仕事だから、ですかねー。
下手したら半分どころか、90%以上が仕事だからって理由でコード書いているかもしれません、このご時世。
ともあれ、コードを書く理由は千差万別ですが、突き詰めると大体2パターンに分かれると思っています。
このうち、自分が欲しいからという理由で書かれたコードってのは意外と世界を変えるコードが多かったりすると勝手に夢想しています。
逆に、仕事でってコードは世界を変えないものの、世界を便利にするコードが多いのかなーと思っています。
どちらも重要ですが、個人的には世界を変えるコードを書きたいと願いつつも、実質は世界を便利にするコードしか書けてないという現状に甘んじています。
そもそも、世界を変えるコードなんてそう簡単には書けません。
それくらい、世界を変えるコードの質というか重さってのはでかいんです。
でも、逆に世界を便利にするコードはとても軽いので、僕程度の能力でも楽に作る事が出来ます。
#楽じゃないけどね……。
今までコードを書いた事が無い人は、ぜひとも世界を便利にするコードを書きつづけましょう。
そうすればいつか世界を変えるコードを書けるようになると思います。
世界を便利にするコードがある日世界を変えるコードになったとしたら、それってすっごく嬉しいですよね?よね?
え? そんな馬鹿なこと考えてるのはお前だけだって?
おっしゃるとおりでございます。反論できません。
酔っ払いの戯言なので、気にした方が負けって事でw

2009年5月8日金曜日

PCの調子が悪かった。

このエントリーをはてなブックマークに追加
ここ数日PCの調子が悪かったのですが、とあるパーツを交換する事でそれが解決しました。
そのパーツは、CPUクーラーです。
CPUクーラーって普通はそう性能劣化しない物だと僕は信じていましたが、どうやらそれは僕の勘違いだった用です。
CPUクーラーを取り外すと大量の埃が付着してました。
半年前に洗浄して以来ずーっと調子悪かったのですが、どうやら洗浄はあまり効果が無かったと判断します。
って事で新しいCPUクーラーを購入して取り替えたところ超安定動作。
最も、CPUファンは前のよりちょっと五月蝿めです。
それでも快適に使えているので文句なしって事で。
前のCPUクーラーは明日にでも洗浄して乾燥放置プレイを決め込もうと思います。
そんな感じで。

2009年5月3日日曜日

僕が週に一回だけお酒を飲む理由

このエントリーをはてなブックマークに追加
僕がお酒を飲むのは週に一回だけです。
理由は単純で経済的に余裕が無いからってのもありますが、そのほかにもいくつか理由があるのでいい具合に酔っ払いつつツラツラと書いていこうと思います。

1.経済的理由
  先に挙げたように、経済的な理由でお酒をあんまり買えません。って事で、週一回です。

2.お酒が好きだから
  割とお酒好きです。で、あると結構ちびちび飲んじゃうタイプです。
  アルコール依存症になりそうなタイプなので、その辺でキッチリ線引きしないといけないなーと思ったのも理由の一つです。
  以前はそれこそ毎晩飲んでいましたが、さすがにこれは肝臓壊すと不安になってから週に一回だけにするようになりました。

3.忙しい
  毎日忙しいです。なんでこんなに忙しいのか理由は明白なのですが、兎に角落ち着ける日は少ないです。
  日曜日の夜は自分のための落ち着きの時間なので、自分へのご褒美(笑)としてお酒をちびちびと飲む感じですね。

4.健康
  2と関係あるかもしれないけど、数値がやばくならないためにもキチンと自己管理をしなくちゃと思ってます。
  呑みすぎは本当に体に悪いので、程ほどに呑める量とペースってのが僕にとっては週一なんですね。

さて、四つほど挙げましたが、結局まとめると金が無いからに尽きます。
後はまあ後付け(笑)
いいじゃないか、酔っていも。
酔いながらエントリ書くってのも久々だなー。
では。

2009年5月2日土曜日

システム屋に必要な能力

このエントリーをはてなブックマークに追加
システム屋って書いてあるのが味噌で、プログラマーにとっては特段必要な能力ではない。
と、思う。

自分は四年間程システム屋をやってきました。
人によっては半人前だと思いますが、個人的には超頑張っていた時期で、色々と死にそうな目にあっていた事もしばしばありましたが、今となっては良い思い出です。
さて、システム屋をやっていて、必要だなと感じたのは「仕組みを見抜く」能力でした。
例えプログラム技術がどんなに卓越していても、あるいはどれだけコミュニケーション能力があろうとも、あるいはどれだけマネジメント能力があろうとも、仕組みを見抜く力が無ければ、相当に無駄が発生するという事がわかりました。
といっても、単に「システム化対象の業務の仕組み」だけを見抜く能力では不十分。
それくらいどんな馬鹿だって大抵身についています。
重要なのは、「その案件に生じる様々な仕組み」を見抜く能力です。
というのも、案件単位で案件の進め方がガラリと変わるのはこの世の中ザラにありまして、その辺を見抜けずに過去のやり方でやろうとしてぶつかって時間をロスする時間が本当に多かったです。
特に僕なんかはその辺の能力が極端に低いので、本当に効率悪くそれらの事をやっていたような気がします。
便利なので「仕組み」って言葉を使っていますが、「しきたり」でも良いですし、「伝統」でも良いです。
結局システム屋とはいえ、顔をつき合わせてやるのは機械だけじゃなくて対人間みたいな所があって、その辺人間は機械より矛盾と無駄と無知がない交ぜになった奇妙な生き物なので、機械よりずっと性質が悪いです。
それを理解しつつもそれらを「上手に回す」仕方を覚えるまたは見抜かないと結局苦労するのは自分って訳です。

そういった「技術」というか「人間力」というか「技能」というべきか、まあそういう能力が無いとシステム屋なんてやってられません。
実際その辺の能力が著しく低かった僕はシステム屋は耐えられないものでした。
面白くないんですよ、そーゆーので自分の思考と行動が遮られるのは。
ま、能力の無い人間がそーゆー事を言うと「死ね馬鹿」って言われるだけがオチですので、言われたくない人はキチンと能力を身につけて相手にごめんなさいを言わせるぐらいになった方がいいんじゃないの、みたいな。

よく「コミュニケーション能力が大事!」みたいに書いている人が居るけど、もしかしたら今回のエントリの内容がその「コミュニケーション能力」に含まれるのかもしれませんね。

あれ、だとするとACさんのコミュ能力って……。
うるさい、ばかーっ!

オチ? さあね。