2010年12月31日金曜日

2010年を振り返る(駆け足で)

このエントリーをはてなブックマークに追加

今年を振り返ってみるか


今年も色々ありましたので、だだーっと羅列したいと思います。

・Zencoding導入により、コーディングスピードが10倍(誇張表現)に
・謎コピペ量産(主にOperaとか高専とか技術者ネタとか)
・IE6 must dieキャンペーン実施→今はもうやってない←えっ
・Opera Show with Twitter Searchを製造
・Vim like on Safari(笑)
・将棋熱衰えず
・コーディング熱衰えず
・本業が普通に忙しくなってきた
・Skypeが常駐するようになった
・Twitterに常駐(ry

2010年12月29日水曜日

Rubyのスレッドプログラミングで悩んでいます。添削お願いします><

このエントリーをはてなブックマークに追加

Rubyのスレッドを一定数に抑えたい

この書き方がスマートかどうか分からないので、ブログにアップして添削を待つというWeb2.0な対応(意味不)
やりたい事は、Rubyのスレッドを一定数以下に抑えたい。
例えばスレッドを一気に20も30もがーっと立ち上げるんじゃなくて、5個とか10個とかこちらでコントロールできる範囲でそうしたい。

2010年12月13日月曜日

ブラウザの拡張をつくろう!

このエントリーをはてなブックマークに追加

いつもの前振り


初めましてもそうでない方もお元気ですか。
元気があれば何でも出来る!出来ません。

JavaScript Advent Calender、13日目担当のArc Cosineです。

今回はJavaScriptのネタを何か書こうと思いましたが、どうせならツールの一つくらい作ったほうがいいだろうと言う事で土日に突貫工事で作ってみました。

Extension Maker
http://www.tunsns.net/ExtensionMaker/



時間切れで間に合いませんでしたが、Opera拡張だけは作れるようになっていますので、試してみてください。

チュートリアル


トップヘアクセスしたら右下にある「今すぐ試してみる」をクリックしましょう。
そうしますと、基本情報を入力する画面が出ますので、必要な情報を入力してください。
今は入力チェックしていませんが、将来的にはちゃんとチェックするようにします。

次に、コードを入力する画面が出てきますので、ここにコードを貼り付けましょう。
Operaで動くUserScriptを試しに貼ってみると良いでしょう。
例えば、僕が昔書いたcolorful_favstarとかね!
コード貼っておきますね。
コピペする場合は、view plainをクリックすると楽にコピペ出来ますよー。view plainの文字、薄くて見づらいけれど。
// ==UserScript==
// @name           Colorful Favstar.fm
// @namespace      http://moco.nond.es/
// @description    Change tweet color and font size by favourites count like Favotter.net.
// @version        0.1.1.20100808
// @include        http://favstar.fm/*
// @include        http://ja.favstar.fm/*
// @include        http://de.favstar.fm/*
// ==/UserScript==

(function(doc){
  var target = (window.opera) ? window : doc;
  target.addEventListener('DOMContentLoaded', init, false );

  function init(){
    var css = [
      '.theTweet {'
        ,'line-height: 1.4;'
        ,'color: #333;'
      ,'}'
      ,'.theTweet a {'
        ,'color: #1a75d2;'
      ,'}'
      ,'.cofav2 {'
        ,'font-weight: bold;'
        ,'color: #008e00;'
      ,'}'
      ,'.cofav3 {'
        ,'font-weight: bold;'
        ,'color: #5f008f;'
      ,'}'
      ,'.cofav4 {'
        ,'font-weight: bold;'
        ,'color: #5f008f;'
      ,'}'
      ,'.cofav5 {'
        ,'line-height: 1.3;'
        ,'font-weight: bold;'
        ,'color: #f40000;'
      ,'}'
    ].join('');

    var style = document.createElement('style');
    style.type = 'text/css';
    style.appendChild(document.createTextNode(css));
    document.getElementsByTagName('head')[0].appendChild(style);

    var favCounts = document.getElementsByClassName('favouritesCount');
    for (var i=favCounts.length; i-- > 0; ){
      var fav = parseInt(favCounts[i].innerHTML, 10);
      var parent = favCounts[i].parentNode.parentNode;
      if (!isNaN(fav) && fav >= 1) {
        setColorfulClass(fav, parent);
      }
    }

  }
  function setColorfulClass (favCount, node) {
    if (node.className !== 'tweetContainer') {return;}
    var tweet = node.getElementsByClassName('theTweet');
    if (favCount <= 4) {
      tweet[0].className += ' cofav'+favCount;
    } else if (favCount >= 5) {
      tweet[0].className += ' cofav5';
    }
  }
})(document);
    

オプション画面ですが、これは適当に作ってます。
コード部分に色々お遊びで入力した後、フォーカス外してどっかクリックすると、下のプレビューに反映されます。
changeにbindしていますので、非常に使いづらい仕様になっています。最悪ですね。

最後にOperaの輝かしいアイコンが表示されますのでクリックしましょう。
皆さんが常用している(普通はしてません)Opera 11でクリックすると普通にインストールしますかの画面が出てきますので、いきなりインストールして試す事が出来ます。
他のブラウザ(Chrome以外)でしたら、ダウンロード画面が出てくると思います。
Google Chromeでダウンロードしたい場合は、Altキーを押しながらクリックするとダウンロード出来るかもしれません。


謝辞


今回、UIの部分を手抜きする為に、uupaa.jsを利用しました。すっごい便利だよ!!
@uupaaさん、素晴らしいライブラリを提供してくださりありがとうございました。
そして、一番大事なZIP処理については、@amachangが作成した「無圧縮 ZIP を作って Data URI を生成するライブラリ」を利用しました。
こんな凄いコードを2年前に作っているとは……。本当にありがとうございます。

そして、楽しいAdvent Calenderを用意してくれた、@edvakfさん、ありがとうございました。

それでは、良いJavaScriptライフを。

以上です。

2010年12月1日水曜日

新しいはてなブックマークボタンにしてみた。

このエントリーをはてなブックマークに追加
テンプレートをいじれば誰でも簡単に新しいはてなブックマークボタンを利用することが出来ます。
Bloggerに慣れた人なら簡単だね!!!
……そんな簡単に直せませんって。

<div class='post-header'>
 <div class='post-header-line-1' style='margin: 10px auto 1.5em auto;'>
    <b:if cond='data:post.url'>
    <a expr:href='"http://b.hatena.ne.jp/entry/" + data:post.url' class='hatena-bookmark-button' data-hatena-bookmark-title='data:post.title' data-hatena-bookmark-layout='standard' title='このエントリーをはてなブックマークに追加'><img src='http://b.st-hatena.com/images/entry-button/button-only.gif' alt='このエントリーをはてなブックマークに追加' width='20' height='20' style='border: none;' /></a><script type='text/javascript' src='http://b.st-hatena.com/js/bookmark_button.js' charset='utf-8' async='async'></script>
    </b:if>
    </div>
 </div>

2010年10月26日火曜日

5分で作るOpera エクステンション

このエントリーをはてなブックマークに追加
5分で作るOpera エクステンション

Opera エクステンションがやって来るヤァ!ヤァ!ヤァ!


Opera11が発表されましたが、皆様いかがお過ごしでしょうか。
開発者でない人でも、簡単に作れるOpera エクステンション。
作成するファイルは僅か5つ。
・index.html
・background.js
・popup.html
・test.png
・config.xml
早速、作ってみましょう。

用意するもの

Opera 11
あと、圧縮ツール。zip圧縮出来るならば、何でも良いです。

実際に作ってみよう

まず、index.htmlを作りましょう。
<!DOCTYPE HTML>
<html lang="ja">
<head>
 <meta charset="UTF-8">
 <title>MyTest</title>
  <script charset="UTF-8" src="background.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>

2010年10月25日月曜日

連想配列を使おう

このエントリーをはてなブックマークに追加

きっかけ

JavaScript関係のエントリで気になるコードがありました。
それは、以下の二つ
半角カナのスタイル名を全角カナに変換する - 名もないテクノ手
JavaScriptで半角英数字を全角英数字に変換する関数|本を買わずに解決するWeb制作の小技

問題点

どちらも、半角と全角の変換をするだけの簡単なコードなのですが、その変換用の辞書に使っているのが二つの配列というのがちょっと残念。
この程度の量であれば問題ないのですが、こういうコードメンテは大変面倒です。
辞書が増えて、配列の「順番」が変わった時にバグるという危険性も含まれています。
それでは、こういう時にはどうすれば良いのでしょうか。

2010年10月22日金曜日

高専にはアホしかいない.

このエントリーをはてなブックマークに追加

ネタです

高専っていうのはつまらないところだ.

アホしかいない.

学生も骨がないのばかりだし, 本当にただの学生である. それは違う. 研究室の学生は教官と対等である. それが研究というものだ. 授業においてはそうではないかも知れない. しかし, 研究室に入ったからには独立の精神を持って自分の意志で研究テーマを選択し実行しなければならない. こんな当たり前のことがほとんど行われていない. というか皆無である.

これではどこぞの三流大学とどう違うのだ. 高専生の気概を持つべきである. おれたちはエリートなのだという意識を持ち, 教官のいうことにはまず逆らうことから思考すべきである. なんでもはいはいと言うことを聞いて, それではダメだ. 大体において, なんでもかんでも正しいアドバイスが出来る人間が高専の教官なんかやってると思うのか?

おれたちは, これから日本を引っ張っていく人材にならなければいけない. その時におれたちにアドバイスをくれる人間はいない. 常に自分たちで思考し, みんなを引っ張っていく必要がある. それは三流大学の学生との違いだ. 彼らは教官のいうことを大人しく聞くことが研究であるが, おれたちは教官と対等に意見することが研究だ. これが出来なければ, 一体どの世界でリーダーになれるというのだ.

もちろん, 研究能力において教官というのは多少は優れてるのだろう. 特に論文の書き方についてはまぁまぁ従うべきだ. しかし研究の内容については, とことん言い争うべきだ. 納得行かないことがあればとことん反論すべきだ. はい分かりましたはい分かりましたと連打するような学生であってはいけない. 研究テーマがつまらんと思ったらとことん拒否すべきだし, 教員の無能さを見抜けばとことん指摘して攻撃すべきだ. 場合によっては精神的に潰しても問題ない. というか, おれは教員というものが向上していくとすればそれは学生との対話の中でしかないと思っている. 彼らにとって, 学生と対話したことは生涯における価値なのだ. 学生と対話することを拒否するような教員は教員失格であろう. 一体何のために生きているのか. そんなに教官であることが誇らしいのであれば, おでこに私は高専の教官ですとマジックで書いて闊歩してみなさい.

日本人の教官にすら意見出来ない人間が, どうして外国人相手に対等に勝負が出来るのだ. もっと骨のある高専生になろう. エリートとしての意識を高く持とう. 気高く生きよう. おれたちがダメならば世界に負けてしまうんだ. おれたちが戦うんだという気概を持った「高専生」になろう.

元ネタ

京大にはアホしかいない. - とある電気系出身者のいんでっくす

共感した部分

タイトルと二行目だけ。
以降は高専には当てはまったり当てはまらなかったりな感じ。
真面目な人だったら心がぐさぐさ痛むのだろうけれど、如何せん、高専生だからなー。
笑っておしまいって落ちが見えてしょーがない。
この人が定義するアホと僕が定義するアホの意味合いが違うので、しょーもないけれど、比較的近い概念で当てはめるならば、僕の中での阿呆はこの人のアホと似ているのかもしれない。
似ていないのかもしれない。

2010年10月18日月曜日

あから2010が指した5七角について

このエントリーをはてなブックマークに追加

この記事を読む前に

罪山罰太郎さんのこのエントリを先に目を通してください
【レポート】プロ棋士vsコンピューター - 「あから2010」の威力を目撃してきた (1) 歴史的な対局が行われた | エンタテインメント | マイコミジャーナル
俺の邪悪なメモ - ハートキャッチあから?!
ついでに、脳内将棋盤を用意してください。

5七角は本当に理外の一手なのか

マイコミジャーナルの方で書かれていますが、5七角は果たして理外の一手だったのでしょうか。
控え室でも検討されていなかったとありますが、改めて冷静にこの局面を分析してみたいと思います。

2010年10月15日金曜日

ニコニコ動画用の自作スクリプト更新

このエントリーをはてなブックマークに追加

またニコニコ動画のHTMLが変わりましたね

そのままだと不便なので、自作スクリプトを更新しました。

nicovideodown.js

userscripts.orgに更新しました。
http://userscripts.org/scripts/show/84552へアクセスして、ダウンロードして下さい。
自力で直せる人は自力で直しちゃってください。

nico_description

今回から、DOMContentLoadedで発火するようにしていますので、ファイル名を「nico_description.js」に変更してください。
また、今まで無駄にオブジェクト指向していたのを撤廃して、ふつーに連想配列にしました。
これでいーよね。
// ==UserScript==
// @name      nico description
// @namespace http://looxu.blogspot.com/
// @include   http://www.nicovideo.jp/watch/*
// @author    Arc Cosine
// @version   3.0
// ==/UserScript==
(function(){

    var NDesc = {
      com_style : {
        'color' : '#1259C7',
        'text-decoration' : 'underline',
        'padding-left' : '5px',
        'cursor' : 'pointer'
      },
      options : [
        { 'text' : '広告表示',  'func' : function(){ NDesc.ad_toggle(); } },
        { 'text' : 'Video詳細', 'func' : function(){ NDesc.description_toggle(); } }
      ],
      init : function(){
          //add Input Box
          NDesc.createInput();

          //hide parts
          NDesc.description_toggle();
          NDesc.ad_toggle();

          //add focus key event
          document.addEventListener( 'keypress', function(e){
            if( e.target.tagName != 'INPUT' && e.keyCode == 32 ){
              NDesc.use_hotkey();
              e.preventDefault();
            }
          },false );


          for( var i=NDesc.options.length; i-- > 0; ){
            NDesc.createParts(NDesc.options[i]);
          }
        },
        createParts : function( data ) {
          var insert_node1 = document.querySelector('div.des_1 p.font12');
          var insert_node2 = document.querySelector('div.des_2 p.font12');
          var node = document.createElement('span');
          node.appendChild(document.createTextNode(data.text));
          for( var option in NDesc.com_style ){
            var st_op = option.replace(/-([a-z])/,function(m){ return m[1].toUpperCase();});
            node.style[st_op] = NDesc.com_style[option];
          }
          node.addEventListener( 'click', function(){ data['func'].apply(); } ,false );
          var node2 = node.cloneNode(true);
          node2.addEventListener( 'click', function(){ data['func'].apply(); } ,false );
          insert_node1.appendChild(node);
          insert_node2.appendChild(node2);
        },

        toggleObject : function( selector ){
            var target = document.querySelector(selector);
            if( target ){
              target.style.display = (target.style.display == 'none' ) ? '' : 'none';
            }
        },

        description_toggle : function() {
            NDesc.toggleObject('div.info_frm');
            NDesc.toggleObject('div.des_2 table');
        },
        ad_toggle : function() {
            NDesc.toggleObject('#WATCHFOOTER');
            NDesc.toggleObject('#PAGEFOOTER');
        },
        createInput : function(){
            if( window.parent != window ) return;
            var input_work = document.createElement('input');
            input_work.readOnly = true;
            input_work.autocomplete = 'off';
            input_work.style.margin = '0px 0px 5px 10px';
            input_work.addEventListener('focus', function(){
              input_work.style.backgroundColor = '#fcc';
              input_work.value = 'Hotkey available';
            },false );
            input_work.addEventListener('blur',function(){
              input_work.style.backgroundColor = '#9D9';
              input_work.value = 'Hotkey unavailable';
            },false );
            input_work.addEventListener('keypress', NDesc.key_event, false );

            var video_title = document.querySelector('.video_title');
            video_title.parentNode.insertBefore( input_work, video_title.nextSibling );
            NDesc.input = input_work;
        },

        use_hotkey : function(){
          NDesc.input.focus();
        },

        play_pause : function(){
          var flvplayer = document.getElementById('flvplayer');
          if( !flvplayer ) return;
          if( flvplayer.ext_getStatus() == 'playing' ){
            flvplayer.ext_play(0);
          }else{
            flvplayer.ext_play(1);
          }
        },

        volumeup : function(){
          NDesc.volume(5);
        },
        volumedown : function(){
          NDesc.volume(-5);
        },
        seekleft : function(){
          NDesc.seek(-10);
        },
        seekright : function(){
          NDesc.seek(10);
        },
        seek2top : function(){
          NDesc.seek(Number.NEGATIVE_INFINITY);
        },
        volume : function(vol){
          var flvplayer = document.getElementById('flvplayer');
          if (!flvplayer) return;
          var cur = Number(flvplayer.ext_getVolume());
          var to = cur + Number(vol);
          if (to > 100) to = 100;
          if (to < 0  ) to = 0;
          flvplayer.ext_setVolume(to);
        },
        seek : function(time) {
          var flvplayer = document.getElementById('flvplayer');
          if (!flvplayer) return;
          var len = Number(flvplayer.ext_getTotalTime());
          var cur = Number(flvplayer.ext_getPlayheadTime());
          var to = cur + Number(time);
          if (to > len) to = len;
          if (to < 0  ) to = 0;
          flvplayer.ext_setPlayheadTime(to);
          // for shotage of backward seek.
          var cur = Number(flvplayer.ext_getPlayheadTime());
          if (time < 0 && cur - to > 5 && to > 10) {
              flvplayer.ext_setPlayheadTime(to - 10);
          }
        },
        key_event : function(e) {
          var handler = {
            'o' : function(){ NDesc.description_toggle(); },
            'a' : function(){ NDesc.ad_toggle(); },
            ' ' : function(){ NDesc.play_pause();  },
            'k' : function(){ NDesc.volumeup(); },
            'j' : function(){ NDesc.volumedown(); },
            'h' : function(){ NDesc.seekleft(); },
            'l' : function(){ NDesc.seekright(); },
            'H' : function(){ NDesc.seek2top(); }   //Shift+H
          };
          var t = e.target;
          var pressKey = String.fromCharCode(e.which);
          if( t.nodeType == 1 && typeof handler[pressKey] == "function" ){
            e.preventDefault();
            handler[pressKey].apply();
          }
        }
   };

    document.addEventListener('DOMContentLoaded', function(){
     NDesc.init();
    },false );

})();

2010年10月12日火曜日

2010年10月9日土曜日

多分、誰か既にやってると思うけれど

このエントリーをはてなブックマークに追加

Operaで、tumblrのスクロールが変

Operaでtumblrを使っていて前から、スクロールが変だなぁと思っていました。
tumblrはデフォルトで、j/kで画像を上下にいけるのですが、Operaでみてると何故か数ピクセルだけ余計にスクロールするんです。
そのため「○○user」の部分が見えなくて、若干苛立を感じていました。
他のブラウザではそんな事ないのでなんでかなーと思いつつも、生きていくのさほど影響が無いので放置していました。

ところが今日、ふとある事に気づきました。
世の中変なOpera使いは少ないと思いますが、JやKにScroll up/downアクションを割り当ててる人っていると思うんですね。
それが、悪さをして数ピクセル余分に移動してるんじゃないかなと思ったわけです。

そういう訳で、書いたUserScriptは以下のようになります。
名前はkeyaction_cancelar.jsで。
Opera限定で使いましょう。むしろ、Opera以外使い道が無い。

// ==UserScript==
// @name      keyaction canceler
// @namespace http://looxu.blogspot.com/
// @include   http://www.tumblr.com/*
// @author    Arc Cosine
// @version   1.0
// ==/UserScript==
(function(){
  var keyList = {'J':'dummy','K':'dummy'};  //You can add more key.

  window.addEventListener('keypress',function(e){
    if( e.target.tagName == 'INPUT' || e.target.tagName == 'TEXTAREA' ) return;
    var pressKey=  String.fromCharCode(e.which).toUpperCase();
    if( typeof keyList[pressKey] == "undefined" ) return;
    e.preventDefault();
  },false );

})();

これ、応用すれば新Twitterの画面とかにも対応できそうですよね。
データ構造をちょいちょい修正すれば、ドメイン単位で(略
なんかVimperatorで似たような拡張がありましたね。気のせいだと思います。
それでは良いOperaライフを

2010年10月6日水曜日

Smooth Scrollのブログパーツ作りました

このエントリーをはてなブックマークに追加

こりずにブログパーツを作りました

といっても、某有名なSmooth Scrollスクリプトを丸パク(略
ま、どこかで見たコードだなぁと思っていただければ幸いです。

ダウンロード&デモ

ダウンロードはこちらからお願いします。(新しいタブまたはウインドウが開きます)
http://sites.google.com/site/mksdcom/Home/smooth.js
デモページはこちら(新しいタブまたはウインドウが開きます)
http://tunsns.net/smooth_test.html

ライセンス

ライセンスはPublic Domainです。
いつものごとく。
商用利用・非商用利用問わずお使いください。

サポートブラウザ

Opera 9.5+
Google Chrome 5.0+
Firefox 3.5+
Safari 4.0+
IE 6.0+
Firefoxの3.0でも動くかもしれませんが、手元にない為、確認出来ていません。

2010年10月2日土曜日

久々の物欲

このエントリーをはてなブックマークに追加

マウスは最初はMicroHardSoft社製のマウスを愛用していましたが、数年前にLogicoolに乗換て以来、ロジクール派です。
んで、今日ふと見たこのマウスが欲しくなった!
物欲センサー全力ONって感じです。
ああ、いいなー、トラックボールいいなぁああ。



お金はありませんが。

2010年9月7日火曜日

VIM Like on Safariを更新しました。

このエントリーをはてなブックマークに追加

忘れた頃にアップデート

http://code.google.com/p/vimlike-onsafari/

更新内容は下記の通りです
・「J」「K」でタブの切替を出来るようにしました(vromeのパクリ)
・ヒントキーをオプションで変えられるようにしました。
 ・デフォルトではasdfghjklです.
 ・1234567890にする事も可能です。
・Metaキーを取得するようになりました(まあ、でも、キーが対応してないので意味がな(略))
・Macな人でMetaキーが効かないよという人は連絡下さい。
・CSS使ってみた。特に意味はありません。
・useonlineモードは本当に便利なので、騙されたと思って使ってみてください。
 ・(vimperator以外の)他の拡張って何故かそういうのをデフォルトで搭載してないよね。
 ・まぁそもそも、そこまでキー入力に拘るアレゲな人はいな(ピチューン

以上です

mouseover、mouseoutイベントについて

このエントリーをはてなブックマークに追加
JavaScriptでmouseoverとmouseoutイベントを使ってごにょごにょするコードを書いていたんだけど上手くいかない。
jQueryではmouseenterとmouseleaveというのを作って上手くやっていたが、今回実装しようとしているコードでは上手に動かすことが出来なかった。
多分、position:absoluteなものを表示してるからだと思う。
マウス周りのイベントって難しいよね。
やれやれ。

2010年9月4日土曜日

現役プログラマが、開発環境について二言三言語る

このエントリーをはてなブックマークに追加

いろんな議論がされていますね

最近、IDE最高とか、CUI最高とか、Emacsは捨てろとか、今時Vimはねーよとか、色々議論が活発ですね(遠い目)。
僕の観測範囲は偏っているので、IDE最高とかEmacs捨てろみたいな事を言う人はどちらかと言うと少なく、むしろVimやEmacsをどうすればもっと楽しく使えるだろうかみたいな考え方をしている人が多いように思えます。
そりゃ、僕自身もVimをエディタ兼開発環境として活用しているのでそういう情報を好んで仕入れているというのがありますけどね。

プログラマは几帳面な面倒臭がり

ところで、プログラマってものすごく几帳面な人が多い気がします。
ただ、その几帳面の方向が色々変わっているので、他の人には中々伝わらないところがあります。
(細かすぎて伝わらないモノマネ選手権みたいなイメージですな)
そして同時に、とても面倒臭がりな人が多いのも事実です。
実際、僕もとても面倒臭がりです。
なので、どうやった手を抜けるかという事を考えるのが好きです。
手を抜くためにコードを書いているといっても過言ではありません。

2010年9月1日水曜日

親のありがたさ

このエントリーをはてなブックマークに追加

本日、救援物資が届きました

最近、外を練り歩く事が多くなっているという話を親にしたところ、早速救援物資を送ってくれました。
(熱中対策水という500mlペットボトル×6、OS-1という点滴液もどき×6)
老婆心と切り捨てることも出来ますが、僕は素直に感謝したいと思いました。
熱中症になってほしくないという親心が実にありがたいです。
というか、ようやくそういう事を素直にありがとうと言える年齢になったのかもしれません。
五年前でしたら、照れの方が勝っていたと思いますが、最近は照れずにありがとうと言う事の大切さを痛感しています。
なので、早速電話でお礼を言いました。

あとどれだけ

親と過ごす時間が自分に残されているのだろうかとふと考えると、本当に限られた時間しか接していない事に気づきます。
一人暮らしをしつつ、実家から離れたところに暮らしていると、中々お互いの事を知ることが出来ないので、どうしても共に過ごす時間というのが短くなりがちですが、自分の方から時間を作り、親孝行出来ればなぁと思いました。
いや、そもそも今の生活が送れているのも、ましてや僕が生まれてきた事、育てて来てくれたこと。
それらを考えると、親に感謝しなくちゃならんという気持ちになりますね。
これを読んでいる貴方は、最近、親に「ありがとう」って言ってますか?

2010年8月31日火曜日

JavaScriptだけのGoogle検索作りました。

このエントリーをはてなブックマークに追加

個人サイトに置いてあります

Search Box
LooxUと初音ミクで行こう!のGoogle検索結果を表示するだけの簡単なツールです。
まだβ版ですので、色々修正が必要だとは思いますが、告知だけ。
jQueryとか一切使っていないPureなJavaScriptでもここまで出来るんだよって事をやってみたかっただけです。
ソースはPublic Domainなので好きなように使ってください。

2010年8月28日土曜日

ニコニコ動画をダウンロードするUserScriptを更新しました。

このエントリーをはてなブックマークに追加

1日で更新

更新早いよーとか言わないでください。
はてなスターとかはてブとかLDCで引用したりしないでください。

えっと、まず変更点をば
・DOMContentLoadedが効く場合と効かない場合を分けて処理しています(拡張子がuser.jsの時と.jsの時ね)
・mallowlabsさんに指摘された、詳細非表示の時にもダウンロードリンクを出すようにしました。
・あと、Opera専用になりました。
 ・他のブラウザでは、contentWindow.postMessageが触れなかったのだよ、ワトスンくん。
 ・UserScriptじゃなければ特に問題ないんだけどねぇ。
 ・それ、なんて拡張機能(アドオン)?
 ・真面目にやるとアレなので、真面目にやりたい方にお任せします。
・Safariな人は標準機能でダウンロード出来るから、このスクリプトはいらないよね。

ソースコード

2010年8月27日金曜日

ニコニコ動画をダウンロードするUserScriptを書きました。

このエントリーをはてなブックマークに追加

ニコニコ動画ってダウロード出来るのだ

UserScriptを使えばなっ!
地味にクロスドメインな感じだったので、window.postMessageを使って色々やってみました。
元ネタは、ニコニコ動画をダウンロードできるようになるGreasemonkeyスクリプトのOpera版(管理人日記) - むぅもぉ.jpだったのですが、postMessageベースになってしまったので、まるまる書き換えたイメージです(笑)
日付を見ると、3年も前のネタなのかー。そりゃ、動くはずがない(笑)
ライセンスはいつもどおり、public domainにします。
例の如く、Operaでしか動作確認していませんが、FirefoxやGoogle Chromeでも動くと思います。
Safariは……分かりません(笑)
UserScriptが動くならば或いは……。

8/28追記
== 追記ここから ==
確認した所、Operaでしか動きませんでした……orz
テコ入れします。
== 追記ここまで ==
ブックマークレットでは絶対動きませんので、なんとかしてやろうとか思わないでくださいw

UserScript.org

nicovideo down for Greasemonkey
http://userscripts.org/scripts/show/84552
Firefoxな人やコピペ面倒という人は↑をどうぞ

ソースコード

ソースコードは下記の通り

2010年8月24日火曜日

vimでの文字化け回避

このエントリーをはてなブックマークに追加

自分用メモ

set encoding=utf-8
".vimrc(_vimrc)が cp932の場合
scriptencoding cp932

これを_vimrcに設定しておくとコピペの時に文字化けしなくなる。
windows限定の話。

参考リンク
vim/gvimのUTF-8化とファイルの文字コード自動認識 - fudist

2010年8月23日月曜日

マウスカーソルを変えてみた。

このエントリーをはてなブックマークに追加

マウスカーソルを変えてみたって何?

マウスポインタの形状に関する私見
上記の記事を読んで初めて気づいたのですが、Operaだけが本文のマウスカーソルがデフォルトのままで、少しびっくりしました。(参考)

このBlogはOpera大好きな変人が運営していますので、早速先の記事を真似てbodyにcursor:default;を記載しました。
Opera以外のブラウザを使っている方は参考リンクの本文と比較してみて下さい。
今回のCSSの修正で、どのブラウザで見てもOperaで見てるっぽい雰囲気が出るようになりました。
もちろん、それで違和感を感じる人は少ないと思います。
(実際、僕は違和感を今まで感じていなかった)

もう少し書かせて

今まで見落としていた箇所でしたが、今後CSSを書く時はマウスカーソルの状態も考えながら書いてみたいと思いました。
でも、文字選択時はI字のカーソルになっちゃうんですよね。
その辺上手く書き直せたら良いなぁと思います。
以上です

2010年8月20日金曜日

javascriptは外部ファイルにした方がいいの?それとも、インラインの方が良いの?

このエントリーをはてなブックマークに追加

事の発端

os0xさんのブログコメントで、javascriptの書き方について、面白いやり取りがありましたので、それについての私見を書きたいと思います。
結論から言いますと、プログラマ的な立場から言わせて頂くと、外部ファイル管理が望ましく、コーダ的な立場から言わせていただくとインラインが望ましいです。
なぜそのような結論に至ったのか、まずは経緯を御覧ください。

コメント欄でのやり取り

os0xさんのブログコメント欄を引用しています

2010年8月19日木曜日

「X分で読めるよ」のブログパーツ作ったよー!

このエントリーをはてなブックマークに追加

サイトの滞在時間を13.8%伸ばすブログパーツです


参考画像


元ネタ
たった一行追加するだけでサイトの滞在時間を13.8%伸ばす方法・・・ - IDEA*IDEA ~ 百式管理人のライフハックブログ
これのリンク先を読んだり、カヤックさんの所のエントリを読んだりして、PHPとかに手を入れなくてもなんとかする方法を考えてみた。
ぶっちゃけ、javascriptで出来るんじゃないかなぁと思って書いてみた

導入の仕方

Bloggerの方は、以下のコードをコピペするだけ

2010年8月18日水曜日

JavaScriptのイベント

このエントリーをはてなブックマークに追加

それはとあるユーザのつぶやきから始まった

Twitterの以下のつぶやきを見て、ちょっと考えてみました。
http://twitter.com/altnight/status/21403130106


@os0x 質問です。Javascriptにおいてイベントの実行順序で詰まることが多いのですが、これを体系的に(あるいは効率的に)学ぶにはどういった方法がいいでしょうか?なにを知るべきでしょうか?


JavaScriptはイベント処理が変態的なので、その癖を掴む必要があります。
ということで、以下に僕なりのイベントに関する考え方をまとめてみました。


イベントとは何か


まず、前提としてイベントとはなんぞやほいという話です。
イベントを日本語訳すると行事とか出来事とかになりますね。
プログラムの世界で言うならば例えばマウスをクリックしたとか、キーボードを押したとか、ページを読込み終わったとかそういう処理のことを「イベント」と呼んでいますね。
大前提なので書くまでもないのですが。

イマドキのイベント関数

JavaScriptを学びはじめて間もない人はどうやったらイベントを「追加」出来るのだろうかと考えますね。

2010年8月14日土曜日

AAテスト

このエントリーをはてなブックマークに追加
            _,,... --‐─- 、.,
         , '´           `' .、
      ,. '"´                ヽ.         /L,
    /                ヽ      '、        / /
   /        ,〈     i / !   ',     ヽ、    //
   ,'     |  ,! ト、  | />‐くハ  ,|      `ヽ. ´
   !    ,ハ __八| \|'´ i´ ハ〉! /'ト-‐ァ     / ',
   ',  i   .|./ ,!-、     ゝ-゚' レ'| .ハン\ /   !     ;'´i ,.-、   一回だけおことわりするわ
   )八   !.イ !,ハ      ⊂⊃/´    !/    / (`ヽ. ./ .レ' /!   ああ妬ましい妬ましい
   '´   \,ハ  ゝ'  '       ハ __/   /  _.〉 i/  / .//
     / /ー-!⊃   ‐ ´     ∨ `Y:::`X>ー-ァ'´      ' /
     !/   ト 、           ,ハ //:::;「  rハ、__r‐-、_,.イ、
     ,'   ,ハ  |`7ァ=rァ'i´-‐'  ,./、::::::/   /ゝ-、__   r、__ノ)
     ! /∨\ レ',..イ:::〉、__ノ/::::::>/   !    ` ̄   !
     )'     )/´ |∨::|__/::/::/::/   八         /
           /   |∧/ / !/:へ:::/  /|::::ヽ  、  ノ   ,'
           /    |/    |::::/:/     ト、_,ハ        !
         /´`ァ.、/  ,   ,'::く::::;'     .,' rァ-!       !
         >、'::::/  /.!  /:::::::>i     / ∧. ヘ.      /
      ,r/  `く.__/-|_/|:::/:/    /.// ヽ、.,_  __/
     / ゝ、.,_,..ヘ 八::::|:::K::/   _/´ 〈      ̄
                    r'=======ヽ
                  _|l| __  ___ |::|
.            {、   ,  ´:.:.:.:|l|:.:.:.:.Y:.:.:.:.:.:. ̄ ヽ
            >`'´:.:.:.:.:.:.:.ミ|l|:.:.:.:.人:.:.:.:.:.:.:.:.:.:.:.:.ヽ
.          /ソ:.:.:.:.:.:.:.:.:、:.:.:.:|l|>、彡ハ:.:.:.:.:.:.:.:.:.:.:.:.:.ヽ         お断りですよマスター
        /´ /:.:.:.i:.:.:.:.:.:.:lヽ、:.゛=====ヘ:.:.:.:.:.:.:.:.\:..ヽ
        《 .r'/:.:.:.:..{:.:.:.:.:.:´{⌒ヽ:.:.:.:.:ヽ::::〃´\:.:.:.:.:.:.:.:.\:.ヽ
        V {:.:.:.:.:.:ハ:.:.:.:.:.:.', , ≧:.:.:.:.:.V::::::::::::::>、:.:.:.:.:.:.:.:.:.\:ヽ
      , -‐-、{:.:.:.:.:.:.lヘ:.:.:.:.:.l〃斥心ア:.:l:::::::::::::/  ヽ:.:.:.:.:.:.:.:.:.ー-` 、
     r'/ `ヽ:.V:.:.:.:.l  ヽ:.:.:.i 弋zソ i:.:.l_,_ノ    \:.:.:.:.:.:.:.:.:.:.:.:.:.:
     f':::::::::::::::ハ个、:.:.圷心ヽj     i:.:.l=-'/       ヽ:.:.:.:.:.:.:.:.:.:.:.:
    /::::::::::::::::::::V八ヽ:.弋ソ ,     i:.:/:.:く        ヽ:.:.:.:.:.:.:.:.:.:
    /::::::::::::::::::::::::リ:人:.:.:ゝ   - '  イノf´⌒         V:.:.:.:.:.:.:.:
   /:::::::::::::::::::::::/:.:.:.:.ヽ:.:.:.l≧ =-r イ_ -'´ヽ_          V:.:.:.:.:.:.:.
   /:::::::::::::::::::::/l:.:.:_:.:.:_>'‐-rゥ'´><     イ、          ヽ:.:.:.:.:.:
  /::::::::::::::::::::ノ` ̄ヾ、    }ソ./云ヽ  /イj ` ヽ         ,:.:.:.:.:
  {:::::::::::::::::::´:::::::::::::}:|   rソイ__/ Vソ  l:{    }        .}:.:.:.:.
.  V::::::::::::::::::::::::::::ノノ-‐イ /:':.l      l:〉    ,        l:.:.:.:.
   ` ー‐ ´ ̄T ̄´.γ´ /:.:.:.:./  ≡≡ .l:}/   ,'        j:.:.:.:.:
.         l:.:.:.:.:八 /:.:.:.:.:.{       リ   ,        ノ:.:.:.:.:
.         i:.:.:.:.:.:.:ゝ{:.:.:.:.:.:.l、    ノ /f`== 'ノ       /:.:.:.:.:.:.
.         |:.:.:.:.:.:.:.} l:.:.:.:.:.:.l ` ̄ ´ / }:::::::::::|       /:.:.:.:.:.:.:.
.         l:.:.:.:.:.:.:.i |:.:.:.:.:.:.:l     /  j::::::::::::l     /:.:.:.:.:.:.:.:.:
.         j:.:.:.:.:.:.:i L_:.:.:.:.:.l _,  〉 .{:::::::::::::}   /:.:.:.:.:.:.:.:.:.:.:.:
出典:嫁宣言して50分以内に嫁AAにお断りされなければ結婚です

2010年8月9日月曜日

Favstar.fm用のUserScriptを書きました。

このエントリーをはてなブックマークに追加

今日、favstar.fmを見てみたんだけど

なかなかいい感じ。
クローリング速度が十分速い。
でも、不満点が無いわけではない。
それは、ふぁぼったー風の文字表示。
あの色表現が絶妙なんだよね、ふぁぼったーって。

favstar.fm用のぐりもん見つけた

Colorful Favstar.fm for Greasemonkey
http://userscripts.org/scripts/show/82891
Firefoxユーザだとコレで良いよね。
でも、Operaユーザ的にちょいこれだと不満。
後、フォント小さすぎる。
favstar.fmと若干デザインが合わない。

ということでコード書いた。

保存して使ってください。
恐らく、.user.jsよりも.jsで保存する方がOperaユーザは幸せになれるとおもう。
(僕はcolorful_favstar.fm.jsって名前にした)

2010年8月6日金曜日

IE9 PP4がやって来た!

このエントリーをはてなブックマークに追加

IE死ねの定義を変えたいと思います

僕のTwitterを眺めたことがある人は、仕事中に8割くらいの確率で「IE死ね!」と叫んでいる姿を見たことがあると思います。
あの罵倒は大抵、IEに対して無差別に行っていました。
しかし、この度IEBlogの記事を見てIE死ねの範囲を変えたいと思うに至り、このブログエントリを書きたいと思います。
IE死ねが適用されるのは、IE8以下まで!

IE9 PP4の実力

IEが駄目駄目を晒すのに適したベンチマークと言えば、Acid3でしょう。

見てくれこのスコア、どう思う?
凄く……モダンブラウザです……。

2010年8月3日火曜日

僕の最近のHTMLの書き方のまとめ

このエントリーをはてなブックマークに追加

最初に

「の」が連続するって頭悪そうに見えて良いですよね。

HTML5について

HTMLを書く時、色々考える事が多いです。
HTML5で統一して書ければ良いんですが、お客様の要求次第ではそれでは不十分であることが多々あります。
個人的には一番操作(?)しやすいHTML4.01 Strictが好きなのですが、XHTML 1.0 TransitionalやHTML4 Transitionalを愛する方々もいらっしゃいます。
一時期は僕もXHTMLで頑張って書いていた事もありますが、やっぱりシンプルなのが一番良いなぁ。みたいな。
HTML5は非常にシンプルなので、とても好きです。

2010年7月31日土曜日

難しい日本語

このエントリーをはてなブックマークに追加
日本語という言語は実にシンプルな言語であるが、同時にとても複雑で煩雑なルールで溢れている。
そのため、外国人からすると日本語は非常に「難しい」言葉になっている。

例えば、カタカナ。
外来語をカタカナ表記するという謎ルールを僕らは自然に受け止めているが、外国人からすると意味不明な言葉らしい。
音が違う、文字が違う、さらには意味まで違うなんてのはザラだろう。
なので、彼らは非常に混乱する。

例えば、助数詞。
この複雑さは日本人ですら理解出来ないほどであろう。
例えば、田んぼの数え方を知っている人は少ない。
田んぼは1枚とか1面と数える。
例えば、羊羹。
1棹、1本、1切れなどと複数の呼び方がある。
なんて複雑なのだろう。

そういう事を気にしだすと、(一応)日本人である僕が、まともな日本語を話そうと思っても話せなくなる時がある。
あれ、自分のこの言葉、正しい日本語なのかな、正式名称で言ってるかな。
そもそも、この数え方合ってるのかな。
そんな事が一瞬でも脳裏をよぎるともう駄目だ。
しどろもどろになって次に何を語るべきかを忘れてしまう。

日本語ってとても難しい(むつかしい)。

2010年7月30日金曜日

プログラマ35歳限界説について

このエントリーをはてなブックマークに追加

なぜ、35歳が限界なのか


プログラマ35歳定年説の方が正しいかもしれませんが、敢えて限界説としてみます。
深い意味はありません。

さて、幾つかのエントリに書かれていますように、35歳で限界を迎える、又は定年とされている職業、それがプログラマです。
曰く、体力が付いていかない。曰く、新しい知識を吸収できない。
故に、35歳が限界である。

これ、プログラマに限った話ではないですよね。

「職人」の世界は、一部の人を除いて、35歳くらいが限界だと思うんです。
体力、知力、経験、そして意欲。
これらがバランス良く保たれているのが35歳ぐらいで、後は体力がゆっくりと落ていく。
平均寿命から適当に類推するに、この辺が人生の折り返し地点であり、ピークになると僕は思います。
(人間の年齢と能力が正規分布に準ずるとして)


僕が見てきた現実


2010年7月28日水曜日

JSONPでの最速ローディング模索

このエントリーをはてなブックマークに追加
ひとつ前のエントリが嘘ばっかりだったので、再度書き直しです。
今回、JSONPでの最速ローディングを模索して、こんなコードを書いていました。

function retが条件分岐している所。
あくまでも、JSONPのcallbackが走ってからという考え方なので、真の最速には程遠いと思います。


  • operaはscriptのcallbackが走る段階では、まだDOM構築が終わっていない。

  • Firefox,Google Chrome,SafariはDOM構築が終わっている

  • IEはsetTimeoutの10msでほぼ確実に実行出来る(1msだと失敗するケースがある)



今まではDOMContentLoadedっぽいのを確認してから走らせていたけれども、それより先にJSONPリクエストを投げる形にしたかった。
IEの所、もしかしたらdoScroll判定した方が良いかもしれない。
色々悩ましい……。

==チラシの裏==
jsdoitに書いた最速のローディングからの発展です。
今までの自分の認識
・windowのloadイベントに割り当てときゃとりあえずおk
現在の自分の認識
・windowのloadイベントって全部読込み終わるまで待つのかよアホか。
・DOMContentLoadedで最速だべさ
・ん、でも考えてみたら、scriptタグ内での関数が最速だよね
・headのscriptタグ内で動的生成したらもうちょい早く読み込めるんじゃないの?
・callbackの時点でDOM出来てるよねー?
・Operaたんorz そして、IEめ……。
・ひとまず、Firefox、Safari、Chromeはこれが一番速い予感!!←チェックしろよ
・OperaたんはやっぱりDOMContentLoadedに頼るしかない
・IEはまあ、setTimeoutでも十分じゃろ
・正直アイディア切れ
・また今度考えよう
==チラシの裏終わり==

JSONPを適当に実行するためにはてなスターのJSONP使っています。
テストする時は適当なURLに変えてください。お願いますm(_ _)m。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>JSONP Test</title>
<script type="text/javascript">
(function(_d){
var start = [];
var init = function(uniq){
var t = (new Date).getTime();
start.push(t);
var script = _d.createElement('script');
script.src = 'http://s.hatena.ne.jp/blog.json/http://looxu.blogspot.com/?callback=callback'+uniq + '&dummy='+t;
script.type = 'text/javascript';
script.charset = 'UTF-8';
var head = _d.getElementsByTagName('head')[0];
head.appendChild(script);
window["callback"+uniq] = function(obj){ ret(obj,uniq) };
}

function ret(obj,num){

if(0/*@cc_on +1@*/ ){ //IE
setTimeout( function(){ resout(obj.title,num) }, 10 );
}else if( window.opera){ //Opera
document.addEventListener('DOMContentLoaded', function(){ resout(obj.title,num) },false );
}else{ //Firefox,Webkit
resout(obj.title,num);
}
}

function resout(text,i){
var end = (new Date).getTime();
_d.getElementById('time_result').innerHTML += (end - start[i]) + 'ms<br>';

var res = _d.getElementById('result');
res.innerHTML += text;
}

for( var i=0; i<3; i++ ){
init(i);
}

})(document);
</script>
</head>
<body>
<div id="result">Loading...</div>
<div id="time_result"></div>
<br>
<iframe src="http://www.yahoo.co.jp/" frameborder="1"></iframe>
</body>
</html>

2010年7月27日火曜日

JavaScriptの最速実行を行うとき、Opera限定で起きる謎現象。

このエントリーをはてなブックマークに追加
15:28追記
このコード全部のブラウザで駄目だw
自宅に帰ったら、再度エントリしなおします。



知ってる方が居られたら教えて欲しい。
下記のコードをOpera10.6で実行すると、「done!」が表示されない。

・動かないケース(scriptが取得したいElementより前に書いてるケース)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Load test</title>
<script type="text/javascript">
(function(_d){
var res = _d.getElementById('result');
res.innerHTML = "done!";
})(document);
</script>
</head>
<body>
<div id="result">test</div>
</body>
</html>


ちなみに、こっちだと動く(当たり前だけど)
・動かないケース(scriptが取得したいElementより後ろに書いてるケース)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Load test</title>
</head>
<body>
<div id="result">test</div>
<script type="text/javascript">
(function(_d){
var res = _d.getElementById('result');
res.innerHTML = "done!";
})(document);
</script>
</body>
</html>


ま、素直にdocumentのDOMContentLoadedにaddEventListenerすれば問題解決
エラーコードから考察するに、Operaのscript実行は生HTMLのDOM構築前に実行されてる可能性が高そうな事が分かった。
というよりかは上から順番に読んで、DOMを逐次構築しつつscriptも実行みたいな感じかな。


そこで、仮説を立ててみた。
・documentの中身がscriptタグの位置により変わっているのかもしれない。
そのテスト用コードは下記の通り。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Load test</title>
<script type="text/javascript">
(function(_d){
window.missing_document = _d;
_d.write(_d.getElementById);
_d.write('<br>');
var res = _d.getElementById('result');
_d.write(res);
})(document);
</script>
</head>
<body>
<div id="result">test</div>
<script type="text/javascript">
(function(_d){
var next_missing_document = _d;
var res = _d.getElementById('result');
_d.write(res);
if( window.missing_document !== next_missing_document ){
document.getElementById('result').innerHTML = "diff";
}else{
document.getElementById('result').innerHTML = "same";
}
})(document);
</script>
</body>
</html>


残念ながらsameと出力される。
オブジェクト的にはどうやら同じもの扱いみたいだ。
(もしかしたら、比較の仕方が間違っているかもしれないけれど)。

どちらにしろ、このような書き方は滅多にしないし、そもそもOperaの場合、DOMContentLoadedで十分じゃまいか。
結論としましては、OperaではDOMContentLoaded使えという事で。
(その他のブラウザだと、こういう事しなくても良い。あのIEたんですら実行出来るのだっ!)

2010年7月15日木曜日

simple_html_domでFatal error: Allowed memory sizeが出まくった。

このエントリーをはてなブックマークに追加
simple_html_dom.phpを使ってクローリングしたデータを加工してたんだけど、なぜだかメモリ不足になりまくったので調べたら、file_get_htmlで得たデータは解放しない仕様らしい。
んで、FAQに書いてあるように、


$html = file_get_html(...);
// do something...
$html->clear();
unset($html);


と書けば良い事を知った。
結論:ドキュメントはちゃんと読みましょう

2010年6月13日日曜日

SafariでもVimキーバインドを!

このエントリーをはてなブックマークに追加



vimlike-onsafari - Project Hosting on Google Code
http://code.google.com/p/vimlike-onsafari/

こちらのページでVimっぽい動きをさせるSafari拡張を公開しました。
どうぞご自由にお試し下さい。
hjkl+HaHそしてgt、gTでタブ切替。
これで、Safariでも気持ちよくキーボードブラウジングが楽しめます。

キーボードブラウジングに慣れたら、是非Operaを使ってみて下さい!
より快適な空間ナビゲーションを体験出来ますよっ!


(頑張れば空間ナビゲーションも実現出来るかもしれませんが(苦笑))

2010年6月11日金曜日

Safariの証明書作成でハマった。

このエントリーをはてなブックマークに追加
Safari拡張の作り方を参考に取り合えず開発環境を作ろうと思って、証明書発行の所でハマった。

ハマったのはここ(引用)
Windowsの場合「Windows Safari Extension Certificate Assistant」の案内に従って、テキストファイル(http://devimages.apple.com/safari/files/certreq.txt )を保存、cmdで certreq -new certreq.txt newcsr.pem を実行。

cmdで、certreqしたら、Windows様から「んなコマンド知らん」と怒られて困った。
ぐぐったら、Windows Server 2003 SP1 Administration Tools Packをインストールすれば良いらしい。
と言うことで、12Mもあるファイルを落としてインストール。
再起動無しで使えました。
これで、俺的Safari快適環境が作れる!
今夜頑張る(謎

2010年6月1日火曜日

LDRのフィード購読停止を楽にするuserscript書いた

このエントリーをはてなブックマークに追加
名前とか適当。
lキーを押すと購読停止→次のフィードへという動きをします。
既にLDRのキーバインドを変えるコード使っている人はそこに追加する方が良いかもしれませんね。
尚、購読停止はconfirm出てこないのでガンガン削除されます。それは仕様です。
これで気軽に購読停止出来ますね。
そもそもそんなたくさん消したい要望なんて殆ど無いしっ!!
これで3000フィードくらいまでは減ると思う……。


// ==UserScript==
// @name oreoreldr
// @namespace http://looxu.blogspot.com/
// @include http://reader.livedoor.com/*
// @include http://fastladder.com/reader/*
// ==/UserScript==

window.addEventListener("load", function() {
var w = (typeof unsafeWindow == 'undefined') ? window : unsafeWindow;
w.Keybind.add("l", function(){
if( State.now_reading ){
var api = new API("/api/feed/unsubscribe");
callback = Function.empty;
var sid = State.now_reading;
api.post({ subscribe_id:sid},function(res){
message("購読停止しました");
callback(res);
});
Control.read_next_subs();
}
});
},false);

2010年5月24日月曜日

Google Font APIのlinkタグ生成ツールを作りました。

このエントリーをはてなブックマークに追加


Simple Google Font Generotr

なんてこと無いただの俺得ツールです。
これで生成したCSSを適用するだけであっという間にGoogle Font APIで遊ぶことが出来ます。
コピペで楽したい方にオススメ。

動作確認はOpera、Firefox、Safari、Google Chrome、IE8でしています。
IE8だと何故か意味不明なメッセージが出ますのでその他のモダンブラウザを使用することをオススメ致します。
jQuery使ってごにょったりOperaだけ特殊処理してたりと謎のコードになっていますが、誰かの勉強になるのでは無いかなぁと思い、恥さらしも込めて公開です。
色々指摘していただけるとありがたいです。

・複数対応版が欲しい
・フォントサイズ変更したい
・イタリックにしたい
・太字にしたい

等色々アイディアが出ると思いますが、ソースをコピペって適当にちょちょいのちょいと変更すれば出来ると思いますので、適当にやってみてください。

以上です。

2010年5月17日月曜日

夜フクロウの件(完全作者擁護意見)

このエントリーをはてなブックマークに追加
夜フクロウのやりとりを見て、色々と言いたいことがあったけど、大体このことは他の人が書いてくれたので少しだけ胸がすっきりした。

とは言え、先人の繰り返しになるけれども僕の意見も書きなぐっておこう
まとめると、以下の三点になる

・機能削除を、作者の横暴だという意見は流石にイラッとする
・自分だけの狭い世界で全世界を語るな
・作れる、作れない事による差別を「自分」でするな

そりゃまぁ、急に愛用していた機能が無くなったら(´・ω・` )ってするけれども、自分が作っている訳ではないのでそれは受け入れるしかないと思うんですね。
それを受け入れないのは傲慢としか言いようが無い。
学習コスト云々書いている人がいたけれども、問題はそこじゃないと思う。
利用者の権威だとか書いている人がいたけれども、問題はそこじゃないと思う。

その質はとか価値は別にして、意見を言うのは誰でもできるし、批評だって誰にでも出来る。
自然な思考として、質や価値が高い意見、批評ならば、誰もが聞きたいと思う。
けれども、それが高いかどうかを判断するのは意見、批評を聞いた本人になる。
そして、今回のケースは本人=作者であり、彼は今回の意見を、質も価値も低いと判断した。

僕の彼の意見に対する評価は、作者の評価と同じだ。
オブラートに包んで言うならば、実に嘆かわしい思考パターンですね、だろうか。


例えばの話ですが。

もし、自分にコーディング能力があり、尚且つ自分が使いたいソフトをさくっと作って、うひょーこれ便利だなぁ、よーし、パパ折角だからこれ公開しちゃうぞーみたいなノリで適当に公開したらなんか気づいたらいろんな人が使っててそのソフトに対してごちゃごちゃ言うようになり本来は俺専用ソフトだったのがいつの間にか「公共」のソフトになっててめーが作ったかもしれんが世界に公開した時点で「俺ら」のものになったんだからお前の意見よりも「俺たち」の意見を尊重しやがれくそやろうなどと言われたら、どう思いますか。

別にソフトじゃなくてもいいと思うんですね。
ソフトをレシピとかに書き換えても良い訳です。

もし、自分に料理の才能があり、尚且つたまたま思いついて作った料理が美味しかったので、うふふ、このレシピ最高ね、よーし、ママ折角だからこのレシピ公開しちゃうわみたいなノリで適当に公開したらなんか気づいたらいろんな人がレシピを試してそのレシピの配分にごちゃごちゃ言うようになり、本来は我が家専用レシピだったのがいつの間にか「公共」のレシピになっててあんたが作ったかもしれないけれども、世界に公開した時点で「あたしたち」のものになったんだから、あんたの意見よりも「あたしたちの」意見を尊重しなさい、このアバズレなどと言われたら、どう思いますか?

これ、酷い話だと思いませんか?

なんか最後全然別の話っぽくなったので面白くなった。
いや、面白がっちゃだめなんだけど。

後、女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。
女性に対する恣意的な気持ちは全くありません。

(...大事なことなので強調しておいた)


理解しやすいようにちょっと言葉を変えただけで、世界の女性がこのような思考パターンを持っているとは到底思えません。

だからこそ、ソフトウェア使用に関する思考も同様であって欲しいなぁと僕は思うワケです。
レシピの話だと滑稽ですよね。
それと同じです。
あと、アバズレとかくそやろうとか行間を読んで埋めたとは言え、汚い言葉は使いたくないですね。
読んで心を乱されてしまった方にはここでお詫び申し上げます。
申し訳ございませんでした。

以上です。

2010年4月30日金曜日

TwitterAPIで取得したcreated_atを普通のDateオブジェクトにする。

このエントリーをはてなブックマークに追加
IE以外は、普通にvar postDate = new Date(node.created_at);で処理出来ます。

問題はIEです。
Twitterのcreated_atをIE様は理解して下さらないので、専用に処理をしてあげる必要があります。

var wc = node.created_at;
wc = wc.split(" ");
var postDate = new Date( [wc[0],",",wc[2],wc[1],wc[5],wc[3],wc[4]].join(" ") );

これで行けます。

ちなみに、search系のAPIは特殊処理が施されてるのか、IEでも普通にnew Date(node.created_at)で処理出来る。
謎すぎる……。

2010年4月24日土曜日

備忘録的な何か

このエントリーをはてなブックマークに追加
IE8がHTML5で対応したタグを認識してくれないのをむりくり対応させる方法。
headタグの中に以下のコードをコピペする。
今回はテンプレートを作成したので、headのテンプレートファイルに書き込んだ。


<!--[if lte IE 8]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->


このコードを追加するだけで、HTML5がIE8で綺麗に表示された時、ちょっと感動した。
だが、IE7とかIE6では未確認。
端からサポートする気はありませんけれどね。

2010年4月16日金曜日

「Opera信者」にその素晴らしさを熱く語られたときの平和で適当なかわし方

このエントリーをはてなブックマークに追加




Operaブラウザほど、はまっている人と興味がない人との温度差が激しいツールはないと言えるでしょう。

「おぺらー」というスラングでも有名ですが、はまっている人の中には、「Operaブラウザの素晴らしさをもっと広く伝えなければ!」という使命感を抱いて、ことあるごとに啓蒙活動に励もうとする“信者”が少なくありません。

その博愛の気持ちは尊いといえば尊いのですが、勧められる側がさほどOperaに興味がない場合は、どう対処していいのか困ります。今日も全国各地で、Opera信者の熱い勧誘を受けて、勧められる側が苦笑いを浮かべているという構図が繰り広げられていることでしょう。

Operaブラウザを持っていない側のあなたが、そういう災難にあったときはどう対処すればいいのか。信者の勧誘に対する平和で適当なかわし方を考えてみましょう。

「てっちゃん」を否定するのは危険


程度の差こそあれ、Operaブラウザを熱く勧めたがる信者のみなさんは、「Opera社と元CEOのTetzchner氏によってもたらされる新たな可能性」を信じ、そんなOperaブラウザを人より早く使いこなせていることに、ちょっぴり優越感を抱いていると言えるでしょう。どう見ても熱が入りすぎている人の中には、Operaブラウザに過大な望みを託して、いまいち不本意な現状から社会を大変革してくれる救世主のように見ているように思えるケースもあります。

いや、あくまで極端な例をあげているだけなので、「俺は違う!」とムキにならないでください。もちろん、私の周囲のOpera好きのみなさんに対して、私がそういう目を向けているわけでもありません。

今後の人間関係を考慮した言い訳で話がそれましたが、Operaブラウザを熱く勧めてくる人にとって、Operaにはまっていることが誇りであることは確か。何はさておき、そこを見逃さないようにしましょう。

たとえば、最近Weekly Build版Operaにはまっている同僚に、「お前も使ったほうがいいよ」と熱心に勧められたとします。素晴らしさを説かれても、いまいちピンと来ないからといって、

「うーん、よくわかんないなあ。みんなが高速だけど不安定ってだけで絶賛しあってるなんて、なんか気持ち悪い世界のようにも思えるけど」

「その直感的な操作?っていうのができても、未だにアドオンないし、ActiveX機能もないし、対応ページもしょぼいんでしょ。なんか不便だよね」

などと、偉大なる「Tetzchner様」が決めた仕様を否定する言い方をしてしまうのは危険すぎます。

ムキになってさらに熱く語ってくるぐらいならまだしも、「ハァ~」と深いため息をつきながら、救いがたい愚か者を見るような目を向けてくるかもしれません。

まあ、わかり合えなくてもべつにいいといえばいいんですけど、お互い、相手に悪い感情を抱くきっかけになるのは避けたいところです。向こうだって、今の時期たまたまOpera Miniの承認があってテンションが高かっただけかもしれず、けっして悪気があるわけじゃないし、人間として致命的な何かを失ってしまっているとまでは言い切れません。

一生懸命にOperaの魅力を語ってくれたら、たとえピンと来なくても、

「なるほど、そういうふうにMicro Softの製品とまったく設計思想が違うっていうのも、ユニークな作りだね」

と、独自性に衝撃を受けたかのような反応をしておくのが、大人の包容力であり相手をそれなりに満足させるマナーです。

そういうふうに言えば喜ぶのはわかっていても、まるでその相手までホメるみたいで抵抗がある場合は、質問に逃げましょう。

「GoogleのChromeとかとはどう違うの?」

と、ライバルの名前を持ち出してきて、Operaの優位性をさらに語らせるもよし、

「なんかネットに書くたびに、いちいち『Opera最強伝説!』って言わなきゃいけないんでしょ?」

そんな歪んだ先入観丸出しの誤解をわざとぶつけて、ひとしきり説明させるもよし。

いずれにせよ、どうでもいいと思っている気持ちを覆い隠したまま、相手にそれなりの満足を覚えてもらうことができます。

はまりっぷりを批判するのはもっと危険


まったくOperaブラウザに興味がないわけではなく、前にちょっと試しに触らせてもらったけど、操作方法がよくわからなくて困ってしまうケースも、けっこう多そうです。

そういう状態にあるあなたに、はまっている同僚が例によって軽い口調で、

「簡単なアプリですから、まあ直感的に操作してみてくださいよ」

(明らかに直感的に操作できてない自分。)

「プークスクス。おっと、失礼。ちょ~~っとだけ難しかったですかねぇ?」

とOpera教、じゃなかった、革新的ブラウザ界における定番の「そんなことも即座に理解できないの?」的フレーズを発してきたとします。「ええ、普段使ってるのと操作形態がかなり違うんで……」と適当に納得したふりをして怒りを抑えるのはいいとして、つい勢いで、

「革新的(笑)で画期的(笑)で魔法のような(笑)信じられないデバイス(笑)はオレには何の迷いもなく(笑)使うことはできないようですね(笑)まあオレはデフォルトブラウザ(笑)使いなのでアーティスティックでクリエイティビティあふれる人間じゃないですし^^」

などと全力で冷やかしてしまわないように気をつけましょう。はまっている人は、誇らしさの裏側に、多くは無自覚にですけど、

「自信がなくて偉大なるTetzchner氏の幻影にすがっているだけのように見えるんじゃないか」

「友達のいない寂しさをOperaネットワークで紛らわそうとしているように見えるんじゃないか」

といった不安を抱えています。何気ない皮肉が引き金になって、心の奥の地雷を踏んでしまいかねません。

そこまでややこしい話じゃなくても、はまりっぷりを感心するセリフの裏側に、

「よっぽどネット中毒なんだな」

「革新的な割にお前の生産性まったく上がってなくね?」

という本音の気配を勝手に察知してしまいがち。

なんせ日頃から感性を阻害しない道具を使っているだけに、相手の心の動きに対してもきっと敏感です。仮にカケラも思っていなかったとしても(カケラも思っていないケースは稀ですが)、相手はそう受け取るでしょう。

はまりっぷりに対しては、てきとうに、

「凄いなぁ。オレもちょっと欲しくなってきた」

とうらやましがっておくのが無難であり、相手に対する大人のやさしさ。単なるおためごかしではなく、そのセリフを聞いたときの相手の満足そうな表情を見ることで、大人としての深い喜びも味わえるでしょう。

Operaをきっかけに相手と仲良くなる方法


仮に、Operaの話題をきっかけに相手との距離を縮めたいなら、その場の口先だけではなく、次に顔を合わせたときに、

「あれから、Opera MiniとかOpera 10.50 Betaとか、自宅で気が済むまで触ってみたよ」

と具体的な実績を話せばバッチリです。

熱く勧めてきた相手が、上司だったり仲良くなりたい異性だったりした場合は、とりあえず勧められたとおりに触ってみて、Operaブラウザの魔力に魅せられたフリをしましょう。

「ちょっと慣れると本当に直感的ですねー。英語なまりで『ウァオ!ヤバい!革新的!!クレイジー!!スグレ技!!!』とつい口走ってしまいましたよ」

とまでリップサービスしておけば、さらに完璧。相手は信者ですので、絶賛なら少々の違和感は気にしないでしょうし、オチとして「でも『自宅で使えて会社が許可アプリ対象外』だと乗り換えはちょっと」とでも言っておけば、Opera社の責任ではなくなるので角が立たなくて済みます。

具体的な対処法を書いてきましたが、こっちは所詮一個人。Operaが彼らの理想通りに普及しないのはてっちゃんが悪いのではなく、わかってない一般ユーザの問題だということにして批判の矛先を変えておきましょう(ちなみに、不満のアウトソーシング先Twitterアカウントは「ArcCosine」です)。

この記事は、Twitter信者のかわし方の記事についたはてブコメントの「汎用性たけえ」「むしろおぺらー対策が必要」辺りのコメントを見ながら書かせていただきましたので、真には受けないように。そんなことを踏まえつつ、それぞれのニーズや好みに応じてまた主語を変えてお楽しみいただければよろしいかと思います。



次回も、引き続きOperaをテーマにしてみたいと思います。飲み会の席などで、声を掛けて欲しそうにこれ見よがしに新しいOperaブラウザを取り出し始めた場合の対処法や、自分が別のブラウザを使ってるときに不毛な論争に巻き込まれたくない場合の振る舞い方について考えてみましょう。

■今回のマナー
「Opera信者」が抱える誇らしさと不安――その両方を見逃すべからず

元ネタは「Apple信者」にその素晴らしさを熱く語られたときの平和で適当なかわし方 - conflict errorです。

そして、元ネタの元ネタは「ツイッター信者」にその素晴らしさを熱く語られたときの平和で適当なかわし方|石原壮一郎「大人のネットマナー教室」|ダイヤモンド・オンラインです。
お後がよろしいようで。
\e

2010年4月15日木曜日

2010年4月14日水曜日

色変更

このエントリーをはてなブックマークに追加
ブログの色を変更しました。
黒系+赤=Operaですね、分かります。

Opera Show with Twitter Searchを作りました。

このエントリーをはてなブックマークに追加
Opera mini for iPhoneが申請受理されましたね。
それに全く関係ないモノを作りました。
#どういう前振りだよ…。
#iPhoneやiPod touchを持っていない僕には欠片も関係ない話だしね。
#べ、別に悔しくなんかないもん。

Demoはこちらから
http://tunsns.net/operashow/

Operaでアクセスして、F11を押して下さい。
スペースキーで次へ次へと進めます。
終了はEscキーを押して下さい。



元ネタはKurumanさんのこれ。
Opera User Meetup Vol.2 (kuruman.org > Kuruman Memo)

Opera ShowをUniteで共有してTwitterのつぶやきを表示出来れば面白いんじゃない?!みたいなノリだったのですが、僕はTwitterのつぶやきを表示するという事だけに特化したアレゲな思考パターンでついやってしまいました。
今は公開しています。

冗談は兎も角。
構成ファイルは4つです。
・index.html
・operashow.css
・twitter.html
・operashow.js
このうち、operashow.jsの

OperaShow.key = 'opera';

の部分を好きなハッシュに変えればあらゆるパターンを網羅出来ると思います。
かなり適当に作ってあるので、ある程度ブラッシュアップする必要があるかもしれませんが、それは特異な方にお任せ致します。
今度自分が何か発表するときは最低限こいつを使って何かしたいと思います(ぁ
以上です。

2010年4月13日火曜日

Livedoor Clip でAAを快適(?)に見るために変なUserCSSを書いたよ。

このエントリーをはてなブックマークに追加

p.notes:hover, p.user-comment-box:hover {
font-size: 12pt !important;
line-height: 18px !important;
font-family: "Mona", "IPA MONAPGOTHIC", "MS PGothic", "MS Pゴシック", "MS Pゴシック", "MS Pゴシック", sans-serif !important;
}

追記
chalcedony姉さんから、livedoor clipで指摘があり、
p.user-comment-boxを追加しました。
これでどこでもみっくみく!



↑のコードをコピペして使ってね。
何をしてるかというと、コメントにhoverした時、MS Pゴシック表記するようにしただけ。
本当はもう少し良い書き方があるのかもしれないけれどもね。
これでAAをPostし放題だZe!

テスト用ミクさん俺の嫁AA
               _ ,.、
            _,. -┴ミハ
      , -「|、, '´ .  -‐' ¨ヽ
        l : :|:| : :/'´ : : : : ', : `ヽ
.      | : :|」.:〃 : : : : ,ハ: :|ヽ.: : :',
.      | : : ',、|l : : : : / l:/ィf|: :l, :|
.      | :| : :',ヾ: : : ,佗) ' `从ハ|              __
.       川 :|:. ':.,ゝl/{゙{`、_‐'ノ、: : |          /    `ヽ
     /ノ丿:| ∨   ドー-ゞニ才 : |  ,. .:个 、   />、     ',
.   /. :/.: 八:| 、 __|::::::::::::::::: ハ: |/.:::::::ヤニゞニ⊃]        |
   /. :/.: : / : :/'´〈::::::::::::::::::::/ニ_V.::::::::::::::::', } ヽン        ,
.  /. :/.: : / : :/   、:::::::::::::/ヽ :::ヽ:::::::::::::::::∨  \     ,. ′
 /. :/.: : : : : /  ,. -,`ー‐'′:::)::::,!,、'´ ̄ ̄       ` ¨¨¨´
 : : : :/.: : : /,. <´丶./.::::::::::::::/.:::/¨}_\

2010年4月6日火曜日

人間VSコンピュータ この世紀の決戦を楽しむために 補完

このエントリーをはてなブックマークに追加
まず人間VSコンピューター この世紀の決戦を楽しむためにを一読下さい。
良いエントリです。
歴史を振り返るのに必要十分な内容が含まれています。

ただ、これだとちょっと省略されてる歴史があるのでそれを書きたいと思います
それは、アマチュアvsコンピュータの歴史です。

アマチュアvsコンピュータの歴史


知らない人が多いと思いますが、コンピュータ将棋はアマチュアとの対戦を何度か行っています。
その中でも特に、世界コンピュータ将棋選手権でのエキシビジョンマッチは(ファンの間では)有名です。

2008年には、アマチュア側がコンピュータに完敗するという結果になり、(ファンの間で)話題騒然となりました。
(参考)10倍楽しむ!WCSC2008
http://homepage1.nifty.com/ta_ito/CS2008/WCSC08.html

そして、昨年は一勝一敗の引き分けという形になりました。
(参考)『コンピュータ将棋の最前線』中継ページ
http://minerva.cs.uec.ac.jp/~event/shogi/20091107/
しかし、コンピュータ側はバグで指し手を返せず負けという結果に終わり、実質的にはアマチュア側に二連勝したと言っても過言では無いでしょう。


さらに、最近行われたコンピュータ将棋オープン戦では今泉健司さんがコンピュータ相手に二敗するという事態になりました。
知ってる人は知っていますが、今泉健司さんは元奨励会員で年齢制限による退会を余儀なくされた後、編入試験(瀬川先生が有名ですね)に合格し、再度挑戦するものの、勝数が足りず再び退会するという遍歴を持たれる方です。
(参考)今泉健司 - Wikipedia
http://ja.wikipedia.org/wiki/%25E4%25BB%258A%25E6%25B3%2589%25E5%2581%25A5%25E5%258F%25B8

奨励会というのはプロ一歩手前です。
その奨励会に挑戦した人を下したというのは快挙と言えるでしょう。
他にも清水上徹さんや加藤幸男さん等プロに勝ったことがあるトップアマをコンピュータが下してる事を考えますと、実力的には奨励会三段レベルには到達していると考えても良さそうです。
それほど今のコンピュータ将棋は強くなっているのですね。

コンピュータが人間に勝ったと言えるには


将棋は序盤、中盤、終盤の三つの局面に分けることが出来ます。
コンピュータが強くなったのは中盤、そして終盤です。
しかし、序盤に関してはプロの棋譜がどうしても必要です。

仮に、今までプロが全く指して無い序盤や戦法をコンピュータが自らの力で生み出し、そしてプロに勝った時、その時初めてコンピュータが人間に勝利したと言っても良いのでは無いでしょうか。
つまり、まだまだ人間側ではやるべき事がたくさんあるのです。

まとめ


コンピュータ将棋は確かに強くなりました。
序盤も大量のデータにより隙が無くなりました。
このタイミングで人間側に挑戦するのも良い判断だと思います。

しかし、それまでの積み重ねには日々の研鑽とアマチュアの協力があったからこその今がある事を知って欲しかったのです
一ファンとしての補完情報でした。
以上です

2010年3月27日土曜日

Twitterで時間を潰せる奴がちょっと信じられない

このエントリーをはてなブックマークに追加
ゲームで時間を潰せる奴がちょっと信じられないの改変ネタです。
色々と無理があります。



Twitterで時間を潰せる奴がちょっと信じられない

けっこうオタク系の趣味は持っているんだが、俺はTwitterを一切やらない。
アメーバなうですら手は出さない。別に自分に禁じているわけじゃなくてやる気にならない。
半年前ぐらいまではちょこちょこやっていたけど今はまぁ絶対ないな。
周りはみんなTwitterをやってるんで(オタクかどうか問わず)それを知られるとけっこう不思議がられる。
むしろ俺はみんながなぜTwitterに時間をかけられるかが謎だ。それほど魅力があるとは思えない。
これから俺がTwitterをやる気にならない理由を書いてみようと思う。
Twitterが好きな人はもしよかったら反論をしてみてくれ。リアルでやるとウザがられるしな。
ちなみに断りが無ければ基本的に携帯のTwitterを想定して書く。

(1)値段が高い(パケット的な意味で)
いきなり貧乏臭い理由で申し訳ないがこれも理由に入る。
従量課金制からパケット定額制に移行することで安くなったとはいえ、
それでも6000円~8000円はしてしまう。これは高い。
映画のレンタルなら一本300円だと仮定して、20本は借りられる。
色んなジャンルを20本楽しめる映画に比べて
Twitterというサービスでこんなにするので何だか損した気分になる。
ただし、別に安くなったとしてもやらないかもしれない。
それは以下の理由があるからだ。

(2)ネタ出しに時間がかかる
おそらく最低でも20時間はかかるだろう。
それだけの一人の時間を確保するのがたいへん。
一日一時間として20日もネタ出しまでかかるし、
一個の『作品』に何十時間もかけるよりも、
必ず二時間以内に終わってくれる映画のほうが安心。

(3)話題を共有できる範囲が狭い
followerが二桁であれば一つのTwitterネタをfollower全員がやっていたりするが、
今はfollower過多でfollowerが多すぎるので、
そのTwitterネタが通じる相手が必然的に狭くなる
何千円も何十時間もかけて話題を共有出来る相手が
あんまりいないのはなんだか寂しい。

(4)実生活へのフィードバックが少ない
TwitterでネタをPostしたって実生活への変化は何にもならない。
ふぁぼを集めるなら電気屋のポイントカードの方がマシだし、
<censord>やるんなら実際に<censord>やっちゃった方がいい。
就職面接で「<censord>に打ち込んでました」って言ってもまったくプラスにならない。
Twitterやってる時間にハウトゥー本読んで<censord>した方がマシ。
Twitterなんて時間をドブに捨ててるようなもんでやるだけ無駄。
こんなもんを「やってて当然」みたいな風潮があるのはほんとに残念。



逆に意味不明で一人でニヤニヤしてたのは公然の秘密。

2010年3月25日木曜日

Pixivで1クリックブクマを実現する

このエントリーをはてなブックマークに追加
Pixiv Starを愛用されてる皆様ありがとうございます。
この度、Pixiv Starをアップデートしてマウス派でも楽しめる仕様に変更しました。

Pixiv Starのインストールはこちらから

参考画像は下記の通り。



ご覧の通り①~③のオブジェクトが表示されるようになります。
(③は前からありましたけど)
機能説明しますと、

①お気に入りに一発登録するボタンです。キーボードでは「o」が対応キーになっています
②作品を一発登録するボタンです。キーボードでは「b」が対応キーになっています
③漫画モードとそうでないモードの表示です。特に気にする必要はありません

となっています。

Firefox3.6+Greasemonkey、Opera10.51で動作確認しています。
ひたすらPixivでブックマークしたい方へお薦めいたします。
それでは、良いPixivライフを。

2010年3月23日火曜日

Ubuntu 9.04のVimでftpluginを有効にする

このエントリーをはてなブックマークに追加
zen-coding.vimを使いたいだけって話です。
ubuntu 9.04ではデフォルトではftpluginが使えません
というか、無効になっています
なので、有効にするために、vimrcに以下を追加します。
filetype plugin on

後は普通に、$home/.vim/ftpluginに必要なファイルを入れるだけ。

元ネタ
9.04 and now vim isn't reading ftplugin/*.vim files on startup

以上です。

どうでもいい!

このエントリーをはてなブックマークに追加


妙な中毒性がある。

2010年3月19日金曜日

setZeroTimeoutをテストしてみた

このエントリーをはてなブックマークに追加
Demo: Using postMessage to do setTimeout with a real zero timeout
↑のsetZeroTimeoutをテストしてみた。
ma.la氏のwait関数を使ってごにょる何か。

もしかしたら、テストにすらなっていない可能性が高い。

こちらのページで試せます。
http://sites.google.com/site/mksdcom/Home/postmessage.html

何をしてるのかと言うと、jQuery.min.jsを読み込んでいるだけ。

標準的なブラウザである、Opera、Firefox、Safari、Google Chromeで動作します。
addEventListenerをサポートしていればどのブラウザでも問題なく動くと思います。
IE?あんなマイナーブラウザの為に労力を割くのは時間の無駄です


お気づきの点がありましたら、Twitterとかコメント欄でお願いいたします。
以上。

2010年3月18日木曜日

radiko.jpで快適ラジオ+ネット生活

このエントリーをはてなブックマークに追加
radiko.jp楽しんでいますか?




僕は楽しんでいます。
元々ラジオ聴くのが好きだったのですが、ラジオを付けるのが面倒という理由で中々つけていなかったのですが、これだったらネットがあれば楽しめるのが◎。
ブックマークをクリックするだけで再生開始されますので素晴らしいの一言に付きます。
エリア内で良かったー。

僕はTOKYO FMをよく聞いているので、以下のアドレスを直接ブックマークしています。
http://radiko.jp/player/player.html#FMT

Operaユーザでしたら、パネルに追加するという方法もありますね!(下図参照)



これで楽しいラジオライフを送れますねー。

早く全国展開されると良いですねー。
以上です。

2010年3月16日火曜日

IE8の互換モード(笑)

このエントリーをはてなブックマークに追加
http://blogs.technet.com/jpieblog/archive/2009/09/09/3280034.aspx

ふむ。なるほど。
docrytpeやmetaタグのX-UA-Compatibleで分割出来るのね・・・。
言いたい事は色々あるけど、一つだけ。

document.querySelectorAllが互換モードでは無効になります(笑)

便利な関数なんだけどなぁ・・・。

2010年3月13日土曜日

IE6 must dieキャンペーンを個人的に始めました。

このエントリーをはてなブックマークに追加
このスクリプトをサイトに挿入するだけのお手軽実装です。

参考コード
<script type="text/javascript" src="suggest_browser.js"></script>


大変丁寧な口調でIE6をディスっています。

お気に入りましたら広めて下さいませませ。

以上です。
(ラベルから分かる通りこれはネタです)

3/14追記
<script type="text/javascript" src="http://sites.google.com/site/mksdcom/Home/suggest_browser.js"></script>

ダウンロードが面倒な方は↑でもいけると思います。
IEにChrome Frameを適用されてる方はこのページでは実験出来ないかもしれません(笑)

2010年3月12日金曜日

Livedoorのログインってなんでhttpなの?

このエントリーをはてなブックマークに追加
折角httpsでログインできるのに、デフォルトがhttpなのでしょんぼり。
しょんぼりするのはプログラマらしくないので、コード書いた。


// ==UserScript==
// @name secure livedoor
// @namespace http://looxu.blogspot.com/
// @description secure livedoor login
// @include http://member.livedoor.com/login*
// @author Arc Cosine
// @version 1.0
// ==/UserScript==
// License : Public Domain
(function(){
window.opera.addEventListener('BeforeScript',function(){
location.href = location.href.replace(/^http:/,'https:');
}, false );
})();


ご覧の通り、Opera限定のUserScript。
UserScripts.orgでも公開しています。


Operaユーザであり、Livedoorユーザであり、尚且つhttpsでログインしたい人以外欠片も嬉しくないスクリプトですが、まあ良いでしょう。


尚、window.operaをwindowにBeforeScriptをloadに変えれば他のブラウザでも動くけど、この程度だったら普通にブックマークレットとかにした方が良いかもね。
以上です。

2010年3月9日火曜日

死にかけました

このエントリーをはてなブックマークに追加
昨日、朝起きた時は特になんともなかったのですが、お昼ぐらいから頭痛が増し、吐き気が襲ってきて、実際吐いてしまいました。
一瞬インフルエンザかと思いましたが、熱はさほど高くなかった(37.6℃)ので、風邪だろうと判断。
ふらふらの状態で病院に行って診てもらった所、案の定風邪でした。
お薬貰ってぼうっとした頭で一日を過ごしましたが、一人暮らしで病気するもんじゃないですね。
吐くほどの状態なったのは本当に数年振りだったので、自分でもショックが大きかったです。
とりあえず、今朝は昨日ほど体調が悪いという訳では無いので適度に頑張りたいと思います。
お薬すごいね。
みなさん、風邪には気を付けましょう。

2010年3月6日土曜日

Operaで1分間60reblogを実現する

このエントリーをはてなブックマークに追加
俺俺rebloglet.user.jsをgithubにコミットしました。
こちらです

Opera10.50で動作確認しています。
元ネタは2009-05-21 - cxxの日記 - たんぶら部 - Tumblove -
http://tumblr.g.hatena.ne.jp/cxx/20090521
ここに公開されていたreblogret.user.jsを改造したものです。
@cxxさんありがとうございます。
本家に習い、本スクリプトもpublic domainにします。
バージョンとかnamespaceとかもう超適当です(ぉぃ

簡単な動作説明です。
まず、ダッシュボードに移動します。
すると自動的にこのスクリプトが実行されますので、後は気に入った画像が出てくるまでスクロールします。
oAutoPagerizeのインストールをお薦めします。

リブログ前


上図の状態で「t」キーを押すとリブログされます。

リブログ後


スクロールダウンは「j」キー、スクロールアップは「k」キーです。
その他の動作は本家を御覧下さい。

適用URLを一部削ってありますので、全般的に試したい方は本家のインストールをお薦め致します。
ちなみに、一部気に入らない(?)ところがあって、J/K等を通常スクロールに設定してる場合、preventDefaultが効いてない箇所があったので、そこに追加してます。
ま、そもそもそんなキーを使ってブラウジングするユーザがアレゲなんですけどね。

Operaの利点は、このようにモバイルで使っていたものをデスクトップへ流用する事が出来るって点だなぁと実感
ま、いや。それは単なる独り言。

それでは、良いtumblr生活を。

追加1分でOperaフォントをさらに綺麗にする

このエントリーをはてなブックマークに追加
dgmatil blog: Build3296がそのまま正式版へ | フォント設定 font
こちらのページに書かれていますが、最終的にはUserCSSを導入すると完璧に綺麗になります。
TwitterとかGmailとかMyYahooとかその辺がばっちり。

↓こちらをコピペして適当な名前をつけて保存。エンコーディングはUTF-8お薦め。ってか、charsetにUTF-8って書いてあるよね?

/* Name: 標準フォントに強制的に固定 */
@charset "utf-8";

/* font-family */

*{ font-family:normal !important }
html[lang="en"] *{ font-family:normal !important; }
html[lang="en-US"] *{ font-family:normal !important; }
address{ font-family:normal !important }
pre, pre *, code, samp, var, tt{ font-family:normal !important }
h1, h1 *, h2, h2 *{ font-family:normal" !important }
h3, h3 *, h4, h4 *, h5, h5 *, h6, h6 *{ font-family:normal !important }

/* font-style */

*{ font-style:normal !important }
h1{ font-style:italic !important }

/* font-weight */

*{ font-weight:normal !important }
h1, h1 *, h2, h2 *, h3, h3 *, h4, h4 *, h5, h5 *, h6, h6 *, dt, dt *, th, b, em, strong, a[target="_blank"]:after{ font-weight:bold !important }



UserCSSはCtrl+F12から「詳細設定」→「コンテンツ」→「スタイルオプション」をクリック
(下図参照)


後はCSSのパスを指定するだけ
(下図参照)


それでは、良いOpera Browsingを
以上です

現役プログラマが語るプログラミングの魅力

このエントリーをはてなブックマークに追加
プログラミングは楽しいものです、本来は。
何故楽しいのか。
それは、自分が想像したものあるいはそれ以上の見たことが無い何かを作り出せる喜びを体験できる。
だから、プログラミングは楽しいのです。

しかし、世の中には楽しくないプログラミングが多いです。
何故か。
理由は幾つかあります

・前に同じようなものを作っている
・クライアントからの無茶ぶりで期限がとてもじゃないけどアレゲ
・(自分的には)分かりやすいドキュメントを相手が受け入れてくれない
・前提条件的に無理


そう、楽しくないプログラミングの理由はここに挙げた以外にもいっぱい上がるでしょう。
じゃあ、楽しいプログラミングとは何か?

それは趣味のプログラミング
自分の思うままに、思う通りに、好き勝手出来る。
それがとても楽しい。
後はほんの少しで良いので共感してくれる友人が入れば、プログラマーと名乗る人はみな幸せになれるでしょう。
実にハードルの高い趣味です。

それでも、止められない。
それが、プログラミングの魅力なんだな。
以上です。

2010年3月4日木曜日

5分でOpera10.50のフォントを綺麗にする方法

このエントリーをはてなブックマークに追加
地球上最速のブラウザOpera10.50を楽しんでいますか?
インストールしたら、フォントが汚すぎて吐きそうになった方への朗報
若干面倒ですが、フォントを綺麗にする方法をご紹介致します。
慣れた人なら2分、不慣れな人でも5分でフォントを綺麗に出来ます。

まず、Ctrl+F12をクリックして、設定画面を出し、「詳細設定」→「フォント」を選択し、「文字別フォント」をクリックします。



CJKの記号と句読点のプロポーショナルフォントを「自動選択」から好きなフォントへ変更します。
Windowsユーザですと、MS Pゴシックとかメイリオとかを選択すると良いかもしれません。
僕は、最近リリースされたIPA Pゴシックを選択しています。
同様に、等幅フォントも「自動選択」から好きなフォントへ変更します。

スクロールが面倒だなぁと思う方も多いと思いますが、フォント選択領域にフォーカスした状態で、「M」とか「I」キーを押すと対象のフォントへジャンプしますので、その機能を活用しましょう。
(Windowsの標準機能だよ!)



日本語(カタカナ)のプロポーショナルフォントと等幅フォントを同様に好きなフォントへ変更します。



日本語(ひらがな)のプロポーショナルフォントと等幅フォントを同様に好きなフォントへ変更します。



日本語(漢字)のプロポーショナルフォントと等幅フォントを同様に好きなフォントへ変更します。



半角形・全角形のプロポーショナルフォントと等幅フォントを同様に好きなフォントへ変更します。



設定のウェブページのフォント部分を変更しても、実は綺麗さには影響がありませんので、ご注意を……。



それでは良いOpera Browsingを。
以上です。

2010年2月24日水曜日

zencoding.vimで、10倍速くHTMLを書く

このエントリーをはてなブックマークに追加
ここ数日、Zen-CodingがLDCに上がってたので興味を持っていたのですが、手を出す事が出来ませんでした。
(環境構築とか面倒くさそうだったのでw)
ところが、mattnさんが、pure vim-scriptでZen-Codingを作成してたので、Vimmerな僕はさっそく導入してみました。

導入方法です。
3ステップで導入出来ます。

1.こちらからzencoding.vimをダウンロードします。
(僕のVim環境(Kaoriya版7.2.261)は若干古かったらしいので、Ver0.21を落としました)
2.vimをインストールしてあるディレクトリ/runtime/pluginにzencoding.vimをコピーする
3._vimrcに以下を追加
let g:user_zen_expandabbr_key = '<c-e>'


これで導入終了。

さあ、HTMLを構築しましょう。

html:5

と入力し、挿入モードのまま<c-e>を押すと……


<!DOCTYPE HTML>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
</head>
<body>

</body>
</html>


はい。一瞬で出ます。
素晴らしい。
あと、例えば


<div id="header"></div>
<div id="content"></div>
<div id="footer"></div>


みたいなコードも


#header+#content+#footer


と入力してから、<c-e>一発で作れるようになります。
これは気持ち良い!!
慣れれば今までの10倍速くHTMLを書けること間違いなしです。
VimユーザでWeb開発な人は是非zencoding.vimの導入をしてみましょう。

以上です

2010年2月23日火曜日

フォントを変えてみました

このエントリーをはてなブックマークに追加
ブログのfont-familyを修正してみました。
読みやすくなりましたか?
それとも読みにくくなりましたか?
文句等はコメント欄or@ArcCosineまでお願いします。

2010年2月15日月曜日

「なんでも好きです」っていう奴ほど偏った趣味だな(プログラム言語Ver)

このエントリーをはてなブックマークに追加
ネタです!!
(元ネタ)「なんでも好きです」っていう奴ほど偏った趣味だな。


「なんでも好きです」っていう奴ほど偏った趣味だな。

「プログラム言語ならなんでも書くんですよ」
「じゃあ例えばどんなのが好き?」
「なんでも好きですよ」
「じゃあこれ書いてみて。Java。 」
「なんですかこれ、結局バイトコード依存じゃないですか。書くに耐えません」
「じゃ あこれ、Perl」
「CPAN依存ですね。技術がないからCPAN使おうって意味が分から無い」
「じゃあこれ、PHP」
「スカスカのコードに素人のサンプルぺたぺたって恥ずかしいと思わない?こんなの書いてる人の気が知りたいです」
「じゃあこれ、 C++ 」
「C++とかもう死に絶えた古いのなんか書きませんよ」
「じゃあこれ。 JavaScript」
「JSとか、典型的な LL ですよね。あんなのプログラムじゃないですよ」

「じゃあどんな の書くの?」
「COBOLとか、Fortranとかですよ」

僕はどんな言語でも好きですよ><

2010年2月14日日曜日

将棋でアマチュア初段になるための五冊+α

このエントリーをはてなブックマークに追加
僕は現在、アマチュア二段~三段くらいの棋力を持っていると思います。
僕が今の棋力を手に入れるまでに読んだ本の中から、読めば初段程度までの実力を身に付けられる本を五冊紹介したいと思います

対象は以下の人をターゲットとします。
・将棋のルールは最低限知っている
・振り飛車党
・将棋倶楽部24で5級の人に勝てない

序盤、中盤、終盤の三つの場面に分けて紹介します。

・序盤
 ・「四間飛車の急所1 進化の謎を解く」(藤井 猛著)
   ・四間飛車党必読本。
   ・急戦、持久戦の両方を網羅しているという点が非常に良い。
   ・四間飛車以外の振り飛車党も持っていて損無し。
   ・将棋における「序盤の形」を覚えるのにぴったり。
   

 ・「最前線物語」(深浦 康市著)
   ・若干内容が古いですが、現代将棋出てくる大まかな戦法の序盤を勉強出来ます。
   ・戦法に関するコレクション的な知識を知るのに良いでしょう。
   ・続編の2もオススメですが、基礎中の基礎として本書を読む必要があると思います。
   


・中盤
 ・「羽生善治の終盤術1 攻めをつなぐ本」(羽生 善治著)
  ・タイトルに終盤術とついていますが、中盤に十分応用出来る手筋がいっぱい出てきます。
  ・次の一手方式なので、実戦と同じ感覚で考えることが出来ます。
  ・相手の陣形のどこが弱点なのか、そしてそこをどのように詰めていくのかを学べます。
   


・終盤
 ・「羽生善治の終盤術3 堅さをくずす本」(羽生 善治著)
  ・この本の特色は代表的な囲いを崩していく方法を解説しています。
  ・実戦譜をベースに解説しているので、終盤はこうやって指すのかという事を学習できます。
  ・初段に至らない人は囲いの崩し方を知らない人が多いので、それを覚えるにもぴったりです。
   

 ・「五手詰めハンドブック」(浦野 真彦著)
  ・やはり詰め将棋は終盤力を鍛えるにの必須です。
  ・五手詰めに限定しているので、読む範囲が短くて良いです。
  ・それでいて角一枚分は強くなれます。
  ・続編の2もお薦めできますが、本書の方が良作が多かったと感じてます。
   

・+α
 ・「島ノート 振り飛車編」(島 朗著)
  ・絶版ですので+α扱いにしています。
  ・振り飛車の変な戦法を網羅的に扱っています。
  ・手に入れられるなら絶対手元に置いておきたい一冊。
   


この五冊を手にいれて棋力アップに役立ててください。
以上です

2010年2月5日金曜日

Moonflower JavaScript Benchmark 1.5.0 alpha 1を試したよ。

このエントリーをはてなブックマークに追加
ヒゲの土管工経由で、Moonflower JavaScript Benchmark 1.5.0 alpha 1の存在を知ったので、ベンチマーク取りました。

条件は下記の通り
・Opera,Chrome,Firefox,IE,Safariを全画面表示で起動
・開いてるタブはそれぞれベンチマーク用ページのみ
・CPU:Ahtlon64 X2 3800+(2.00GHz) Mem:1.96GB OS:Windows XP Pro SP3
・テストは3回実施した平均点

結果
・Totalで見るとGoogle Chrome
・一部のテストではOpera、Safari
・Firefoxもまぁまぁ、早い
・IEは論外

参考画像

結果表

n/aOpera 10.50 build 3218Chrome 4.0.302.3Firefox 3.6IE 8.0.6001.18702Safari 4.0.4(531.21.10)
Simple loop0.67000.670.33
Decimal calculation14.67231.671
RN generation81323.336.33
String process4.334.338.67317
Regex46.6752.33288.6736392
Eval30.6740.33108.33411.3330.67
Date274.3336.67251.33159.6779.33
Document manipulation29.3312.6747.67141.3323.33
Rendering133.67133.67148200.33152.33
Total527.67285.67857.331361.67391.67


Opera最強伝説はまだ始まったばかり!
Opera先生の次回作にご期待下さい!

2010年2月3日水曜日

GumblarウィルスがOperaを標的に

このエントリーをはてなブックマークに追加
GumblarウィルスがOperaを標的に。Operaでマスターパスワードを使ってない人は今すぐ設定すること。 - 言いたい放題 - チーム俺等
http://orera.g.hatena.ne.jp/edvakf/20100203/1265202164

GumblarウイルスがOperaの認証管理を標的にしているそうです。
対策は上記のサイトを参考にどうぞ。
Operaユーザの方の殆どはマスターパスワードを設定してると思いますが、注意喚起を含めてご紹介です。

2010年1月29日金曜日

iPadが売れるための3つの戦略

このエントリーをはてなブックマークに追加
を考えてみた。
妄想とも言う。

1.値段を安くする

現在、最低価格が$499なので、これを上手く誤魔化す。
いわゆる通信インフラとの抱合せで後から回収出来るじぇ、うっはうは~というよくあるパターンを行う。
具体的には、75%offの$125辺りで提供するのが吉か?
(もちろん、75%はインフラ経由で回収)

2.キャリアを増やす

柔らか銀行だけでなく、DoCoMo、e-mobile、Willcomといったインフラと契約する事でより戦略が広がる。
もちろん、willcomは実質DoCoMoの回線を使わざるを得ないだろうけれど、そんなの関係ねぇ。
ちなみに、auが入ってないのは通信手段が違うので絶対無理だから。
au涙目wwww
#僕はauユーザです
#僕はauユーザです
#大事なことなので二回書きました。

3.カラーを増やす

やっぱり、若い子をターゲットとしたいので残り5色は欲しいよね。
そして、七色iPadを売り出すのだっ!!!
あれ、それなんてガラケー?(笑)


結論
iPadはiPhoneほどは売れないよ

お後がよろしいようで。
\e

kauliの広告がとても残念な件

このエントリーをはてなブックマークに追加
popInと提携して表示されるkauliの広告ですが、とても残念な結果が表示されます。
例えば、twitterという単語に対して出てくるのが「多汗症、ワキガ」の広告。
たまにドメインの広告とか出てきますけれども、あんまり嬉しくない。
これ、もう少し種類が増えると良いですよね……。

Google Adsenceはやっぱり種類が多いんだなぁと改めて実感した次第でした。
広告ビジネスって難しいね。

2010年1月28日木曜日

BloggerにはてブとLDCを表示するコード

このエントリーをはてなブックマークに追加
俺得Bloggerセッティング
post-header-line-1を変更する

<div class='post-header-line-1' style='margin: 10px auto 1.5em auto;' >
<b:if cond='data:post.url'>
<a class='ldclip-redirect' expr:href='"http://clip.livedoor.com/redirect?link=" + data:post.url + "&title=" + data:post.title + "&ie=euc"' title='この記事をクリップ!'><img alt='この記事をクリップ!' height='16' src='http://parts.blog.livedoor.jp/img/cmn/clip_16_16_b.gif' style='border: none;' width='16'/></a>
<a expr:href='"http://clip.livedoor.com/page/" + data:post.url'><img expr:src='"http://image.clip.livedoor.com/counter/small/"+ data:post.url' style='border: none;' title='ldc' alt='ldc' /></a>
<a expr:href='"http://b.hatena.ne.jp/append?" + data:post.url'> <img align='absmiddle' alt='このエントリーをブックマークに追加' height='12' src='http://b.hatena.ne.jp/images/append.gif' style='border: none;' title='このエントリーをブックマークに追加' width='16'/></a>
<a expr:href='"http://b.hatena.ne.jp/entry/" + data:post.url'><img expr:src='"http://b.hatena.ne.jp/entry/image/" + data:post.url' style='border: none;' title='hateb' alt='hateb' /></a>
</b:if>
</div>

2010年1月23日土曜日

ただの戯言ですよ

このエントリーをはてなブックマークに追加
小飼弾「働かざるもの、飢えるべからず。」を読んで - phaのニート日記

LDCに上がってたのでなんとなく読んで思いついたので駄文をば。

ここのコメント欄のやり取りを見てると実に不毛な言い合いが行われているなぁと感じます。
なぜ不毛なんだろうと考えたのですが、結局の所、そもそも価値観が違う人同士が意見をぶつけてるのが原因だという事に気づきました。
そして、ここが一番問題かと思われるのですが、その「価値観が違う」事を理解できずに、「俺の考えが一番正しいんだからお前はそれを受け入れろバカ」となっているので、いつまで経っても言い合いが終わらない状態になっています。
これって何かに似てませんか?
そうです、戦争ネタですね。
戦争は、この辺の自分勝手な考えがベースになる事があるよね。

お前の考えは間違ってる。俺の考えが正しい。だからお前のその考えを直せ

この考え方どうですか?
別に誰でもふとそういうふうに思ってしまう事ありますよね。
僕だってあります。
でも、そういった考えの押し付けってのは良くないのはわかりますよね。
じゃあ、どうすれば良いのか。
僕は以下のプロセスで対応します。

1.相手の考えを許容する。
 簡単に言えば、「なるほど、そういう考え方もあるのか。僕は受け入れられないが、考え方は理解する」
2.自分の考えを伝えて、相手の考えをさらに引き出してみる。
 「僕はその事についてはこう思うんだけど、君はこの考え方をどう思う?」
3.最後に、相手に決定権を委ねる
 「今、君は二つの考え方を知ってる。どっちを受け入れるかは君が選んでくれ」

結局、思想については相手に委ねるしかないんですよね。
それを他人が無理矢理押し付けるのは良くない。
ただ、教えないのは不親切なので、ある程度は伝える必要がある。

最も、伝える手段は複数ある訳だけど、ブログのコメント欄に殴り書きするよりかは、自分のブログにこうやってグダグダ書く方が僕としては建設的だと思うんだな。
他にもメールやチャット、最近ではTwitterやSkype等を経由して連絡を送る方法があるでしょう。
やり方は自分で選んでください。

でも、その前に、相手の考えを許容しなきゃダメ。
頭ごなしに否定するのはバカのやる事。
自分の今まで貯めてきた知識で明らかに間違った事だと思っても、足を止めて自分でじっくり考えて、心の底から本当にそれが間違った考えなのかどうか考えた方が良い。
考えずに間違ってるという結論を出すのは、機械にでもやらせとけば良い。
人間なんだから、あらゆる思考があるのは当たり前。
それを許容出来ないのはとても寂しい事だと僕は思う。


ただ、許容しても、自分もその考えに同調するという訳ではない。
僕の父親の名言を最後にここに書きたいと思う。

僕は、あなたの考えは理解しています。ですが、納得しません。しかし、あなたの選択なので、それを認めましょう

この台詞を言った時の父親はめちゃくちゃカッコ良かった。
僕も納得はしなくても認められる人になりたい。
認められるケースがすべてでは無いが、認める幅を広げてみたい。
以上、戯言でした。

2010年1月12日火曜日

OAuth使うと規制限界値が上がる

このエントリーをはてなブックマークに追加
TwitterのAPIは1時間に150回までしかリクエストできない仕様ですが、OAuth経由の場合、1時間450回までリクエスト出来るようになります。
ただ、公式のURLではなく、
http://api.twitter.com/1/APIリクエスト
という形式でリクエストする必要があります。
自分用メモ。

2010年1月3日日曜日

Sinatra+OAuthで遊んでました

このエントリーをはてなブックマークに追加
正月なので、久々に趣味のプログラミングをということで、以前から気になってたSinatraを触ってみました。
いくつかコードを書いて感じたのは、なかなからくちんだなぁという事。
やっぱり、cgiベースで自分でゴリゴリ書くより、他人が書いたコードを再利用する方が効率が良いですね。

あと、ruby1.9は速い!
純粋にその速さにビックリです。
今まで1.8にしてたのが勿体無い><
1.9ですと文字列の扱いが1.8と異なっているので、若干注意が必要ですが、それ以外は無問題。
Yes,it's cool.
ってことで自宅鯖のrubyを1.9にアップデートしました。
今年もrubyでゴリゴリ書いて遊びたいなぁ。

2010年1月1日金曜日

天才の壁

このエントリーをはてなブックマークに追加
世の中に存在する人間を以下の三種類に分けるとしよう。
・頭の良い人
・普通の人
・頭の悪い人
上から順に10%、80%、10%の割合で存在すると定義する。
頭の良い人はさらに三種類に分けることができる。
・天才
・秀才
・どちらでも無い
どちらでも無くて頭が良いと言われる人は居る。
これは、先の定義で10%存在すると定義した為に発生する仕方のない分野である。

簡単に言えば、天才と秀才が一般的に「頭が良い」と見なされる人たちだと僕は考える。
それ以外の頭の良い人は普通の人よりほんの少し優秀な人であると考える。
本日のタイトルである天才の壁であるが、仮に天才+秀才が頭の良い人の50%を占めているとしよう。
さて、貴方は、その内天才は何パーセントを占めていると考えるだろうか。



僕の考えでは、その内に0.1%も居れば良いと考えている。
天才は、それほど少ないというのが僕の考えだ。
秀才はそれこそ、腐るほど居る。
しかし、天才はそうそう居ない。そうそう居ないから天才なのだが。

ぶっちゃけ、10億人に1人。これが僕の中での天才の定義だ。

従って、全世界には6人ないし7人が天才であり、後はすべからく秀才であるというのが僕の考えです。
結論としましては、天才になるのは不可能だというどうでも良い結論です。

意味不明駄文サイト『Loox Uと初音ミクで行こう!』、2010年もよろしくお願いします。