久しぶりにscala触っててなんで抽出子がパターンマッチで使えるのかわからなくなったので遊んでみた。 object Sample1 { def unapply(v: Int): Option[String] = if (v == 1) Some("ok1") else None } object Sample2 { def unapply(v: Int): Option[String]…
経済の移り変わりを歴史背景を踏まえて教えてくれる。 経済力と軍事力は密接に関係していることが納得できる。 読んでて思わずへーと思う話が多くてなかなか面白い。 歴史で習ったなんとかの改革(享保とか天保とか)って実は失敗だったんだ、とか。 ユダヤ…
プロトタイプチェーンとスコープチェーンの説明が良かった。 オブジェクトとプリミティブについてこれほど詳しい説明はほかにない。 newつけるとオブジェクトを返すけどnewつけないとプリミティブになるとか、思わず手元で試したくなるtips的な要素は事欠か…
「新しいことをやると学習コストがかかる」 「サポートが終了したからってビジネス上問題があるのか?」 とかいっていまだにstruts1系を使うことに抵抗を感じないエンジニアになるくらいならビジネスなんて理解しなくていいや。
Spring-Bootがすごいので宣伝です。 僕はXML地獄といわれた頃からSpringをつかっています。 Spring1.x + Struts1.x + ibatis、、とかいう構成。 何かあってもXMLを変更するだけです! コードを修正する必要はありません! なんて言葉が(確か)は流行ってい…
コレクションの取得 MongoConnection("localhost")("test")("collections") insert collection.save(Map("name" -> "takayuki", "work" -> "engineer")) or collection += (Map("name" -> "takayuki", "work" -> "engineer")) Query DSLを使ったinsert val d…
日本語でMongoもだいぶ終わりに近づいたのでScalaで復習してみます。 Mongoのオンライン講義はこちら https://education.10gen.com/courses/10gen/M101P/2013_September/about WEEK1はMongoの特徴とか コンセプト 限りなくRDB並みの機能を追求しつつkey valu…
Lucen In Actionの4.7.3をみてて面白そうだったので実験。 でNOT_ANALYZEDに指定したFieldと、もう一つ別のフィールドがある場合。 例だとpartnumとdescriptionの2つのフィールド。 parnumは完全一致で検索したいのでanalyzeしたくないような値が入っていま…
めんどくさがりなのでブラウザのテストとか自動化したいです。 せっかくなのでscalaで実装してみました。 サンプルでgoogle様を使わせていただきます。 まずはこういうものを用意します。 def using(f: WebDriver => Unit)(implicit url: String): Unit = { …
らしいです。 By Lucen In Action 2.11.1 /** * IndexReaderはopenした時点でのインデックスを検索する。 * Readerをopenした時点でのviewを更新する。 * インデックスを更新しても反映されない。 * * Writerの反映を検索したければReaderを再オープンしなけ…
Lucen In Action 2.7 Field truncationをみて実験しようとしたらMaxFieldLengthなんて見つからないorz よくある事だけど非推奨どころか存在自体なくなってたよ。 代わりはLimitTokenCountAnalyzerでした。 @Test public void testMaxFieldLength() throws Ex…
Controllerで値をセットしてもいいけど色んなところで表示されるとめんどくさいとき。 keyとvalueを直接指定したい場合はこんな感じの定義を追加。 <bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="singleton" value="true" /> <property name="properties"> <props> <prop key="hoge">fuga</prop> </props></property></property></bean>
最近Lucen In Actionをよんでいるので再びLuceneネタ。 ver4ではTextFieldとかStringFieldになっているので実は隠れてしまっているけど何が違うかというのを実験してみたので記録。 ANALYZEすると完全一致でヒットしなくなっちゃうので注意しないといけない…
Lucene In Acionのサンプル試したところVer4とVer3で大きくAPIがかわっていたのでメモ。 IndexReader ver3 Directory directory = new RAMDirectory(); IndexReader reader = IndexReader.open(directory); ver4 Directory directory = new RAMDirectory(); …
ローカルで開発するときSolrを別にあげるのがめんどくさいので。。。 ひとまずこんなinterfaceを定義 import org.apache.solr.client.solrj.SolrServer; public interface SolrServerFactory { SolrServer getSlaveServer(); SolrServer getMasterServer(); …
APIサーバでクエリにcallbackがあるときはjsonpにしたいけどない場合はjsonで返す方法。 Controllerでresponseに文字列で出力するのはちょっとださい。。。 探した感じだと見つからない。。 https://jira.springsource.org/browse/SPR-7115?page=com.atlassi…
高速文字列解析の世界にあるBWT変換をScalaで実装 まず接尾辞配列を作成 scala> val t = "abracadabra" t: java.lang.String = abracadabra scala> t.reverse.foldLeft(List("$")) { (xs, x) => (x.toString + xs.head) :: xs } res0: List[java.lang.String…
Servlet3.0が使えればAsyncContextで対応できそうだけど、 お仕事でServlet3.0使える幸せな人は少数はですよねー。 という訳でいろいろしらべてたらSpringに非同期処理を実現する方法がある事がわかったのでメモ。 設定ファイルに以下を追加
SpringでWebアプリケーションを作ってバッチ処理がしたい場合。 Spring Batchを使うほどでもないし、、、ということで。 pom.xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.6</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spr…</artifactid></dependency>
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティスによれば JavaScriptのthisは メソッド呼び出し 関数呼び出し コンストラクタ呼び出し apply呼び出し の4パターンあるそうです。 この中で問題なのが筆者が言語設計の失敗とまでいってい…
変数を定義しないで使うとReferenceErrorで怒られます。 FireBugのコンソールとかで突然こんなことをすると a + 1 ReferenceError: a is not defined って怒られます。 だけど this.a + 1 だとなぜかNaNになります、あれ?? ちなみに window.a + 1 でもNaN…
よくvalと間違えるvarですが(僕だけ?)、つける場合とつけない場合はぜんぜん違います。 つけないとグローバルの変数になっちゃってグローバル領域を汚しちゃいます。 var f = function() { x = 1}f()console.log(x) // x = 1varさえつけておけば。。var f…