[COMPUTERWORLD] Android slows iPhone growth, can Apple fight back?
iPadに関する予測で大コケしたという教訓が生かされてないね。どうせまたVerizonの数字を見てひっくりかえるっていうパターンだろw。だいいち、市場にはびこるのと人の心を掴むのと、どっちが大事だと思ってるんだこいつら?蔓延するだけならウィルスでも出来るってのwwww
2011年1月13日木曜日
[Apple] 今度はホームボタン無くすてwwww
[BGR] Exclusive: Apple will remove home button on next iPad and iPhone; Photo Booth and iLife coming?
オリエンテーションロックスイッチの復活でホクホクしとったらこのザマ。DARING FIREBALLでこのBGRの記事を見て卒倒しかけたワケだが、なんかもうアレですな、一難去ってまた一難ですな。John Gruberも言ってる通り、エンコ詰めしたモンとかどないせぇゆうんじゃホンマ。ガセの可能性はまだ残っているとは言え、どうも去年の夏あたりから頭の不自由なヤツが幅を利かせてるようで、マジ心配やわ。
オリエンテーションロックスイッチの復活でホクホクしとったらこのザマ。DARING FIREBALLでこのBGRの記事を見て卒倒しかけたワケだが、なんかもうアレですな、一難去ってまた一難ですな。John Gruberも言ってる通り、エンコ詰めしたモンとかどないせぇゆうんじゃホンマ。ガセの可能性はまだ残っているとは言え、どうも去年の夏あたりから頭の不自由なヤツが幅を利かせてるようで、マジ心配やわ。
[Apple] iOS 4.3でオリエンテーションロックスイッチが復活
[9 to 5 Mac] iPad’s physical orientation lock switch back in iOS 4.3
よっしゃ、やっぱそうこなくちゃ。開発者向けβ版も出たし、今からもう楽しみっす。Appleが信じられなくなりかけてたけど、これで「AppleはUXを重んじる会社」なんだと再認識出来ましたわ。ということでiOS 4.2は黒歴史入りねw
よっしゃ、やっぱそうこなくちゃ。開発者向けβ版も出たし、今からもう楽しみっす。Appleが信じられなくなりかけてたけど、これで「AppleはUXを重んじる会社」なんだと再認識出来ましたわ。ということでiOS 4.2は黒歴史入りねw
2010年11月24日水曜日
[Apple] 結局 iOS 3.2.2 にダウングレードしましたわ
[Apple] ダウングレードするしかねぇのか?
iOS 4.2 で、予定通り、オリエンテーションロックスイッチが改悪された。正直、使いもんにならん。いちいちホームスクリーンWidgetで設定しろってか?バカじゃねぇの?体に馴染んだUX要素を変えるなんて正気の沙汰じゃねぇぞ。オメェはいつからMicrosoftになったんだ?
フォルダもマルチタスクもAirPrintも大歓迎なのだが、この改悪で全てブチ壊しだ。ということでダウングレードを含めた対応を検討中。
フォルダもマルチタスクもAirPrintも大歓迎なのだが、この改悪で全てブチ壊しだ。ということでダウングレードを含めた対応を検討中。
2010年9月6日月曜日
[Programming] ActiBookコンテンツをFlash無しで読むためのブックマークレット
先日こんなのを作りまして、その後、いろんなところでActiBookコンテンツが利用されており、また、いくつかのバリエーションがあるというのがわかりましたんでちまちまと改良しておりました。
ActiBookコンテンツは通常、_SWF_Window.htmlでラップされており、ググると結構な数がヒットするんですが、たいがいのものはこのブックマークレットで読めるようです。動作はiPadと、Mac OSX上のFirefoxおよびSafariで確認済ですが、IEではたぶん動かないでしょう(setIntervalに3つ目の引数を渡すコードが含まれてますんで)。ChromeとOperaは未確認です。というか確認する気もないんですがw
javascript:var%20_G04={prefs:{zoom:1.6,indicatorWait:2000,mode:"two-facing-pages"},imageList:[],ix:0,baseHeight:undefined,baseWidth:undefined,drawerTimer:[],t2:undefined,serviceType:"",part:[],direction:"left",zoom:[],curZoom:1,mode:"",init:function(){var%20u=document.baseURI;if(u.match(/view\.swf/)||u.match(/ActiBook\.swf/)){document.location=u.slice(0,u.lastIndexOf("/"))+"/_SWF_Window.html";return;}if(!u.match(/_SWF_Window\.html/)){return;}document.body.bgColor="#eeeeee";document.body.style.overflow="auto";document.body.innerHTML="<div%20id='buttonL'%20style='opacity:0;background-color:#000;position:absolute;left:0px;top:0x;width:100px;z-index:2;'></div>"+"<div%20id='buttonR'%20style='opacity:0;background-color:#000;position:absolute;top:0x;width:100px;z-index:2;'></div>"+"<div%20id='picture'%20style='position:absolute;left:0px;top:0px;z-index:1;'><canvas%20id='tc'></canvas></div>"+"<div%20id='indicator'%20style='position:absolute;-moz-border-radius:16px;-webkit-border-radius:16px;top:160px;width:300px;z-index:2;opacity:0.9;background-color:#aaaaaa;font-family:Copperplate,sans-serif;font-size:48px;font-style:bold;color:white;text-align:center;vertical-align:middle;'></div>"+"<div%20id='cp'%20onMouseOver='_G04.showCP()'%20onMouseOut='_G04.hideCP()'%20ongesturestart='_G04.showCP()'%20style='font-size:20px;font-style:bold;color:white;margin:12px;padding:12px;-moz-border-radius:16px;-webkit-border-radius:16px;background-color:#aaaaaa;align:center;position:absolute;left:100px;top:0px;height:100px;z-index:2;opacity:0.0;'>"+"page <select%20id='page'%20onchange='_G04.jumpTo()'></select> "+"zoom <select%20id='zoom'%20onchange='_G04.changeZoom()'></select> "+"mode <select%20id='mode'%20onchange='_G04.changeMode()'><option%20value='single-page'>single%20page</option><option%20value='two-facing-pages'>two%20facing%20pages</option></select> "+" <a%20onclick='_G04.hideCP()'><font%20color='red'>[close]</font></a>"+"</div>";var%20x=u.slice(0,u.lastIndexOf("/"))+"/books/db/book.xml";var%20r=new%20XMLHttpRequest();r.open("GET",x,false);r.send(null);var%20d=(new%20DOMParser()).parseFromString(r.responseText,"text/xml");var%20z=d.getElementsByTagName("PageSize");if(z.length){for(var%20i=0;i<z.length;i++){_G04.zoom.push(z[i].getAttribute("zoom"));}}else{var%20x2=u.slice(0,u.lastIndexOf("/"))+"/books/db/viewer.xml";var%20r2=new%20XMLHttpRequest();r2.open("GET",x2,false);r2.send(null);var%20d2=(new%20DOMParser()).parseFromString(r2.responseText,"text/xml");_G04.zoom=d2.getElementsByTagName("zoom_s")[0].firstChild.nodeValue.split(",");}_G04.zoom.sort();_G04.curZoom=_G04.zoom[0];for(var%20i=1;i<_G04.zoom.length;i++){if(Math.abs(_G04.prefs.zoom-_G04.zoom[i])<Math.abs(_G04.prefs.zoom-_G04.curZoom)){_G04.curZoom=_G04.zoom[i];}}if(u.split("?")[1]){var%20p=u.split("?")[1].split("&");for(var%20i=0;i<p.length;i++){if(p[i].split("=")[0]=="pagecode"){_G04.ix=parseInt(p[i].split("=")[1])-1;}}}_G04.mode=_G04.prefs.mode;var%20o=document.getElementById("mode").options;for(var%20i=0;i<o.length;i++){o[i].selected=(o[i].value==_G04.mode);}_G04.direction=d.getElementsByTagName("to_open")[0].firstChild.nodeValue;if(_G04.direction=="only"){document.getElementById("mode").value="single-page";document.getElementById("mode").disabled=true;_G04.mode="single-page";_G04.direction="right";}if(_G04.direction=="right"){document.getElementById("buttonL").onclick=_G04.forward;document.getElementById("buttonR").onclick=_G04.backward;}else{document.getElementById("buttonL").onclick=_G04.backward;document.getElementById("buttonR").onclick=_G04.forward;}_G04.serviceType=_G04.getServiceType(u);var%20p=d.getElementsByTagName("page");for(var%20zs=0;zs<_G04.zoom.length;zs++){_G04.imageList[_G04.zoom[zs]]=[];for(var%20i=0;i<p.length;i++){var%20cover="";if(p[i].getElementsByTagName("cover")[0]){cover=p[i].getElementsByTagName("cover")[0].firstChild.nodeValue;}switch(_G04.serviceType){case%20"actibook1":var%20n=p[i].getElementsByTagName("number")[0].firstChild.nodeValue;var%20ext=p[i].getElementsByTagName("type")[0]?p[i].getElementsByTagName("type")[0].firstChild.nodeValue:"jpg";if(n>=0){_G04.imageList[_G04.zoom[zs]].push({cover:cover,url:x.match(/(.*books\/)/)[1]+"images/"+_G04.zoom[zs].toString()+"/"+n+"."+ext});}break;case%20"actibook2":_G04.imageList[_G04.zoom[zs]].push({cover:cover,url:x.match(/(.*books\/)/)[1]+"images/"+_G04.zoom[zs].toString()+"/"+p[i].getElementsByTagName("image")[0].firstChild.nodeValue+"/"});break;}}}_G04.baseHeight=d.getElementsByTagName("h")[0].firstChild.nodeValue;_G04.baseWidth=d.getElementsByTagName("w")[0].firstChild.nodeValue;var%20ops="";for(var%20i=0;i<_G04.imageList[_G04.curZoom].length;i++){ops+="<option%20value='"+i+"'>"+(i+1).toString()+"</option>";}document.getElementById("page").innerHTML=ops;ops="";for(var%20i=0;i<_G04.zoom.length;i++){ops+="<option%20value='"+_G04.zoom[i]+"'%20"+((_G04.curZoom==_G04.zoom[i])?"selected":"")+">x"+_G04.zoom[i].toString()+"</option>";}document.getElementById("zoom").innerHTML=ops;_G04.draw();},buildFrame:function(){var%20h=_G04.baseHeight*_G04.curZoom;var%20w=_G04.baseWidth*_G04.curZoom;if(_G04.mode=="two-facing-pages"){if(!_G04.imageList[_G04.curZoom][_G04.ix].cover){w*=2;}}document.getElementById("picture").style.height=h+"px";document.getElementById("picture").style.width=w+"px";document.getElementById("buttonL").style.height=h+"px";document.getElementById("buttonR").style.left=w-100+"px";document.getElementById("buttonR").style.height=h+"px";document.getElementById("indicator").style.left=w/2-150+"px";document.getElementById("cp").style.width=w-200+"px";document.getElementById("tc").width=w;document.getElementById("tc").height=h;},getServiceType:function(url){var%20u=url.slice(0,url.lastIndexOf("/"))+"/books/images/"+_G04.zoom[0]+"/1.jpg";var%20r=new%20XMLHttpRequest();r.open("GET",u,false);r.send(null);if(r.status==200){if(r.getResponseHeader("Content-Type")!="image/jpeg"){return%20"actibook2";}else{return%20"actibook1";}}return%20"actibook2";},forward:function(){if(_G04.mode=="single-page"){if(_G04.ix==_G04.imageList[_G04.curZoom].length-1){return;}else{_G04.ix++;}}else{if(_G04.ix>=_G04.imageList[_G04.curZoom].length-2){return;}else{_G04.ix+=(_G04.imageList[_G04.curZoom][_G04.ix].cover)?1:2;}}_G04.draw();},backward:function(){if(_G04.ix==0){return;}_G04.ix-=((_G04.mode=="single-page")?1:2);if(_G04.ix<0){_G04.ix=0;}_G04.draw();},draw:function(){_G04.hideCP();_G04.buildFrame();var%20num=(_G04.mode=="single-page")?1:((_G04.imageList[_G04.curZoom][_G04.ix].cover)?1:2);for(var%20pix=0;pix<num;pix++){if(!_G04.imageList[_G04.curZoom][_G04.ix+pix]){break;}var%20xdiff=0;if(_G04.mode=="two-facing-pages"){xdiff=((_G04.direction=="right"&&!pix)||(_G04.direction=="left"&&pix))?_G04.baseWidth*_G04.curZoom:0;if(_G04.imageList[_G04.curZoom][_G04.ix].cover){xdiff=0;}}var%20ctx=document.getElementById("tc").getContext("2d");ctx.clearRect(0,0,document.getElementById("tc").width,document.getElementById("tc").height);switch(_G04.serviceType){case%20"actibook1":if(_G04.ix+i>=_G04.imageList[_G04.curZoom].length){break;}var%20img=new%20Image();img.src=_G04.imageList[_G04.curZoom][_G04.ix+pix].url;img.onload=function(){var%20xdiff=arguments[0];return%20function(){ctx.drawImage(this,xdiff,0);};}(xdiff);break;case%20"actibook2":var%20numParts=64;_G04.part[pix]=new%20Array(numParts);for(var%20i=0;i<_G04.part[pix].length;i++){var%20img=new%20Image();var%20fn="x"+Math.floor(i/Math.sqrt(numParts)+1)+"y"+(i%Math.sqrt(numParts)+1)+".jpg";img.src=_G04.imageList[_G04.curZoom][_G04.ix+pix].url+fn;img.onload=function(){var%20pix=arguments[0];var%20i=arguments[1];return%20function(){_G04.part[pix][i]={img:this,completed:true};};}(pix,i);img.onerror=function(){var%20pix=arguments[0];var%20i=arguments[1];return%20function(){_G04.part[pix][i]={img:undefined,completed:true};};}(pix,i);}if(_G04.drawerTimer[pix]){clearInterval(_G04.drawerTimer[pix]);_G04.drawerTimer[pix]=null;}_G04.drawerTimer[pix]=setInterval(function(pix,xdiff){var%20done=true;for(var%20i=0;i<_G04.part[pix].length;i++){if(!_G04.part[pix][i]){done=false;break;}}if(done){clearInterval(_G04.drawerTimer[pix]);_G04.drawerTimer[pix]=null;var%20dx=0,dy;for(var%20i=0;i<Math.sqrt(numParts);i++){dy=0;for(var%20j=0;j<Math.sqrt(numParts);j++){var%20img=_G04.part[pix][i*Math.sqrt(numParts)+j].img;if(img){ctx.drawImage(img,Math.floor(dx+xdiff),Math.floor(dy));}dy+=_G04.part[pix][j].img?_G04.part[pix][j].img.height:0;}dx+=_G04.part[pix][i*Math.sqrt(numParts)].img?_G04.part[pix][i*Math.sqrt(numParts)].img.width:0;}}},10,pix,xdiff);break;}}window.scroll((_G04.mode=="single-page")?0:((_G04.direction=="right")?_G04.baseWidth*_G04.curZoom:0),0);document.getElementById("indicator").innerHTML=_G04.ix+1+" / "+_G04.imageList[_G04.curZoom].length;document.getElementById((_G04.direction=="right")?"buttonL":"buttonR").style.opacity=0.1;if(_G04.t2){clearTimeout(_G04.t2);}_G04.t2=setTimeout(function(){clearTimeout(_G04.t2);document.getElementById("indicator").innerHTML="";document.getElementById((_G04.direction=="right")?"buttonL":"buttonR").style.opacity=0;},_G04.prefs.indicatorWait);},showCP:function(){var%20o=document.getElementById("page").options;for(var%20i=0;i<o.length;i++){o[i].selected=(o[i].value==_G04.ix);}document.getElementById("cp").style.opacity="0.9";},hideCP:function(){document.getElementById("cp").style.opacity="0.0";},jumpTo:function(){_G04.ix=parseInt(document.getElementById("page").value);_G04.hideCP();_G04.draw();},changeZoom:function(){_G04.curZoom=document.getElementById("zoom").value;_G04.draw();},changeMode:function(){_G04.mode=document.getElementById("mode").value;_G04.draw();}};_G04.init();ActiBookコンテンツページ(URLが_SWF_Window.html)でブックマークレットを呼び出す事で動作が開始します。画像の左右端をタップ(PCならクリック)でページ送り/戻しです。コンテンツによって右開きと左開きがあるようなので、画像表示時に進行方向を画像の左端or右端をハイライトさせて表示しています。
画像上端を2本指タップ(PCならマウスオーバー)で、ページ指定・ズーム設定・表示モード選択を行うコントローラが表示されます。

毎度の事ながら無保証・無責任なので、転んでも泣かないかたのみご利用ください。
以下にいくつか、作業中に見付けたActiBookコンテンツサイトを列挙しておきます。ちなみに各サイトとも、ActiBookコンテンツだけでなくActionBrowserその他のコンテンツも混在していますが、URLやページデザインで違いがわかりますんで、何回か見ているうちに「これは見れる、これは見れない」がわかってくるでしょう。また、リンク先にはヲタや腐れの嗜好に耐性を持たない方々にとって不適切なコンテンツが含まれている可能性がありますので御注意くださいw
- スクエニ系: ガンガンオンラインの、イラストを含むほぼ全てのコミックビューワーコンテンツと、ヤングガンガン立ち読みコーナーの新しめのもの、等
- マッグガーデン: 立ち読みコーナーの全て(?)
- webKADOKAWA: 書籍とコミック&アニメの立ち読みコーナー。古めのものはブックマークレットでは未対応なActionBrowserなどのコンテンツになっているようです。
- まんがタイムきららweb: Web連載やコミック情報の「最新刊をちょい読み」
- ホビージャパン: HJ文庫の「ちょこっと立ち読み」や、ほびーちゃんねるコミックコーナー
- 新潮社: 「立ち読み」コンテンツの全て(?)
- リブレ出版: クロフネZEROのWebコミック等(『ソラナキ初音』『もえひめ』は非ActiBookコンテンツ)
- Fujisan.co.jp: 「ちら見する」アイコンの付いたコンテンツ全て(?)
- ジャイブ: コミックラッシュの、立ち読みマークの付いた作品等
javascript:(function(){
var as=document.evaluate("//a[@onclick]|//area[@onclick]",document,null,7,null);
for(var i=0;i<as.snapshotLength;i++){
var t=as.snapshotItem(i).getAttribute("onclick").replace("view.swf","_SWF_Window.html").replace("ActiBook.swf","_SWF_Window.html");
as.snapshotItem(i).setAttribute("onclick",t);
}
})();それにしてもActiBook開発元のスターティアラボさんは実に良い仕事をしておられます。きちんとデータモデルをアプリケーションから分離しておけばコンテンツの再利用が容易になるという良い見本です。物販リンクに関してもbook.xmlに表示位置を含めた全情報がそろっているのでHTML5化もラクチンということなんですね。今回はまだ対応出来ていませんが、時間を見付けてちゃっちゃと実装したいところです。おかげさまで楽しませていただいたのですが、ここのところ書籍費がえらいことになっております。欲しいものリストもがんがん増えています。ActiBook系はもちろん、他の立ち読みサイトでも「こんだけ美味しそうなところ見せられたら、もー、辛抱たまらんっす」というわけで、まさに思う壷状態になっております。『つぐもも』なんてもう、速攻で「ポチッとな」ですよ。プラグインフリーという心意気が、これまた素晴らしいじゃありませんか。これこそが「オープン」というものですよ。ウィンドウ最大化処理でバグッてるという点がちょっぴり鬱陶しいけど、そんなの気にしないのが真のギークってもんですw
それにひきかえ、FlashベースのくせにデフォのままだとMacでは見れないうえにコンテンツが暗号化されている某Y社なんかはさっさと悔い改めやがっちゃってくださいませと思うわけです。というわけで竹本先生におかれましては、こんな逸失利益産みまくりな間抜けとは早々に手をお切りになることを、衷心からお願い申し上げる次第であります。
ラベル:
iPad,
Mobile Safari,
programming,
竹本泉,
電子書籍
2010年8月8日日曜日
[Programming] Mobile SafariでガンガンONLINEのFlashコンテンツを読むためのブックマークレット
先日、ガンガンONLINEのコンテンツ画像をZIPで保存するFirefox add-onを作ったんですが、画像を見るだけならブックマークレットでも出来そうだというのがわかりましたんで、とりあえず作ってみましたよ。
コンテンツビューワが呼び出されるページ(URLが_SWF_Window.htmlで終わる)は、Flashが動かないので当然画面が真っ白なままなのですが、そこでこのブックマークレットを呼び出すとページ情報(book.xml)を取得して各ページの画像を表示出来るようになります。画像の左端をクリックすると次のページが、右端だと前のページが表示されます。スワイプだとイベントハンドラ書くだけでコードが膨れ上がるんで普通にonclickにしましたわw
Mobile Safariへのブックマークレット導入法はググればいくつか出て来ますんでそちらを参照してください。それにしても、もっと簡単に導入できんもんですかね。簡単な導入法がsyncだけってのは、あまりにも御無体ってもんですわ。
2010/08/10 追記:若干修正しました
・画像の左端をタップ→次のページ
・画像の左端を2本指でタップ→最後のページ
・画像の右端をタップ→前のページ
・画像の右端を2本指でタップ→最初のページ
javascript:var%20_G04={imageList:[],ix:0,serviceType:"",part:[{u:"x1y1.jpg",dx:0,dy:0},{u:"x1y2.jpg",dx:0},{u:"x2y1.jpg",dy:0},{u:"x2y2.jpg"}],init:function(){document.body.bgColor="#eeeeee";document.body.innerHTML="<div%20id='fwd'%20onclick='_G04.forward()'%20ongesturestart='_G04.last()'%20style='position:absolute;left:0px;top:0x;width:100px;z-index:99;'></div><div%20id='bwd'%20onclick='_G04.backward()'%20ongesturestart='_G04.top()'%20style='position:absolute;top:0x;width:100px;z-index:99;'></div><div%20id='picture'%20style='position:absolute;left:0px;top:0px;width:768px;height:1024px;z-index:1;'></div><div%20id='indicator'%20style='position:absolute;-webkit-border-radius:16px;top:16px;width:200px;z-index:99;opacity:0.8;background-color:#aaaaaa;font-family:Copperplate,sans-serif;font-size:48px;font-style:bold;color:white;text-align:center;vertical-align:middle;'></div>";var%20u=document.baseURI;_G04.serviceType=_G04.getServiceType(u);if(_G04.serviceType=="unknown"){return;}var%20x=u.match(/(.*)_SWF_Window\.html.*/)[1]+"books/db/book.xml";var%20r=new%20XMLHttpRequest();r.open("GET",x,false);r.send(null);var%20d=(new%20DOMParser()).parseFromString(r.responseText,"text/xml");var%20z=d.getElementsByTagName("PageSize");var%20zoom=1;if(z.length){for(var%20i=0;i<z.length;i++){var%20v=z[i].getAttribute("zoom");if(v>zoom){zoom=v;}}}else{if(_G04.serviceType=="actibook1"){zoom=2;}else%20if(_G04.serviceType=="actibook2"){zoom=1.45;}}var%20p=d.getElementsByTagName("page");for(var%20i=0;i<p.length;i++){switch(_G04.serviceType){case%20"actibook1":case%20"actibook2":_G04.imageList.push(x.match(/(.*books\/)/)[1]+"images/"+zoom.toString()+"/"+p[i].getElementsByTagName("number")[0].firstChild.nodeValue+"."+p[i].getElementsByTagName("type")[0].firstChild.nodeValue);break;case%20"actibook3":_G04.imageList.push(x.match(/(.*books\/)/)[1]+"images/1/"+p[i].getElementsByTagName("image")[0].firstChild.nodeValue+"/");break;}}var%20h=d.getElementsByTagName("h")[0].firstChild.nodeValue*zoom;var%20w=d.getElementsByTagName("w")[0].firstChild.nodeValue*zoom;document.getElementById("picture").style.height=h+"px";document.getElementById("picture").style.width=w+"px";document.getElementById("fwd").style.height=h+"px";document.getElementById("bwd").style.left=w-100+"px";document.getElementById("bwd").style.height=h+"px";document.getElementById("indicator").style.left=w/2-100+"px";if(_G04.serviceType=="actibook3"){var%20c=document.createElement("canvas");c.width=w;c.height=h;c.id="tc";document.getElementById("picture").appendChild(c);}_G04.draw();},getServiceType:function(url){if(url.match(/_SWF_Window\.html.*$/)){var%20m=url.match(/\/\/(.+?)\/.+\/_SWF_Window\.html(.*)/);if(m[1].match("square-enix")){return%20"actibook1";}else%20if(m[1].match("kadokawa")){if(m[2]){return%20"actibook2";}else{return%20"actibook3";}}else{return%20"actibook1";}}return%20"unknown";},forward:function(){if(_G04.ix<_G04.imageList.length-1){_G04.ix++;_G04.draw();}},backward:function(){if(_G04.ix>0){_G04.ix--;_G04.draw();}},top:function(){_G04.ix=0;_G04.draw();},last:function(){_G04.ix=_G04.imageList.length-1;_G04.draw();},draw:function(){switch(_G04.serviceType){case%20"actibook1":case%20"actibook2":document.getElementById("picture").innerHTML="<img%20src="+_G04.imageList[_G04.ix]+">";break;case%20"actibook3":var%20ctx=document.getElementById("tc").getContext("2d");var%20img=new%20Image();img.src=_G04.imageList[_G04.ix]+_G04.part[0].u;img.onload=function(){ctx.drawImage(img,0,0);var%20dx=img.width;var%20dy=img.height;for(var%20i=1;i<4;i++){_G04.part[i].dx=(_G04.part[i].dx!=undefined)?_G04.part[i].dx:dx;_G04.part[i].dy=(_G04.part[i].dy!=undefined)?_G04.part[i].dy:dy;var%20aimg=new%20Image();aimg.src=_G04.imageList[_G04.ix]+_G04.part[i].u;aimg.onload=function(){var%20ci=arguments[0];return%20function(){ctx.drawImage(this,_G04.part[ci].dx,_G04.part[ci].dy);};}(i);}};break;}window.scroll(0,0);document.getElementById("indicator").innerHTML=_G04.ix+1+"%20/%20"+_G04.imageList.length;setTimeout(function(){document.getElementById("indicator").innerHTML="";},2000);}};_G04.init();コンテンツビューワが呼び出されるページ(URLが_SWF_Window.htmlで終わる)は、Flashが動かないので当然画面が真っ白なままなのですが、そこでこのブックマークレットを呼び出すとページ情報(book.xml)を取得して各ページの画像を表示出来るようになります。画像の左端をクリックすると次のページが、右端だと前のページが表示されます。スワイプだとイベントハンドラ書くだけでコードが膨れ上がるんで普通にonclickにしましたわw
Mobile Safariへのブックマークレット導入法はググればいくつか出て来ますんでそちらを参照してください。それにしても、もっと簡単に導入できんもんですかね。簡単な導入法がsyncだけってのは、あまりにも御無体ってもんですわ。
2010/08/10 追記:若干修正しました
・画像の左端をタップ→次のページ
・画像の左端を2本指でタップ→最後のページ
・画像の右端をタップ→前のページ
・画像の右端を2本指でタップ→最初のページ
ラベル:
iPad,
Mobile Safari,
programming,
ガンガンONLINE,
電子書籍
2010年7月22日木曜日
[Programming] Google Books の画像を ZIP でまとめる Firefox アドオン
寝転がって iPad で本や楽譜を読む日々なのであります。そんな中、Google Books で公開されている LIFE や Popular Science 等のアーカイブはまさに宝の山なのですが、Mobile Safari ではスクロールバーが表示されないので読めないという状態になっています(正確に言えば←→ボタンがあるので、これで読み進めることは可能なんですけど、これがまたエラく小さいんで押しづらいんですわ)
なんらかの手段によりダウンロードして読むしか無いというわけですが、Google Book Downloader はWindows 専用ですし、グリモンの Google Book Downloader スクリプト+ FlashGot もダウンロードの自動化は可能なものの、ZIPにまとめる作業が要ります。
幸いなことに Firefox アドオンでは nsIZipWriter が使えますので、ここはひとつ作ったれということで作ってみました。グーグル先生に怒られそうな機能ですし、Mozillaのアドオンギャラリーに登録するのは結構ダルいので、野良 XPI として Dropbox の公開フォルダに入れておきます → googleBooksZipper.xpi
なお、手許に Windows 環境が無いので動作検証はしていないのですが、OS の違いを吸収する処理(パスデリミタの切替くらいしか無いんですけどね)は行っているので、多分、Windowsでも動作するでしょう。
単機能なアドオンなので説明は不要でしょうが、一応、取説的なものを以下に書いておきます。
googleBooksZipper.xpiをインストールすると、コンテキストメニューに

と、現在開いている本を ZIP で保存するという項目が追加されます。この項目を選ぶと
と、ZIPファイルの保存先を聞いて来ますので、お好みの場所を選んで「保存」ボタンを押すと、

と、小さなウィンドウが開きます。このウィンドウでは出力する画像の横幅(ピクセル数)が設定出来ます。デフォルトとして1024が設定されていますので、お好みで変えてください。"close this dialog when completed" というチェックボックスがありますが、これにチェックを入れておくと、処理終了後にこのウィンドウを自動的に閉じるようになります。
設定後、ZIP ボタンを押すと処理が開始され、進捗が表示されます。処理の手順としては、まず各ページの画像URLをGoogleに問い合わせます。

続いて、各画像をダウンロードしテンポラリファイルに保存します。

各画像のダウンロードが終わると ZIP 処理が行われ、完了すると

と、その旨が表示されます。これで ZIP ファイルが所定の場所に出来ているはずなので、あとは CloudReaders など、ZIPファイルに対応したリーダーに放り込んで読みましょう。
なお、私は books.google.com を利用しているのですが、books.google.co.jp だと画像のダウンロードが中断してしまうことが多々あるようです。原因は不明なのですが、中断した場合はいったん close して最初からやり直すしか今のところ手がありません。一見したところアクセス制限してるぽいので、ウェイトを入れる必要があるのかもしれませんね。
なんらかの手段によりダウンロードして読むしか無いというわけですが、Google Book Downloader はWindows 専用ですし、グリモンの Google Book Downloader スクリプト+ FlashGot もダウンロードの自動化は可能なものの、ZIPにまとめる作業が要ります。
幸いなことに Firefox アドオンでは nsIZipWriter が使えますので、ここはひとつ作ったれということで作ってみました。グーグル先生に怒られそうな機能ですし、Mozillaのアドオンギャラリーに登録するのは結構ダルいので、野良 XPI として Dropbox の公開フォルダに入れておきます → googleBooksZipper.xpi
なお、手許に Windows 環境が無いので動作検証はしていないのですが、OS の違いを吸収する処理(パスデリミタの切替くらいしか無いんですけどね)は行っているので、多分、Windowsでも動作するでしょう。
単機能なアドオンなので説明は不要でしょうが、一応、取説的なものを以下に書いておきます。
googleBooksZipper.xpiをインストールすると、コンテキストメニューに

と、現在開いている本を ZIP で保存するという項目が追加されます。この項目を選ぶと

と、ZIPファイルの保存先を聞いて来ますので、お好みの場所を選んで「保存」ボタンを押すと、

と、小さなウィンドウが開きます。このウィンドウでは出力する画像の横幅(ピクセル数)が設定出来ます。デフォルトとして1024が設定されていますので、お好みで変えてください。"close this dialog when completed" というチェックボックスがありますが、これにチェックを入れておくと、処理終了後にこのウィンドウを自動的に閉じるようになります。
設定後、ZIP ボタンを押すと処理が開始され、進捗が表示されます。処理の手順としては、まず各ページの画像URLをGoogleに問い合わせます。

続いて、各画像をダウンロードしテンポラリファイルに保存します。

各画像のダウンロードが終わると ZIP 処理が行われ、完了すると

と、その旨が表示されます。これで ZIP ファイルが所定の場所に出来ているはずなので、あとは CloudReaders など、ZIPファイルに対応したリーダーに放り込んで読みましょう。
なお、私は books.google.com を利用しているのですが、books.google.co.jp だと画像のダウンロードが中断してしまうことが多々あるようです。原因は不明なのですが、中断した場合はいったん close して最初からやり直すしか今のところ手がありません。一見したところアクセス制限してるぽいので、ウェイトを入れる必要があるのかもしれませんね。
ラベル:
Firefox,
Google Books,
iPad,
programming,
電子書籍
2010年5月30日日曜日
[Apple] 譜面台にiPad

ウケ狙いでやってみたのですが、結構使えるんですわコレが。譜面として使うだけでなく、マイナスワンコンテンツなんかもiPadに入れときゃそのまま使えるわけで、機材が非常にすっきりしましたよ。この写真ではパート譜を出しているわけですが、オケ聴くときなんかは、当然、膝の上に置いてスコアを表示するわけです。「うは、これハース版やった。オレ耳悪過ぎw」といった痛し痒しもあって、なかなか楽しめました。
バランスと利便性のことを考えるならば、こりゃもうあれですな、もう1台追加で買うしかないですな。でもって、iPad#1には偶数ページ、#2には奇数ページを表示し、ページ送りイベントは Bluetooth経由でやりとりするということでどうでしょう?。うは、仕様書書きたくなって来た。嘘ですw。見開きタイプのデバイスはずっと前からコンセプトレベルで存在していたわけですから、その登場を待つというのが得策ですね。今やこんなのもあるわけですから、A4・B5といったサイズバリエーションのある汎用譜面というか汎用リーダーが出てくるのもそう遠くないでしょう。あとは書き込みへの対応ですな。紙と鉛筆のユーザビリティに追いつくまで、あと何十年かかりますかね。アルファベット文化圏限定だったら、気合い入れりゃ1年で追いつけそうですけどねw。
「家電のコンピュータ化」「コンピュータの家電化」どっち?というのは前世紀から議論が続いているテーマなわけですが、結局のところこの2つは車の両輪であり、家電(というかコモディティ)がコンピュータ面をするフェーズとコンピュータがコモディティ面をするフェーズがある、というだけのことです。ちなみに今どっちのフェーズなの?という点については単純にコストを見ればわかります。コンピュータががんがん安くなる時期は「コンピュータのコモディティ化」フェーズだってことですね。久夛良木氏は「家電のコンピュータ化」しか考えていなかったのでコケたわけですが、iPodからこのかたコモディティ面をしたコンピュータが大挙して押し寄せて来た時期に、その逆を行ったわけですから、当然っちゃ当然なのであります。コモディティの一典型である「譜面」という顏をしたiPadをいま目の前にして、IT小作をやっていた頃に考えていたそんな諸々の妄想が蘇り、感慨深いものがございます。
以上、電子書籍には活字や漫画だけじゃなくこういったジャンルもあるんすよ、ということで、関連各社の皆様方におかれましては是非一度ご検討いただきたく存じま す。
2010年4月15日木曜日
2010年4月5日月曜日
[メモ] 結局こういうことです
ハレの読書は紙の本でします。ケの読書はiPadでします。「瓦」版の延長線上にあるものは全て、文字通り、画面を持った "slate" で読まれるようになるってことです。えぇ、買いましたよ、『ばらかもん』も『男子高校生の日常』も。これぞ『FREE』の思う壺ってヤツですな。『リューシカ・リューシカ』はやく出ないかな。
ラベル:
iPad,
ガンガンONLINE,
メモ,
電子書籍
2010年2月5日金曜日
[37signals] 人々に「私ってアホなん?」と感じさせるコンピュータなんて作るべきじゃない
(原文: Computers shouldn't make people feel like idiots)
iPad は力不足だと言う人が、まぁ想定の範囲内ではあるが、居るようだ。「キーボードは必須だよね」「バッテリーは取り外し可能でなきゃね」「マルチタスク可能でなきゃね」といった類の。
だが、こういった反動に対する興味深い反動が存在している(メタ反動ってやつか!)。この議論は、技術オタクが普段はネタにしないような不愉快極まる現実に関する率直な議論を、人々にもたらした。「一般の人はコンピュータの使い方なんて知らないよ」「バカとはとても言えないような人でもそうなんだぜ」「そういう人が何百万も居るんだよ」「立派な大人でもそうなんだ」「時代遅れにも程があるだろ」といった感じの。
(以下の引用における太字強調は私が行ったものである)
Fraser Speirs は "Future shock" でこう書いている:
Apple はこうした人々を取り込むためならば先進的な機能の幾つかを放棄しても充分な見返りがあると判断した。アプリケーション作製に携わるものならば誰であれ、これと同じ道を歩もうと考えるのが賢明というものであろう(注意:これはコンピュータ・アプリケーション作製についてだけでなく、そんな分野のことは知らんと言う人々について、より一層あてはまることだ。コンピュータやアプリを良く知っている人についても同様のことが言える。なぜならこのやり方のほうが「ベター」なのだから。)
まずは製品を利用出来るようにして欲しいという、人びとにとって何にもまして重要な事柄を放棄して、コードや特定の UI の一部をいじくりまわしたり愛着のある機能を追加したりするのに過大な努力を注ぎ込むと言うのも、まぁよかろう。だが、人々がその最初の関門をクリア出来なければ、その先なんて無いんじゃないか?
人工降雪機を動かし始めるのも良いだろう。回転競技のコースを完璧に組み立てるというのも良いだろう。モーグルのコブ斜面を正確に形作るというのも良いだろう。だがもし人々がリフトに乗ることすら出来ないのであれば、レースなんて出来やしない。
訳者コメント:
本件に関してはこの記事も実にためになる良い記事です。iPad は "The Computer For the Rest of Us" の第 n 弾なわけでして、いわゆるガジェットオタクほど iPad のことを非難するというのは、ある意味、当然なわけです。そんな人に対して Jobs はこう返すわけですがね「ほんならオマイら一生 NetBook で Windows 使っとけやw」
iPad は力不足だと言う人が、まぁ想定の範囲内ではあるが、居るようだ。「キーボードは必須だよね」「バッテリーは取り外し可能でなきゃね」「マルチタスク可能でなきゃね」といった類の。
だが、こういった反動に対する興味深い反動が存在している(メタ反動ってやつか!)。この議論は、技術オタクが普段はネタにしないような不愉快極まる現実に関する率直な議論を、人々にもたらした。「一般の人はコンピュータの使い方なんて知らないよ」「バカとはとても言えないような人でもそうなんだぜ」「そういう人が何百万も居るんだよ」「立派な大人でもそうなんだ」「時代遅れにも程があるだろ」といった感じの。
(以下の引用における太字強調は私が行ったものである)
Fraser Speirs は "Future shock" でこう書いている:
ハイテクが大のオトナを子供扱いするという幼児化作用を目にするに付け、私はしばしば憂鬱になる。そこはハイテクが人々を支配下に置くために人々を子供時代に押し戻す世界であり、そこでは悪魔が、魔法や呪文やその土地の呪術師でしか対抗出来ない悪魔が、姿を現して人々を苦しめたり自由自在に姿を消すという中世さながらの世界だ‥‥Steven Frank はこう語っている:
本当の生産活動とは、余白の設定をすることなんかじゃないし、プリンタドライバをインストールすることでもないし、ドキュメントをアップロードすることでもないし、パワポのスライドを仕上げることでもないし、ソフトのアップデートをしたり OS の再インストールをすることでもない。
本当の生産活動とは、子供に教えたり、患者を癒したり、家を売ったり、道路の損傷状況を記録したり、路傍で車を修理したり、テーブルに座った人々の注文をまとめたり、家を設計したり、パーティのまとめ役をするといったことなのだ。
Apple ][ や C64 や Atari 400 のころからずっと、我々のやってきたことといえば機能の追加ばかりだった。機能を増やせば増やすほど売上が伸びた。何かを取り除くために歩みを止めてじっくり考えるなんてことは一度も無かった。Rob Foster は "iPadとおばあちゃんと市場の流れの変化について" でこう述べている:
「コンピュータを使いこなせない奴なんて知的障害者に決まってる」という考え方には(たとえそれが皮肉で言っているのだとしても)もううんざりだ。
「使い易い」ユーザインタフェースを持ったアプリケーションを我々が知恵を絞ってでっちあげたとしても、その御大層なアプリを ZIP ファイルやディスクイメージファイルからどうやって取り出せば良いのかわからない人々が何百万人と存在する。ダウンロードフォルダは一体どこにあるんだ、というのもある。それ以前に、フォルダって何のこと?っていうのすらある。もし我々が、DOS や AppleSoft からこのかた連綿と続いてきたパソコン進化史とともに歩んできたのでなかったら、そんな人々と同様のひどい混乱に陥るだろう。賭けても良いぜ。
例のキーノートスピーチの日、お義母さんがうちに来て、開口一番「おまえ例のiPad ってのを見たかい? 私でも使えそうに見えたんだけどねぇ。どうかねぇ?」こういったやりとりが見られるようになったと言うこと自体が良い兆候なのだ(訳注: iPad のもたらした良い兆候ということ)。我々のような、毎日コンピュータに関する細々とした事に取り囲まれて生きている者にしてみれば、そうでない人々の世界があるということはつい忘れられがちだ。コンピュータがわからないと言うのは彼らのせいじゃない。我々のせいなのだ。
私は完全に面食らった。彼女がコンピュータやテクノロジーの話をするなんてこれまで一度たりとも無かったからだ。コンピュータについては、どう見ても、我慢しながら使っているといったところだった。彼女のコンピュータへの接し方は、私がこれまで会話を交わしたことのある、コンピュータに興味のあるベビーブーム世代の大半において典型的にみられるそれだった。彼女はコンピュータで楽をしたいと望んでいたが、そのために乗り越えなければならない壁が彼女を挫折に導いていた。電子メールの使い方を学び、他にもいくつかの事をインターネットで学び‥‥まぁそのへんで終りだね。
私はずっと、コンピュータはあまりにも使いづらいと感じていたし、ファイルシステムなんてものをユーザに意識させるべきじゃないと感じていた。人とコンピュータの交流においては人に重きをおくべきだともね。
Apple はこうした人々を取り込むためならば先進的な機能の幾つかを放棄しても充分な見返りがあると判断した。アプリケーション作製に携わるものならば誰であれ、これと同じ道を歩もうと考えるのが賢明というものであろう(注意:これはコンピュータ・アプリケーション作製についてだけでなく、そんな分野のことは知らんと言う人々について、より一層あてはまることだ。コンピュータやアプリを良く知っている人についても同様のことが言える。なぜならこのやり方のほうが「ベター」なのだから。)
まずは製品を利用出来るようにして欲しいという、人びとにとって何にもまして重要な事柄を放棄して、コードや特定の UI の一部をいじくりまわしたり愛着のある機能を追加したりするのに過大な努力を注ぎ込むと言うのも、まぁよかろう。だが、人々がその最初の関門をクリア出来なければ、その先なんて無いんじゃないか?
人工降雪機を動かし始めるのも良いだろう。回転競技のコースを完璧に組み立てるというのも良いだろう。モーグルのコブ斜面を正確に形作るというのも良いだろう。だがもし人々がリフトに乗ることすら出来ないのであれば、レースなんて出来やしない。
訳者コメント:
本件に関してはこの記事も実にためになる良い記事です。iPad は "The Computer For the Rest of Us" の第 n 弾なわけでして、いわゆるガジェットオタクほど iPad のことを非難するというのは、ある意味、当然なわけです。そんな人に対して Jobs はこう返すわけですがね「ほんならオマイら一生 NetBook で Windows 使っとけやw」
2010年2月2日火曜日
[Apple] iPad が書籍を越えるのはいつか?
もちろん電子書籍リーダがすぐに代替品として役割を果たしうる分野はある。重たい辞書や山ほどの教科書を置き換えるものとして、というのがそれにあたる。だが、現行の紙媒体にはまだまだアドバンテージが有る。
ということで今回の iPad に関しては、Audio/Video 視聴におけるテキスト・ビジュアル要素(CDのオペラ対訳なんかにはぴったりだ)に関する UX 改善をメインとして直近のネタを消化しつつ、次世代書籍への踏み台として、本体だけでなくサーバサイドも含めた新たな読書 UX というものを考えていく素材としたい。やっとハイパーテキスト環境の本命が出てきた感じで、オラわくわくしてきたぞw
関連記事: [メモ] 電子書籍リーダーが花盛り
- 文庫本なんかは、そのモビリティの高さ・UI 完成度の高さ・解像度の高さ・消費電力の低さ等から言って、ほぼ最強である。少なくとも解像度で言えば、とりあえず一般的なカラー印刷品質であれば 350dpi は必要なわけで、iPad の 132dpi 程度では話にならない。
- 書き込みが出来ないうちは「自分の本」とは言えない。書き込み(マーキング)とは、コンテンツに対する個々人のコンテキスト付与であり、その名の通り「匂い付け」であり、それが出来ないうちは自分の本と呼ぶに値しない。
ということで今回の iPad に関しては、Audio/Video 視聴におけるテキスト・ビジュアル要素(CDのオペラ対訳なんかにはぴったりだ)に関する UX 改善をメインとして直近のネタを消化しつつ、次世代書籍への踏み台として、本体だけでなくサーバサイドも含めた新たな読書 UX というものを考えていく素材としたい。やっとハイパーテキスト環境の本命が出てきた感じで、オラわくわくしてきたぞw
関連記事: [メモ] 電子書籍リーダーが花盛り
2010年2月1日月曜日
[Apple] ω → α
敢えて iPad というまぎらわしい名前を付ける理由は、
- Jobs 爺さんボケちゃって、素で気付いていないから
- 実際のところ、まぎらわしいと感じているのは少数派だから
- 今後、iPod を iPad に統合して行きたいから
2010年1月29日金曜日
[Apple] 纏・絶・練・発
覚えているだろうか SONY のエアボードを。発表は2000年の夏だった。802.11b がじわじわと浸透しつつあった頃だ。あれから約10年。何故エアボードは iPad になれなかったのか。何故 SONY は Apple になれなかったのか。
一見、タイミングの違いだけのように思える。「先取りしすぎただけ」とか「運が悪かっただけ」というやつだ。だがそれ以上に大きいのは、やはりこの10年における両社のCE開発体質の違いなのだろう。
一見、タイミングの違いだけのように思える。「先取りしすぎただけ」とか「運が悪かっただけ」というやつだ。だがそれ以上に大きいのは、やはりこの10年における両社のCE開発体質の違いなのだろう。
Apple
「リソースを集中し、密かに事を進め、洗練させた上で、タイミングよく発表する」というイテレーションが、「製品作り」というミクロなサイクルと「世界作り」とでもいうべきマクロなサイクルの両方において、絶えること無く繰り返される。P.A. Semi 買収という、当時は奇妙に思われた施策も A4 という形できちんと全体像の中に現れてきた。さながらフラクタルにおける自己相似性のように部分と全体が呼応しているのだ。
SONY布石を軽んじて詰碁ばっかりやってるから負ける。全部勝とうとするから負けが込む。どうしてこうなった‥‥(AA略
ミクロにおいては「その場しのぎの製品作り」マクロにおいては「大局観の欠如によるランダムウォーク」ということで、見事に部分と全体が「負の調和」を見せている。2005年にエアボードの名称をロケーションフリーに改めたのは、こういった開発体質を如実に物語っていた。これは、名称の変更というだけではなく、エアボードの大きなコンセプトをロケフリという単一フィーチャーに矮小化する、という意思表明に他ならなかった。まぁ、お上に誉められた時点で「もうだめぽ」というのは明らかだったわけだが。
2010年1月28日木曜日
[Apple] やっぱり DORÉ かいw
Apple Special Event のムービーを見て茶ぁ噴いた(00:05:33 あたりから)
こんな小学生のイタズラ描きじゃなくてちゃんとしたコラ作っときゃ良かったw。やっぱりギュスターヴ・ドレのこの絵って、キリスト教文化圏においてかなり人口に膾炙した、こういうシチュエーションでは使い易い絵なんだな。
さて、iPadについては真面目な方々が真面目な議論をしてくださると思いますので、「小さなつづらを選べ」を座右の銘といたしております私といたしましては、ニッチな視点を2つ紹介させていただくに止めることに致します。
2. については「風が吹けば桶屋が云々」ぽいのだが、利用スタイルの変化という点から言えば、あながち笑い話でも無いような気がする。UX ってのは機械と人間のインタラクションが成り立つことではじめて生まれるわけですが、マシン側の要件は出揃いつつあるので、あとは人間側ということですな。
こんな小学生のイタズラ描きじゃなくてちゃんとしたコラ作っときゃ良かったw。やっぱりギュスターヴ・ドレのこの絵って、キリスト教文化圏においてかなり人口に膾炙した、こういうシチュエーションでは使い易い絵なんだな。
さて、iPadについては真面目な方々が真面目な議論をしてくださると思いますので、「小さなつづらを選べ」を座右の銘といたしております私といたしましては、ニッチな視点を2つ紹介させていただくに止めることに致します。
- iTunes LP / iTunes Extra の再評価
- 良いソファが欲しくなる
2. については「風が吹けば桶屋が云々」ぽいのだが、利用スタイルの変化という点から言えば、あながち笑い話でも無いような気がする。UX ってのは機械と人間のインタラクションが成り立つことではじめて生まれるわけですが、マシン側の要件は出揃いつつあるので、あとは人間側ということですな。
登録:
投稿 (Atom)

