2012年1月22日

TomblooでTwitpicが動かないのでとりあえずFixのパッチ

Firefox アドオン Tombloo のパッチです。

機能概要

Tombloo から Twitpic にポストできなくなってたので
とりあえず動くようにして、あとアイコンが https のほうじゃないと 403 だったからそれも修正したパッチ。

あまり確認してないので、あとで本体がアプデで修正したらパッチ削除したほうがいいです。

パッチの削除がわからなかったら、
パッチ一括アップデートぱっち で削除もできます。


パッチ (Download or Update):

インストール/アップデート:

上のパッチリンクを
右クリック→「Tombloo」→「Tomblooパッチのインストール」でインストール/アップデート。


※直接右クリックからインストールできない場合:

できない場合は

「Tomblooパッチのインストールに失敗しなくなるパッチ」 のパッチ/記事をインストールもしくは参照ください。

レポジトリ

2012年1月11日

HTML5 File APIでドラッグ&ドロップのサンプル-Pot.js+PotLite.jsリリースノート

Pot.js 1.11PotLite.js 1.28 リリースしました。


主な新機能として、HTML5 の File API を使った
ファイルのドラッグ&ドロップ を扱う Pot.DropFile を実装しました。

Pot.DropFile は FileReader でドロップされたファイルをアップロードしたり
内容やサイズを取得してその場で処理することが可能です。


HTML5 とドラッグ&ドロップイベントをサポートしてるブラウザ (Firefox, GoogleChrome, Safari) で
このブログ内に、デスクトップなどから画像やテキストなどの適当なファイルをドロップしてみてください。

ここにドロップされたファイル内容が表示されます。





ソースコード

このサンプルのソースコードです。
DOM ノードを作成するのにあたって jQuery を使用しています。

HTML のソース:
  1. <div id="dropfile-container"  
  2.      style="border-color: #ccc; border-style: dashed; border-width: 1px 0 1px 0; margin: 10px;">  
  3.     ここにドロップされたファイル内容が表示されます。  
  4. </div>  
  5. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>  
  6. <script src="http://api.polygonpla.net/js/pot/1.11/pot.min.js"></script>  

JavaScript のソース:
  1. $(function () {  
  2.   
  3.     // ドロップされた結果を表示する div  
  4.     var targetId = '#dropfile-container';  
  5.   
  6.     // ドロップ用のパネルを作成  
  7.     var panel = $('<div/>').css({  
  8.         position        : 'fixed',  
  9.         left            : '10%',  
  10.         top             : '10%',  
  11.         width           : '80%',  
  12.         height          : '80%',  
  13.         minHeight       : 200,  
  14.         background      : '#ff8cd3',  
  15.         zIndex          : 9999999,  
  16.         display         : 'table',  
  17.         textAlign       : 'center',  
  18.         WebkitBoxShadow : '1px 1px 10px #333',  
  19.         MozBoxShadow    : '1px 1px 10px #333',  
  20.         boxShadow       : '1px 1px 10px #333'  
  21.     })  
  22.     .append(  
  23.         $('<div/>')  
  24.             .css({  
  25.                 display       : 'table-cell',  
  26.                 color         : '#fff',  
  27.                 fontWeight    : 'bold',  
  28.                 verticalAlign : 'middle',  
  29.                 fontSize      : '160%'  
  30.             })  
  31.             .text('ここにファイルをドロップします')  
  32.     )  
  33.     .hide()  
  34.     .appendTo('body');  
  35.   
  36.     // ファイルの情報を表示する関数  
  37.     var showFileInfo = function(name, size, type) {  
  38.         $('<div/>')  
  39.             .text(name + ' (' + type + ' ' + size + 'bytes)')  
  40.             .appendTo(targetId);  
  41.     };  
  42.   
  43.     // ----- ここから処理の中心 -----  
  44.     // 設定と共にインスタンスを生成  
  45.     var dropFile = new Pot.DropFile(panel, {  
  46.         // メッセージを表示すべき時  
  47.         onShow : function() { panel.show() },  
  48.         // メッセージを非表示にすべき時  
  49.         onHide : function() { panel.hide() },  
  50.         // ドロップ時の処理  
  51.         onDrop : function(files) {},  
  52.         // 画像がドロップされた時  
  53.         onLoadImage : function(data, name, size, type) {  
  54.             showFileInfo(name, size, type);  
  55.             $('<img/>')  
  56.                 .attr({src : data})  
  57.                 .css({maxWidth : 500, maxHeight : 500})  
  58.                 .appendTo(targetId);  
  59.         },  
  60.         // テキストがドロップされた時  
  61.         onLoadText : function(data, name, size, type) {  
  62.             showFileInfo(name, size, type);  
  63.             $('<textarea/>')  
  64.                 .val(data)  
  65.                 .css({width : '90%', height : 300})  
  66.                 .appendTo(targetId);  
  67.         },  
  68.         // 不明なファイルがドロップされた時  
  69.         onLoadUnknown : function(data, name, size, type) {  
  70.             showFileInfo(name, size, type);  
  71.             $('<textarea/>')  
  72.                 .val(data)  
  73.                 .css({width : '90%', height : 300})  
  74.                 .appendTo(targetId);  
  75.         },  
  76.         // ドロップされたファイルが読み込めた時 (このときアップロードも可能)  
  77.         onLoadEnd : function(files) {  
  78.             // 今回は未使用  
  79.             /* 
  80.             this.upload( 
  81.                 'http://www.example.com/', 
  82.                 'dropfiles' 
  83.             ).then(function(res) { 
  84.                 alert('finish upload.\nresponse:\n\n' + res.responseText); 
  85.             }); 
  86.             */  
  87.         }  
  88.     });  
  89. });  

Pot.js / PotLite.js

Pot.js は非同期イテレータと文字列処理を中心とした JavaScript ライブラリです。

Web ブラウザ上や Node.js 上、 UserScript や XUL 上で動作します。
この例のような DOM や HTML5 File API が含む処理は Node.js などの環境では意味がありませんが
テキスト処理やイテレータなどを利用するメリットがあります。
とくに非同期処理を扱う Deferred オブジェクトにより作業効率が向上すると思います。

PotLite.js は Pot.js の非同期な部分だけを抽出したライトバージョンです。

ダウンロード

マニュアル

マニュアルは 2012-01-11 現在、まだすべてのオブジェクトの解説ができてません。。

その他の情報についてはマニュアルから参照ください。


レポジトリ







Tomblooの「アカウントの切り替え」にSoundCloudを追加するパッチ

Firefox アドオン Tombloo のパッチです。
追記
SoundCloud アカウント切り替えパッチは CAPTCHA 認証の影響で廃止しました

機能概要

Tombloo の 「アカウントの切り替え」 ダイアログに SoundCloud を追加します。


注意点

https じゃないとアカウント情報が取得できない環境があります。
その場合、 https://soundcloud.com/login?ref=top から
入力を記憶してログインすると有効になります。


あと、 「アカウントの切り替え」ダイアログを内容サイズに合わせてリサイズするTomblooパッチ のほうも
アップデートしました。
アップデートというか、サービス切替時に
別 window オブジェクトの非同期処理がうまく拾えてなかったので
ソート機能を一時的に停止してます。


パッチ (Download or Update):

インストール/アップデート:

上のパッチリンクを
右クリック→「Tombloo」→「Tomblooパッチのインストール」でインストール/アップデート。


※直接右クリックからインストールできない場合:

できない場合は

「Tomblooパッチのインストールに失敗しなくなるパッチ」 のパッチ/記事をインストールもしくは参照ください。

レポジトリ

2012年1月5日

こう言い換えろ→論文に死んでも書いてはいけない言葉→こう言い換えるマシーン(β)作りました


久しぶりにツールっぽいものを。

こう言い換えろ→論文に死んでも書いてはいけない言葉30 読書猿Classic: between / beyond readers を発端に
論文やブログなどの文章校正マシーンを作ってみました。

かなりやっつけです。


独自に校正パターンを組んで、文章を変換し
どの部分が構成されたか確認できます。

自分のブログ文章とか、どこか適当なところから文章をコピペしてみると
どんなものかわかると思います。

デフォルトのパターンは 上リンクの 「こう言い換えろ→論文に死んでも書いてはいけない言葉30」
の変換マップが元となってます。


ほとんどは JavaScript で処理してますが、
ちょっとだけセッションしてて変換回数の多いプリセットを共有できるようになってます。
あまり大量に保持してないので変動するかと思います。




不明な点、要望やバグや感想などありましたら
@polygon_planet や、またはメールでなんでも伝えてください。




他の開発物は以下の GitHub レポジトリに集め中。

GitHub レポジトリ


ここにファイルをドロップします