No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Tips

MacのGoogle日本語入力でバックスラッシュ(\)を入力する方法

「環境設定 -> 一般 -> ¥キーで入力する文字」 で指定可能でした。真ん中あたりの「¥キーで入力する文字」をクリックして 「バックスラッシュ(\)」に変更 これで、\がさくさく入力できるようになります。 類似記事 (2013-05-30追記) Mac の Google 日本語…

メタプログラミングGroovy入門

Groovy!(挨拶)最近Groovyであまり遊べていないfumokmmです。G* AdventCalender2012の10日目ということで、久々に記事を書かせていただいております。 せっかくの機会なので、Groovyでメタプログラミングする際のとっかかり部分をまとめてみました。自分の…

Javaでenumを使ってプロパティファイルのキーを定義する

はじめに enumでインタフェースが実装できることが分かったので、その応用例の一つとして、Javaでenumを使ってプロパティファイルのキーを定義するサンプルを書いてみました。 プロパティファイル読み込みは何が問題か Javaでの外部プロパティファイルの機構…

Javaのenumは継承できないけどインタフェースが継承できる

はじめに Javaのenumって便利ですよね。enumを使い続けていくとグルーピングしたくなってくる事があると思いますが、継承はできないので、そんな場合はインタフェースを実装してやるといいようです。 とりあえずテストを書いた 解説 インタフェース interfac…

JavaでPropertyDescriptorを使ってBeanのプロパティに簡単にアクセスする

はじめに Java標準のSDKに java.beans パッケージがありますが、この中にJavaBeansの getter/setter を便利に扱える PropertyDescriptor というクラスがあるようです。 クラス階層 java.beansClass PropertyDescriptorjava.lang.Object └java.beans.FeatureD…

Groovyで@Categoryを使ってカテゴリクラスを作成する

@Categoryアノテーションを付けるとそのクラスをカテゴリクラスにできますよというサンプル。この機能はObjective-Cのカテゴリ由来のようです*1。 以前までは第一引数にメソッドを追加したい型をパラメータself*2として付けたstaticなメソッドを宣言してやる…

Groovyでクラスを静的に動的拡張する方法

はじめに GroovyではExpandoMetaClassの機能を利用してメタプログラミングが可能です。これにより動的にクラスにメソッドを定義できるため豊かなプログラミングスタイルを提供できます。 しかし、GroovyにはRubyのようなincludeキーワードがないため、拡張部…

GroovyのList#unique()って破壊的だったっけ?

はじめに タイトルの通りなんですが、以下のようなコードを実行したときに どうも破壊的に動作するようで… def list = [1, 1, 2, 2, 3, 3] assert list.size() == 6 def newList = list.unique() // 破壊的! assert newList.size() == 3 assert newList == …

IntelliJでフリーカーソルをやめる方法

IntelliJはデフォルトではフリーカーソルとなってしまっていて一部の人には使いにくいですよね。 そこでこれを解除するオプションをメモしておきます。 Preference IDE Setting Editor Virtual Space の Allow placement of caret after end of line のチェ…

Groovyのクロージャ生成時のパラメータ指定について

はじめに クロージャって便利ですよね。私はクロージャと出会ったことで処理とイテレーションの分離の考え方を身に付けることができました。さて、今回はそのクロージャ生成時のパラメータ指定についてです。普段何気なく使ってしまっているクロージャですが…

Groovyの動的型変換ではまった

GroovyはGroovy++などを使わない場合は静的型チェックしてくれず、よしなに動的型変換をしてくれる。(ということを忘れていてはまったのでメモしておこうと思います。)動作確認: Groovy Version: 1.7.6 JVM: 1.6.0_22 型宣言されてる場合は動的にその型に…

GroovyでRFC822形式の日付文字列にパースする

GroovyでRFC822形式の日付文字列にDateインスタンスをパースする処理を書こうと思った際のメモ。 ROMEというライブラリを使うと簡単にできるらしい。 サンプルソース 参考 [ヅラド] Java で RFC822 や W3C の日付形式を解析する 参照 Maven Repository: rome…

Javaでビープ音を鳴らせ!

半分くらいネタです。ひょんなことからJavaのコード内でビープ音を鳴らすメソッドを発見したのでメモしておこうかなと。 ソースコードはこんな感じ 10.times { java.awt.Toolkit.getDefaultToolkit().beep() System.sleep(100) } 上のサンプルはGroovyですが…

Gitのサブモジュールで日本語名のディレクトリは使わないほうがいい

環境 git version 1.7.3.1 GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) Mac OS X v10.6.5 現象 $ git submodule add <giturl> <clonepath> まではうまく行くんだが、に日本語が入ってるとその後 $ git submodule とかで固まる。こいつは困った。 これじゃ $</clonepath></giturl>…

ClojureのREPLの終了方法

ハッカーと画家を読んでたらLispやりたくなってきたのでClojureをいじり始めてみました。とりあえずプログラミングClojureを片手にREPL(対話モード)で遊んでいたんですが、終了方法が書いてなかったのでCtrl+Dなどで終了させていました。ググってみたところ…

BigInteger, BigDecimalって全角OKなんだね

タイトルの通りです。 BigIntegerやBigDecimalは文字列からインスタンスを生成できますが、その際、全角も許されるみたいです。 地味にすごい! new BigInteger("123").intValue() // => 123 new BigDecimal("123.45").doubleValue() // => 123.45d

gistをはてなダイアリーに貼り付ける

例 →ここ やりかた 1.gistで「Create Public Gist」する。 2.次に「show embed」をクリックし、埋め込みリンクをコピーする。 ↓こちら(スクリプトのすぐ右上)の方だとうまく貼り付けられないのでご注意を 3.はてなブックマークの本文に2のリンクをペ…

JLabelなどででHTMLを使いたい時のTIps

SwingのJLabelなどでHTMLを使いたい時は先頭と末尾に空白が入っているとだめらしい。 new JLabel(" <html> .... </html> "); // ←これNG new JLabel("<html> .... </html>"); // ←これOK たったこんな事で1時間程度はまった…やはりGUIはいろいろと勝手が違うね。

最小値や最大値をmax, minで表現する

ある変数の値がマイナスを許容しないような場合があるとして、他の変数から値を受け取って設定するような場合を考えてみる。(Javaにて) 普通に書くと int num1; if (a < 0) { num1 = 0; } else { num1 = a } こんな感じだろうか。もしくは三項演算子を利用し…

ローカルフォルダを仮想ドライブに

ローカルフォルダを仮想ドライブとしてコマンドで楽に指定する方法があるみたいですね。知らなかった。 以前はVisual Substっていうフリーソフトを使ってやっていたんだが、こっちの方が楽でいいですね。 やり方 コマンドプロンプトで subst (ドライブ名) (…

Vista Drive Iconのアンインストール方法

Vista Drive IconはWindows XP上でVistaのDrive Icon機能(使用量が見えるやつ)を実現するためのフリーソフトです。SorceForgeにはインストールパッケージ版とZIP版が公開されています。 さて、インストーラ版にはインストーラとアンインストーラが付属して…

Excelでイルカの活用法

Excel操作中に誤って「F1」キーを押してしまうと 重たいヘルプががががーっと3秒ぐらいした後に開きますが、 これはイルカ(カイルって名前だっけ?)を非表示にしている時の話で、 ちゃんとイルカを表示させておけば、イルカから「質問は?」といった ふきだ…

Visioファイル(vsd)を開きたい

Visioで作成されたファイルを開きたいんだけど、Visioがインストールされていないマシンの場合、 Visio Viewerをインストールすればブラウザのプラグインみたいな感じで ファイルの内容を見れるようになる(たぶん無償) We are sorry, the page you requested…

文字の割付

結構これまでにExcelを使い込んできたつもりですが、まだまだ小技が隠されている模様。 会社の同僚が使っていたので、教えてもらいました。 セルにずらーーーーーっと長く書かれた文字を選択した範囲内の幅に収めるよう 改行してくれる「文字の割付」という…

ExcelにHTMLのTABLEタグが貼り付けられない

詳しい仕様はわかりませんが、私の今使っているExcel2000では HTMLのTABLEタグをクリップボード経由で貼り付けようとすると うまくいきません。 <table> <tr> <th>サンプルテーブル</th> <td>値1</td> <td>値2</td> </tr> </table> こんな感じのテキストをコピーしてクリップボード経由で貼り付けると、 以下の…

Office系アプリを読み取り専用で開く

会社でサーバにおいてあるExcelやWordなどの Office系ファイルを開く際に 万が一変更してしまうと問題になるので 読み取り専用で開きたい場合がある。 そのような場合、 Microsoft Officeファイルの「読み取り専用で開く」をショートカット化 あたりが参考に…