December 2010
1 post
Dec 2nd
October 2010
2 posts
Oct 18th
Mac | F11
Windows でいう win + D Mac OS 10.5 だけかもしれない
Oct 13th
September 2010
6 posts
Scala | Project Euler Probrem 1
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%201 val r = (0 to 999) ((r by 3) ++ (r by 5)).distinct.sum // => 233168
Sep 30th
Scala | Project Euler Probrem 2
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%202 import scala.collection.mutable def isEven(n: BigInt): Boolean = (n % 2 == 0) var fibs = mutable.Map[Int, BigInt]() def fib(n: Int): BigInt = { if (fibs.isDefinedAt(n)) return fibs(n) if (n <= 2) return 1; fibs(n) = fib(n - 1) + fib(n - 2) return fibs(n) } var result = (1 to 28).map(n =>...
Sep 30th
Scala | collatz2
def collatz(n: Int, list: List[Int] = Nil): List[Int] = n match { case 1 => (n :: list).reverse case n if n % 2 == 0 => collatz(n / 2, n :: list) case _ => collatz(3 * n + 1, n :: list) } println(collatz(69)) // => List(69, 208, 104, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1)
Sep 22nd
Scala | collatz
def collatz(n: Int) = n match { case n if n % 2 == 0 => n / 2 case n => (3 * n) + 1 } def nestWhileList[A](f: A => A, initial: A, p: A => Boolean) = { val result = Stream.iterate(initial)(f).takeWhile(p).toList result :+ f(result.last) } val cs = nestWhileList(collatz(_: Int), 200, (_: Int) != 1)
Sep 21st
Scala | repl 補完
scala> "foo". + asInstanceOf charAt codePointAt codePointBefore codePointCount compareTo compareToIgnoreCase concat contains contentEquals endsWith equalsIgnoreCase getBytes getChars indexOf intern isEmpty isInstanceOf ...
Sep 13th
1 note
“もうこの時点で「いやいやrequireは絶対パスで書くだろ、常識的に」とか「autoloadじゃないの?」とか「”
– Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineers’ Blog
Sep 6th
August 2010
5 posts
Smarty | 変数の展開 - バッククオートを使う
<% assign var="url" value="http://`$rows.foo`.sample.com" %>
Aug 25th
“「あなたへのおすすめ」じゃなくて「あなたが意地張ってフォローしない人たち」になってる”
– Twitter / ©ディスク百合おん (via junt74) (via fukumatsu) (via asyoulike) (via coolsurf) (via neknee) (via hakkuru) (via kyohei28) (via musashi0129) (via himmelkei) (via ta-bop2nd) (via deathscythe-hell) (via ignis09) (via maybowjing) (via furudanuki)
Aug 25th
411 notes
GAE | 開発環境の管理画面の URL
/_ah/admin/
Aug 24th
bash | if 文を一行で
$ [ -d /var/log/hoge ] && echo 'HELLO' $ [ ! -d /var/log/hoge ] && echo 'HELLO' # 否定
Aug 17th
Scala | 単語の削除
def deleteWord(replaceWords: String, originalWords: String) = { val pattern = "[" + replaceWords + "]" pattern.r.replaceAllIn(originalWords, " ").mkString } println(deleteWord("golf","flogwaiurhgm")) http://d.hatena.ne.jp/mzp/20100811/deleteWord
Aug 12th
July 2010
5 posts
SSL | Connection Partially Encrypted
サイトの一部に http で通信しているものがあり、完全に暗号化できているわけではないというエラー。
Jul 26th
Scala | サブ要素の抽出
scala> <a><b><c>hello</c></b></a> \ "b" res4: scala.xml.NodeSeq = NodeSeq(<b><c>hello</c></b>) タグ名を引数として \ を呼び出す
Jul 17th
Git | git stash
$ git stash $ git stash pop git stash は、今まだコミットしていない全状態を横にのけておいてくれる。元のブランチに戻って git stash pop で横にのけておいた状態を取り戻すことができる。
Jul 9th
Git | git checkout -b
$ git checkout -b hoge -b のオプションは、現在の状態を元にして新しいブランチを開始し、 そのブランチ上で開発する。下記コマンドと等価。 $ git branch hoge $ git checkout hoge
Jul 9th
Scala | playframework | tags の使い方
$ mkdir app/views/tags $ vi app/views/tags/hello.html // or app/views/tags/hello.tag $ vi app/views/Application/index.html 1 #{extends 'main.html' /} 2 #{set title:'Home' /} 3 4 #{hello /} // hello と tag を指定
Jul 3rd
June 2010
19 posts
Linux | whoami
$ whoami admin # whoami は現在の実効ユーザー id に対応するユーザー名を表示する。 whoami は、コマンド ‘id -un’ と等価である。
Jun 28th
TroubleShoot | The connection was reset
The connection was reset The connection to the server was reset while the page was loading. * The site could be temporarily unavailable or too busy. Try again in a few moments. * If you are unable to load any pages, check your computer's network connection. * ...
Jun 21st
Scala | assert
Scala の assert メソッドは、引数の Boolean をチェックし、値が false ならば AssertionError を投げる。渡された Boolean が true なら、そのまま何もせずに戻ってくる。 java.lang.AssertionError: assertion failed at scala.Predef$.assert(Predef.scala:79) at Main$$anon$1.((virtual file):27) at Main$.main((virtual file):5) at Main.main((virtual file)) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ...
Jun 21st
Scala | タプル
scala> val pair = (99, "Luftballons") pair: (Int, java.lang.String) = (99,Luftballons) scala> println(pair._1) 99 scala> println(pair._2) Luftballons タプルは、ドットとアンダースコアと「1から始まる要素の番号」を指定するだけで個々の要素にアクセスできる。 _N の要素が0からでなく、1から始まっているのは、Haskell や ML などの他の言語によって、静的に型付けされたタプルは1から始まるという伝統がすでに敷かれているからだ。
Jun 21st
Jun 14th
Jun 14th
PHP | php.ini の On と Off について
注意: boolean 値を探す場合 off という boolean の ini 値は空文字列または “0” として返されます。 一方で on の ini 値は “1” として返されます。 また、この関数はリテラル文字列で設定された INI 値を返すこともできます。 http://php.plus-server.net/function.ini-get.html
Jun 6th
Git | git reset
HEAD^ は「HEAD というコミットオブジェクトの1つ前のコミットオブジェクト」を意味する記法。 git reset HEAD^ $ git st (git)-[master][~/Sites/lang/git/gitusers] # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # # new file: style.css # # Changed but not updated: # (use "git add...
Jun 5th
Git | git revert
git revert は過去のコミットを取り消す。 $ git revert b7a4a6dc
Jun 5th
Git | git reset
git reset は次のコミットでこの内容を記録する、としたインデックスへの記録を取下げること。
Jun 5th
Git | git log --grep=
$ git log --grep='特別参加' # ログメッセージの文字列から探すことができる $ git log --grep='バック' --grep='グラウンド' # これは OR 検索になる $ git log --all-match --grep='バック' --grep='グラウンド' # --all-match をつけることで AND 検索ができる
Jun 5th
Git | git add -u
ワークツリー内の git で版管理しているすべてのファイルの現在の状態を次のコミットに記録したい、とリクエストすることができる。
Jun 4th
Scala | sbt
http://code.google.com/p/simple-build-tool/ $ cd ~/bin $ wget http://simple-build-tool.googlecode.com/files/sbt-launch-0.7.4.jar $ touch sbt && chmod u+x ~/bin/sbt && vi sbt #!/bin/sh java -Xmx256M -jar `dirname $0`/sbt-launch-0.7.4.jar "$@" $ sbt Project does not exist, create new project? (y/N/s)
Jun 4th
WatchWatch
Jun 4th
Mac | fcd と open
これを知らなかったことが後悔される。 fcd で Finder で選択されている場所に移動 open . でターミナルで選択されている場所に移動 ターミナルで 「fcd」とタイプするだけで、Finder で選択されている場所に簡単に移動できます。 fcdの逆、つまりターミナルで現在いる場所をFinderで表示する場合は、open .でいけます。~/.bashrcにalias here=”open .”と書いておくと、得も言われぬ快感に浸れます。 http://d.hatena.ne.jp/viver/20080203/p1 なるほど。there と here みたいにやってみようかな。
Jun 4th
Ubuntu | version を確認したい - lsb_release
NAME lsb_release - print distribution-specific information SYNOPSIS lsb_release [options] DESCRIPTION The lsb_release command provides certain LSB (Linux Standard Base) and distribution-specific information. If no options are given, the -v option is assumed. $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 10.04...
Jun 4th
Mac | spotlight を OFF にする
$ sudo chmod 0000 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mdworker で、再起動。もともとは 755 。
Jun 4th
PHP | ascii_stars
http://golf.shinh.org/p.rb?ASCII+Stars function ascii_stars($num) { $buf = array(); $size = $num * 2 - 1; for ($i = 1; $i <= $size; $i++) { for ($j = 1; $j <= $size; $j++) { $buf[$i][$j] = "*"; } } for ($i = 1; $i <= $size; $i++) { $abs = abs($num - $i); for ($j = 1; $j <= $abs; $j++) { $buf[$i][$j] = " "; ...
Jun 2nd
Scala | 結果型
コンパイラが要求しない場合でも、結果型を明示的に示した方がよい場合が多い。そうした型アノテーションがあれば、型推論されるべき結果型を読み手自身が関数本体から調べなくて済むので、コードが読みやすくなる。
Jun 1st
May 2010
39 posts
PHP | 文法エラーをチェック
$ php -l models/Hoge.php No syntax errors detected in models/Hoge.php いつもわすれる
May 17th
Scala | head, tail, init, last
scala> val l = List(1, 2, 3, 4) l: List[Int] = List(1, 2, 3, 4) scala> l.head res1: Int = 1 scala> l.tail res2: List[Int] = List(2, 3, 4) scala> l.last res3: Int = 4 scala> l.init res4: List[Int] = List(1, 2, 3) head には last、tail には init という双対的な操作 (dual operation) が存在する。
May 17th
Scala | リストと配列の違い
リストは配列とよく似ているが、違いが2つある。 第1に、リストはイミュータブルである。つまり、リストの要素は代入によって書き換えられない。 第2に、配列はフラットだが、リストは再帰的な構造(連結リスト:linked list) を持つ。
May 17th
Scala | イミュータブルを重視する
Java では、変数はミュータブルがデフォルトです。final 修飾子をつけない限り、変数はミュータブルです。 最初にすることは、イミュータブルのコレクションクラスを標準で使うことです。ミュータブルなコレクションクラスを使う場合には、ミュータブルを選んだ理由をソースコードにコメントとして残しましょう。ミュータブルなコレクションクラスが適切な場合もあります。例えば、メソッドの中でリストを作成している場合には、ListBuffer クラスを使うほうがより効率的でしょう。しかし、戻り値として ListBuffer を返すのではなく、List を返すようにしましょう。Java でStringBuffer を使って、最終的には String を返すのと似ています。イミュータブルのコレクションクラスを使うのを標準にして、妥当な理由がある場合のみ、ミュータブルなデータ型を使うようにしましょう。 ...
May 14th
Scala | null チェックの代わりに Option を使う
最初にすることは、ソースコードから null を追放することです。メソッドの戻り値では、絶対、決して、何があっても null を返してはいけません。 入力値の問題で、null や例外を返すような Java ライブラリを使っているのであれば、Option に変換します。Option を使って、String から Int へのパースを行っています。 Scala の基本です。null は使いません。 コードを書くときにも、null を禁止します。初期化されていないインスタンスの場合、null でない初期値を代入します。もし初期化の前にインスタンスをチェックする可能性があれば、 Option を使いましょう。そうすれば、初期値は None になります。妥当な入力値に対して、返すべき論理的な値がないのであれば、戻り値は Option にすべきでしょう。 Option の get...
May 14th
Scala | repl でメソッド一覧を確認する
タブでメソッド一覧が確認できる。 scala> val l = List(1,2,3) l: List[Int] = List(1, 2, 3) scala> l. ++ +: - -- /: :+ :: ::: :\ addString andThen ...
May 14th
Firefox | このパスワードを記憶させますか?
Firefox で、form の要素に password がある時に、<input type=”submit”… か <input type=”image… の時にクライアント側で validate をする時に、password に文字列が入力されていると、「このパスワードを記憶させますか?」というダイアログが出てしまう。 このイベントを止めることができないかを調べてみたが、止めることができない?ようだ。 <input type=”button”… にして対応することにする。
May 12th
Linux | コマンドラインからグローバル IP を得る
$ wget -q -O - http://checkip.dyndns.org | sed 's/.*Address\:\s\(.*\)<\/body>.*/\1/g'
May 11th
Git | git log あとで試す
$ git log --graph --branches --tags --pretty='%C(yellow)%h%Creset %Cblue%ar%Creset%C(green)%d%Creset %s'
May 11th
REST | REST とは次の6つを組み合わせたアーキテクチャスタイル
クライアント/ サーバ :ユーザインターフェースと処理を分離する ステートレスサーバ:サーバ側でアプリケーションの状態を持たない キャッシュ:クライアントとサーバの通信回数と量を減らす 統一インターフェース:インターフェースを固定する 階層化システム:システムを階層に分離する コードオンデマンド;プログラムをクライアントにダウンロードして実行する
May 10th
ngrep | ngrep -W byline port 80
tpcdump よりも分かりやすくリクエストとレスポンスのやり取りが見れる
May 9th
Scala | パターンマッチ - 特定の文字列とそのひとつ前の要素を削除
def ignore(in: List[String]): List[String] = in match { case Nil => Nil case _ :: "ignore" :: rest => ignore(rest) case x :: rest => x :: ignore(rest) } println(ignore(List("hoge", "foo", "ignore", "hello"))) // => List(hoge, hello) すごいなー。2つすごいと思っていて、一個は単純に再帰のプログラムに慣れてないから、それですごいな、ということと、もうひとつは、こういうパターンマッチって他の言語にあるのかな?(関数型系はありそうだけど)
May 8th