; (vec2list [* [+ 2 3 [+ 1 2]] 4]) -> '(* (+ 2 3 (+ 1 2)) 4) (defn vec2list [v] (let [l (apply list v)] (for [val l] (if (vector? val) (vec2list val) val))))
最近は「Clojure Web Development」を読んでひととおりのLuminus周りの使い方を学習中。 ただ「Clojure Web Development」で使用しているフレームワークのバージョンではCSRF対策はデフォルトでオフにはなっているみたいで、その辺りの記述が抜けている。 (…
・以下のようにして、REPL上でスタックトレースを表示。 (pst *e) Clojure/LeiningenのREPLで詳細なスタックトレースを見る - Qiita・tools.trace でトレース。 clojure/tools.trace · GitHub・以下のような形のデータがassocに渡ってくるところがあったので…
仕事ではしばらくずっとPHPのままだろうけど、プライベートで色々と遊ぶ言語としてClojureがいいんじゃないかな、と考えています。 LISP言語はずいぶんと古い言語のはずだけど新鮮に感じます。 括弧の数にファーストインプレッションでやられて敬遠してたけ…
現在入門書をいくつか購入して目を通している。 OCaml、Ruby、Common Lisp、Clojure、と今更ながらのRubyも混じっているけど、買ったのでとりあえず全部に目は通しておきたい。時間かかりそうだけど。オンラインのドキュメントで大丈夫そうなのとしてPython…
あまりに便利すぎて買ってしまった。 というかNetBeansがどうにも開発マシン(メモリをあまり積んでないため)では重すぎるし、Sublime Text 2ではデフォルトでは対応していない文字コードのソースを扱っている(しかもHTMLテンプレートやPHPソースで文字コ…
Goのスライスの利用イメージは、以下のようにして覚えている。 package main import "fmt" func main() { p := []int{1, 2, 3, 4, 5, 6} fmt.Println("p[0:1],p[1:4], p[4:6] ==", p[0:0+1], p[1:1+3], p[4:4+2]) } 結果は以下。 p[0:1],p[1:4], p[4:6] == […
Go言語で、実行しているファイルの場所と実行時ディレクトリを取得するサンプル。 package main import ( "fmt" "log" "os" "path/filepath" ) func main() { // 実行ファイルの場所 dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { lo…
https://github.com/iwot/go-utilGoサンプル的なライブラリにHttpRouterを追加しました。 使用例を https://github.com/iwot/go-util/tree/master/example/httprouter に置いてます。 package main import ( "./app/articles" "fmt" "github.com/iwot/go-uti…
https://github.com/iwot/go-util Goのサンプル的なライブラリをGithubで管理してます。現在のライブラリは以下。 PriorityQueue(プライオリティ付きのQueue。Dijkstraのサンプルをtestに含めてます。) PathMatch(URLとパスのマッチング) StringBuffer S…
久しぶりにN10JcにUSBメモリからLinuxをインストールしようとして忘れてたのでメモ。 USBメモリから起動するには起動画面でESCキーを押すこと。 その後選択画面が現れる。
アクセスしたパスでの処理振り分け方法に少し悩んだのでメモしておきます。例ではhttp.Handleにはパターンとして"/app/"を登録し、ハンドラに渡されたパス("/app/post/(form|confirm|do)")をパターンマッチして処理を振り分けます。 package main import (…
基礎からわかるGo言語には載っていなかったようなのでメモ。パッケージのimportに関してよく見かける説明では、importするパッケージはGOPATH以下に配置されている必要がありますが、わざわざGOPATHにパスを追加して管理するのも面倒に感じます。 そういう場…
WindowsのHaskellで import System.Console.Readline とするために cabal install readlineとしたのだけど、どうしてもエラーが出る。 readlineのヘッダファイルが読めればいいのかと思ってCygwinからやってみたけど、やっぱり駄目。どうにかできないものか…
Goでのテストには付属のtestingパッケージが使えますが、試しにTestify(https://github.com/stretchrcom/testify)を使ってみました。インストール。 go get github.com/stretchrcom/testifyテスト対象として以下のようなプログラムがあった場合。 package es…
http://mattn.kaoriya.net/software/vim/20130531000559.htm を参考にVimの設定をやり直した。 これで色々とすっきり便利に。
CentOS上でGoをvimで書くための設定をしたのでメモ。http://tip.golang.org/misc/vim/readme.txt を参考に、ソースからvimの設定をコピー。それと.vimrcを設定したのでこれもメモ。 set t_Co=256 :syntax on set nocompatible set number set cmdheight=2 se…
シェルでMySQLのselectを出力するとき、 select * from tblname \G のようにして出力を見やすくすることがあるわけですが、PostgreSQLの場合は以下のようにすると良い。 \x select * from tblname;
まずまとめ Ruby、Go、Scalaで作ってみて、一番楽に感じたのはRubyだったかな(ほぼ生粋のPHPerなもので)。 慣れればもっといい書き方がありそう。 記述量的にはScalaが少なかったんだけど(.sbtファイルを含めると別)、一番悩んだのはScalaかも(多少なり…
Windowsであればsmtp4devで良さそう。 サーバー側であれば、 ・Python => DebuggingServer (http://docs.python.org/2/library/smtpd.html) ・Ruby => mocksmtpd (http://koseki.hatenablog.com/entry/20081103/mocksmtpd) ・Ruby => MailCatcher (http…
前回、Rubyでやった翻訳API使用を今度はGo言語でもやってみた。 http://system.hateblo.jp/entry/2013/05/17/181822 とはいえGoらしい書き方がまだ分かってないんだけど。前回と同じくCygwinから使う想定(Windowsのプロンプトだと手を加えないとUTF-8文字が…
weblioのポップアップウィンドウの方が便利だけどと思いながらも、Rubyの練習のためにMicrosoft Translatorを使ってみた。MICROSOFT TRANSLATORサブスクリプション登録。 https://datamarket.azure.com/dataset/1899a118-d202-492c-aa16-ba21c33c06cb 今回は…
表題通り、Dartでライフゲームを実装してみた。 環境 Dart Editor version 0.5.3_r22223 Dart SDK version 0.5.3.0_r22223 ソース lifegame.html <html> <head> <meta charset="utf-8"> <title>Lifegame</title> <link rel="stylesheet" href="lifegame.css"> </head> <body> <h1>Lifegame</h1> <canvas id="world" useMutation="1">…</canvas></body></html>
コップ本の復習。 目的 ・コップ本にあったJSONパースプログラムの実装。 ・sbtを使用する。 ・jarファイルにまとめる。 環境 ・IntelliJ(12.1.2) ・Scala 2.10.1 ・sbt 0.12.3 http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html から、…
いわゆるコップ本。 長々だらだらと進めてきてたけどようやく読了。 あとは実践あるのみだけど何を作ろうか。 Scalaスケーラブルプログラミング第2版作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版社/メーカー: インプレス…
Google Maps APIもSearch APIもjsapiのローダーを使うと楽、と。 <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('jquery','1.7.2'); google.load('maps','3',{other_params:'sensor=false'}); google.load('search','1'); google.setOnLoadCallback(function() { $(function() { }); …
マジでか。 ちょっと困るなー。 数ヶ月先のこととはいえ、今のうちにRSSリーダー探しておくか。 それともいっそのこと作るか。
まず始めに IntelliJにScalaプラグイン、SBTプラグインを入れておく。 とりあえず 参考: http://vyazici.blogspot.jp/2012/11/setting-up-scala-development.htmlHelloWorldディレクトリ作成。cd HelloWorldbuild.sbt ファイル作成。 内容は以下。 Scalaの…
IntelliJのKeymapが一部文字化けしているので、以下のようにした。 File -> Settings -> Appearance と辿り、 "Override default fonts by (not recommended)"にチェックを入れ、 Meiryo UIを選択。ひとまず文字化けは解消された。
PHP5.4にもtraitがあることを初めて知った。 のだけど、(当然だが)Scalaと全く同じようには使えないみたいで少し残念。たとえば以下のようなScalaの実装。 object Sample { abstract class Say { def say: String } trait SayWorld extends Say { abstract…