クラスの落とし穴1 - プロパティの初期化 (この投稿) クラスの落とし穴2 - メソッドとクロージャ クラスの落とし穴3 - 継承 クラスの落とし穴4 - プライベート変数の実装 はじめに javascriptでもクラスを作成する事が多くなってきました。 しかし、「javascriptにはクラスがない」とよく言われ、実装側が擬似的にクラスを定義しています。 クライアントサイドで大規模開発が増えてきたため、オブジェクト指向の概念で実装したいと思っているのでしょう。 javascriptでは安易な疑似クラスの作成によって見事落とし穴にはまる事があります。 ここでは、本来javascriptにはないクラスをうまく実装する方法を順に追って説明します。 "落とし穴とは、 うまく動いているけど気がついていないだけで実はマズい実装の事 とします 簡単なクラスの実装 クラスの定義には幾つかの方法がありま
高速な全文検索アルゴリズムであるFM-indexについて解説する。理解しがたい点や間違っている点があれば是非コメントで指摘してほしい。 概要 FM-indexはリニアな文字列に対して検索をするアルゴリズムで、主に簡潔データ構造とBWT(およびLF mapping)という二つのアイデアから成り立っている。BWTはBurrows-Wheeler変換のことで、文字列を特殊な並び順に変換するという可逆関数である。BWTされた文字列を簡潔データ構造固有の操作をすることで、クエリ文字列の長さに比例した短い時間で文字列を探し出すのがFM-indexだ。 簡潔データ構造 簡潔データ構造に関してはFM-indexで必要となる二つの関数だけ説明して、詳細は次の機会に譲るとする。さて、二つの関数はともに文字列のある位置より前の部分に含まれている文字の数を数え上げるというものでrank()とrankLessTha
HTMLから本文抽出をするときにはExtractContentが便利でよく使っています。 Rubyのバージョンが1.9になったときにオリジナルは動かなくなっていて、Ruby1.9に対応したものを公開されている方がいたので、それを使うことが多いです。 今回、ExtractContentの仕組みの理解とGolangの勉強を兼ねてGolang版を作成しました。 go getした後に、以下のような感じで動かせます。 % go get github.com/yukihir0/gec Golangのパッケージ名は短いものが多いみたいなので、Go ExtractContentの頭文字をとってgecと命名しました。 コンパチを目指したものの正規表現の処理のあたりで違いが出ているようで、同じHTMLを処理させてもRuby版と異なる結果になることがあります。 テストを追加しつつ、できるだけコンパチにしていきた
Electronを使って見栄えを整えてみる ElectronはJavaScriptでデスクトップアプリケーションが作れるツールです。 前回「30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで」では簡単なアプリを作って配布するところまでやりました。 あとはいつも通りの JS + HTML + CSS でガリガリ書いていけばいいのですが、まずは見た目から入ろうということで、もう少しアプリっぽい見栄えにしてみましょう。 ちなみに、Macではいろいろ動作を確認しましたが、Windowsは知りません。 大体同じように動くはずですが、もしダメだったらWindows版の記述を教えて頂けると助かります。 基本設定は browser-window APIで browser-windowはアプリのウィンドウを表示するためのAPIです。 例えば、以下は単なるin
flask-babelを使って他言語化サイトと作ったので、作り方をドキュメント化 こちらのサイトを、参考にしたが、5年ほど前に書かれていて、現状と合わなくなっているものもあるので、少し修正した。 サンプルのコードはこちらのgithubにあげている。 https://github.com/shibacow/flask_babel_sample (実際これだけでこのブログの意図は達成できているかも)。 上のレポジトリをクローンして、FlaskとFlask-Babelを入れれば動くと思う。 インストール flask-babelはflaskでi18nを実現するためのライブラリだ。flask-babelのサイトはこちら インストールはpipを使って次のようにする
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く