JavaScript

Node.jsでCSV (RFC4180) をparseするのに苦労した

単純に1行分のレコードを Array<String> に変換してくれればよかっただけなのに、簡単に使えるライブラリになかなか当たらなくて難儀した。これを使えばよかった。 www.npmjs.com const CSV = require('comma-separated-values'); const fs = require('fs'); const d</string>…

JsViewsとTypeahead.jsを併用するとバインディングが期待通りに動かない

おそらくJsViewsに限った話ではなくて、双方向バインディングをやってくれるテンプレートエンジンなりフレームワーク全般にかかるであろう事案。 問題点 以下のイベント発火時に双方向バインディング(View -> Model)が動作しない。 typeahead:autocompleted…

Firefox 23でSource Mapsが実装されたみたいだけど、まだちゃんと動いてない?

HaxeコードがFirefox開発コンソールのデバッガに一応表示されることを確認した。ただし、Firefox 23の時点ではまだ完全対応というわけではなさそう。そのあたりの公式ソース探すのがめんどくさい(Firefox使わなくてもChromeで事足りてしまう)ので、Firefox…

大なごやJSでHaxe/JavaScriptの発表してきました

FIRST STEP to Haxe/JavaScript from terurou

【訂正エントリ】jsdoc3の使い方が間違ってると指摘を受けたので再評価した

以前、JavaScriptのAPIドキュメント生成ツールを調べてみたら、YUIDocが割とよかった - DenkiYagiというエントリで「jsdocゴミっぽい」と書いたのだが、「それアノテーションの使い方が間違ってる」とツッコミが入ったので、再評価してみた。 インストール j…

Ext JS 4.1.xでComponentのルート要素をカスタマイズしたい

configのautoElを設定するだけでOK。てかアンドキュメントな事が多すぎるから、もっとマニュアルどうにかしてほしい。 new Ext.Component({ autoEl: { tag: "div", //spanとかにもできる tabindex: 1, onfocus: "console.log('focus')", "x-data-hoge": "hog…

keydownイベントでpreventDefault()した際のkeypressイベントの扱いがブラウザによって異なる

こんな感じのコードで検証。 window.onload = function () { var body = document.body; body.onkeydown = function (e) { if (window.event) { window.event.returnValue = false; } else { e.preventDefault(); } console.log('keydown'); } body.onkeyup …

Haxe使いから見たTypeScript雑感

TypeScript良いですね。世間の流れは完全に動的型付け言語から静的型付け言語+型推論に移ってきていますが、JavaScriptの上にうまくそれを導入してきた感じです。ヘルスバーグはやっぱすごいよね、と。今後実装される予定のジェネリクスが載ってきたら、bet…

大なごやJS #3で「大規模なJavaScript開発」という話をしてきた

スライドはこちら。 大規模なJavaScript開発の話ごくごく当たり前のことを小難しく書いただけな感じです。

JavaScriptのAPIドキュメント生成ツールを調べてみたら、YUIDocが割とよかった

JavaScriptのAPIドキュメント生成ツール(いわゆるjavadocみたいなもの)を使いたくなったので、色々調べてみた。 jsdoc3 使い方が間違ってると指摘されたので、訂正エントリ書きました → 【訂正エントリ】jsdoc3の使い方が間違ってると指摘を受けたので再評…

haXe + FlashDevelop on Windows 8でJavaScript開発メモ

Haxe/JavaScriptチュートリアル — Haxe/JavaScript tutorial 0.1 documentationに書き直したコンテンツを公開しました。Windows 8 RPでhaXe開発環境を構築したメモ。ここではWindows 8を使ってるけど、Vista以降のWindowsなら多分同じだと思う。 この記事の…

IE8の『IE8標準準拠モード』のパフォーマンスがビックリするほど悪い

ここ1ヶ月ほど、IE8のみをターゲットとした業務Webアプリ開発のお仕事をしてるんだけど、IE8で異常にパフォーマンスが劣化する問題に遭遇した。 現象 よくありがちな「ヘッダ固定テーブル」 1行目およびN列を固定→<table>を4分割 マウスオーバー行の背景色を変える</table>…

JavaScriptパターン読んだ。結構いい本だと思う。

JavaScriptパターン ―優れたアプリケーションのための作法posted with amazlet at 11.03.08Stoyan Stefanov オライリージャパン 売り上げランキング: 1642Amazon.co.jp で詳細を見るid:uupaa さんが良い本とTwitter上で言っていたので、勢いで買って一気に読…

JavaScriptで(Qt|.NETのevent)っぽいSignalSlot作った

UIを実装するとObserverパターンおよびその派生は必須になるので、毎回車輪の再発明をしてるんだけど、個人的にこれでいいんじゃね、的なコードができたので晒しておく。利用側のコードはこんな感じ。 var ObservableList = function () { Signals.define(th…

RhinoでHadoopのConfigurationを叩いてみる

大名古屋#04 : ATND, 大名古屋#05 : ATNDでRhinoでHadoopを使うと言ったので、ちまちまと予習をしとります。最近Rhinoリハビリとか言ってるのは、その一環。一応、Rhinoを選んだ経緯としては、 名古屋の連中は関数型言語/Scala大好きっ子ばかり。当然Scalaで…

Rhino リハビリ6 Javaのクラスライブラリを使う

この記事をによくまとまっている。 JavaScript+Java:Rhinoの導入と基本的な利用法 - builder JavaScript+Java:Rhinoの導入と基本的な利用法 - builder 何も考えずにベタに書く var list = new java.util.ArrayList(); 一番シンプル。問題はコードが長く…

Rhino リハビリ5 JavaScriptコンパイラを使ってみる

昔は普通に使いこなしてた記憶があるんだけど、classpathのことをすっかり忘れてて1時間ぐらいハマってしまった。。。classpathにカレントディレクトリ付けないとダメとかすぐに忘れるって。。。 コンパイルするコード(test.js) print("hoge"); コンパイル…

Rhino リハビリ4 JavaScriptエンジンの動作バージョンを設定する

RhinoはデフォルトではJavaScript 1.5相当で動作するが、JavaScriptのバージョンを1.0〜1.7まで指定できる。余程のことがない限り1.5未満で動作させることはないとは思うが…。 コマンドラインオプションで指定する -versionオプションを付ければ良い。バージ…

Rhino リハビリ3 標準入力する関数を作った

Rhinoの組み込み関数では標準入力が扱えないので、Javaのクラスライブラリを使う。Rhino(Javascript)には標準入出力がないので、Java の標準入出力を使う - himorogiの日記を参考に関数を実装してみた。 readStdin(msg) コード var readStdin = (function …

Rhino リハビリ2 Cygwin用の起動スクリプト

先日やる気が無くなったから連載しないと言ったばかりなのに、何故か連載をする。ということで、CygwinからRhinoを呼ぶためのラッパースクリプトを書いた。このスクリプトはjs.jarと同じディレクトリに置く前提で作っている。 "$(cygpath -w "$(cd $(dirname…

Rhino リハビリ1 Windows用の起動BAT

ふと思い立って約2年ぶりにRhinoを触っているのだが、ほとんど忘れてしまっているのでリハビリを。 まずは簡単に起動できるようにBATを作成。以下のファイルをjs.jarと同じディレクトリに置いておく。2010/07/28:リハビリメモとしてRhinoについて何回か書こ…

DeLLa.JS #8に遅刻して参加してきたよ!

今回の会場は株式会社コスモルートでした。会場提供者なのに遅刻してくるダメ人間でした。 今回のまとめ サイ本15章 ATTRIBUTE_NODE ほとんど使わないよなぁ DocumentFragment 一括で複数ノードを追加するときに使うと便利だし、パフォーマンス上有利なはず …

DeLLa.JS #7いってきた

今回もVISHさん(aodagさん)のご好意による会場により無事開催できました。毎度毎度すいません。 で、13章〜14章まで読んできましたが、14章は「今は使えないよね」って事がたくさんあった感じだったかなぁ。とりあえず個人的に改めて知った事をまとめとき…

FLOSS桜山 #17でnanashi.jsについてプレゼンしてきました。

プレゼンの資料は FLOSS桜山wiki 勉強会/第17回勉強会 に置かせてもらっています。 あと、まだ大々的に公開しているという訳でもないんですが、nanashi.jsのコードはCodeReposにおいてありますので、興味のある奇特な方はどうぞ。 http://svn.coderepos.org/…

DeLLa.JS #5行ってきたよ

そんな訳で寝坊して1時間ぐらい遅刻してDeLLa.JS #5に参加してきました。会場は[http:/www.vish.co.jp/:title=VISH株式会社さん]。今回はP.158 9.3から9章終わりまでのClassやらmix-inやらについてを読み進めました。実は今回の読書範囲は、1年ぐらい前にサ…

ドキュメント中のコメントノードを全て取得する関数

こんなことやりたい人が他にいるのか判らないけど、ドキュメント中のコメントノードを全て取得する関数を作ってみた。IE7とFirefox3とSafari3.1でしか確認してないけど、他のブラウザでも多分動くはず。 var getAllCommentNodes = (!!document.evaluate) ? (…

DeLLa.JS #4の事をいまさら。

ブログを書くまでがDeLLa.JSらしいです。これでワタシの第4回勉強会が終了できる…。で、本題。参加者ブログでみんな書いてるけど、JavaScriptではコンストラクタの return でオブジェクトを返すようにしておくと、new したときに別のクラスのインスタンスを…

CodeIgniterでJSON文字列を含むURIを使う

タイトルのままですが、CodeIgniter 1.6.2 のデフォルト状態でJSONを含むURI文字列を使う事が出来なかったのでメモ。 やりたいこと URIにJSON文字列を含める。 http://localhost/index.php/hoge/get/{"hoge": "hogehoge"} こんな感じのURI。実際にはJSON文字…

Rhinoで動的に.jarファイルのクラスを読み込んで利用する方法

タイトルのような事をしたい場合、URLClassLoaderを使えばいいらしいので、簡単なラッパーを作ってみた。 function JarClassLoader(pathList) { var urls = []; for(var i = 0, len = pathList.length; i < len; i++) { urls.push( (new java.io.File(pathLi…

Rhinoに environment ってビルトインの変数が存在する事に気がついた。

Rhino(1.7R1)を使ってたら、environmentってビルトインのグローバル変数が存在する事に気がついた。以下のワンライナーをRhino Shell上で実行したら、環境変数っぽいのが取得できた。 js> for(var key in environment) { print("[" + key + "]\n" + environm…