作品

はてなブログのMT形式バックアップデータを解析して,見出し数や特定のタグ数を記事ごとにカウントするJavaScriptコード

はてなブログのバックアップデータは,MovableType形式だ。 このMTデータを解析して,記事ごとに特定のタグがいくつあるか?を 一覧表に集計するJavaScriptフォーム。 下記のフォームをベースに改良した。 一般テキストからテンプレートマッチングで項目を一…

「高く評価した動画」の一覧リストを取得するWSHバッチ

自分が高く評価した動画の一覧を取得するバッチ。

外国語などの入力フォーム・キーボードHTMLを簡単に生成するJavaScript

「文字入力フォーム」を簡単に作るためのJavaScriptコード。 キーボードUIを楽に作れる。 キーとして表示したい文字は,HTML内に列挙しておくだけですむ。 ここでは,例として「タイ語の発音記号ローマ字」をキーボード表示してみる。 動作デモ タイ語の発音…

JavaScriptで,重いループ処理を軽く非同期で実行できるライブラリ ver0.1

以前,ブラウザ上ですごく重いテキスト処理を実行した時に, ササッと作ったライブラリがあった。 今回,それを改良して独立させた。 複数行のテンプレートマッチング繰り返しで,項目を一覧表形式で抽出するJSコード (改良版) - ソフトウェア勉強ログとサ…

「JavaScriptで整数問題を記述するライブラリ」を独立させてちょっと改良

ちょっと改良。 JavaScriptで整数問題を記述するAPIを改良:素数未満の素数の個数が素数であるような場合を求めよ - ソフトウェア勉強ログとサンプルコード http://source-code-student.hatenablog.jp/entry/20150126/p1 JSに名前をつけて切り出して,「計算…

JavaScriptで整数問題を記述するAPIを改良:素数未満の素数の個数が素数であるような場合を求めよ

ある素数について,それより小さい素数の個数が素数個であるような場合を求めるコード。 ==== <input type="button" value="計算開始" onclick="calc()"><br> <textarea id="d" cols="80" rows="20"></textarea> <script> function calc(){ clear_log(); // 素数を見つけよ find_all_primes_that( function( N ){ return ( // この条件を満たすものを // N未満の素数の個数(素数計…

WSH/JScriptで配列の便利メソッドライブラリの案・compact/include/uniqなどを追加

配列の要素にユニーク性を持たせるために, include,uniq, compactなどのメソッドを追加した。 どんどん便利になってゆく。 ==== /* WSHやピュアJSの便利配列メソッド ver 0.3 compact, include, uniqを追加 ver 0.2 mapとfilterをreduceで記述 */ // 配列…

WSHで表計算ソフトの統一API: シート上のデータの取扱いをさらに便利にしてみた

シートをスキャンした結果を,配列データとしてさくさく扱えるようにしてみた。 スキャン結果がじかに行ごとのmapになっているのが便利すぎる。 さらに,シートとセルの紐付けなどを改良。 ==== /* MS ExcelとOOo CalcとKingsoft Spreadsheetsを 共通して取…

バッチのまとめから,カレントフォルダ上に全バッチを復元するバッチ

下記エントリでは「カレントの全バッチを1テキストにまとめる」ことができた。 フォルダ内の全バッチ系ファイルを,はてなのブログ投稿用にまとめるバッチ - ソフトウェア勉強ログとサンプルコード http://source-code-student.hatenablog.jp/entry/2015010…

JS・WSHで配列の便利関数のライブラリ案

並んでいるデータを処理する時は,必ずイテレータがほしくなる。 総合的なライブラリを拾ってくる手間よりも,自作関数を継ぎ足したほうが楽だったりする。(イテレータ内でのthisの値の仕様とか調べるのが面倒だったりするので) ==== // 配列のイテレータ …

JS・WSHでロギング・ログ出力に使う便利関数の案

よく使うコードの雛形。 ==== /* JS/WSH・JScriptでロギングをするライブラリ ver 0.1 */ // 標準出力にログ書き出し function log(s){ WScript.Echo(s); } // "文字列".log() String.prototype.log = function(){ log( this ); }; // 標準エラー出力にログ…

WSH/JScriptでIEを自動操作し,スクレイピングするライブラリの骨格

スクレイピングできるように。 jQueryのセレクタを作り直すのは無駄なので,簡易的なメソッドチェインでDOM要素を選択・絞込みしてみる。 ==== // IE起動 var ie = WScript.CreateObject("InternetExplorer.Application") ie.Visible = true; ie_goto_url( i…

WSHで表計算ソフトの統一API: シート内を縦方向にスキャンする関数を追加

ちょっとバージョンアップ。 なんで表計算ソフトを使うのかといったら,列挙がしやすいから。 なので,列挙されているデータをどんどんスキャンして,空白に来たら終わり,という処理が多くなる。 その部分を関数で汎用化してみた。 ==== /* MS ExcelとOOo C…

WSHで,エクセルシート上の列内・全項目を日本語・漢字から半角英数字の読みに変換するバッチ

一つ前のエントリで作った,シート内を縦方向にスキャンする関数を応用。 一行ずつスキャンして,読みがなをkakasiコマンドで生成している。 ==== kakasiで読みがなを付与.bat cscript do.wsf pause do.wsf <job> <script src="lib_log.js" /> <script src="lib_arr.js" /> <script src="lib_cmd.js" /> <script src="lib_excel.js" /> <script src="main.js" /> </job> lib_arr.js // 配列のイテレータ Arr…

WSH/JScriptから,コマンドプロンプトを呼び出すライブラリ (WSHとBATを効率よく連携させる案)

WSHからコマンドプロンプトを自由自在に呼び出そう,というライブラリの案。 コマンドの実行結果の出力に対してeach()などのイテレータを直で実行できるコーディングスタイルが売り。 ==== // ファイルパス文字列からファイル名を抽出 String.prototype.file…

【エンピツ転がし・さらに続】 「FP3級の本番で,自力で解ける問題が何割あれば,あとはまぐれで合格できるのか?」 を確率の計算で求めてみた

前回は,FP3級にでたらめに回答したら,何点取れるのか?を計算した。 結果は,鉛筆を転がしても,学科は平均して4割は取れるという驚愕の結果だった。 さて,実際に試験を受験するときには,さすがに全問をでたらめに回答はしないだろう。 ある程度は,自…

複数行のテンプレートマッチング繰り返しで,項目を一覧表形式で抽出するJSコード (改良版)

下記のコードを改良。 一般テキストからテンプレートマッチングで項目を一覧表形式で抽出するJSコード (パターンの繰り返しから正規表現で連続キャプチャ) - ソフトウェア勉強ログとサンプルコード http://source-code-student.hatenablog.jp/entry/201501…

【エンピツ転がし】 「でたらめに回答して FP3級に合格する確率」 を,計算して求めてみた

でたらめに回答して,選択式の試験に合格できる確率は 果たしてどれぐらいなのか。 FP3級の場合の確率を計算して求めた。

【エンピツ転がし・続】 「ランダムに回答した場合の,FP3級の得点」の平均値を計算してみた

FP3級にでたらめな回答をしたら合格できるのか,という記事の続き。 前回の記事で,合格の確率は「万が一」ということだった。 今回は,得点は何点取れるのか?を計算してみた。 確率の計算による結論: ・FP3級の学科試験に,でたらめに回答した場合の得点…

はてなカウンターの検索語ランキングを月ごとの変化グラフとして集計するWSHバッチ

前回のコードを改良し,年間の集計ではなく,月ごとの変化を見られるようにした。 同一のキーワードの月ごとの変化を行内で追うことができる。 シート内でオートフィルタ・グラフ生成しやすい。

ExcelとOOo Calcを統一して読み書きするWSHライブラリ:セルのキャッシュ機構に対応して高速化

セルのラッパオブジェクトの生成の手間を毎回かけないように,キャッシュ機構を実装した。 これにより,セルの読み書きの速度が4倍になった。 ベンチマーク結果(ミリ秒): キャッシュありの場合 計測結果:223125 キャッシュなしの場合 計測結果:829219 …

はてなカウンターから,年間のキーワードランキングを抽出するWSHバッチ

はてなカウンターから単一の検索語のランキングを取得し,エクセルに書きだす。 lib_excel.jsに,ブックを上書き保存を追加した。

表計算シート上のURLリストを,ホワイトリストとブラックリストでフィルタするWSHバッチ

エクセルファイル上のURLのリストに,ブラックリストとホワイトリストでフィルタリングをかけるバッチ。 ExcelとOOo Calcへの処理を統合できるライブラリを,少し拡張した。 URLは一番目のシートのA列に並んでいるとする。 B列には,URLごとのスコア(アクセ…

表計算シート上のURLリストに,自動でページタイトルを付与するWSHバッチ

ExcelとOOo Calcの統合ライブラリ計画の続き。 いままで単一のjsファイル内でWSHを実行していたが,WSFで処理ごとにライブラリに分けた。 こうすれば,やりたいことがあるたびに部分的な更新で済む。 以下は,エクセルファイル上のURLリストにタイトルを付与…

フォルダ内の全バッチ系ファイルを,はてなのブログ投稿用にまとめるバッチ

カレントフォルダ内の全バッチを,ブログに投稿するためにまとめるバッチ。 $このフォルダのバッチをまとめるバッチ.bat @echo off rem フォルダ内のバッチ系ファイルをまとめて rem ブログ投稿用に整形するバッチ rem rem ※対象の全ファイルがSJISで記述さ…

はてなカウンターのリンク元情報をOpenOffice Calcに一括記録するWSHバッチ(ExcelとOOoを統一して扱えるライブラリの試作)

はてなカウンターから,1年分のリンク元情報を取得してCalcのシート上に記録するバッチ。 ==== @if(0)==(0) ECHO OFF echo 処理開始時刻: %date% %time% > log.txt rem WSHコードに,第一引数としてカレントフォルダを渡す cscript.exe //nologo //E:JScri…

一般テキストからテンプレートマッチングで項目を一覧表形式で抽出するJSコード (パターンの繰り返しから正規表現で連続キャプチャ)

もし,文字列がデータ構造を持っていれば,パースは容易だ。たとえば: DOM XML CSV JSON これらはいずれもテキストが持つデータ構造であり,項目を抽出するのがきわめて容易。 しかし,データ構造を持たないようなテキストもある。 そういうテキストから,…

JavaScriptで,文字列の差分(diff)をブラウザ上でグラフィカルに可視化するコード

JavaScriptで,文字列のdiff差分を計算するコード。 テキストベースおよびグラフィカルの両方で,差分を明示する。 上の画像のような出力を得られる。 前回のコードを改良したもの。 JavaScriptで,文字列のdiff差分を計算するコード。アルゴリズムは動的計…

JavaScriptで,文字列のdiff差分を計算するコード。アルゴリズムは動的計画法

2つの文字列を比較して,動的計画法によりdiffを生成するJavaScriptコード。 コード

整数問題を解くJSコード: 2^n−1が31で割り切れるようなケースを列挙する

JavaScriptで整数問題を解き,自然数を探索してみよう。 問題: 2^n - 1 が31で割り切れるのは,どのような場合か? 出典: 【シンプル整数難問】ある数で割りきれる条件 - 短くて面白い数学の問題コレクション 〜シンプルな難問〜 http://d.hatena.ne.jp/Su…