いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

【Markdown】 Windows用オススメ軽量エディタ(2013/03版)

Markdown、そろそろ覚えようかなーと思って。
Windowsでは、どうもいまいち使いやすいクライアントがなかったんですが、結論から言うと、

■DownMarker
(https://bitbucket.org/wcoenen/downmarker/downloads)

がオススメ。

  • バイナリが若干古い
  • 機能が少ない→(シンプルとも言える)
  • フォントサイズが変えられない
  • CSSは固定
  • たまに見た目がおかしくなる

などの微妙なところはあるんですが、

  • 軽い
  • CSSの適用具合が一貫してる
  • 日本語利用に問題ない

といった感じで、十分実用範囲でした。


ほかにも有名ドコロとして

■MarkDown#Editor
(http://hibara.org/software/markdownsharpeditor/)

も触ってみたんですが、

  • 動作がモッサリしてる
  • ファイル保存周りとか、動きがおかしくなることが多々ある
  • CSSの適用具合にやたらとムラがある

てな感じで、エディタとしては正直、使い勝手がよくなかったです。

ご参考までに。

Spring 3で直接JDBCのConnectionを取得して実行

Spring3はSpringJDBCだのMyBatisやHibernate連携だの色々と充実してるんですが、場合によってはめんどくせえから直接SQL投げさせろやみたいな時もありますよね。(糞畜生)

そんな時はこんな感じで。(データソース関連の設定はできてる前提です)

ApplicationContext.xml

  <!-- jdbcTemplateを設定に追加 -->
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <property name="dataSource"><ref local="dataSource"/></property>
  </bean>

例えば単純に、JDBCのexecuteUpdate()使って更新用のSQLを投げるだけのクラス(SQLExecUtils)は以下のようになります。

SQLExecUtils.java

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.stereotype.Component;

@Component
public class SQLExecUtils {
	@Autowired
	JdbcTemplate jdbcTemplate;

	public void execUpdate(String sql) throws SQLException {
		Connection conn = DataSourceUtils.getConnection(jdbcTemplate
				.getDataSource());
		Statement stmt = conn.createStatement();
		stmt.executeUpdate(sql);
		conn.commit();
	}
}

あとは実行クラスで

	@Autowired
	SQLExecUtils sqlutils;

        // SQL実行
	sqlutils.execUpdate("INSERT INTO ....");

とかやるだけです。「いちいちO/Rマッパーとか使ってらんないわー」みたいなときにどうぞ。

Spring3.1から導入されたflashスコープを使う

「リダイレクト先で完了メッセージを表示する」といったよくありがちな用途ですごく便利なSpring 3.1から実装された機能、「flash scope」なのですが、どうも昔ながらの設定ファイルで使われていたクラスだと使えないようです。
https://jira.springsource.org/browse/SPR-8782

詳しい説明はこちら。
http://www.infoq.com/jp/news/2011/11/spring-3.1-rc1-release

Spring 3.1にはアノテーションが付加されたコントローラでリクエストを処理するための新しいクラスが用意されている。RequestMappingHandlerMapping、RequestMappingHandlerAdapter、ExceptionHandlerExceptionResolverの3つだ。この3つのクラスはそれぞれDefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter、AnnotationMethodHandlerExceptionResolverの3つの代替物だ。これらの新しいクラスはアノテーションコントローラがカスタマイズ可能で拡張しやすいかたちでクラスをサポートできるようにするために開発された。将来はこれらのクラスを使うことが推奨されている。

というわけらしいのですが、ExceptionHandlerExceptionResolverについてはなくてもflashスコープを使う上では支障がなかったです。なんで、以下のような感じでApplicationContext.xmlを記述してあげるとよいのではないかと。


ApplicationContext.xml

	<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
	</bean>

	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="synchronizeOnSession" value="true" />
		<property name="webBindingInitializer" ref="webBindingInitializer" />
	</bean>

昔の古いApplicationContext.xmlとか流用してると、特にハマりそうですよね。


ちなみにSpring3とかSpring MVCとか触るなら、この本が結構良い感じでした。

J2EE系のアーキテクチャにある程度詳しくないとわかりずらい部分ありますけど、逆にそのへんを他のフレームワークとかで押さえてれば充分だと思います。

たまに筆者さんの愚痴っぽい解説が交じるのは、ご愛嬌って感じで。JavaのWebアプリっていろいろめんどくさいですよねー

Eclipse 4.2でのm2eclipseの入れ方と動的Webプロジェクト作成

なんか公式リンクが切れたりしてたので。

4.2系の場合、「Eclipseマーケットプレイス」から「m2eclipse」で検索して出てくるのを入れるのがいいようです。

いわゆる「動的Webプロジェクト」としてWTPからも利用できるようにしたい場合は、「Maven Integration for Eclipse WTP」もあわせてインストールしましょう。

あとは「新規」->「Maven」でアーキタイプとして「maven-archetype-webapp」を選べばOK。

「サーバ」から生成されたプロジェクトをデプロイして、http://localhost:8080/[project名]/ でハロワが出るはずです。あとはよしなにー

Mac OS Mountain Lionのダウンロードが始まらない

ダウンロードボタンを押しても特に何かイベントが発生するわけでもなく、アクティビティモニタを見ても通信している気配すらありません。

サーバが混んでるのかなーと思って今日まで待ってみてたんですが、特に何か変わるわけでもなく。

ネットワークがなんか調子悪いのかなーとか思ってルータ再起動とかWiMaxでとかも試してみたんですが、結局ダメでした。特にGoogle DNSとかプライベートファイアウォールソフトとかも入ってないですし。

で、結局、

App Store -> Store -> ダウンロードが完了していない項目があるか確認」

としたら、もろにMT Lionのダウンロードが「一時停止」状態で固まっていて、どうやら、これが原因だったみたいです。再開ボタンを押したら今までの苦労が嘘のように元気に走り回るCPUファンの姿が。


20分くらいでダウンロードは無事終わりました。なんだかなー

coberturaでカバレッジが二回走る(2012/07版)

coberturaでカバレッジが二回走る に書いていた通り、なぜかJenkinsでは、mvn package と cobertura:coberturaでテストが二回走るんで、今まではそれぞれ別ビルドにして二回にわけて実行していました。

ところがこれが、なぜか今度はcobertura:coberturaはメインのmvnビルドにしないと怒られるという仕様に。
https://issues.jenkins-ci.org/browse/JENKINS-14552

なので結論としては、mvnのメインに

cobertura:cobertura

と書き、後処理とかに

package -Dmaven.test.skip=true


という感じで書くと良いようです。今のとこ。

Windows版emacsでtwittering-modeを使う

特にgpgのあたりがうまくいかなくてハマったのでメモ。

これでEasyPGが入っているGNU Windows版Emacs23系以降ならいけると思います。
Meadow + alpacaだとうまくいきませんでした。。。)


ちなみに余談ですが、設定ファイルに

;; 表示文字列をフォーマット(syslogに偽装)
(setq system-time-locale "C")
(setq twittering-status-format "%C{%b  %d %H:%M:%S} localhost %s: %t ")

と書くと、syslog見てるような感じで表示されるので、おすすめです。