読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

勉強

昨日の続き

昨日 お勧め映画検索のデータ準備 - 謎言語使いの徒然 の続きで、実際に人の組み合わせをやってみたわけ、、、、だがっ! 総勢 6040 人。組み合わせ数 18,237,780 ユーザIDを Long として保存したので 4 バイト。72,951,120 MB のデータ容量。 まぁこの位は…

お勧め映画検索のデータ準備

2人間の類似値を取得する - 謎言語使いの徒然 2人間の類似値を取得する(2) - 謎言語使いの徒然 この辺の続き。 近似値が出ていれば、ある人間 azalea から見てある程度近しい人間を選び、お勧めしてる商品(azalea が持っていないもので、相手がプラス評価し…

Scala2.10.3 から Redis 弄ってみた

scala-redis https://github.com/debasishg/scala-redis Maven のURLも無いし、ドキュメントはそのままビルドしてそうな感じだったので、clone して publpish-local して使った。 Apache2 ライセンスなので、ソース取り込むのが正解かもしれない。jar 配布っ…

Playframework2.2.1 の dist されたアプリを Ubuntu13.10 でサービス化する

適当なサンプルアプリを作る。 play new sample で、それを dist する。 play dist すると、下記が出来上がる。 sample/target/universal/sample-1.0-SNAPSHOT.zip アプリケーション名-バージョン.zip これを適当にサービス化できそうなディレクトリに展開す…

Chef 使ってみた

Chef も使ってさっくり環境を手に入れたいのでやってみた 当たり前のように git git-flow Chef 鯖蔵方式でクライアント側のマシンを自動でセットアップするツール。 当たり前だけどUI前提のインストーラしかない場合はやりようがない(窓ソフトでやろうとして…

Vagrant 使ってみる

Vagrant は仮想環境をセットアップするためのショートカットみたいなもの。 Chef はサーバ環境に必要なソフトのセットアップ・設定を自動化するためのもの。 ホストに使ってるのは Ubuntu13.10 VirtualBox vagrant 経由で使うのでインストール。 sudo apt-ge…

ScalaCheck のジェネレータをムリクリ突っ込んでみた

まず、(ScalaCheck)http://www.scalacheck.org/というのがテストツールの一種。 ブラックボックステスト用のツールで、ランダムに値を生成して関数の挙動を見るというものだ。 sbt 定義は scalaVersion := "2.10.2" resolvers ++= Seq( "Sonatype OSS" at "h…

Salat でMongoDBのデータをCaseClassにマップする

Scala から MongoDB へアクセスする Casbah を真面目に使ってみる - 謎言語使いの徒然 の続き。 CaseClass にマップさえできればいい(極論それ以外はKVSだけあればどうとでもなる) Lift-mongodb にしようかと思ったら assembla がダウンしててドキュメントが…

Scala から MongoDB へアクセスする Casbah を真面目に使ってみる

MongoDBをScalaで触る準備 - 謎言語使いの徒然 でScalaからMongoにアクセスする為のライブラリはインポートしてみたが、使ってなかったので、改めて使ってみる。 MongoDB のデータ構成 まずどんな階層構造でデータを保持してるのかを確認する。 Getting Star…

WSライブラリの Playframework2.1 以降の変更

WSライブラリ Playframework 2.0.x 系は WS コマンドで外部サイトアクセスできるのですが、2.0 系から気づけば応答値が変更されていて色々戸惑ったので。 2.0.x 系は val promise:Promise[Response] = WS.url("http://xxx.xxxx.net").get() Promise 型は独自…

自力でFacebookのOAuth2に対応してみた

やることはFacebookアカウントでサイトのアカウント作って、ログイン認証したいだけだったのだが、どうも Playframework2.2 では Pac4J が対応していなかったので、自力で認証してみた。 まずは設定に Facebook のアプリケーション情報を突っ込む auth { fac…

おすすめアイテムの計算

類似度をベースにお勧めのアイテムを計算する。 相変わらずデータセットは http://white-azalea.hatenablog.jp/entry/2013/10/08/000419 計算は http://white-azalea.hatenablog.jp/entry/2013/10/08/231209 やってることは、 他人との類似値を計算する 本人…

2人間の類似値を取得する(2)

ピアソン相関を使って類似度を出力する ピアソン相関ってなんぞ?と思った人は統計学の講座。 参考になるのが下記 http://kusuri-jouhou.com/statistics/soukan.html http://www.koka.ac.jp/morigiwa/sjs/les10801.htm 片方は薬学ですがキニシナイ。 論よりR…

2人間の類似値を取得する

ユークリッド距離で計算。 まずはデータソース val source = Map( "azalea" -> Map( "Java" -> 5, "C#" -> 5, "Python" -> 2, "Perl" -> 2, "Scala" -> 5, "C" -> 4, "C++" -> 4 ), "nullpobug" -> Map( "Ruby" -> 4, "Python" -> 5, "Java" -> 4, "PHP" -> …

わんくま同盟勉強会(横浜 5回)

とりあえず、メモしながら。 MFC のコードリーディングはメモ諦め。(VCインストールされてないから分からない) http://www.wankuma.com/seminar/20130907yokohama05/ επιστημη さんのセッションだけメモ Intel concurrent collections かなり異色なマルチ…

BeyondJS

JavaScript の改良に未来はあるのか? パネルディスカッション。 Caffeine すげー気になる ClosureCompiler ClosureTools サイボウスの天野さん kintone non programming でビジネスアプリが作れるそうな。 B2B サービス。 あらかじめ用意された処理をドラッ…

LL続き

HTML5 やら使ってアプリ FrogApps/Treta の MASUI さん wri.pe というソフト作りしてる、ブラウザで書けるメモ帳。 wri.pe Facebook/Git でログインできる。markdown に対応してる。 ショートカットで色々そうさできる。 アーカイブや検索、メモに日付を入れ…

LL祭り

light weight language go LL ってなんぞや? メモリが小さくて、実装しやすい。文法最小限、実行速度らしい。 でも日本だと、インタプリタ、動的型、関数オブジェクト Python/Ruby/Perl Haskell/Scala とか GO って? -単一マシンでコンパイルは安 -依存を…

Twitter メッセージを解析してみた

細かいやり方やコードは後日とあるサイトで。試しに Twitter をStreamで取得しつつ解析を Akka で並列化しながら走らせてみた。 日本語のみを 5 スレッドでガリガリやってみた。 [INFO] [05/28/2013 23:36:57.499] [sample-akka.actor.default-dispatcher-5]…

形態素解析した結果からまだ何か考察

前回 の処理に似たようなことを行い、 接頭詞 + 名詞 = 名詞 名詞 + 名詞 = 名詞 名詞 + 動詞 = 動名詞 + 動詞 動詞 + 動詞 = 動詞 動詞 + 助動詞 = 動詞 動詞 + 助詞 = 動詞 で区切ったあと、句読点が「記号」と認識されていることに着目。 記号で区切られ…

形態素解析したものを字句っぽくする

前回の実行結果を読み取ると、面白そうな事に気づく。 連続した名詞は繋げて一つの固有名詞ではないか? で、こんな感じに書いた import net.reduls.igo.Tagger object Token { def toToken(morpheme:String, original:String) = { val elements = morpheme.…

形態素解析ライブラリを触ってみる【Igo】

先ず適当なディレクトリを掘って、ダウンロード - Igo - SourceForge.JP と MeCab - Browse /mecab-ipadic/2.7.0-20070801 at SourceForge.net を配置。 MeCab のtarボールは解凍しとく。 で、 C:\common\projects\lab\Igo>dir ドライブ C のボリューム ラベ…

SSH のアクセスログを洗ってみる

SSH ポート空けてると、不正にログインしようとするやつはいるもの。 また、アカウントが盗まれて変な所から ssh されることもあり得る。そんなこんなで、/var/log/auth* なログファイルをパースしてディレクトリに振り分ける処理をざっくり書く。わざとシー…

Akkaのrouterを調べる

とりあえず内容はこれhttp://doc.akka.io/docs/akka/2.2-M3/scala/routing.html A Router is an actor that receives messages and efficiently routes them to other actors, known as its routees. そのままですよね。Actorのインスタンスが複数ある時に、…

続、Akka勉強する

随時更新 Akka について勉強する。 - 謎言語使いの徒然 の続き Akka2.2-SNAPSHOT で大分 Cluster に動きがあった。流石試験実装、、、、安定しない。 設定ファイルの中身を換えればまだ動きはするが、この際だから最初から考え直す。*1 まずサンプルを求めて…

Akka について勉強する。

終了まで随時更新 教科書はこれ http://www.slideshare.net/scalaconfjp/scaling-software-with-akka概要から読んでいく。 重要そうな箇所だけまずはメモProgram at higher level 共有するステータス、ステータスの可視性、スレッド、ロック、同期、スレッド…

Akka を勉強する 4

ActorSystem は単語単位で名称を持つことができる。これはURIスキーマの一部として利用することができる。 使える範囲は「'^[a-zA-Z0-9][a-zA-Z0-9-]*$'」の範囲だそうな。 これはこんな感じで書くそうな。 akka://actorSystemName@ServerHostName:9000/user…

Akkaの勉強をやってみる 2

うん、Scala2.10あんま関係ないのでタイトル変更。午後やるって言って遊んじゃった(主にPSO2)ので遅かった。 先ずコードはこんなん import akka.actor.{Props, Actor, ActorSystem} import java.util.Date import org.slf4j.LoggerFactory class SampleActor…

Akkaの勉強をScala2.10で行ってみる

先ずはsbtでscala2.10を設定。 依存とバージョン番号指定すればよさそう organization := "net.azalea" name := "Alla-sample" version := "0.1.0" scalaVersion := "2.10.0" description := "An JSON schema(http://json-schema.org/) access helper for sc…

Akkaの勉強をやってみる3

始めに断わっておきますが英語圏のネイティブじゃないんでドキュメント読んで拾った内容だけど間違ってるかもしれない。 Akka は動作階層を持っているらしい。 ActorRef MessageDispatcher MailBox(with MessageQueue) Actor(プログラマが実際に処理を記述す…

Actor と RemoteActor

アクターは基本的にはメッセージの受信に対してどう動くかという、Objective-CやSmalltalk的なオブジェクトの振る舞いをするスレッド。 内部的には、メッセージを「receive」で受け取り、処理をする。処理中に他のメッセージが来れば、そのまま「receive」可…

Usability of iPad Apps and Websites(5)

バックログhttp://d.hatena.ne.jp/white-azalea/20110704 http://d.hatena.ne.jp/white-azalea/20110626 http://d.hatena.ne.jp/white-azalea/20110628 http://d.hatena.ne.jp/white-azalea/20110630ソースhttp://www.nngroup.com/reports/mobile/ipad/ Webs…

h2 が効かなくなってる罠?

案外ハマったのでメモ。 HTML5 指定でファイル作ってHTTPアクセスした(chrome12:Webkit)ら、h2 が全然表示されない。 デバグコンソール見たら h2 が無視されてた…。HTTP鯖のログでは転送されていた…。どういうことだあああああ。 <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,user-scalable=yes, initial-scale=1.0, maximum-scale=3.0" /> </meta></meta></head></html>

クリックをハイジャックする。

ほげっと書いといて <html> <head> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="./javascript/jquery.js"></script> </meta></meta></meta></head></html>

サンプル書いて理解し続ける

オライリー英語本が何故かAndroidに入ってる。理由は、英語版しか電子書籍が売ってなかったから。 まぁいいよ。言語見ればわかるだろと。shapes.scala をざくっと書いている。 package shapes { class Point(val x:Double, val y:Double) { override def toS…

Usability of iPad Apps and Websites(4)

バックログhttp://d.hatena.ne.jp/white-azalea/20110626 http://d.hatena.ne.jp/white-azalea/20110628 http://d.hatena.ne.jp/white-azalea/20110630ソースhttp://www.nngroup.com/reports/mobile/ipad/相変わらず要約だけ。 RESERCH METHOD 実際にアクセ…

Scalaが面白いという話を聞いて遊び始める

基本はここからダウンロードしてインストールするだけ。IsPackインストーラあるから便利ね。 Java6最新update入ってりゃ基本問題ないはず。 IDE はこっちにあった。 そしてざくっとコード書く。 class Upper { def upper(strings:String*): Seq[String] = { …

Usability of iPad Apps and Websites(3)

バックログhttp://d.hatena.ne.jp/white-azalea/20110626 http://d.hatena.ne.jp/white-azalea/20110628ソースhttp://www.nngroup.com/reports/mobile/ipad/なんかペース遅いし帰宅0時過ぎだし巻いてこ。要約だけざくっと。 NEW FINDINGS スプラッシュスクリ…

Usability of iPad Apps and Websites(2)

ちまちま訳。 免責:間違ってたら指摘いただければ直します。間違ってる可能性大!前回 http://d.hatena.ne.jp/white-azalea/20110626http://www.nngroup.com/reports/mobile/ipad/ここの 2nd レポートです。 User research 通常、すぐに研究を開始したから…

Usability of iPad Apps and Websites(1)

ちまちま訳開始。 理解するだけならさほどでも無いんだが、、、、綺麗に訳しようとすると苦労する。http://www.nngroup.com/reports/mobile/ipad/ ここの 2nd レポートです。 要約 最初の iPad appsのユーザビリティ研究より、ありがたい事にiPadのユーザイ…

XmlSerializer 試してみる。

実行対象のデータクラス(持ち越し)。 namespace UsingXmlSerializer { [Serializable] public class Hardwere { public uint Price; public String Name { get; set; } public String Maker; public override string ToString() { return string.Format( "Na…

SoapFormatter 経由でシリアライズとかしてみる。

前回のコードの BinaryFormatter を SoapFormatter に変更して、System.Runtime.Serialization.Formatters.Soap 参照を突っ込む。そして出来上がったXMLが、

BinaryFormatter 経由で、オブジェクトをシリアライズとデシリアライズ

シリアライズ対象。 [Serializable] public class Game : IDeserializationCallback { public HardwereType[] Hard { get; set; } public String Title { get; set; } public String Genre { get; set; } public uint Price { get; set; } public override s…

書くDictionary系コレクションのベンチマーク

色々やってみた。 Collection:Hashtable Insert 100000 : 13(msec) AccessRandom 100000 : 6(msec) SequentialAccess 100000 : 9(msec) ------------------------------- Collection:SortedList Insert 100000 : 27(msec) AccessRandom 100000 : 22(msec) Se…

基本型

基本型一覧 型 サンプル unit () int, float 32, 42.195 'a, 'b (generic type) 'a -> 'b fun x -> x+1 'a * 'b (1, 32) 'a list [1; 32] 'a option Same(3), None 上から unit 型(他言語で言う void?) int, float (L付きで64bit整数) 汎用型(型推論出来な…

リストの操作

リストの宣言から順に 先頭に要素追加 リスト結合 整数の範囲指定表記 ステップ指定での整数範囲指定表記 リスト内包表記 リスト内包表記を使った1 - 10倍リスト作成関数 同関数のラムダ表記 let basicList = ["BattleField"; "BioHazard"; "MatHazard"] let…

ソートしてみる

ソートを行うコードをいろいろ書いてみる。 まずは外部定義でソート条件を記述するタイプ。 class SampleSortable : IComparer<string> { public int Compare(string x, string y) { return x.Length > y.Length ? 1 : -1; } } class Program { static void Main(str</string>…

型変換を定義する

互換性のない型同士で、暗黙、明示的な型変換を定義する。 class TypeConvertionOne { public string haveCode { get; set; } public static implicit operator TypeConvertionOne(string one) { return new TypeConvertionOne() { haveCode = one }; } publ…

TypeForwardedToAttribute使ってみる

オライリー本読んでたら見慣れないキーワードが出てきたので使ってみた。 どうも日本語の情報がなかなか見当たらないんだ、、、、、まぁいいけど。 アセンブリは Libarary1 namespace ForwardTest { public class SampleForward { public string Message(str…

各種Dictionary使ってみる

Genericあるのにいまさら非Genericなのを新規に使う意味は薄そう。 正直保守性下がるしw static void Main(string[] args) { System.Collections.Hashtable hashTable = new System.Collections.Hashtable(); System.Collections.Specialized.ListDictionar…