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プラグインということで、とりあえず入れ…

プロセス調査

実践ハイパフォーマンスMySQLからの抜粋。 ポート番号からプロセスの特定 netstat -ntp | grep :37636 プロセスが所有している他のネットワーク接続情報を調べる。 netstat -ntp | grep 16072/apache2 プロセス情報を見る。 ps eaf | grep 'UID\|16072' プロ…

パターンマッチングした部分の抽出

rubyの例から。 str = "hello, world" if str =~ /hello, (.+)/ puts $1 end これで、「world」が出力されます。 これと同じことをjavascriptでどうやるか、ずっと分からなかったんだけど、ひょんな事から知ることが出来ました。 var str = "hello, world"; …

jQueryの歴史

jQueryは1.2から使い始めて、その後新しいリリースに追いつけていない。 ちゃんと勉強しようと思い、まずはリリース状況を把握することにしました。 2011.5.3 jQuery1.62011.3.31 jQuery1.5.2 2011.2.24 jQuery1.5.1 2011.1.31 jQuery1.52010.11.11 jQuery1.…

ファイル内文字列検索

こんなんできるんや! % grep 検索文字列 ファイル名 ヒットすると、その部分が画面に表示されます。でもよくあるシーンとしては、あるディレクトリ以下のファイル全てに対して、検索をかけたいんじゃないでしょうか。 これも出来ます。以下は、現在のディレ…

Oracleメモ

DB

今まで知らなかったのが相当まずい気がしますが、学習した事をメモ。 SQL Plusの実行結果をログファイルに。 SQL Plusログイン後、以下のようにすることでログが出力されるようになる。 spool /home/xxx/oracle.log SQL Plusに出力される文字が文字化けする …

MySQLはじめました

そもそもの操作になかなか慣れないので、よく使うコマンドを勉強がてらメモしていきます。 操作 MySQLに接続 mysql -u ユーザー名 -p DB切り替え use データベース名; 確認 接続情報確認(DBの文字コードなどの確認) \s ユーザー情報確認 select host, user…

Windows XP PCを無線ルーターに

以下を参考にした。 iPadからwifiネットワーク接続までは出来たけど、インターネットには接続できなかった。 うーむ。http://asymmetric-blog.com/2010/07/17/make_your_pc_route/ http://helpguide.livedoor.com/help/wifi/guide/grp165/guide430

MySQLをinstallするのにcmakeが必要

なんだけど、yum install cmakeでは入らなかった。cmakeよく分からんって感じで。 それで調べてたところ、以下のblogを見つけ、無事いけました。 リポジトリを追加してやれば、そっちにはあったみたいだ。 CentOS 5 で DAG(rpmforge) の yum repository 追加…

Kickstart

RedHat系Linuxには、自動インストールのための仕組みがあるらしい。

ハードディスク容量

Linuxの容量が少なくなってきた時に見るべき場所。 それは/var/yum/cache。 以下のコマンドで現在の容量を調べて見ましょう。 du -hs /var/yum/cache 私の環境では5.4GBと表示されました。キャッシュ大杉。 で、キャッシュを削除するには以下のコマンド。 yu…

Javaでの文字のバイト列の表示

作る必要があったので、メモがてら残しておく。 なお、String#codePointAtで返ってくる値は常にUTF-16BEとしてのコードポイントという点に注意。 public static void main(String[] args) { String string = "あいうえお"; for (int i = 0; i < string.lengt…

Linuxのメモリ周り色々

あるプロセスが利用しているメモリサイズをprocfs経由で調べる 過去使った最大仮想メモリサイズや最大物理メモリサイズなどを調べることができる /proc/PID/status 減り続けるメモリ残量。果たしてその原因は?

topでメモリ使用率でのソート

top実行後にMって押すと、メモリでのソートになる。 Shift + oで色々選べる。

エミュレータを横向きに

Ctr + F11です。

JSPでのスクリプトレット内での注意事項

Tomcat5.5.27からは以下のような書き方はできなくなったようだ。。 <input type="text" name="sample" value="<%= varA + ", " + varB %>"> こんな例外が出る。 Attribute value varA + ", " + varB is quoted with " which must be escaped when used within the value 対応方法は以下にありました。素晴らしい。 http://amebl…

hosts利用

後輩にAndroidでのhosts利用に関する手順書をもらったので、メモしておく。 手順 Androidエミュレーターを、以下のコマンドでコマンドプロンプトより起動する。 emulator -avd (Androidエミュレーター名) -partition-size 128 エミュレーターのOSが起動し…

PreferenceActivity

設定画面を作るには、PreferenceActivityを使う。 で、入力項目なんかはEditTextPreferenceをxmlで宣言する。 例えば、パスワード項目は内容が表示されないようにしたいが、eclipseの設定画面を見てもそれっぽいのはない。 調べたところ、xmlを直接変更しな…

jQuery mobileの$.mobile関数がもっているプロパティや関数一覧

なんかの役に立つかもしれないので、メモ。 activeBtnClass:string activePage:object activePageClass:string addResolutionBreakpoints:function ajaxFormsEnabled:boolean ajaxLinksEnabled:boolean button:function changePage:function checkboxradio:f…

PDFダウンロードが出来ない。

開発中のWEBアプリケーションで、とあるリンクをクリックするとPDFファイルをダウンロードするという機能があります。 PC、iPhoneはOKだったんですが、Androidではダウンロードしたファイルが不明なファイルとして扱われ、ビューワで開く事ができません。 ち…

アプリの配布方法

エンタープライズ向けの社内専用ツールを考えているので、android marketじゃない配布方法を知りたかったのだが、以下の説明が分かりやすかった。 http://d.aoikujira.com/jsWaffle/wiki/index.php?%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E9%85%8D%E5%B8%83%…