簡易パスワード生成ブックマークレット ― 2010年01月21日 05時10分08秒
たいした話じゃないのだが
ちょっとWEPキーを生成したくなったので、ずいぶん前に取り上げた、Number#toStringで生成してみた。とりあえずはFirebugのコンソールでちょろっと実行して済ませたのだが、ちょっと思いつきがあったのでブックマークレットにしてみることに。
このリンクをクリックすると、数字とアルファベットの小文字のランダムな組み合わせで長さ16の文字列を生成。クリップボードにコピーできるよう、生成結果表示にはprompt()を使用。Firefox3.5/IE 5.5~8(IETester使用)/Opera9.6/Safari 4/Google Chrome 3で動作確認してます。
生成部分のコードは展開するとこんな感じ。
(function(p) { var s = ''; with(Math) { while(s.length < p) s += floor(random() * pow(2, 32)).toString(36) } return s.slice(-1 * p); })(16);思いつきってのは、生成部分でfloor/random/powと、Mathメソッドの利用頻度が高いので「withでMath囲えば短くなるんじゃね?」ってとこだったんだけど、やってみたら3文字しか稼げてないし。まぁ可読性はいいような気がするんだけども。
36進数の生成は、以前capture.tumblr.jsの改造ときはMath.random()をnew Date().valueOf()で持ち上げてからピリオドを落とすやり方してたんだけど、今回は2^32で持ち上げた結果の実数部を切り捨てにしてみた。そのほかは、まぁシンプルですな。
もうちょっとだけ強度を上げてみる
これでも間に合わせにはいいかなと思うんだが、どうせならアルファベットは大文字小文字の混在にしたいな、と。で、やってみた。
展開すると、こんな感じ。(function(p) { with(Math) { var s = '', r = random, f = floor, i; while(s.length < p) s += f(r() * pow(2, 32)).toString(36); s = s.slice(-1 * p).split(''); for(i = 0;i < p;i++) if(f(r() * 10) % 2) s[i] = s[i].toUpperCase() } return s.join('') })(16);複数回出現するMathメソッド(floorとrandom)のエイリアスを作っちゃってるのでちょっと比較しづらいんだけど、手を入れた部分は
for(i = 0; i < p; i++)の部分で、ここで1文字づつスキャンして、約50%の確率でtoUpperCase()による大文字変換をしてます。あと文字数短縮のためにvarを1回で済ませてたり。
実用性があるかはわからんのだが
これらのリンクをブックマーク登録しておけば、思い立ったときにランダムな文字列を生成できます。て、そうしょっちゅう需要があるものでもないんだろうけど。
「サーバサイドJSのまとめ」ちょっぴり更新。 ― 2009年12月01日 03時45分32秒
おお?エディタ? ― 2009年11月17日 02時58分48秒
グリス塗りなおさなかったら、ThinkPadが起動しなくなったワケだが。 ― 2009年10月18日 05時03分53秒
ファンの異音があったので...
自宅のメイン機として使用しているThinkPad T40。ちょっと前からカリカリとCPUファンが異音を立てる。
まぁ、埃かなにかを巻き込んでる程度だろうから放っておいてもよかったんだけど気になるのでバラして掃除してみることに。
ThinkPadは保守マニュアルが公開されているので、どこをどうバラせば目的のアセンブリに手をつけられるかわかりやすいので、CPUファンアセンブリを取り外すのにそれほど苦労はなかった。
んで、軽く掃除したらちょっとした埃の塊がでてきたので、それを取り除いてから元に戻した。
なんか、熱い気がするのだが。
電源を入れてみると、まだ多少やかましいようだけどさっきまでよりはマシになったので、バラしたかいがあったなーとかのんびりしていたのだが、なんだかいつもより本体が熱い気がする。ん、なんかイヤな予感。
で、案の定というか、ちょっと負荷をかけたら予告なく「ちゅ〜ん」という音と共に電源が落ちた。慌てて電源を入れなおしてみたのだが、XPのロゴがでたあたりでやはり「ちゅ〜ん」。まずい。
熱対策なめすぎてました。
何度か電源を入れなおしてみるものの、やはりXPのロゴあたりで落ちるので、システムボードが逝っちゃったのかとあせったが、しばらく放置してから試すと、ちゃんと起動したので、多分、熱。
ThinkPadのCPUファンアセンブリは、ヒートシンクの役割もあるので、実は裏面にCPUグリスが塗ったくってあったんだけど、手持ちになかったこともあり「まぁ、大丈夫だろ」てな感じで、そのまま戻してたわけなんですよ。
以前懲りてたはずなんだけど、やっぱりCPUにはグリス塗っとかないと、ね。あー、買いに行かなきゃ。
Komodo 5.2.0a1が不思議すぎる件。 ― 2009年09月04日 03時58分25秒
別にここんとこサボってた埋め合わせってんでもないけど、本日2本目のネタ。
アップデートチェックのナゾ
なんかね、会社のメインPCでKomodo Editのアップデートチェックがね、「5.2.0 Alpha 1見っけた」とか言ってきたんですよ。
リリースノート見てると、パフォーマンスがよくなった風味な記述があるので使ってみたいんだけど、なにをいうにもアルファ版、あんまり環境壊したくないのでサブ用途で使ってるノートPCのほうにでも入れてみるかと思って、そっちで[Help] - [Check for Updates...]してみたら、こっちでは「5.1.4見っけた」とか言うんですよ。5.1.4は現在の最新安定版ね。
ノートPCのほうは更新サボってて5.1.3のまんまだもんで、「あー、5.1.4入れないと5.2入れらんないのかしら」とか思って、いったん進められるがままに5.1.4にアップデートしてからもう一度チェックしてみたら、今度は「アップデートなぞ、見つからん」とかそっけない。
うん、さっぱり意味わからん。
そんでも試してみたいよなぁ、
と思うのが、人情。しょうことなしに手動ダウンロード→インストールを試みるべくここから.msi落としてインストールしてみたわけです。
で、起動してみると、「Platform version ‘1.9.0.11’ is not compatible」なんてエラーがでて、メインウィンドウすら表示されない。なんでもmaxVersionが「1.9.0.6pre」になってるので、ってのが原因みたい。しかし、いくらアルファ版とはいえ起動すらできないってのはイマドキどうよ。インストールはできたのに。
それでも、それでも試して見たいよなぁ、
とか思い込んじゃったのでエラーメッセージを元に検索したところこんな記事が見つかった。
これはFirefoxでの事例らしいんだけど、なんかapplication.iniとやらにくだんの「maxVersion」やらの設定があるらしいので、インストールディレクトリから探してみたら [インストールdir]/lib/mozilla/application.ini があって、これに確かに「1.9.0.6pre」との記述を発見。
よっしゃ、これを「1.9.0.11」とかにでっち上げればいいんだろ、と思ってやって見た。さて、起動。
...orz
今度はね、見事にメインウィンドウが表示されたんですよ。ちゃんと設定ファイルも引き継いでるので、Recent Projectsとかツールボックスとかもそのまんま残ってるんですよ。こうなると、正常だと思うじゃないですか。
ところがね、プロジェクトからファイル開いてみたらね、「Komodo was unable to open the file」だって。これ、「Open Komodoがどうにも使えない件」でさんざっぱら見かけたメッセージじゃん。なんだよ、それ。orzうすうす無駄とは知りながら、[File] - [Open...] - [File]から開いてみたり、違うエンコードのファイル開いてみたりと悪あがきしたものの、やっぱりエラー。
かろうじて[File] - [New] - [New File...]ではエディタウィンドウが表示されるところまでたどり着けたんだけど、なんだかviエミュレーションが動いてない。なんだよ、それ。orz
そんでも、エディタ部分をクリックしたらviエミュレーションが動き出したので、適当に文字入力を試したら、こんどは Ctrl + H(バックスペースの機能を割り当てて使ってる)した途端に見事クラッシュ。いまどきキー入力ごときでアプリケーションクラッシュて。orz
結論:使えねー
そういやpreference画面でもフォント名の表示が消し飛んでたり、構文強調設定のプレビューでコードがまったく表示されてなかったり、どうもOpen Komodo立ち上げ直後みたいに、マルチバイト言語への対応が著しく悪い感じ。
まぁ、まだ最初のアルファ版だし、無償で使わせてもらってるしで仕方ないっちゃそうなんだけど、とりあえず使えん状態ですな。
それにしても、a1が7/31リリースなのでもう1ヶ月以上経ってるんですが、a2はまだなんだろか。
最近のコメント