Qiita

最近はQiitaでScalaネタで書いています。mtoyoshi - Qiita mtoyoshi - Qiita

Mac開発環境まとめメモ(主にVim)

vim

Vim Macのctagsは古いので、brew install ctagsして新しい方をctagsのaliasとして登録しておく scalaはctagsに対応していないので別途~/.ctagsに記述が必要 http://scala-programming-language.1934581.n4.nabble.com/Simple-ctags-etags-support-td1939562.…

zshでCtr-aが効かなくなっていた件

全く同じ悩みを抱えていた人が! http://d.hatena.ne.jp/sotarok/20080926/1222368908なんとなくoh-my-zshを入れた辺りで効かなくなったような気がする・・。 はっきり覚えてないので気のせいかも。 地味にイライラしていたので本当なおってよかった。

GitHubのリポジトリを他のアカウントに移動

前提 業務用のコード管理にGitHubを利用 Microプランに申込み、Privateリポジトリを3つ利用 ちなみにMicroプランではPrivateリポジトリは5つまで利用可能 転職に伴い移管が必要になった 別アカウントの作成 引き継ぐ人にアカウントを作ってもらう Microプラ…

EMRで利用する際のログについて

nginxのltsv形式のアクセスログをfluentd経由でS3に保存すると、type fileで出力したものと同じで、以下のようなフォーマットとなる。 日付 タグ jsonフォーマットのデータ 実際にはgzに圧縮されて。S3のデータをインプットにEMR(hive)で計算しようにも使い…

ag(the Silver Seacher)

インストール EC2のAmazon Linuxにインストールしてみました。yum installでさくっと入るとよかったんですが、見つけられなかったのでソースから。 $ git clone git://github.com/ggreer/the_silver_searcher.git agの場合は、build.shが用意されているので…

nginxのaccess.logをfluentdでS3に格納するまで

俺俺メモです。 環境 EC2 (Amazon Linux AMI 2013.03.1 64bit) nginx 1.2.9(ソースコンパイルはせずにyum install nginxで入れたもの) fluentd 0.10.33(td-agentを利用。s3プラグインは最初から入っていたものをそのまま利用) ※nginxもfluentdも同一EC2イ…

scaladocを読むために

scaladoc読んで勉強してても記号が多いのとよく分からないキーワードが出てきて読みづらい。 気になったものを調べてまとめる。 型 よく出てくるのは以下だ。 AnyはJavaでいうObject型。 UnitはJavaでいうvoid。 可変長引数 以下はMap#+メソッド。*の部分。 …

正規表現メモ

val pattern = """何らかのパターン""".r pattern.findAllIn("対象文字列").matchData.map{ m => m.group(1) -> (if( m.group(2) == null ) "" else m.group(2)) }.toMap

Lift

Liftアプリケーション用テンプレートのDL %git clone https://github.com/lift/lift_25_sbt.git 必要ライブラリのDL %cd lift_25_sbt/scala_29/lift_basic %./sbt 待つこと数分・・・ sbtプロンプトが出るので、InteliJで読み込みができるようにする。 >gen-…

テーブルごとの行数を出す

SQLServerの話。 userというテーブル名をもつテーブルを曖昧検索してそれぞれの行数を出すSQL。 select o.name, i.rows from sysindexes i, sysobjects o where o.xtype = 'U' and o.id = i.id and i.indid and o.name LIKE '%user%'

Intellij IDEAのsbt consoleで文字化け解消

specs2でのユニットテストの練習。 で、Intellij IDEAのsbt consoleで実行したら日本語が化ける・・・。コンソール上のsbtでも同様に日本語が化ける。。 色々調べて以下の情報に。意外と見つからなかった。参考:http://qiita.com/items/3fd54c5b69710490417…

sbt gen-idea

sbt gen-idea を実行すると、 [error] Not a valid command: gen-idea [error] Expected '/' [error] Expected ':' [error] Not a valid key: gen-idea [error] gen-idea [error] ^と表示された。コマンドとして認識していない模様。標準コマンドでは無いよ…

sbtでダウンロードしてきたライブラリのある場所

sbtで管理されたライブラリのDL先。 ~/.ivy2/cache/org.apache.derby/ sbtはApache Ivyがベースになっているとのこと。

Mapのメソッド

基本操作 val map = Map(1->"one", 2->"two", 3->"three") // 生成 map + (4->"four") // キー・値の追加 map + (4->"four", 5->"five") // キー・値の追加 map - 2 // キーを指定してキー・値の削除 map.size // 長さを得る 3 map(1) // 値取得 one map.app…

Listのメソッド

基本操作 val list = List(1,2,3) // 生成 val list = List.range(1,4) // 生成 List(1,2,3) val list = List(1 to 3: _*) // 生成 List(1,2,3) val list = List.empty // 空リストの生成 0 +: list // 先頭に要素を追加 List(0,1,2,3) 0 :: list // 上と同…

正規表現とextractor

刺激を求める技術者に捧げるScala講座 パターンマッチをもっと便利に うひょー、これはすごい。 val datePattern = """(\d\d\d\d)-(\d\d)-(\d\d)""".r val datePattern(y,m,d) = "2013-05-05" println("%s年%s月%s日".format(y, m, d)) // 2013年05月05日

Scalaの基本文法(忘れそうなもの)

for 1〜10まで3刻みで。 for(i 1<- 1 to 10 by 3) println(i) 1〜20(20は含まない)のうち、2と3の倍数だけ。 for(i <- 1 until 20 if i % 2 == 0; i % 3 == 0) prinltn(i) 2重ループ for(i <- 1 to 2; j <- 1 to 4) println(i + "-" + j) 戻り値を返すfor…

関数について

関数定義 通常はメソッドとして宣言される。 def 関数名[型パラメータ](引数名:引数の型名,……):返り値 = 関数本体 たとえば、 def sum(x:Int, y:Int) = x + y 関数リテラル 変数に代入可能。メソッドの引数としても。 (変数名:型名,……) => 関数本体 たとえば…

Scala流ダックタイピング

rubyの例。 def execute_with_log(f) puts "start" f.execute() puts "end" end って定義しておけば、引数にはexecuteメソッドを持つクラスのオブジェクトはなんでも渡せる。 Javaではこれは実現できなくて、引数で宣言した型(もしくはインタフェース)のオ…

部分適用とカリー化

部分適用 まず普通の関数。 def sum(a:Int, b:Int, c:Int) = a + b + c val result = sum(1,3,5) // 9 コレをこんなふうに出来る。第三引数を5に固定。 val sum2 = sum(_:Int, _:Int, 5) val result = sum2(1,3) // 9 カリー化 引数が元の関数の最初の引数で…

再帰

Scalaの勉強を再開した。 Ninety-Nine Scala Problemsとりあえず今日は第一問目。 scala> last(List(1, 1, 2, 3, 5, 8)) res0: Int = 8 こんな関数lastを作りなさい、と。 で、作ったのはこれ。 def last[T](ls:List[T]):T = { l(ls.size - 1) } 答えはコレ…

コミットを戻す

Git

とあるマージ時まで戻す git reset --hard ab9979827336efb28157c096ac59f560dcc2XXXX マージしたものをマージ前に戻したいときはマージコミット番号を指定してやればOK

GitHub×Jenkins

GitHubでソースコードを管理していて、Jenkinsによる自動テストを実行したいと思い設定していたらいきなりハマった。 なぜかgit cloneすらできないという・・・。 色々やったところ原因わかりました。 秘密鍵を置くフォルダは、ユーザーが実行する時はホーム…

URLエンコード

さっと調べたい時があるのでメモ。 irbを起動して、 require 'cgi' p CGI.escape("あ&い") これで %82%A0%26%82%A2 と出力されます。 逆に、 p CGI.escape("%82%A0%26%82%A2") とやれば、 あ&い となります。

英語勉強

うまく言えなかった表現: ・1日中家で過ごしました。:I stayed the whole day at home. ・家からオフィスまでどのくらいかかるんですか?:How long will it take from your home to your office? ・彼はもう寝ているよ。: He is asleep. ・海が見える場…

Play!触ってみた

1.2.3を使いました。 はまった crud用のhtmlを編集しようとして、マニュアルにあるとおり以下のコマンドを実行したところ、、 play crud:ov --template Users/list こんなエラーが。 Invalid command: crud:ov アプリケーションの場所を明示することでうまく…

リストをカンマ区切りの文字列にする。

C#

IList<string> list = new List<string>() { "dog", "cat", "pig" }; var s = String.Join(",", list);第二引数は配列でもよし。</string></string>

ASP.net MVCを使う。

C#

こちらのサイトが参考になった。 http://blogs.msdn.com/b/osamum/archive/2011/02/18/visual-web-developer-2010-express.aspx

Visual Stadioのtips

C#

プラグインの追加 Visual Stadio上で、[ツール] - [拡張機能マネージャ]で、拡張機能マネージャを起動する。 オンラインギャラリーからインストールしたいプラグインを追加する。 ■Productivity Power Tools 人気No.1プラグインということで、とりあえず入れ…