(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

2015-05-01から1ヶ月間の記事一覧

あるディレクトリ以下のファイルを全てフォーマットし直したい

僕は普段 Emacs を使っている。しかし、最近 Cursive*1 を使うこともある。 それで何が困るかというと Cursive はちょっとイケてないので、ちゃんと Clojure(Script)? をフォーマットすることができない*2。 Clojure のスタイルガイドだと例えば with-* マク…

#渋谷Java 第十一回で Clojure 用の IDEA プラグインである Cursive の紹介してきた。

第十一回 #渋谷java (2015/05/30 14:00〜)何をとち狂ったのかセッション枠という 20 分話せる枠をもらってしまったので話してきた。元々は Clojure 入門みたいな話をしようと思ったんだけど、やっぱり入門以前にエディタとか IDE で「自分たちが普段使ってい…

ClojureScript の中で JSON を Clojure のデータ形式にするときにマップのキーをキーワードにする

メモ。JSON オブジェクトを受け取って js->clj に突っ込むだけだと、 JSON のキーがそのまま文字列で来るので :keywordize-keys オプションをつけてあげる必要がある。 (ns example.core (:import [goog.net XhrIo])) (defn callback [reply] (let [v (js->c…

社会人 2 年目の女の子から相談された話

昨晩、久しぶりに高校の頃から付き合いのある女の子と話していた。その時間なんと 4 時間程…。昨年の春から彼女*1は某 SIer な会社で働いていて、就活の頃からちょいちょい相談に乗ったりしていたんだけど今は社会人 2 年目ということでまぁぼちぼちやってい…

Boot の sift タスクであるディレクトリ以下のファイルを全て移動させる。

どうやるのかなーって思ったけど、簡単だった。 (sift :move {#"css/(.*)" "assets/$1"}) 後方参照ですね。 参考 Improve sift :move when dealing with multiple files · Issue #144 · boot-clj/boot

(Boolean. false) の Clojure での扱い

(Boolean. false) in ClojureLisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot にあるように Clojure の中で false として扱われるのは nil と false それ自身だけ。驚くことに全くもってその通りで、 (Boolean. false) は false じゃないん…

あなたの Slack にも Clojure bot どうですか?

こんな感じです。 Clojure bot を導入してみる 使うのはこれです。verma/clj-slackbot便利なことに README に Deploy to Heroku というボタンがあるので押してしまって Heroku のデプロイ画面に行きましょう。 (ログインしてなければログイン画面が出るので…

Emacs の上の方にファイルのパスを表示したかった

ずっと前からしたいなーって思ってたけど、思いの外簡単に出来たので満足している。 (setq-default header-line-format '("" (:propertize (:eval (shorten-directory default-directory 30)) face mode-line-folder-face) (:propertize "%b" face mode-line…

e2wm の気に入っている機能

Emacs 使ってて、この拡張は Anything/Helm と同じくらい僕にとっては必要なものです。広くなった画面を有効利用できる、Emacs内Window管理ツール e2wm.el を作ってみた。(旧名称 ewm.el) - 技術日記@kiwanamiサブウィンドウ的なものの開く位置や大きさを…

vmware の中で xubuntu を 1920x1080 の解像度に設定する

基本的にデスクトップアプリがよしなにしてくれるケースは、こんなことしなくてもフルスクリーンとかすれば自動的に画面が大きくなるんだけど、そうでないケース(デスクトップアプリ殺したとか)の場合次のような設定をしたほうがいい。 xrandr --newmode "19…

(println (iterate inc 0)) は何故出力されるのか

(println (iterate inc 0)): why does this even start printing?質問者の (println (iterate inc 0)) を実行したときの期待値は、何も表示されることなく延々とスタックを貯め続けることだったみたいですが、そうではなくてこのコードは次のように延々と出…

リロードしたくないファイルをリロードできないようにする

だいたいこういうのをファイルの頭に書けばよいです。 (require '[clojure.tools.namespace.repl :as ns-tools]) (ns-tools/disable-reload!) ついでに言うと、ネームスペースをリロードしただけでも死ぬことがあるので ns フォームの中で require しないで…

Boot の REPL 上では Clojure の compile 関数は動かない

タイトルまま。 例えばこういう build.boot を書いているとする。 ;; build.boot (set-env! :resource-paths #{"src"} :dependencies '[[org.clojure/clojure "1.6.0"]]) さらにこういうファイルを書いているとする。 ;; bar.clj (ns foo.bar) (gen-class :n…

Boot で Leiningen のような Checkout dependencies を実現する

これは Leiningen 同様 Boot のデフォルトタスクで実現出来るのですが、ちょこっと手間があるので解説。 Leiningen の Checkout Dependencies については前に触れたのでそちらを参照ください。Clojure における幾つかの実践的なデバッグ方法 - (define -ayal…

Boot で alembic てきな依存関係の動的解消(?)ぽいことをやる

最近 Boot を本格運用し始めて色々と質問されて調べたりする機会が出来たのでちょこちょこノウハウというか Tips 的な何かを書いていきたい。 alembic とは pallet/alembicgithub.comまぁ Clojure やってる人なら使っている人も多いと思いますが、実行中の R…

defn- のような def- を定義したけど、 private にならないという話

ML で読んでほえーと思った。Why (defn- ...) but (def ^:private? ...)元の質問者は def フォームは ^:dynamic? になるの?って聞いてますが、何故かというと彼の書いたマクロ def- が綺麗に動かなかったからです。 こういう感じ。 (defmacro def- "Why (def…

Clojure のこの関数だけ読み込みたくない!!

最近 Clojure で書かれたコード読みまくってるんですけど、まぁ知らないテクニックとか色々あるわけでして。そんな中で知ったひとつのテクニックがこれ。例えば、 Clojure そのものの compile 関数は使いたくないけど、このネームスペースに compile 関数と…

1 ヶ月間 Clojure を書き続けて感じたこと

まえがき 日本で Clojure を使い始めた 1 人の Clojure プログラマとして、この 1 ヶ月で感じたこととか Clojure をとりまく環境とか書いておきたいなと思う。 日本では流行ってない? 2010 ~ 2011 年頃、空前の Clojure ブームがあったらしい。原因は「 Prog…

Boot を使いはじめる(インストールから基本的な使い方まで)

一個前の記事で言及している Boot についてです。 boot-clj/bootgithub.comああ、ロゴが可愛いですね。本当に。さて、さくさくっと 1 週間くらい触ってきて知見もそこそこにたまってきたので公開します。 目次 思いの外チュートリアルが長くなったので… イン…

Clojure の Boot というビルドツールについて

めちゃくちゃ可愛いロゴが気になる Clojure のビルドツール Boot について色々と調べたので書き残しておく。だらだら書いてたら長くなってしまったので Boot のインストール記事を分けた -> Boot を使いはじめる(インストールから基本的な使い方まで) - (def…

gen-class を使ったときにどうやってインスタンスを取得したらいい?

How do I get the instance of the class when using gen-class毎日 StackOverflow は見てるんですが、まさか @tnoda_ さんが回答者として出てくるとは思わなかった。gen-class 使って出来るクラスのインスタンスメソッドの中で "this" にアクセスしたいんだ…