2008年9月29日月曜日

Excelは確かに凄いよ

このエントリーをはてなブックマークに追加
ふと、このエントリに反応。

ExcelのSendkeysとか馬鹿だろお前ってくらい無駄に使えるし。
ExcelとODBCドライバでDB通信も出来るし、TCP/IP通信も出来る。
ま、実際にExcelが凄いってかActiveXが凄いだけどね。
出力に関しては若干癖があるものの、HTMLよりかはずっと操作しやすいI/Fだしね。

個人的には、Excelで凄いことやっちゃう人たちが一番凄いと思うんだけどね。
例えばViExcel(WindowsNT/2000/XP/Vista / ビジネス)とか
Vixcel(WindowsNT/2000/XP/Vista / ビジネス)とか。
化け物だよ、この人たち。

相変わらずOpera+Vimperatorな日々ですが

このエントリーをはてなブックマークに追加
Firefox3.0.3にupdateしたんだけど、LDRizeとの相性が悪く、キーが利かなくなった。
何か変な動きしてるなぁと思って調べたら、どうやらldrize_cooperation.jsが悪さをしているらしい
ldrize_cooeration.js削除したらまともに動くようになりました。
基本Operaメインなので、気がつかなかったデスよ。
その辺まだまだ身体が慣れていないというかまだvim中毒じゃないって事だな、うん。
個人的にはやっぱりOperaが一番良いと思う。
そうそう。最近Hキーのホットキー消して見た。
アドレスバーには":"か、Ctrl+Lで行く事にしたから問題なし。
アドレスバー検索も最近ごく当たり前のように使っていてようやくその便利さを実感できるようになった。
Operaが出してくるアイディアは凄いし便利なのは分かるけど、身体が覚えこむまで時間がかかるんだよなぁ。
それが最大の問題点かも。
ああ、でもそこを過ぎるとそれまでの1.5~8倍ぐらいのスピードアップが図れるからたまらないんだよなぁ。
(ちなみに、8倍というのはスピードダイアルの事ね。良く行くページにワンアクションで移動できるってのが便利すぎて死ぬ)
#何故9倍じゃないかはみんなで考えて見ようw

2008年9月26日金曜日

Ajax Chat作った。

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

元ネタはここってかまるまるパクtta(ry
一部の人に公開して動きを試してもらおうと思う。
作成二日という適当っぷり&ほぼコピペw
でも、prototype.js使ってないところに男気を感じるが良いさ!

フロントエンドはHTML+JavaScript+CSS
サーバ側はrubyって所がちょっとこだわっているかな。
あと、エスケープ処理を無駄にしているって所。
DB使っている訳じゃないけど、Web屋の癖として。

ああ、それからアンチIEの僕が作っているからIEお断りという素敵仕様。
IEでアクセスするとnice boat.になります。
なんというツンデレ仕様wwww
うぇwwww


こんな時間帯(午前4時)なので、大分変なテンションになっています。

Rubyソース

#!/usr/local/bin/ruby
require 'cgi'
require 'kconv'

class CHAT
def initialize(log_filename='chat.log')
@cgi = CGI.new
@log = log_filename
@MAX_LOG = 50
@log_buf = []
end

#ログを読む
def read_log
open(@log){|f|
f.each{|l|
@log_buf << l.toutf8
break if @log_buf.size == @MAX_LOG
}
}
end

#ログを書く
def write_log
name = @cgi['name'].toutf8
comment = @cgi['comment'].toutf8
return unless name.size > 0 or comment.size > 0
#escape
name = CGI.escapeHTML(name)
comment = CGI.escapeHTML(comment)

time = Time.now.strftime("%Y/%m/%d-%X")

@log_buf.unshift "<tr><td>#{time}</td><td>[#{name}]</td><td>#{lf2br(comment)}</td></tr>"

open(@log,'w'){|f|
c=0
@log_buf.each{|l|
l.chomp!
f.puts lf2br(l)
c +=1
break if c==@MAX_LOG
}
}
end

#改行対応
def lf2br(str)
#改行記号削除
str.gsub!(/\r\n/,'')
str.gsub!(/\r/,'')
str.gsub!(/\n/,'')

return str
end

#出力
def output_res
print @cgi.header("type"=>"text/html")
puts "<table>"
puts "<tr><th>time</th><th>name</th><th>comment</th></tr>"
@log_buf.each{|l|
puts l
}
puts "</table>"
end
end

log_filename = 'chat.log'
chat = CHAT.new(log_filename)

chat.read_log
chat.write_log
chat.output_res


JavaScriptソース

function $(id){
return document.getElementById(id);
}

function sendServ(){

//copy background
$("name").value = $("in_name").value;
$("comment").value = $("in_comment").value;

var name = $("name").value;
var comment = $("comment").value;
comment = comment.replace(/&/g, "&");

var url="chatserv.rb";
var pars = "?name=" + name + "&comment=" + comment;
if( comment.length >0 ){
url += pars;
}

$("in_comment").value="";
$("comment").value="";

//write cookie
writeCookie();
recvServ( url );
}

function recvServ( url ){
//ajax!
var xmlhttp = new XMLHttpRequest();

xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function (){
if( xmlhttp.readyState == 4 && xmlhttp.status==200 ){
$("result").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.send("null");

}

function writeCookie(){
var limit = new Date;
limit.setDate(limit.getDate()+30); //有効期限は30日後
document.cookie ="name=" + escape($("name").value) + ";expires=" + limit;
}

function loadCookie(arg){
if( arg ){
var cd = document.cookie + ";";
var st1 = cd.indexOf(arg);
var st2 = cd.indexOf("=", st1);
var en = cd.indexOf(";", st1);
if( st2 < en && st1 > -1){
var ret = cd.substring(st2+1,en);
return unescape(ret);
}
}
return false;
}

function loadChat(){
recvServ("chatserv.rb");
var name = loadCookie("name");
if( name ){
$("in_name").value = name;
$("in_name").className = "inputBlur";
$("in_comment").focus();
}

$("in_name").addEventListener("blur", function(){ $("in_name").className="inputBlur";},
false );
$("in_name").addEventListener("focus", function(){ $("in_name").className="inputFocus";}
, false );

$("test").addEventListener("click", function(){ alert(document.cookie); }, false );
setInterval('recvServ("chatserv.rb")', 10000 );
}

//window.addEventListener("load", loadChat, false );

window.onload = function(){
var isIE = /*@cc_on!@*/false;
if( isIE ){
$("caution").innerHTML="注意! このチャットはIE非対応ですので、IE以外のブラウザでアクセス願います!";
}
loadChat();
}


HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml1
1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>Ajax Chat with Ruby</title>
<script type="text/javascript" src="chat.js"></script>
<link rel="stylesheet" href="chat.css" type="text/css">
</head>
<body>
<h1>Ajax Chat with Ruby</h1>
<div id="caution"></div>
<form method="get" id="form" onsubmit="sendServ();return false;" action="/" >
<p>
<input type="text" id="in_name" value="Name" size="20" />
<input type="text" id="in_comment" value="Write Here" size="64" />
<input type="submit" value="Send" />
<input type="hidden" id="name" value="" />
<input type="hidden" id="comment" value="" />
<input type="button" id="test" value="Test" />
<a href="http://zigsow.jp/">Return to Zigsow</a>
</p>
</form>
<hr />
<div id="result"></div>
<p id="imessage">I like Public Domain.</p>
</body>
</html>


CSS

body{
background-color : #cfcfcf;
color : #202020;
}

td{
padding-left : 10px;
}

th{
text-align : left;
padding-left : 10px;
}

#imessage{
padding-left : 10px;
color : #808080;
}

.inputFocus{
background-color : #ffffff;
}

.inputBlur{
background-color : #cfcfcf;
border : thin double #888888;
}
~

2008年9月25日木曜日

ついにメニューバー非表示までやっちゃった

このエントリーをはてなブックマークに追加
ここのメニューバー非表示で消した
今日から変態の仲間入りのArcCosineです。(今日から????)

メニューバー非表示というのは中々勇気が要りますが、考えてみたら今となっては殆どコマンドでoperaの操作が出来るからメニューバー要らないじゃんって事に気がついた。
で、画面が広いほうが幸せな人なので、メニューバーを消す事にした。
Opera Logoがいい感じにクールなので、そのリンクを作ってさらしておく。
メニューバー表示/非表示ボタン

これで画面に表示されているのはアドレスバーだけになった。
(しかも、下に表示しているので、Vimライク)
たまにマウス操作するので色々とアイコンは出ているけど、あんまり使わないかも。
アドレスバー検索も最初は新しいウインドウが出ないから嫌だったけど、最近はCtrl+Tから行けばいいぢゃんって思えるようになったし、ニックネームによる移動もShift+F2からCtrl+Gに変更してさらに快適になったし。
ああ、でも普通の人にとっては恐怖だろうなあ。
タブバーは無いは、メニューは無いわでぱっと見どう操作すれば良いか分からないからね。
Opera信者な人たちだったら、普通にショートカットとかガシガシ使って操作しそうだけど(笑)

2008年9月23日火曜日

今更ながら

このエントリーをはてなブックマークに追加
前に作ったHit a Hintをedvakfさんが作った関数とかで置き換えた。
これで、ホームポジションから指を動かさずに移動可!
大した修正じゃないから、好きな人だけ入れ替えてください(笑)


javascript:(function(){var hintkeys='asdfghjkl';var maxdigit=4;function createText(m){var ret='';var l=hintkeys.length;var d=maxdigit*l;while(m>=0){while(m-l*d<0){d--;}ret=hintkeys.charAt(m-l*d)+ret;m=d-1;}return ret;}function retrieveNumber(w){var ret=0;var wlen=w.length;for(var i=0; i<wlen; i++){var fix=(i==0)?0:1;var t=w.charAt(wlen-i-1);ret+=(hintkeys.indexOf(t)+fix)*Math.pow(hintkeys.length,i);}return ret;}var bgcolor = '#FF0';var bghighlight = '#0F0';var color = '#000';var hintlist = new Array();var hintedlinks = new Array();var map = new Array();var choices = new Array();var mapindex = 0;var choice = '';var keycodemapping = { '13':'Enter','27':'Esc','8':'Bkspc','44':','};for(var i=0; i<hintkeys.length; i++){var ithkey=hintkeys[i];keycodemapping[ithkey.charCodeAt(0)]=ithkey;}var originalTitle = document.title;function drawHints(){document.addEventListener('keypress',interpretKeyStroke,true);document.title+=' - ';var allLinks = document.getElementsByTagName('a');var viewportStart = window.pageYOffset - 5;var viewportEnd = viewportStart + window.innerHeight + 10;for (var i = 0; i<allLinks.length; i++){linkYcoord = getAbsoluteY(allLinks[i]);if(linkYcoord > viewportStart && linkYcoord < viewportEnd && allLinks[i].href != '') {hintedlinks.push(allLinks[i]);}}for (var i = 0; i<allLinks.length; i++){var hint = document.createElement('span');hintlist.push(hint);hint.style.backgroundColor=bgcolor;hint.style.color=color;hint.style.position='absolute';hint.innerHTML = createText(mapindex);map[createText(mapindex)]=hintedlinks[i].href;mapindex++;hintedlinks[i].appendChild(hint,hintedlinks[i]);}}function getAbsoluteY(element){var y = 0;while (element) {y += element.offsetTop;element = element.offsetParent;}return y;}function removeHints(){for (var i=0; i<hintedlinks.length; i++){hintedlinks[i].removeChild(hintlist[i],hintedlinks[i]);}choice='';document.title=originalTitle;document.removeEventListener('keypress',interpretKeyStroke,true);delete map;delete hintlist;delete hintedlinks;delete choices;}function interpretKeyStroke(e){e.preventDefault();var key=keycodemapping[(typeof event!='undefined')?window.event.keyCode:e.keyCode];if(key=='Enter'){choices.push(choice);for (var i=0; i<choices.length; i++) {if(map[choices[i]]!=undefined){location.href=map[choices[i]];}}removeHints();} else if(key==','){if(choice!=''){choices.push(choice);hintlist[retrieveNumber(choice)].style.backgroundColor=bghighlight;choice = '';document.title+=',';}} else if(key=='Esc'){removeHints();} else if(key=='Bkspc'){if(choices.length){if(choice!=''){choice='';} else{hintlist[retrieveNumber(choices.pop())].style.backgroundColor=bgcolor;document.title=originalTitle+' - '+choices.join(',');}}} else if(key == undefined){removeHints();} else{choice+=key;var choicestring = (choices.length) ? choices.join(',')+','+choice : choice;document.title=originalTitle+' - '+choicestring;}}drawHints();})();

2008年9月22日月曜日

CraftLaunch

このエントリーをはてなブックマークに追加
CraftLaunch使いに進化しました、ArcCosineです。
今までこのソフトの存在を知りながら、中々手を出していませんでした。
すみませんでした><
世間を知らない僕を坊やと罵るが良いさ。
単に、フォーカスをあてるショートカットを知らなかっただけなんですけどね(笑)
Ctrl+Spaceで一発フォーカス。
後はキーボードを叩くだけで全てのソフトが起動する!
ああ、これは最高に自分向きです。
キーボード入力が好きなWinodwsな人はコレを導入すべきですね。
だいなファイラ+CraftLaunchで僕は幸せになる。

2008年9月21日日曜日

Google ChromeでVimっぽい動きをさせてみる

このエントリーをはてなブックマークに追加
正確には、Greasemetal使って実現。
Chromeのキーボードショートカットは使いにくいんだよ、F○ck!とか言いそうな人が居るから、ちょこっと作って見た。
やってる事は大したことない。

J Scroll Down
K Scroll Up
R Reload Tab
D Close Tab
Z History Back
X History Forward

全部小文字ね。ってか、ソース読んだほうが早いかも。
仕組み的には超大したことないから、誰でもハックしまくれるよ。
テストしてないけど、普通にグリモン入れてるFirefoxやOperaで使えると思う。
ページごとの制限はかけていないから、色々とウザイかもしれないけど、そこは適当に頼むよw(超無責任)
あと、縦スクロールの移動幅は8行目あたりのnyって所で指定してるから、好きにいじって。
読むのが速い人はny=60遅い人はny=15くらいでよさげ。
z,xで進む戻るはOpera仕様なのは勘弁な?w


// ==UserScript==
// @name vimlike
// @namespace http://looxu.blogspot.com/
// @author Arc Cosine
// @version 1.0
// ==/UserScript==
(function(){
ny = 30;

function sendDw(){
y = window.pageYOffset;
y = y + ny;
scroll(0,y);
}

function sendUp(){
y = window.pageYOffset;
y = y - ny;
scroll(0,y);
}

function reLoad(){
location.reload();
}

function delTab(){
window.opener = window;
var win=window.open(location.href,"_self");
win.close();
}

function hisBak(){
history.back();
}

function hisFor(){
history.forward();
}

function addKeyBind( keyChar, func, eve ){
var pressKey = eve.which;
keyChar = keyChar.charCodeAt(keyChar);
if( pressKey == keyChar ){
eve.preventDefault(); //Stop Default Event
eval(func);
}
}

window.addEventListener( 'keypress', function(e){
var t = e.target;
if( t.nodeType == 1){
tn=t.tagName.toLowerCase();
if( tn == 'input' || tn == 'textarea' ){
return;
}
addKeyBind( 'j', 'sendDw()', e );
addKeyBind( 'k', 'sendUp()', e );
addKeyBind( 'r', 'reLoad()', e );
addKeyBind( 'd', 'delTab()', e );
addKeyBind( 'z', 'hisBak()', e );
addKeyBind( 'x', 'hisFor()', e );
}
},false );
})();

zshに入門しますた。

このエントリーをはてなブックマークに追加
今日からデフォルトのシェルをzshに変えて見た。
とりあえず、


bindkey -v


は必須だった。viモード最高すぐるwwww

JavaScriptって

このエントリーをはてなブックマークに追加
JavaScriptの真面目な勉強したのは実はここ半年の事。それまではろくに使えないエセJavaScripterでした(笑)
Ajaxって何? 美味しいの?って人だった。
折角勉強する素材がいーっぱいあるのに勉強しないのは勿体無いなぁと思って色々勉強して度肝抜かれた。
JavaScriptすげぇ! ごめん、今まで超馬鹿にしてたよ!って。

んとさ、XMLHttpRequestの存在を知らなかったんだよね、それまで。
んで、それが非同期通信出来るってのを知って、その存在のでかさにびっくりした訳。
Webページを一気に読み込まなくて良いって手段が増えて見せ方に幅が広がったなぁと。
Opera好きな自分がFirefoxも好きになったのは、Firebugがあったからだけど、何よりJScriptとより数段進んだJavaScriptに触れる事が出来たのはFirefoxだったから、もうハァハァものな訳ですよ。
#ハァハァするな。

んで、ハァハァしながらコード書きまくって色々と遊ぶ方法を覚えて、どこかで使えないかなぁと思ってる訳ですよ。
まあ、僕程度の技術だったら中学生くらいでも覚えられるレベルだから大したことないんだけどね。
仕事にはならないって言い訳ですよ、お客さん!(誰?)

そんな訳で、今日も家で俺専用JavaScriptをしこしこと書いていました。
俺専用って楽しいよね!(やけっぱちともいふ)

2008年9月18日木曜日

超絶に欲しいと思った

このエントリーをはてなブックマークに追加
これは震えた!
http://japanese.engadget.com/2008/09/17/x86-pc-fit-pc-slim/
なんていうか、心の琴線に触れますよね!
小さいのは良いことです!
これぞ本物のデスクトップマシン!
うひゃー、夢が広がりまくり!!

プロフィールアイコン変えてみた。

このエントリーをはてなブックマークに追加
折角なので、ミクアイコンをつけてみた。
正直リアルではキモオタなのに、こんな画像を貼っていいのだろうかorz
色々と自分の中で現実逃避中。

2008年9月16日火曜日

るなすけの馬鹿

このエントリーをはてなブックマークに追加
Lunascapeのα版入れてみた。
まともに起動できなかった。
つか、レンダリングエンジン切り替わるたびに落ちるんですがw
二分後、アンインストールしていた。
初代Safariを思い出すほどの不安定っぷりwwww
しばらく傍観を決め込もう。

2008年9月15日月曜日

最強のブラウザ論@ArcCosine

このエントリーをはてなブックマークに追加
最強のブラウザは何か。
実はArc Cosineの中ではFirefoxが最強だと思っています。
強力なアドオンが多く、幾らでも拡張できますし、(その気になれば)使う人がFirefoxそのものを改変する事が出来ます。
従って、カスタマイズ性という点からFirefoxが最強だという結論を出します。

スピードとか、安全性とか、使い勝手とか、UserInterfaceとかそーゆーのは全部無視です。

さて、上記は客観的な評価です。
主観的な評価で行くと、最強はOperaなので、その辺は割愛(何


とまあ、一通り人を釣れる内容を書き散らして、本題へ戻りましょう。

ブラウザって何が一番大事なの?

カスタマイズ性?
確かに重要ですが、PCに詳しくない人間にとってはどうでも良い事ですね。

スピード?
確かに重要ですが、PCに詳しくない人間にとってはどうでも良い(ry

安全性?
これは重要ですが、PCに詳しくない人間(ry

使い勝手?
これも重要ですg(ry

UI?
これ(ry

じゃあ、どれが一番大事なんだよって事ですが、PCに詳しくても詳しくなくても

正確なレンダリング

と言うのは大事ではないでしょうか。
Web製作者が意図したとおりに画面に表示される。その為のHTMLであり、CSSであります。
HTMLとCSSの仕様に従って正しくレンダリングできるブラウザというのは中々少ないです。
HTMLとCSSを正しく解釈しているかどうかをチェックするので有名なのはAcid Testです。
1~3まであり、これら全てに合格しているブラウザはありません。
(一般公開しているブラウザでは)
ちなみに、Acid3にクリアしているのはWebkitのNightly BuildとOpera WinGoziくらいです。

例えばIEとか言うクソブラウザはAcid3では10点台というユーザを馬鹿にしているのかと思うくらいまともにHTMLやCSSを解釈できません。
Acid2という基本的なテストもクリアできません。
なぜかというとWeb標準を全く無視したレンダリングエンジンを搭載しているからです。

さて、ここで話を戻して。
最強のブラウザ=正確なレンダリングと定義するならば、現段階一般公開されている中でAcid1、Acid2を合格し、且つAcid3で最高得点をたたき出しているブラウザが最強だと言えますね。

それがどのブラウザかと言うとOperaなんですね。
って事で、最強ブラウザはOperaである。これが、本日の結論(ぇー

以下、蛇足。

Operaは唯一通常公開バージョンで80点台をたたき出しているブラウザです。
なので、正確なHTMLとCSSで描かれたサイトを正しく描画できるブラウザはOperaであるといえます。
逆に、Operaでまともに表示できないサイトは正確なHTMLとCSSを用いていないと言えます。
そんなサイトはゴミ箱に捨てましょう。
そして、そんなサイトしか正しく表示できないブラウザも捨てましょう。


次点はGoogleChromeですかね。
80点には届きませんでしたが、初公開で脅威の79点は褒めるべきだと思います。

レンダリングエンジンに注目すると4つのレンダリングエンジンが雌雄を決しようと切磋琢磨しています。
彼らはWebサイトを最も速く、最も正確に描画できる事を目標としています。
速さは美であり、正確さは正義です。

Web標準がHTML4からHTML5へと移行する日はまもなくきます。
その時、一番正しいレンダリングエンジンを搭載したブラウザは一体どこになるのでしょうか。

きっと、その中にOperaやFirefox、Safari、GoogleChrome、そしてIEが居る事でしょう。
その時に初めて最強ブラウザが何かという結論が出ると思います。
つまり、重要でないと一蹴したスピードや安全性、使い勝手がです。

まあ、そこに辿り着くのは大変だよね(笑)

2008年9月13日土曜日

なぜVimで文章を書くのか

このエントリーをはてなブックマークに追加
Vimで文章を書くようになったのは割と最近の事だ。
それまではEmEditorや秀丸やサクラエディタといったごく普通のWindowsエディタを使っていた。

Vimの良い点は何かというと、WindowsでもLinuxでも使えるという点だろう。
だが、自分の場合はなんと言ってもHJKLでカーソル移動という幸せがその最大理由だ。
最も、HHK Proを購入したのがそのきっかけだったのだが。
お陰で、最近は何でもかんでもVim化しないと作業効率が落ちてしまうまでになった。
いや、違う。
それまでの作業スピードが遅すぎたのだ。
今はいわゆる普通のスピードになった。
多分学習ライン的には急上昇するちょい手前くらいか、もう既にあがりはじめているかしているに違いない。
ホームポジションから指を必要以上にずらさない事の重要性が実際に使い込む事で理解できるというのがVimの良いところだ。
(恐らく、Emacsもそうなのだろう)

どちらも、直感的な作業をするには向いていない。
むしろ脳内であれもこれもと考えながらやるので、最初は作業効率が低くてしょうがない。
しかし、そのうち考えずに色んな操作が出来るようになる。
そうすると、その多機能さが作業効率をぐんとあげるのに一役買うのである。
そうして、作業効率を上げることで余った時間を学習や休憩に使う事が出来、最終的にさらに効率がアップして楽になる
はずなのだが、実際にはもっと楽になれないかと別の方法を模索したり考えたりするので、結局忙しさだけは無駄に上がってくる。
ただ、過去と違う点は明らかに以前の自分のこなしていたスピード以上で仕事をこなせるようになっている事を感じられる。

それは何故か。
理由は分からないが、少なくとも脳内での処理速度が倍以上になっている事が一つの理由のような気がする。
というのも、Vim操作を指に覚えさせるまでかなり頭脳を使っているからだ。
僕は典型的な駄目人間タイプなので、兎に角楽が出来るならどんな苦労も厭わないという矛盾した思考の持ち主だ。
したがって、楽になるためにはいっぱい勉強をする。
そうると、周りの人から見るとすっごい苦労しているように見えるが、実際にはどんどん手を抜く方法を覚えているだけなので、褒められたものではない事が明らかになる。
とここまで駄文を書き散らしたところで、自分の能力の低さ(根本的な)からは脱却できていないので、なんとか脱却したいと思っている。
そのうち脱却できるだろうと言う希望的観測ではなく、自らの意思と能力の向上によってクリアしたいと思う。
そうすれば、一つの自信になるだろうし。

いま、Vimを使っているのは楽をするため。
これからもVimを使うのは楽をするため。
楽になることは良いことだと思う。
ただ、その為に学習をやめたら、楽にはならないという信念をいつまでも持ち続けたい。
それは他人には苦労に見えるかもしれないが、本人は全く苦労と感じていない。
とにかく楽になりたいという駄目人間なのだから。

2008年9月8日月曜日

GoogleAdsenceなのに

このエントリーをはてなブックマークに追加
なぜかIE7ばかりになっていてビックリ。
そんなにぐぐるさんはIE7が好きなのか!
まあ、その辺は冗談として、Operaって文字を増やせばOperaの広告でるのかな?(笑)
実際には資金面的に圧倒的な力の差があるだろーから、マイクロソフトの広告の方が多くなるだろうけどこのブログでももっとOperaの宣伝をしていつかOperaまみれの広告になるサイトになれば良いなぁ。
そして、みんながOperaのurlfilter.iniにGoogleAdsenceのurlを入れるんですね、分かります。
ってか自分の見たら入っていたからわざわざ消した(笑)
Firefoxで見えるのにOperaで見えないのは何故だろうって不思議に思ってた。
urlfilter.iniの力は強大すぎます。
#もっと早く使えばよかった。
##ああっ! でも、見たい広告まで消しちゃうから難しいなぁ(笑)

2008年9月7日日曜日

変なの作ってたよ

このエントリーをはてなブックマークに追加
前に書いた散財簿のイメージを作っていました。
とりあえず、こんな感じの画面です。
なにやらののわさんが居ますが、気のせいです。
後、広告スペースもあったりしますが、ビジネスにする気か、俺w

実際ビジネスにはならんでしょ(笑)
まあ、それは兎も角。
まだ外っつら作っただけだから、全然中身は無かったりします。
作っているよ報告程度で。

2008年9月6日土曜日

IE7の意義

このエントリーをはてなブックマークに追加
Operaというブラウザに出会ってからIE系統は殆ど触らずに生活している。
どうしても仕事で使う必要が出て、嫌々ながらIE6は触った。
でも、IE7は殆ど触っていない。
実家のPCにはIE7がインストールされているが、僕がOperaをデフォルトブラウザにしてきたから、家族はOperaを使っている。
なので、インターネット=Operaというのが家族の認識だ。
他にも友人には事あるごとにOperaかFirefoxを使わせている。
そのためか、自分の周りではIE7を使う人が殆ど居ない。
IE6よりかは快適なんだろうけど、結局はベストという回答を得ているわけではない。
ブラウザの比率のニュースを聞くと大分IE7への移行が進んでいるみたいだけど、あまり実感が沸かない。
そんなおり、IE8の登場があり、IE7はいらない子扱いされてきている。
実際、要らない子だと思う。
結局マイクロソフト標準という偏った仕様にあわせるよりも、W3Cという名目上の世界標準にあわせるほうが作る側はもちろん、見る側へのメリットが大きい。
Webページは世界中の人が見るものである。
その為、どういう作りにしたら見れて、どういう作りにしたら見えないかを十分に検討すべきだ。
その為にW3Cはある。
それを無視して作ったブラウザがここまではびこっているのは異常と言わざるを得ない。

Google Chromeの登場のお陰でIEから別ブラウザへ乗り換えってのがしやすくなると良いなぁ。
IEユーザがFirefoxやOperaへ乗り換えるのは正直かなり敷居が高い。
しかし、Chromeはまだ敷居が低い方だと思う。
徐々にIE寡占状態が開放されると良いなぁ。
個人的にはFirefox寡占状態になっても良いと思っている。
もっとも、Firefoxが現在のように標準レンダリングを目指す事を真の目的としている事が変わらないという前提だが。
IE寡占は誰もが不利益を被る状態である。
それを感じない人が多いというのがその不利益の最たるものだろう。
これは、日本だけでなく世界中に伝えるべき事実だと思うのだが……。
いかんせん、中の人の英語力が無さ過ぎる。
なので、もっと勉強するよ。

脱線しまくったが結論。
IE7イラネ

2008年9月5日金曜日

ふへえ。

このエントリーをはてなブックマークに追加
桁外れの数読むためのインプット&アウトプットする方法
http://d.hatena.ne.jp/bizmania/20080905

反論というか、この人のやり方は大分偏っているので、僕には有効でない事が分かった。
まず、僕はビジネス書を読まない。読む価値が無いと思っているからだ。
何故そう思うのかというと、ビジネス書に書いてある内容は仕事には役立つだろうけど、生活の役には立たないからだ。
いや、もしかしたらあるかもしれないけど、確率論的に言って少ない。

と、軽く言い訳しておいて(ぉ
僕はビジネスが嫌いだ。
だから、この人の話は読めば読むほど腹が立つし、気持ち悪いと思う。
詰まる所、僕は社会非適合者って訳ですね、分かります。

ところで、この記事にはそれなりに役に立つ事が書いてあった。
例えば
・最初から最後まで読まなければならないという考えを捨てる。
・読み落としがあっても良いと割り切る。
この辺はまるまるネットで記事を読むのに便利かも。つうか、実際そうしてるし。
それ以外は肌に合うか合わないかで結構印象が変わると思う。

本を大量に読むのは良い事だけど、それが身になる人ならない人はいる。
そして僕は絶対的に後者だ(笑)
同年代では多分かなり本を読んでいる方だけど、「社会で役に立たない」本ばかり読んでいるから(つまり、小説ね)、相変わらず給料安いし、貧乏だし、頭も悪いままだし。
それでも幸せだから良いや。
知識だけでは人間幸せになれないのと同じように、金があっても人間は幸せになれない。
幸せの本質を理解しないと無理だろう。
じゃあ、その幸せの本質って何なのさって話だけど、結局僕みたいに世間とかなりの隔絶を果たす事でそれを得られる人もいるし、逆にずっと誰かにべたべた依存していないと生きていけない人がいる。
自分はただの技術者だからただただその知識を溜め込み、使える場所があればそれで幸せになれる。
安いなぁ(笑

でも、安くて良い。

それが本当の幸せでしょ?
結局は幸せは他人の物指しじゃ計れないって事。
自分の幸せって何だろうって真剣に考えたら何も無かったって人は悲惨だね。
どうでも良い駄文を書き散らしてしまった(笑)

JNLPファイルが無くても実はJava Web Startは起動出来るというメモ

このエントリーをはてなブックマークに追加
Java Web Startでアプリケーションを起動させるためにはJNLPファイルと言うXMLファイルをサーバに用意して、さらにApacheに拡張子がjnlpのMime-Typeに"application/x-java-jnlp-file"を記述してうんぬんかんぬんとすっげえ面倒くさい。
特にApache側に設定してApache再起動とか超うざい。
ファイル領域取られるのもウザイから何とかしてくれよ。

って、言われたから、PHPでやった。
PHPのheader関数で

header('Content-Type:application/x-java-jnlp-file;');

って書いてやり、後は普通にXMLをprint文で出力した。

まあ、この辺は誰でも分かる。
問題は、これの説明だ。
なんて言えば良いんだ?

良く分からなかったので、仕様書にはjnlpファイルレスポンスを返すなんて意味不明な言葉を書いておいた。
(ファイルレスポンスって時点でゲシュタルト崩壊してるよなぁ。ああ、そもそもゲシュタルトの使い方が間違っている)
さて、理解してもらえるのやら……。

2008年9月4日木曜日

メモリ消費量対決

このエントリーをはてなブックマークに追加
chromeのabout:memoryが便利そうだったので、メモリ消費対決してみた。

対象となるブラウザは以下の通り
Chrome 0.2.149.27
IE 6.00.2900.5512
Firefox 3.0.1
Opera 9.52
Safari 3.1.2(525.21)

公平を帰す為にMSN Japanのページを開く事にした。
(どうせIEが一番メモリ食うんだからせめて自社サイトだけでも表示させて下駄を履いて貰ったとも)

で、気になる結果は下記の通り。








BrowserMemoryVirtual Memory
PrivateSharedTotalPrivateMapped
Chrome 0.2.149.2728,216k2,874k31,090k25,708k6,760k
IE 6.00.2900.551286,148k14,236k100,384k80,080k45,212k
Firefox 3.0.152,124k5,944k58,068k43,764k3,768k
Opera 9.5245,340k7,572k52,912k37,384k42,848k
Safari 3.1.2 (525.21)13,024k1,672k14,696k41,492k50,940k

冷静に分析すると、Chromeの省メモリ設計が光っているのが分かる。
物理、仮想共にTopクラスの節約っぷりだ。

IEはなんていうかギャグ?
とりあえず、もっと頑張りましょうって感じですね。

Firefoxの物理メモリが多いのは僕がアドオンを入れまくっているからだろう。
ubiqとvimp入っているからねー。

分かっていた事だが、思った以上にOperaはメモリ食いだ。(それでもIEの半分!)

Safariは物理メモリを非常に抑えているものの、仮想メモリは馬鹿食いしている。

こんな感じっすかね。
Chromeは機能が少ない分まだまだメモリ消費が少ないってのが今回の結論です。

arccosineが一個人として認められました

このエントリーをはてなブックマークに追加
http://www.google.co.jp/search?hl=ja&q=arccosine&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=


このHNなら検索で引っかからないだろうなぁとか油断してたら僅か数ヶ月でTop4を独占するまでに。
いいぞ、もっとやれ

Chromeを使って見て

このエントリーをはてなブックマークに追加
昨晩劣化版Operaになると書きなぐったけど、訂正。
機能限定版Operaだね。
ショートカットのカスタマイズは出来ないし、マウスジェスチャはないし、UIの変更も出来ないし、パスワードは丸見えだわ、インストール先が変だわツッコミどころ満載。
とはいえ、そのレンダリングスピードという一点においては現状では最速であると言い切れる。
#あ、いわゆる普通のGUIブラウザではって事ね。w3mとかいう異常な速さのテキストブラウザは別格。

さて、機能限定版と書いたのはこれほど素早く画面表示が出来るのに、ショートカット周りがしょぼすぎるから、自分の思考速度と指の速度が合わず不満が溜まりまくったので。
OperaとFirefoxの優れている点をここで改めて実感した。


詰まる所、自分みたいなブラウジングスピードが異常な変人の異常さを支えているのは、レンダリングスピードだけでなく、実はキーボードやマウスジェスチャと言った物理的なI/Fだったということ。
(UI、UIって色んなところで騒がれているけど、実は見た目の「インターフェース」よりも操作感の「インターフェース」がめちゃくちゃ重要なんだね)
実際、マジでかったるくってしょうがないんです。
矢印キーでのスクロールとかタブキー連打しないとフォーカスを移動できないとかもうやってらんないね!
時代はワンキー操作だよ!

なんて事を主張してるだけなのもアレなので、Hit-A-Hintを拡張するかぁ。
edvakfさんとかが(何
冗談はさておき。

ChromeはIEから乗り換えるのに良いブラウザだと思う。
IEの貧弱な操作感でスピードだけはそれこそ108倍くらい違うから、素人が乗り換えるのにはぴったり。
(位置的にはSafariが居たポジションかなぁ)

逆に、Opera信者や狐使いといったヘビーユーザがChromeに乗り換えるのはちょっと難しいかも。
ま、実際のところそーゆー人たちに限ってデフォでメジャブラウザは全部インストール済なんだよね。
しかも、最新版が。
おかしいよ! お前ら!
#俺もだけど。

IE8入れてみっかなぁ……。

2008年9月3日水曜日

chromeの罠

このエントリーをはてなブックマークに追加
Livedoor Readerでピンをつけまくって開いたら大変な事にorz
こりゃ駄目だ。

Acid3再び

このエントリーをはてなブックマークに追加
Chromeが出た事だし、ACID3やるのは常識だよね!

結果:
Opera9.52 10108 83/100
Google Chrome 79/100
Safari3 75/100
Firefox3 71/100

実は6/20にもテストやっていて、その時のOperaは素の9.5だった気がする。
ちょっとスコアがあがっていてびっくり。(82→83)
Chromeの成績はなかなか優秀だと思う。
FirefoxはSIRETOKOを使うともう少し成績がよくなるかもしれない。
試して無いから分からないけど。

眠いけどこれだけは主張させてもらう。Google Chromeは劣化版Operaになるだろう

このエントリーをはてなブックマークに追加
はいはい、Opera信者乙って思った人は、はてなスターでもクリックするが良いさ。


ぐぐるさんオリジナルブラウザ、「Google Chrome」が公開予定です。
多分、明日あたりにはゲットして速攻インストールしているでしょう。

まあ、ともあれ。
ベースの技術はWebkitって事だからHTMLレンダリングエンジンはSafariとほぼ同じと見て良いのかな?
でもJavaScriptエンジンは独自の「V8」を搭載するらしいので、実際に使って見ないと分からない。
幾つかの記事を見ると、タブがウインドウの外側に配置されるとか、アドレスバーとタブバーが逆転してるとかまあ、要はOperaと同じになったって事でしょ。

時代がようやくOperaに追いついたね。

嘘だけど。
というか、Operaみたいな先進的なブラウザがあるお陰で、あらゆるブラウザは元ネタとしてそれを流用して高度な技術をさらに生み出しているのではないかと思う今日この頃。

アドレスバーで補完機能しかり、タブブラウザとしての進化しかり、スピードダイアルしかり。
Operaは間違いなく現段階でブラウザ界の二、三歩先を行っているブラウザである。

が、行き過ぎのために殆どのユーザが着いていけないのもまた事実。
いや、それでは嘘になるな。
行き過ぎての故に、ユーザが気がつかない

Opera新機能で超便利って感じているOperaLinkもその内殆どのブラウザが搭載するか、或いは同機能のサービスが出るかするっしょ。
Operaのメモ機能も超便利だけどちゃんと利用しているユーザは少ないだろうから、ある日全く同機能の別名の何かによって話題をかっさらわれる気がする。

Operaを使っている奴は大抵その機能を存分に使わずにすぐ「ツカエネ」って結論だしている。
Operaのワンキーショートカットとかその典型例だろう。
Opera使っている奴に限ってそれを知らなかったりするから困る。

で、FirefoxでVimperatorみたいなのが出て、vimpすげーすげーって騒ぐ狐ファンが要るし(いや、実際アレはアレで凄い)
それ、Operaでも出来るよってのは腐るほどあげられる。
Operaはアドオンのインストールなんかしないでしかも(ほぼ)GUIだけで設定のカスタマイズが出来る。



ただ、余りにもその資料が少なすぎる。
で、結局他の奴から見たらOpera信者は自分らだけが知っていてハァハァしやがって馬鹿じゃねのとか思ってるんだろ!(どーん)

否定できないのもまた事実だけど(笑)



ぶっちゃけると
普通の人ってそこまでWebブラウザにこだわらない
orz

お後が宜しいようで。

じゃあ、後は私見。
Firefoxは素敵なブラウザなので、個人的には超お勧め。
Operaは最強に素敵なまでな高速ブラウザなので、個人的に超絶お勧め。
Slepnir使っている奴はそろそろ夢から覚めたほうが良いぞ。pnirの便利さに慣れている自分に目を閉じていないか? アレだけ遅いレンダリングエンジンに満足するだけでどれだけ多くの時間を奪っているのか気がつきな。とりあえず、Firefox入れとけ。それだけでかなり変わるから。
Safariも素敵なブラウザだからお勧めする。
素のIE使っている奴には何も言わない。言ったところで無駄だから。
どうしても聞きたい奴に敢えて言っておこう。Opera使え。

2008年9月2日火曜日

昨日のエントリの続き

このエントリーをはてなブックマークに追加
LDCのアダルトって文字がうぜえから消してやるってUserJSの記事を投げたら、edvakfさんから

img[src$='adult_r_off.gif'] {display:none !important;}

でいけるんぢゃない?
とコメントがあって、試したら一発で解決!
コメントありがとうございましたm(_ _)m
そして、ちょこっと書くだけでユーザの好みを実現できるOperaに乾杯!


えー、蛇足ながら、反映のさせ方を。
上記のCSSに適当な名前(EX:ldc.css)をつけて保存。UTF-8お勧め。SJISでも動くかもしれないけど、UTF-8の方がよさげ。
んで、LivedoorClipにアクセスして、右クリック→サイトの編集→Display→My Style SheetにさっきのCSSのパスを指定。
で、後はその設定を保存して、リロードするだけ。
Firefoxでも同じ事出来るけど、ちょこっとCSSに手を加えないといけない(@-moz-documentの事ね)ので不便かも。
とか書いたらどうせ「Stylish入れろ、カス」とか怒られそうだなぁ(^^;;;
#もちろん、入れてますよぉ