日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

コマンドプロンプトのデフォルトフォント変更

この記事はレジストリを直接いじる事になります。レジストリの編集先は示しますがレジストリ自体 の編集方法についてはここでは書きません。 以前 コマンドプロンプトの表示領域を変更する記事 を書いたが、今回もう一つやりたかったデフォルトフォントの変…

Clojure で mutable な field を持つ deftype の例

doc 見れば書いてはいるんだが試した事はなかったので試してみた。 Clojure deftype that has mutable field and setter ...

Clojure の一つの名前空間で複数ファイルに分けたい

とあるオレオレライブラリの管理をする時、ソースファイルとしてはある程度機能別に分けたいのだが、 そのライブラリを使うとなった時にはあまり require, use で指定する名前空間は増やしたくない。 そう言う時どうすりゃいいんだろと少しググって見たら、C…

4Clojure の別解

4Clojure#95って clojure.zip使うとも少し分かり易く書けるのではとふと思い立ち書き直してみた。 4Clojure#95別解 ネタバレになると思うので埋め込まずにリンクだけ載せときます。

Clojure + JavaFX プログラムを配布できないものか試してみる

[2014-05-08] 手順一部更新 Github を使いだしたので慣れる為にも今回からはてブロでも対応してる Markdown 記法で記事を書くことにする。まあ見た目には変わらないんだけど。 さて、これまでしつこく JavaFX を試してたのだが、気にはしつつもほったらかし…

ExcelVBA についてのグチ

仕事で小さい ExcelVBA マクロを組む事がしばしばあるのだが色々と思う所をグダグダと書く。元々は以下のブログにかなり賛同し、自分も何かしら書いてみたくなったのが発端。 Excel VBAつかいまくってるからそろそろ腹にためてることをちょっと書き出すか - …

こんなんで遊んでみた

shinmuro/cljfx · GitHub ついでに github デビューw

Clojure のお手軽オプショナル引数(かなりニッチ)

小ネタ。個人的には使わないとすぐ忘れてしまう筆頭機能の一つである Clojure の Destructuring。これをちょっとだけ利用した小技を一つ。一つだけオプショナル引数として欲しいなあって時は (defn foo [bar & [baz]] (hoge-fn baz bar)) と書くと楽。baz が…

emacs で lisp 系コード編集時に忘れがちなコマンド

cider は便利に使わせてもらってるのだが、標準の elisp でもそういや S 式編集するコマンドあったよな、あれ何だったっけかと忘れがちになるのでリンクしとく。もはや describe-bindings なんかじゃ探してられんし。GNU Emacs マニュアル - リストとS式に対…

leiningen の AOT 設定

leiningen(と言うか Clojure)では gen-class を指定した名前空間(言い換えると Java の名前付きクラス)を参照したプログラムを走らせる場合、AOT コンパイルが必要になるのは多分 leiningen を使う人ならほぼ周知の事だと思う。例えば leiningen では名前空…

Clojure の future は shutdown-agent と一緒に使うべし

Clojure には気軽に別スレッドに処理を投げて結果をもらう事ができる関数として future があるんだけど 、これ future の処理が正常終了しててプログラム終わらせようとしてもしばらく終わらない事がある。自分が使った時がプログラムが終わるまで 1~2 分か…

Clojure での docstring 挿入位置

defn は一番良く使うので忘れる事はないのだが、他の def 系を使う時に docstring 挿入位置*1ってどうなってたっけと手が止まる事が時々ある。どうも自分の中でイマイチ整理できてないのでここらでちょっとまとめてみた。 基本形 (def ^{:doc " これが基本 "…

Clojure の Tagged Literals について

Clojure の Tagged Literalsで遊んでたところ、タグリテラル単体を評価する時ではタグとヒモ付けた関数が展開されてるみたいなんだが、他の式と組み合わせるとダメ。あるシーケンスを返すリーダーマクロなんだが、そいつにごく単純に first かけても以下のよ…

JavaFX イベントハンドリングおさらい(1) - イベント処理の流れについて

前ふり 以前 JavaFX イベントハンドリングに関しては fx:script 使えば Clojure でも動くよ、と言うこんな記事を書いた。 JavaFX + Clojure でのイベントハンドリング - 日曜プログラミングまた、多分邪道だが FXML の UI 部品に fx:id ではなく id プロパテ…

コマンドプロンプトをちょいカスタマイズ

コマンドプロンプトに微妙に不満があり、最初Console2とか試していたが、どうもしっくり来ない。そういや自分の不満点ってなんだっけかと思い返す。表示領域が狭いのが唯一気に入らない点なのを思い出した。その視点でググると標準でもプロパティで変更でき…

関連付け起動で clj ファイルを emacs で開く

自分は Clojure でコードを書く時、 用途 ツール 通常のテキスト編集 xyzzy Clojure での開発 emacs + コマンドプロンプト ファイル操作 xyzzy ファイラ と言う、多分世界で何人もいないんじゃないかwと言う相当ニッチな環境で作業してる。これで一つだけ困…

xyzzy の reference.chm 探し

xyzzy のちょっとしたカスタマイズを久々にしたくなりリファレンスを参照するキーバインド叩いたら反応がなかった。見るとヘルプファイルが入ってない。あー、xyzzy アップデートした時にうっかり消してしまったか?現時点だと以下にアーカイブがあるのでそ…

Clojure から無理やり FXML UI を参照する

無理やりシリーズ連続w今日も今日で飽きもせず JavaFX API を眺めていると Node#id なるプロパティを見つけた。API doc の String ID と言う項目に説明がある。んん?これ FXML の fx:id と違うんだっけ?お手軽に試すため fx:script を試した時の project …

Clojure + JavaFX で無理やり REPL

タイトルは元々前から何とかできないかとちょいちょい調べてたのだが、先日以下のブログの記事を見つけて Scala REPL でできるならきっと Clojure だってできるはずだー、と無意味なライバル心が芽生えて改めてがっつり調べてみたくなったのが発端w Scala RE…

Windows コマンドプロンプトで lein javac するとエラーメッセージが文字化けする

どーせ文字コードが一致してないんだろと予想はつき、Windows コマンドプロンプト側と javac 側がどうなってるのか確認しようと思い立つ。ググるとコマンドプロンプト側は chcp で 932(SJIS)とすぐ分かったものの javac 側がイマイチ分からん。Java 実行時 P…

JavaFX アプリ用 leiningen テンプレートを作ってみる

公式ドキュメントを斜め読みしてもイマイチピンとこないので実際に自分で試してみる。日本語で読めるお試し記事がこちらにあり、記事では謙遜してるけど実際にはこちらの記事の方が大いにお世話になった。 やりたい事 JavaFX スタンドアロンアプリ用の Cloju…

Builder パターンって何さ

JavaFX API doc を眺めてると、GUI 部品関連クラスで XXXBuilder が大量にあったのがなぜ?と思い Builder パターンってのをググってみた。すると、あるオブジェクトを作る時のコンストラクタ引数が大量にあって、どの引数をどの順番に適用したらいいか分か…

fossil を使ってみる

この記事の内容は記法の変更に伴い新記事 へ移行しました。

ViX から IfranView に乗り換え

PC 画面キャプチャソフトとして長年 ViXのクリップボードセーバー機能を使っていたのだが、Windows7 辺りからかキャプチャ時によく落ちるようになってしまった。ViX はかなり前から更新はストップしており、作者に今更要望を出すのもなんだかなあとも思うの…

leiningen で SNAPSHOT なライブラリに依存するプロジェクトを uberjar する

今年一発目ですが、去年と変わらず Clojure 周りを触っていてちょっとばかりハマった事などをつらつらと今年も書いていきます。今作ってるツールで clj-time を使っており、その中で ICoerce な protocol が LocalDateTime に対応するようになったのが 0.6.1…

codox 良いね

多分バリバリ開発してる人には今更なんだろうけど自分の作ってる関数がとっ散らかってきてどんな命名にしてたっけか、と言うのを見たくて leingen プラグインとして提供されてる Clojure アプリ/ライブラリの API 自動生成ドキュメントである codox を入れて…

require 一辺倒でなく use もいいかなあ

Clojure を使い始めた頃は名前の衝突とどの名前空間だか分からなくなるので (require '[clojure.string :as s]) のスタイル一択でしょ、と思ってたが、書くコードが増えてくるにつれ :as で短くした修飾すら打つのを面倒に感じるようになってきた。emacs で…

Clojure の ratio? と rational?

小ネタ。昨日から Clojure で分数を扱いたくちょいちょい調べてるが、分数かどうか判定する関数は ratio? が使える。 (ratio? 1/3) ;=> true (ratio? 1) ;=> false (ratio? 1.1) ;=> false 似たような名前の関数で rational? もあるが、こちらは整数でも tru…

[Excel] Excel で分数計算

どうやら地味に分数を扱えるらしい事を見つけたのでメモ。エクセル分数を入力するにはセルに "0 1/3" と入れれば Excel は分数とみなす。 実際の入力にはダブルクォーテーションや 0 の前に = は不要。 これを * 3 すればキッチリ 1 となる。この点は分数を…

Clojure の leiningen プロジェクトでファイル分割する際の注意点

とある leiningen プロジェクト内でまぁ何となく機能別にファイルを分割したくなりファイルを分割した。元々 core.clj の 1 ファイル内で REPL 上で試しながらコードを書いていて量が増えてきたので機能別にこんな依存関係で分割した。 foo.core -> foo.a ->…