m2

2010年大好きマンガ (他で見てないもの)

マンガ系のサイトは ゴルゴ31 くらいしか見てないんだけど、そこで紹介されている「2010年ベスト」なページで見かけなかったけど大好きなマンガを挙げていきます。

演劇部5分前

2010年であってますよね? 実は買ってから長い間積んでて読んだのが今年の後半くらいなんですが、もう読んですぐに「2巻買いにいかなきゃ」と街に飛び出すくらい面白かったです。
早く2巻でてほしいですねー。

ぽんてら

完結できて本当にヨカッタ! 本棚に4冊並んでるだけでウキウキしてしまう、大好きなマンガです。

男子高校生の日常

これも1巻読んですぐに2巻を買いにいって、3巻を発売日に買ったもの。
僕が高校生の頃はこんなに紳士じゃなかったです。
4巻待ち遠しいですねー。

***

今年も好きなマンガに出会えますように。

さまざまな camelize

EmEditor

置換で「_([a-z])」「\U\1」

awk
$ echo aaa_bbb_cc | awk '{ split($0,a,"_"); printf a[1]; for (i = 2; i <= length(a); i++) { printf toupper(substr(a[i], 1, 1)) substr(a[i], 2) } print "" }'
  • -

あとで追記

S2JDBC-Gen の tableNamePattern/ignoreTableNamePatternは完全一致

どうも効かないと思ったら部分一致ではなく完全一致でした。
http://www.seasar.org/source/browse/s2container/tags/2010-09-08/seasar2-2.4.43/s2jdbc-gen/s2jdbc-gen/src/main/java/org/seasar/extension/jdbc/gen/internal/meta/DbTableMetaReaderImpl.java?view=markup#l270

protected boolean isTargetTable(DbTableMeta dbTableMeta) {
    String name = dbTableMeta.getName();
    if (!tableNamePattern.matcher(name).matches()) {
        return false;
    }
    if (ignoreTableNamePattern.matcher(name).matches()) {
        return false;
    }
    return true;
}

Matcher.matches() より Matcher#find() の方がうれしいかも。

MySQL の識別子には「`」(バッククォート)を含めることができます

できちゃいました。

mysql> create table `aa``a`(`aa``aid` int);
Query OK, 0 rows affected (0.11 sec)

なので「``」としてエスケープしないといけませんね。

mysql> show columns from `aa``a`;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| aa`aid | int(11) | YES  |     | NULL    |       |
+--------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

MySQL Workbench (5.2.27) はこれを考慮してないみたいです。こんなテーブルを作ってしまうと、「Alter Table...」等ほとんどの処理が行えません。

JSP の EL式って全然タイプセーフじゃないし、スクリプトレットの方がコード補完が効いてウマーじゃないですか?

最近 JSP を触っていて、EL式の使い勝手に困惑しています。なんでコード補完効かないんだと。*1
以下のループの例を見てください。

<c:forEach var="i" items="1,2,3">
    <c:out value="${i.bytes[0]}:" />
</c:forEach>
<hr>
<% for (String i : "1,2,3".split(",")) { %>
    <c:out value="<%= i.getBytes()[0] %>" />:
<% } %>

どうです? ほとんど変わらない上にスクリプトレットの方が eclipse でコード補完が効きますよ?

Map の場合

<c:forEach var="i" items="${map}">
    <c:out value="${i.key}:${i.value}," />
</c:forEach>
<hr>
<% for (Entry<String, String> i : map.entrySet()) { %>
    <c:out value="<%= i.getKey() + \":\" + i.getValue() %>" />,
<% } %>

後者は以下の宣言に依存。

<%! 
// http://d.hatena.ne.jp/unageanu/20071017/1192623693
@SuppressWarnings("unchecked")
public <T> T cast(Object obj) {
    return (T)obj;
}
%>
<% Map<String, String> map = cast(pageContext.findAttribute("map")); %>

cast については static import して共通化できますし、pageContext.findAttribute については SAStruts plugin あたりが自動生成すりゃいいんじゃない? と思ってます。


JSP の現在の流れだと「スクリプトレットを排除してカスタムタグ+EL式で!」って感じがするのだけど、コード補完の効かない EL式よりスクリプトレットの方が生産性が高いんじゃないのかな、と思いました。

反論ほしいです(あと var も)。

  • -

「デザイナーが云々」というのは Mayaa で FA ということで。

*1:型が確定しないからどうしようもないんですがね。

ERMaster 最新版で translate がひどいことに

2010/9/25 追記
パッチが正しい形で取り込まれました。ヤッター。
というわけで修正済みです。


(↓以下、元の文章)

  • -

「No」とかひどいです。

  • -

自分用のパッチ。余計なこともしてる。
http://gist.github.com/577463
辞書ファイルには正規表現使えた方が便利かも。