この記事は、変態アドベントカレンダー 6日目の記事です。前日は はがねのつるぎさん でした。
このアドベントカレンダーは、意識もスキルも高い変態勇者がハイテクを駆使してかくもの、と思ってらっしゃる方にはちょっと申し訳ありません。若干変態度もハイテク度も低めで肩透かしを食らうことになりますが、しばしお付き合いください。
今日のネタは、私自身の日々の切実な課題である、Excel文書と戦うための準備、といったところです。
Excel ドキュメントにに対する不満
| ;; ディスパッチ関数 | |
| (defn fizzbuzz-dispatch-fn [n] [(zero? (mod n 3)) (zero? (mod n 5))]) | |
| ;; マルチメソッドの定義(マッチングめちゃ強力!) | |
| (defmulti fizzbuzz fizzbuzz-dispatch-fn) | |
| (defmethod fizzbuzz [true false] [n] "fizz") | |
| (defmethod fizzbuzz [false true] [n] "buzz") | |
| (defmethod fizzbuzz [true true] [n] "fizzbuzz") | |
| (defmethod fizzbuzz :default [n] n) |
| ;;; Project Euler Problem 1 | |
| ;;; http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%201 | |
| ;;; | |
| ;;; 10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり、 これらの合計は 23 になる。 | |
| ;;; 同じようにして、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。 | |
| ;;; 3 もしくは 5の倍数の場合 true、そうでない場合 false を返す filter 判定用関数 | |
| (defn fizz-or-buzz? | |
| "3か5で割り切れるならtrue、そうでないならfalseを返す。" | |
| [n] |
| ;;; 普通の再帰版 | |
| (defn fact-1 [n] | |
| (if (= n 0) 1 | |
| (*' n (fact-1 (dec n))))) | |
| ;;; 末尾再帰版 | |
| (defn fact-2 | |
| ([n] (fact-2 n 1)) | |
| ([n acc] | |
| (if (= n 0) acc |
| ;;; | |
| ;;; see http://mail2.nara-edu.ac.jp/~asait/java/xml/xml.htm#section4 | |
| ;;; | |
| (ns lispguide-convert | |
| (:import | |
| [javax.xml.transform TransformerFactory] | |
| [javax.xml.transform.stream StreamSource StreamResult])) | |
| (defn doit | |
| ([] (doit "lispguide.html" "lispguide.xml" "styleguide.xsl")) |
この記事は、変態アドベントカレンダー 6日目の記事です。前日は はがねのつるぎさん でした。
このアドベントカレンダーは、意識もスキルも高い変態勇者がハイテクを駆使してかくもの、と思ってらっしゃる方にはちょっと申し訳ありません。若干変態度もハイテク度も低めで肩透かしを食らうことになりますが、しばしお付き合いください。
今日のネタは、私自身の日々の切実な課題である、Excel文書と戦うための準備、といったところです。
Excel ドキュメントにに対する不満
この記事は、lispリーダーマクロアドベントカレンダー の4日目の記事です。 タイトルにある通り、Clojure でのリー ダーマクロについて取り扱います(対象とする Clojure のバージョンは 1.4)。
| # shp2img -m /Library/WebServer/CGI-Executables/mapserver/example06.map -o ~/out.png -s 1920 1080 | |
| MAP | |
| DEBUG 5 | |
| CONFIG "MS_ERRORFILE" "tmp/ms_error.txt" | |
| EXTENT 129.7 32.9 138.0 38 | |
| WEB | |
| METADATA | |
| "wms_title" "WMS Server" |
| $ sudo port clean python27 | |
| $ sudo port upgrade python27 -universal | |
| ## 一瞬これでいけたかと思ったけどやっぱりだめだったorz | |
| ## 後日 | |
| ## python27 が 2.7.3_0 から 2.7.3_1 になってやってみたが、別のエラーでこける。 | |
| ## 調べてみたらまさにこれ: https://trac.macports.org/ticket/32090 | |
| ## で、やってみたら | |
| $ sudo port -f deactivate py27-xml |
| SET CLIENT_ENCODING TO UTF8; | |
| SET STANDARD_CONFORMING_STRINGS TO ON; | |
| BEGIN; | |
| COPY "admarea" ("n03_001","n03_002","n03_003","n03_004","n03_007",geom) FROM stdin; | |
| 富山県 \N 下新川郡 朝日町 16343 0106000020041200000100000.... | |
| : (中略) | |
| \. | |
| COMMIT; |
| # install | |
| $ sudo port install postgis2 | |
| $ port info postgis2 | |
| postgis2 @2.0.1 (databases, gis) | |
| Variants: comments, gui, postgresql90, postgresql91, [+]postgresql92, [+]raster, [+]topology, universal | |
| Description: PostGIS 2 adds geometrical, geographical and topological types, and functions operating thereon, to the PostGreSQL database. The 2.0 release also provides raster handling | |
| and basic 3D geometry capacities (TIN and polyhedra). | |
| Homepage: http://postgis.refractions.net/ |