<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CUQCRnYzfyp7ImA9WxNUF0g.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711</id><updated>2009-11-09T16:56:07.887+09:00</updated><title>プログラマメモ2</title><subtitle type="html">プログラマメモ２　小さくても大きくてもコーディングに関わるのは楽しいです、と最近ようやくいえるような気がします。</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>ugo</name><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>872</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/programmermemo2" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DUYFRH8zfip7ImA9WxNUEk4.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-7646816452560619727</id><published>2009-11-03T17:27:00.002+09:00</published><updated>2009-11-03T17:31:55.186+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T17:31:55.186+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="perl" /><title>[perl]サブルーチンの引数</title><content type="html">perlです。&lt;br /&gt;サブルーチンの引数の指定の仕方。&lt;br /&gt;この書き方すっきりしてるなと思った次第。&lt;br /&gt;ちなみにこの方法だと引数のもとの値の上書きとか、副作用がないようですね。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;sub func {&lt;br /&gt;  &lt;span style="color: rgb(255, 102, 0);"&gt;my ($a, $b, $c) = @_;&lt;/span&gt;&lt;br /&gt;  print "$a $b $c\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;func("ok1", "ok2", "ok3");&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;参考&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.rfs.jp/sb/perl/02/07.html#%E3%82%B5%E3%83%96%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3%E3%81%AE%E5%BC%95%E6%95%B0"&gt;サブルーチン [Perl講座 -Smart]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/perlcodesample/20091120/1246679588"&gt;現代的なPerlの記述方法一覧 + α - Perl入門〜サンプルコードによるPerl入門〜&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-7646816452560619727?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WWa0JEQaI4fxi6CH6ghGgizkiMA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WWa0JEQaI4fxi6CH6ghGgizkiMA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WWa0JEQaI4fxi6CH6ghGgizkiMA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WWa0JEQaI4fxi6CH6ghGgizkiMA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=9fJ6PEU4mQs:8CoW6BV6LQE:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=9fJ6PEU4mQs:8CoW6BV6LQE:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=9fJ6PEU4mQs:8CoW6BV6LQE:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=9fJ6PEU4mQs:8CoW6BV6LQE:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=9fJ6PEU4mQs:8CoW6BV6LQE:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=9fJ6PEU4mQs:8CoW6BV6LQE:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=9fJ6PEU4mQs:8CoW6BV6LQE:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/7646816452560619727/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=7646816452560619727&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7646816452560619727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7646816452560619727?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/11/blog-post.html" title="[perl]サブルーチンの引数" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkYNQnozeSp7ImA9WxNVEUk.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-4138884621858822127</id><published>2009-10-22T01:42:00.003+09:00</published><updated>2009-10-22T01:56:33.481+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-22T01:56:33.481+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><title>0002/11/30の謎</title><content type="html">Javaです。&lt;br /&gt;&lt;br /&gt;下記のようなコードに出会いました。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;import java.text.ParseException;&lt;br /&gt;import java.text.SimpleDateFormat;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class TestDate {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) throws ParseException {&lt;br /&gt;        a(&amp;quot;20091022&amp;quot;);&lt;br /&gt;        a(&amp;quot;00000000&amp;quot;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void a(String s) throws ParseException {&lt;br /&gt;        SimpleDateFormat format = new SimpleDateFormat(&amp;quot;yyyyMMdd&amp;quot;);&lt;br /&gt;        Date date = format.parse(s);&lt;br /&gt;        System.out.printf(&amp;quot;in:[%s] out:[%s]%n&amp;quot;, s, new SimpleDateFormat(&lt;br /&gt;                &amp;quot;yyyy/MM/dd&amp;quot;).format(date));&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;動かしたらこんな結果になりました。&lt;br /&gt;&lt;blockquote&gt;in:[20091022] out:[2009/10/22]&lt;br /&gt;in:[00000000] out:[0002/11/30]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;気分としては、00000000を渡したら、0000/00/00になって欲しかったのですが、&lt;br /&gt;Dateを使う実装だったので、0002/11/30という値になったわけです。&lt;br /&gt;&lt;br /&gt;どうして0002/11/30になるんですかね？&lt;br /&gt;&lt;br /&gt;0002/11/30でグーグルさんに尋ねるといくつかヒットしますね。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-4138884621858822127?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JwdpDJq7YuvW5s2Tr9gDKQZK6VY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JwdpDJq7YuvW5s2Tr9gDKQZK6VY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JwdpDJq7YuvW5s2Tr9gDKQZK6VY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JwdpDJq7YuvW5s2Tr9gDKQZK6VY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=oZ-QQLWjqwY:XrKShELWSW8:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=oZ-QQLWjqwY:XrKShELWSW8:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=oZ-QQLWjqwY:XrKShELWSW8:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=oZ-QQLWjqwY:XrKShELWSW8:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=oZ-QQLWjqwY:XrKShELWSW8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=oZ-QQLWjqwY:XrKShELWSW8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=oZ-QQLWjqwY:XrKShELWSW8:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/4138884621858822127/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=4138884621858822127&amp;isPopup=true" title="1 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/4138884621858822127?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/4138884621858822127?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/10/00021130.html" title="0002/11/30の謎" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;CEQNSHc5eip7ImA9WxNWGEU.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-7347884809455674430</id><published>2009-10-19T01:05:00.002+09:00</published><updated>2009-10-19T01:13:19.922+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-19T01:13:19.922+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="リレーション" /><title>ダングリングタプル - 宙ぶらりんなタプルだよ</title><content type="html">ダングリングタプル(dangling tuple)&lt;br /&gt;結合時に相手がいないタプルのことをダングリングタプルというらしい。&lt;br /&gt;結合不能タプルともいうようだ。&lt;br /&gt;&lt;br /&gt;danglingって宙ぶらりんとかいう意味があるらしい。&lt;br /&gt;&lt;br /&gt;で、このダングリングタプルから、外部結合(outer join)の話となるわけ。&lt;br /&gt;&lt;br /&gt;この用語は下記の本で知りました。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF-%E6%83%85%E5%A0%B1%E7%A7%91%E5%AD%A6%E3%81%93%E3%82%93%E3%81%9B%E3%81%B7%E3%81%A4-%E7%A6%8F%E7%94%B0-%E5%89%9B%E5%BF%97/dp/4254127138%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3Dugougo0d-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4254127138" target="_top"&gt;データベースの仕組み (情報科学こんせぷつ)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF-%E6%83%85%E5%A0%B1%E7%A7%91%E5%AD%A6%E3%81%93%E3%82%93%E3%81%9B%E3%81%B7%E3%81%A4-%E7%A6%8F%E7%94%B0-%E5%89%9B%E5%BF%97/dp/4254127138%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3Dugougo0d-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4254127138" target="_top"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51-y6LR8HyL._SL160_.jpg" border="0" alt="4254127138" /&gt;&lt;/a&gt;&lt;img src='http://www.assoc-amazon.jp/e/ir?t=ugougo0d-22&amp;l=ur2&amp;o=9' width='1' height='1' border='0' alt='' /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-7347884809455674430?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ubzuramEcNmPxIFW6Zuxf9RQrWA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ubzuramEcNmPxIFW6Zuxf9RQrWA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ubzuramEcNmPxIFW6Zuxf9RQrWA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ubzuramEcNmPxIFW6Zuxf9RQrWA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=A0W5AIjqssw:nnm6AtxcG1Y:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=A0W5AIjqssw:nnm6AtxcG1Y:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=A0W5AIjqssw:nnm6AtxcG1Y:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=A0W5AIjqssw:nnm6AtxcG1Y:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=A0W5AIjqssw:nnm6AtxcG1Y:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=A0W5AIjqssw:nnm6AtxcG1Y:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=A0W5AIjqssw:nnm6AtxcG1Y:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/7347884809455674430/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=7347884809455674430&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7347884809455674430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7347884809455674430?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/10/blog-post.html" title="ダングリングタプル - 宙ぶらりんなタプルだよ" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;AkUNSXY9cSp7ImA9WxNWGEw.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-883098442374625499</id><published>2009-10-18T07:18:00.003+09:00</published><updated>2009-10-18T07:24:58.869+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-18T07:24:58.869+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sql" /><category scheme="http://www.blogger.com/atom/ns#" term="h2database" /><title>H2でテーブル作成時のSQLを取得</title><content type="html">H2データベースです。&lt;br /&gt;&lt;blockquote&gt;select SQL from INFORMATION_SCHEMA.tables;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;システムテーブルであるINFORMATION_SCHEMAからいろいろ情報取得できます。&lt;br /&gt;&lt;br /&gt;webのH2コンソールで、ためしてみました。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Je91jmleIYg/StpDhlhVhDI/AAAAAAAABes/lHgqQHLvTTU/s1600-h/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%EF%BC%882009-10-18+7.21.28%EF%BC%89.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 251px; height: 159px;" src="http://4.bp.blogspot.com/_Je91jmleIYg/StpDhlhVhDI/AAAAAAAABes/lHgqQHLvTTU/s400/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%EF%BC%882009-10-18+7.21.28%EF%BC%89.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5393697748016268338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;実験するときに使いやすいのでついつい使ってしまうH２です。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-883098442374625499?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wh3Fibtam_2_VU55Mn2vAU6M5JA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wh3Fibtam_2_VU55Mn2vAU6M5JA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wh3Fibtam_2_VU55Mn2vAU6M5JA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wh3Fibtam_2_VU55Mn2vAU6M5JA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=GQFBp2R5zgE:dShRSjlU8P8:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=GQFBp2R5zgE:dShRSjlU8P8:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=GQFBp2R5zgE:dShRSjlU8P8:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=GQFBp2R5zgE:dShRSjlU8P8:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=GQFBp2R5zgE:dShRSjlU8P8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=GQFBp2R5zgE:dShRSjlU8P8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=GQFBp2R5zgE:dShRSjlU8P8:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/883098442374625499/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=883098442374625499&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/883098442374625499?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/883098442374625499?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/10/h2sql.html" title="H2でテーブル作成時のSQLを取得" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Je91jmleIYg/StpDhlhVhDI/AAAAAAAABes/lHgqQHLvTTU/s72-c/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%EF%BC%882009-10-18+7.21.28%EF%BC%89.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;A08EQHcyfyp7ImA9WxNWFkw.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-204033620293786861</id><published>2009-10-16T00:11:00.002+09:00</published><updated>2009-10-16T00:16:41.997+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-16T00:16:41.997+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><title>[java]行と列をいれかえる</title><content type="html">行と列をいれかえます。&lt;br /&gt;&lt;br /&gt;どんなことをしたいかというと下記のようにしたいわけです。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;a b c &lt;br /&gt;1 2 3 &lt;br /&gt;e f g &lt;br /&gt;4 5 6 &lt;br /&gt;&lt;br /&gt;a 1 e 4 &lt;br /&gt;b 2 f 5 &lt;br /&gt;c 3 g 6 &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;さらにこんな感じ。&lt;br /&gt;&lt;blockquote&gt;1 2 3 4 &lt;br /&gt;5 6 7 8 &lt;br /&gt;a b c d &lt;br /&gt;e f g h &lt;br /&gt;&lt;br /&gt;1 5 a e &lt;br /&gt;2 6 b f &lt;br /&gt;3 7 c g &lt;br /&gt;4 8 d h &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;コードこんな感じ。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;public class TestR_C {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        String[][] ss = new String[][] { { &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; }, { &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot; },&lt;br /&gt;                { &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot; }, { &amp;quot;4&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;6&amp;quot; } };&lt;br /&gt;        print(ss);&lt;br /&gt;        System.out.println();&lt;br /&gt;        print(a(ss));&lt;br /&gt;        System.out.println();&lt;br /&gt;        ss = new String[][] { { &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot; }, { &amp;quot;5&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;7&amp;quot;, &amp;quot;8&amp;quot; },&lt;br /&gt;                { &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot; }, { &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot; } };&lt;br /&gt;        print(ss);&lt;br /&gt;        System.out.println();&lt;br /&gt;        print(a(ss));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static String[][] a(String[][] ss) {&lt;br /&gt;        int r = 0;&lt;br /&gt;        int c = ss.length;&lt;br /&gt;        {&lt;br /&gt;            for (String[] s : ss) {&lt;br /&gt;                if (r &amp;lt; s.length)&lt;br /&gt;                    r = s.length;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        String[][] ss2 = new String[r][c];&lt;br /&gt;&lt;br /&gt;        int rp = 0;&lt;br /&gt;        for (String[] s : ss) {&lt;br /&gt;            int cp = 0;&lt;br /&gt;            for (String val : s) {&lt;br /&gt;                ss2[cp][rp] = val;&lt;br /&gt;                cp++;&lt;br /&gt;            }&lt;br /&gt;            rp++;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return ss2;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void print(String[][] ss) {&lt;br /&gt;        for (String[] s : ss) {&lt;br /&gt;            for (String val : s) {&lt;br /&gt;                System.out.printf(&amp;quot;%s &amp;quot;, val);&lt;br /&gt;            }&lt;br /&gt;            System.out.println();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-204033620293786861?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4v2y2KiXUd5m9XuXejQDDA1oscE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4v2y2KiXUd5m9XuXejQDDA1oscE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4v2y2KiXUd5m9XuXejQDDA1oscE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4v2y2KiXUd5m9XuXejQDDA1oscE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=iUpdAk7j-RA:LewB50Npras:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=iUpdAk7j-RA:LewB50Npras:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=iUpdAk7j-RA:LewB50Npras:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=iUpdAk7j-RA:LewB50Npras:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=iUpdAk7j-RA:LewB50Npras:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=iUpdAk7j-RA:LewB50Npras:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=iUpdAk7j-RA:LewB50Npras:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/204033620293786861/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=204033620293786861&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/204033620293786861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/204033620293786861?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/10/java.html" title="[java]行と列をいれかえる" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;AkYARHY-eip7ImA9WxNQFkQ.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-266456598650266265</id><published>2009-09-23T18:10:00.004+09:00</published><updated>2009-09-23T18:29:05.852+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-23T18:29:05.852+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="reStructuredText" /><category scheme="http://www.blogger.com/atom/ns#" term="ドキュメンテーション" /><title>reStructuredTextで変換されない文字列を埋め込みたい場合 - Raw Data Pass-Through</title><content type="html">&lt;ul&gt;&lt;li&gt;&lt;a href="http://docutils.sourceforge.net/rst.html"&gt;reStructuredText&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docutils.sourceforge.net/docs/ref/rst/directives.html#id46"&gt;Raw Data Pass-Through&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;reStructuredTextです。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sphinx.pocoo.org/index.html"&gt;Overview — Sphinx v0.6.3 documentation&lt;/a&gt;を調べています。&lt;br /&gt;用途はほとんどHTML変換のためなのですが、画像の他に動画を埋め込んだり、flashとか入れた場合どうするんだろうと、悩んでいました。&lt;br /&gt;&lt;br /&gt;で、reStructuredTextを調べていて、そのものずばり、Raw Data Pass-Throughというものがありました。&lt;br /&gt;rawディレクティブを使って引数をhtmlにすると、HTMLのコード直接書けます。&lt;br /&gt;HTML Writerがそのまんまスルーしてくれます。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;.. raw:: html&lt;br /&gt;   ここにHTMLタグが書けるよ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-266456598650266265?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Devqe55fIQeA7siSaJPgXAxCoMg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Devqe55fIQeA7siSaJPgXAxCoMg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Devqe55fIQeA7siSaJPgXAxCoMg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Devqe55fIQeA7siSaJPgXAxCoMg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mXmwEds0H4g:1FYrmg9ncrs:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=mXmwEds0H4g:1FYrmg9ncrs:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mXmwEds0H4g:1FYrmg9ncrs:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=mXmwEds0H4g:1FYrmg9ncrs:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mXmwEds0H4g:1FYrmg9ncrs:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mXmwEds0H4g:1FYrmg9ncrs:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mXmwEds0H4g:1FYrmg9ncrs:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/266456598650266265/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=266456598650266265&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/266456598650266265?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/266456598650266265?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/09/restructuredtext-raw-data-pass-through.html" title="reStructuredTextで変換されない文字列を埋め込みたい場合 - Raw Data Pass-Through" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DEIEQHczfCp7ImA9WxNSE00.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-8962670169888329687</id><published>2009-08-27T01:33:00.003+09:00</published><updated>2009-08-27T02:08:21.984+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-27T02:08:21.984+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="ラベル付きブロック" /><title>ラベル付きブロックのラベルを日本語で。</title><content type="html">Javaです。&lt;br /&gt;&lt;br /&gt;最近、日本語で変数名とかメソッド名をつけてもいいかなーと思ってます。&lt;br /&gt;一年前ぐらいなら、日本語で変数名とかメソッド名なんて&lt;span style="font-size:130%;"&gt;絶対だめと&lt;/span&gt;考えていましたが、似非英語を使うよりも、いいかなと。&lt;br /&gt;&lt;br /&gt;あと、コメントに仕様書からのコピーのっけるなら、日本語で書かれた仕様書にさらに近づけるというわけで。&lt;br /&gt;&lt;br /&gt;単語の省略形もさけてましたが、別にこれもOKかな。&lt;br /&gt;いろいろな文化(プログラミングの)、経験した人がいるわけで、もう何でもありだ（笑）&lt;br /&gt;もちろんルールを決めたらそれを守る方向で。&lt;br /&gt;&lt;br /&gt;ソースコードと仕様書の乖離をどうふせぐかも頭が痛い問題だと思います。&lt;br /&gt;&lt;br /&gt;ここんとこ考えているのは、ラベル付きブロックを使って上手い具合に仕様書とあわせられないかなーということです。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;package ラベル;&lt;br /&gt;&lt;br /&gt;public class ラベル参考 {&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;       a();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   static void a() {&lt;br /&gt;&lt;br /&gt;       処理1: {&lt;br /&gt;&lt;br /&gt;           if (false)&lt;br /&gt;               break 処理1;&lt;br /&gt;&lt;br /&gt;           if (false)&lt;br /&gt;               break 処理1;&lt;br /&gt;&lt;br /&gt;           if (false)&lt;br /&gt;               break 処理1;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       処理2: {&lt;br /&gt;&lt;br /&gt;           if (false)&lt;br /&gt;               break 処理2;&lt;br /&gt;&lt;br /&gt;           if (false)&lt;br /&gt;               break 処理2;&lt;br /&gt;&lt;br /&gt;           if (false)&lt;br /&gt;               break 処理2;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;参考&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://inforno.net/articles/2008/03/04/japanese-language-programing-in-scala"&gt;inforno :: 日本語プログラミング言語Scala&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiredvision.jp/blog/masui/200803/200803030100.html"&gt;第20回 日本語でおk | WIRED VISION&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-8962670169888329687?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6hZ2hHhD2rpLTWOCFlvjjxlgWyM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6hZ2hHhD2rpLTWOCFlvjjxlgWyM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6hZ2hHhD2rpLTWOCFlvjjxlgWyM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6hZ2hHhD2rpLTWOCFlvjjxlgWyM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=2zDNhlVHhDQ:LPs5fnJujUc:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=2zDNhlVHhDQ:LPs5fnJujUc:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=2zDNhlVHhDQ:LPs5fnJujUc:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=2zDNhlVHhDQ:LPs5fnJujUc:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=2zDNhlVHhDQ:LPs5fnJujUc:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=2zDNhlVHhDQ:LPs5fnJujUc:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=2zDNhlVHhDQ:LPs5fnJujUc:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/8962670169888329687/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=8962670169888329687&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/8962670169888329687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/8962670169888329687?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/08/blog-post.html" title="ラベル付きブロックのラベルを日本語で。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CU4GQHk8fip7ImA9WxNTF00.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-2205366682674612470</id><published>2009-08-20T02:42:00.001+09:00</published><updated>2009-08-20T02:45:21.776+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-20T02:45:21.776+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="bytebuffer" /><title>ByteBufferで、リトルエンディアン指定で。</title><content type="html">Javaです。&lt;br /&gt;バイナリのファイルデータを読み込むときとかにByteBufferを使ってます。&lt;br /&gt;&lt;br /&gt;リトルエンディアン指定で、読み込む場合は、orderを指定します。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;import java.nio.ByteBuffer;&lt;br /&gt;import java.nio.ByteOrder;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class TestByteBuffer {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        a();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void a(){&lt;br /&gt;        byte[] bs = {0x01,0x0, 0x0, 0x0};&lt;br /&gt;        ByteBuffer buffer = ByteBuffer.wrap(bs);&lt;br /&gt;        buffer.order(ByteOrder.LITTLE_ENDIAN);&lt;br /&gt;        System.out.println(buffer.getInt());&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-2205366682674612470?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rFYzoNFf3MvYFdOp_Jt5dHcWUzI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rFYzoNFf3MvYFdOp_Jt5dHcWUzI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rFYzoNFf3MvYFdOp_Jt5dHcWUzI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rFYzoNFf3MvYFdOp_Jt5dHcWUzI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=MDxyP96KMVc:tH8TUHbroZU:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=MDxyP96KMVc:tH8TUHbroZU:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=MDxyP96KMVc:tH8TUHbroZU:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=MDxyP96KMVc:tH8TUHbroZU:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=MDxyP96KMVc:tH8TUHbroZU:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=MDxyP96KMVc:tH8TUHbroZU:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=MDxyP96KMVc:tH8TUHbroZU:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/2205366682674612470/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=2205366682674612470&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/2205366682674612470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/2205366682674612470?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/08/bytebuffer.html" title="ByteBufferで、リトルエンディアン指定で。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEUHQno6eCp7ImA9WxJaEk4.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-3288434810309589308</id><published>2009-08-03T01:44:00.003+09:00</published><updated>2009-08-03T01:57:13.410+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T01:57:13.410+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><title>いまさらながらJavaの文字列(String)を==で比較しちゃだめよ</title><content type="html">Javaです。&lt;br /&gt;&lt;br /&gt;いまさらながら文字列の比較です。&lt;br /&gt;&lt;br /&gt;下記のコードで出力される結果は、なんでしょうか。&lt;br /&gt;&lt;div id="src"&gt;public class Testストリング0 {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        String a = "abc";&lt;br /&gt;        String b = "abc";&lt;br /&gt;        System.out.println(a == b);&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;僕の環境ではtrueでした。&lt;br /&gt;&lt;br /&gt;で、一瞬、いつから文字列の比較で==がOKになったのかしらと思いました。&lt;br /&gt;&lt;br /&gt;気をとりなおして、下記のコードで検証。&lt;br /&gt;&lt;div id="src"&gt;public class Testストリング0 {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        String a = "abc";&lt;br /&gt;        String b = "abc";&lt;br /&gt;        a +="d";&lt;br /&gt;        b +="d";&lt;br /&gt;        System.out.println(a == b);&lt;br /&gt;        System.out.println(a.equals(b));&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;案の定、==では比較できませんでした。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-3288434810309589308?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eD3QuJEHBfaq6XzIRxKyfOOg-XE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eD3QuJEHBfaq6XzIRxKyfOOg-XE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eD3QuJEHBfaq6XzIRxKyfOOg-XE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eD3QuJEHBfaq6XzIRxKyfOOg-XE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Y9AAziKVH6c:cY4tWy2_ZMQ:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=Y9AAziKVH6c:cY4tWy2_ZMQ:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Y9AAziKVH6c:cY4tWy2_ZMQ:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=Y9AAziKVH6c:cY4tWy2_ZMQ:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Y9AAziKVH6c:cY4tWy2_ZMQ:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Y9AAziKVH6c:cY4tWy2_ZMQ:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Y9AAziKVH6c:cY4tWy2_ZMQ:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/3288434810309589308/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=3288434810309589308&amp;isPopup=true" title="2 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3288434810309589308?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3288434810309589308?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/08/javastring.html" title="いまさらながらJavaの文字列(String)を==で比較しちゃだめよ" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;DkcNQng-fCp7ImA9WxJbEE8.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-7167477069705801539</id><published>2009-07-20T02:02:00.003+09:00</published><updated>2009-07-20T02:21:33.654+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-20T02:21:33.654+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><title>ひとつのメソッドにしか実装が許されていない場合には、もっとラベル付きのブロックを使ったらどうかな。</title><content type="html">Javaです。&lt;br /&gt;あるプロジェクトでは、あるフレームワークでは、exectuteメソッドにしかロジック（ビジネスロジック）を実装してはいけないそうです。&lt;br /&gt;インナークラスを作ってはいけないし、メソッドをつくってもいけないそうです。プログラマが許されているのは、このメソッドの中での実装のみです。&lt;br /&gt;こうなるとひとつのメソッドが１０００行近くなる場合もあるようです。これは不幸です。&lt;br /&gt;&lt;br /&gt;少しでも読みやすいコードを書くためにラベル付きのブロックを使うというのがいいのではないかと考えてます。&lt;br /&gt;&lt;br /&gt;ちなみにブロック内で宣言した変数はそのスコープでしか有効でないですし。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;public class TestLabelAndBlock {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        execute();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void execute() {&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            INIT: {&lt;br /&gt;                int a;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            MAIN: {&lt;br /&gt;                int a;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            FINALLY: {&lt;br /&gt;                int a;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-7167477069705801539?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rzne52qnCtaPwd6kO3-UpXziLSE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rzne52qnCtaPwd6kO3-UpXziLSE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rzne52qnCtaPwd6kO3-UpXziLSE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rzne52qnCtaPwd6kO3-UpXziLSE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=DcIcpgasY30:naa7cJfD7dk:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=DcIcpgasY30:naa7cJfD7dk:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=DcIcpgasY30:naa7cJfD7dk:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=DcIcpgasY30:naa7cJfD7dk:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=DcIcpgasY30:naa7cJfD7dk:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=DcIcpgasY30:naa7cJfD7dk:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=DcIcpgasY30:naa7cJfD7dk:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/7167477069705801539/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=7167477069705801539&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7167477069705801539?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7167477069705801539?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/07/blog-post.html" title="ひとつのメソッドにしか実装が許されていない場合には、もっとラベル付きのブロックを使ったらどうかな。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEMBQHg8eCp7ImA9WxJUEkk.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-1657236746804332328</id><published>2009-07-11T01:06:00.003+09:00</published><updated>2009-07-11T01:14:11.670+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-11T01:14:11.670+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="教訓" /><title>ソースコードにSQLを埋め込む場合には、ツールで簡単にとりだせるように目印をつける。</title><content type="html">SQLをソースコードに埋め込む場合はツールでとりだしやすいように前後にマーカーを入れましょうという話。&lt;br /&gt;重要なのは、対象部分の前後にコメントを入れること。簡単な正規表現で抜き出せるようにしておくとよいかも。&lt;br /&gt;&lt;br /&gt;えーと、こんなのはどうだろう&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;// START SQL:ユニークキー&lt;br /&gt;ここに対象部分&lt;br /&gt;// END SQL:ユニークキー&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-1657236746804332328?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V95wJ8_rbVuU67rqBsAA1Z3H6Hc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V95wJ8_rbVuU67rqBsAA1Z3H6Hc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V95wJ8_rbVuU67rqBsAA1Z3H6Hc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V95wJ8_rbVuU67rqBsAA1Z3H6Hc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mZzNzzyGPMk:9x4_Qu9ewck:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=mZzNzzyGPMk:9x4_Qu9ewck:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mZzNzzyGPMk:9x4_Qu9ewck:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=mZzNzzyGPMk:9x4_Qu9ewck:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mZzNzzyGPMk:9x4_Qu9ewck:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mZzNzzyGPMk:9x4_Qu9ewck:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=mZzNzzyGPMk:9x4_Qu9ewck:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/1657236746804332328/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=1657236746804332328&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/1657236746804332328?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/1657236746804332328?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/07/sql.html" title="ソースコードにSQLを埋め込む場合には、ツールで簡単にとりだせるように目印をつける。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;AkQNQ308eip7ImA9WxJVGE0.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-1014798249795322871</id><published>2009-07-06T00:37:00.001+09:00</published><updated>2009-07-06T00:39:52.372+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-06T00:39:52.372+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="swing" /><category scheme="http://www.blogger.com/atom/ns#" term="JSlider" /><title /><content type="html">javaです。swingです。JSliderです。&lt;br /&gt;&lt;br /&gt;JSliderを作るメソッド。&lt;br /&gt;JSliderの値をどこにどう表示するか悩むので、JSliderのpaintComponentをオーバライドして自分自身で描画させてます。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt; JSlider createJSlider(int min, int max) {&lt;br /&gt;  JSlider slider = new JSlider(min, max) {&lt;br /&gt;&lt;br /&gt;   @Override&lt;br /&gt;   protected void paintComponent(Graphics g) {&lt;br /&gt;    super.paintComponent(g);&lt;br /&gt;    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;    g2d.drawString(&amp;quot;&amp;quot; + getValue(), 10, 10);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;  };&lt;br /&gt;  slider.setMajorTickSpacing(10);&lt;br /&gt;  slider.setPaintTicks(true);&lt;br /&gt;&lt;br /&gt;//  slider.setLabelTable(slider.createStandardLabels(10));&lt;br /&gt;//  slider.setPaintLabels(true);&lt;br /&gt;&lt;br /&gt;  return slider;&lt;br /&gt; }&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-1014798249795322871?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/969iCPVByORc1Oz1pLi18j6Lk_o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/969iCPVByORc1Oz1pLi18j6Lk_o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/969iCPVByORc1Oz1pLi18j6Lk_o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/969iCPVByORc1Oz1pLi18j6Lk_o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=bxcSbtFkwCA:7BuVQKY7F1c:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=bxcSbtFkwCA:7BuVQKY7F1c:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=bxcSbtFkwCA:7BuVQKY7F1c:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=bxcSbtFkwCA:7BuVQKY7F1c:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=bxcSbtFkwCA:7BuVQKY7F1c:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=bxcSbtFkwCA:7BuVQKY7F1c:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=bxcSbtFkwCA:7BuVQKY7F1c:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/1014798249795322871/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=1014798249795322871&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/1014798249795322871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/1014798249795322871?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/07/javaswingjslider-jslider.html" title="" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D0YCSX4zfyp7ImA9WxJVF0U.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-7021430651849210803</id><published>2009-07-05T10:00:00.004+09:00</published><updated>2009-07-05T18:12:48.087+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-05T18:12:48.087+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="swing" /><title>TreeUIをつくってみたいのだがしんどいので。</title><content type="html">Javaです。Swingです。&lt;br /&gt;JTreeの描画部分をオーバライドしていろいろ描画できないかなぁと考えていましたら、JTreeってTreeUIの部分で描画してまして、単純にJTreeのpatintComponentsをオーバライドするだけではだめなのでした。&lt;br /&gt;&lt;br /&gt;そこで、TreeUIなのですが、これってLookAndFeelを変更すると変わってしまいます。&lt;br /&gt;それにTreeUIを実装するのってかなりしんどそうです。&lt;br /&gt;Orz...&lt;br /&gt;&lt;br /&gt;そこで、TreeUIをくるんで処理を紛れ込ませることにしました。&lt;br /&gt;※エクリプスなら、SourceのGenerate Delegate Methods...で選択されたオブジェクトのデリゲートメソッドを生成してくれますね。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;package a;&lt;br /&gt;&lt;br /&gt;import javax.swing.plaf.TreeUI;&lt;br /&gt;&lt;br /&gt;public class MyTree_2_UI extends TreeUI{&lt;br /&gt;    TreeUI treeUI;&lt;br /&gt;    public MyTree_2_UI(TreeUI treeUI){&lt;br /&gt;        this.treeUI = treeUI;&lt;br /&gt;    }&lt;br /&gt;    public java.awt.Rectangle getPathBounds(javax.swing.JTree a0,javax.swing.tree.TreePath a1){return this.treeUI.getPathBounds(a0,a1);}&lt;br /&gt;    public javax.swing.tree.TreePath getPathForRow(javax.swing.JTree a0,int a1){return this.treeUI.getPathForRow(a0,a1);}&lt;br /&gt;    public int getRowForPath(javax.swing.JTree a0,javax.swing.tree.TreePath a1){return this.treeUI.getRowForPath(a0,a1);}&lt;br /&gt;    public javax.swing.tree.TreePath getClosestPathForLocation(javax.swing.JTree a0,int a1,int a2){return this.treeUI.getClosestPathForLocation(a0,a1,a2);}&lt;br /&gt;    public boolean stopEditing(javax.swing.JTree a0){return this.treeUI.stopEditing(a0);}&lt;br /&gt;    public void cancelEditing(javax.swing.JTree a0){this.treeUI.cancelEditing(a0);}&lt;br /&gt;    public void startEditingAtPath(javax.swing.JTree a0,javax.swing.tree.TreePath a1){this.treeUI.startEditingAtPath(a0,a1);}&lt;br /&gt;    public javax.swing.tree.TreePath getEditingPath(javax.swing.JTree a0){return this.treeUI.getEditingPath(a0);}&lt;br /&gt;    public int getRowCount(javax.swing.JTree a0){return this.treeUI.getRowCount(a0);}&lt;br /&gt;    public boolean isEditing(javax.swing.JTree a0){return this.treeUI.isEditing(a0);}&lt;br /&gt;    public boolean contains(javax.swing.JComponent a0,int a1,int a2){return this.treeUI.contains(a0,a1,a2);}&lt;br /&gt;    public void update(java.awt.Graphics a0,javax.swing.JComponent a1){this.treeUI.update(a0,a1);}&lt;br /&gt;    public java.awt.Dimension getPreferredSize(javax.swing.JComponent a0){return this.treeUI.getPreferredSize(a0);}&lt;br /&gt;    public java.awt.Dimension getMinimumSize(javax.swing.JComponent a0){return this.treeUI.getMinimumSize(a0);}&lt;br /&gt;    public java.awt.Dimension getMaximumSize(javax.swing.JComponent a0){return this.treeUI.getMaximumSize(a0);}&lt;br /&gt;    public void paint(java.awt.Graphics a0,javax.swing.JComponent a1){this.treeUI.paint(a0,a1);}&lt;br /&gt;    public int getAccessibleChildrenCount(javax.swing.JComponent a0){return this.treeUI.getAccessibleChildrenCount(a0);}&lt;br /&gt;    public javax.accessibility.Accessible getAccessibleChild(javax.swing.JComponent a0,int a1){return this.treeUI.getAccessibleChild(a0,a1);}&lt;br /&gt;    public void uninstallUI(javax.swing.JComponent a0){this.treeUI.uninstallUI(a0);}&lt;br /&gt;    public void installUI(javax.swing.JComponent a0){this.treeUI.installUI(a0);}&lt;br /&gt;&lt;br /&gt;    public int hashCode(){return this.treeUI.hashCode();}&lt;br /&gt;    public boolean equals(java.lang.Object a0){return this.treeUI.equals(a0);}&lt;br /&gt;    public java.lang.String toString(){return this.treeUI.toString();}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ついでにコード。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;package a;&lt;br /&gt;&lt;br /&gt;import java.lang.reflect.Method;&lt;br /&gt;import java.lang.reflect.Modifier;&lt;br /&gt;&lt;br /&gt;import javax.swing.plaf.TreeUI;&lt;br /&gt;&lt;br /&gt;public class Test_print_TreeUI_override_method_implementation {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        a();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void a() {&lt;br /&gt;        Method[] methods = TreeUI.class.getMethods();&lt;br /&gt;        for (Method method : methods) {&lt;br /&gt;            if (Modifier.isFinal(method.getModifiers()))&lt;br /&gt;                continue;&lt;br /&gt;&lt;br /&gt;            print(method, &amp;quot;treeUI&amp;quot;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void print(Method m, String o) {&lt;br /&gt;        final char SP = ' ';&lt;br /&gt;        StringBuilder b = new StringBuilder();&lt;br /&gt;&lt;br /&gt;        b.append(Modifier.toString(m.getModifiers() &amp;amp; Modifier.PUBLIC)).append(&lt;br /&gt;                SP);&lt;br /&gt;        b.append(m.getReturnType().getCanonicalName()).append(SP);&lt;br /&gt;        b.append(m.getName()).append('(');&lt;br /&gt;&lt;br /&gt;        b.append(param(m));&lt;br /&gt;        b.append(')').append(throwsException(m));&lt;br /&gt;        b.append('{');&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            if (!m.getReturnType().getSimpleName().equals(&amp;quot;void&amp;quot;)) {&lt;br /&gt;                b.append(&amp;quot;return &amp;quot;);&lt;br /&gt;            }&lt;br /&gt;            b.append(&amp;quot;this.&amp;quot;).append(o).append('.').append(m.getName()).append(&lt;br /&gt;                    &amp;quot;(&amp;quot;);&lt;br /&gt;            int cnt = m.getParameterTypes().length;&lt;br /&gt;            for (int i = 0; i &amp;lt; cnt; i++) {&lt;br /&gt;                b.append('a').append(i).append(',');&lt;br /&gt;            }&lt;br /&gt;            if(0 &amp;lt; cnt)b.deleteCharAt(b.length() - 1);&lt;br /&gt;            b.append(&amp;quot;);&amp;quot;);&lt;br /&gt;        }&lt;br /&gt;        b.append('}');&lt;br /&gt;        System.out.println(b);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static StringBuilder param(Method m) {&lt;br /&gt;        final char SP = ' ';&lt;br /&gt;        StringBuilder b = new StringBuilder();&lt;br /&gt;        int pos = 0;&lt;br /&gt;        for (Class&amp;lt;?&amp;gt; classes : m.getParameterTypes()) {&lt;br /&gt;            b.append(classes.getCanonicalName()).append(SP).append('a').append(&lt;br /&gt;                    pos++).append(',');&lt;br /&gt;        }&lt;br /&gt;        if (0 &amp;lt; b.length())&lt;br /&gt;            b.deleteCharAt(b.length() - 1);&lt;br /&gt;        return b;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static StringBuilder throwsException(Method m) {&lt;br /&gt;        StringBuilder b = new StringBuilder();&lt;br /&gt;        if (!(0 &amp;lt; m.getExceptionTypes().length))&lt;br /&gt;            return b;&lt;br /&gt;        b.append(&amp;quot;throws &amp;quot;);&lt;br /&gt;        final char SP = ' ';&lt;br /&gt;        for (Class&amp;lt;?&amp;gt; classes : m.getExceptionTypes()) {&lt;br /&gt;            b.append(classes.getCanonicalName()).append(SP).append(',');&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        b.deleteCharAt(b.length() - 1);&lt;br /&gt;&lt;br /&gt;        return b;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-7021430651849210803?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W31DvA4iAKi5iKFwCgW8ovUbv6o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W31DvA4iAKi5iKFwCgW8ovUbv6o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W31DvA4iAKi5iKFwCgW8ovUbv6o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W31DvA4iAKi5iKFwCgW8ovUbv6o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=fgk-IMHRkSo:zShPkNd3_1k:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=fgk-IMHRkSo:zShPkNd3_1k:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=fgk-IMHRkSo:zShPkNd3_1k:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=fgk-IMHRkSo:zShPkNd3_1k:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=fgk-IMHRkSo:zShPkNd3_1k:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=fgk-IMHRkSo:zShPkNd3_1k:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=fgk-IMHRkSo:zShPkNd3_1k:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/7021430651849210803/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=7021430651849210803&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7021430651849210803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7021430651849210803?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/07/treeui.html" title="TreeUIをつくってみたいのだがしんどいので。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C0QHRH0-fSp7ImA9WxJVEkQ.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-2880708336964022321</id><published>2009-06-30T00:50:00.003+09:00</published><updated>2009-06-30T01:02:15.355+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T01:02:15.355+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="正規表現" /><title>せいき表現練習 - 最短一致</title><content type="html">Javaです。正規表現です。わかりづらいですが最短一致です。&lt;br /&gt;&lt;br /&gt;以下のようなもんもんがありまして、このテキストからSQLだけとりだしたいわけです。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;sql = "&lt;br /&gt;select * &lt;br /&gt;    from a&lt;br /&gt;    where a.i = ?&lt;br /&gt;";&lt;br /&gt;&lt;br /&gt; sql =  "&lt;br /&gt;select * &lt;br /&gt;    from b&lt;br /&gt;    where b.i = ?&lt;br /&gt;";&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;単純に「sql=」からはじまって「;」でおわってるなぁっていうことがわかります。&lt;br /&gt;&lt;blockquote&gt;sql=.*;&lt;/blockquote&gt;&lt;br /&gt;とかしちゃうと、一番最後の「;」までマッチしてしまいますね。&lt;br /&gt;ずばり、これが最長一致です。たぶん。&lt;br /&gt;&lt;br /&gt;それだと目的とあわないです。「sql」からはじまって、最初に出現した「;」までマッチさせたいわけですから、ここで最短一致が使えるわけです。&lt;br /&gt;&lt;br /&gt;下のように書くようです。&lt;br /&gt;&lt;blockquote&gt;.*?&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;というわけで、以下Javaコード。DOTALLを忘れずに。&lt;br /&gt;&lt;div id="src"&gt;package a;&lt;br /&gt;&lt;br /&gt;import java.io.ByteArrayOutputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import java.util.regex.Matcher;&lt;br /&gt;import java.util.regex.Pattern;&lt;br /&gt;&lt;br /&gt;public class Test_正規表現＿最短一致 {&lt;br /&gt;&lt;br /&gt;    public static byte[] getBytes(InputStream in) throws IOException {&lt;br /&gt;        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();&lt;br /&gt;        try {&lt;br /&gt;            int len = 0;&lt;br /&gt;            byte[] bs = new byte[8192];&lt;br /&gt;            while ((len = in.read(bs)) != -1) {&lt;br /&gt;                outputStream.write(bs, 0, len);&lt;br /&gt;                outputStream.flush();&lt;br /&gt;            }&lt;br /&gt;            outputStream.close();&lt;br /&gt;        } finally {&lt;br /&gt;            in.close();&lt;br /&gt;        }&lt;br /&gt;        return outputStream.toByteArray();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) throws IOException {&lt;br /&gt;&lt;br /&gt;        Test_正規表現＿最短一致 t = new Test_正規表現＿最短一致();&lt;br /&gt;&lt;br /&gt;        String s = new String(getBytes(t.getClass().getResourceAsStream(&lt;br /&gt;                &amp;quot;txt最短一致.txt&amp;quot;)));&lt;br /&gt;        t.a(s);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void a(String s) {&lt;br /&gt;&lt;br /&gt;        Pattern pattern = Pattern.compile(&amp;quot;\\s*sql =\\s*\&amp;quot;(.*)\&amp;quot;;&amp;quot;, Pattern.DOTALL);&lt;br /&gt;&lt;br /&gt;        Matcher matcher = pattern.matcher(s);&lt;br /&gt;        int cnt = 0;&lt;br /&gt;        while (matcher.find()) {&lt;br /&gt;            System.out.println(&amp;quot;*** &amp;quot; + ++cnt);&lt;br /&gt;            System.out.println(matcher.group(1));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-2880708336964022321?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0RCLqmXa_cHZBy0LPT5xlHDP0gk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0RCLqmXa_cHZBy0LPT5xlHDP0gk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0RCLqmXa_cHZBy0LPT5xlHDP0gk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0RCLqmXa_cHZBy0LPT5xlHDP0gk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=e07xfRr5nLQ:ADeRtzj_FJ4:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=e07xfRr5nLQ:ADeRtzj_FJ4:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=e07xfRr5nLQ:ADeRtzj_FJ4:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=e07xfRr5nLQ:ADeRtzj_FJ4:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=e07xfRr5nLQ:ADeRtzj_FJ4:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=e07xfRr5nLQ:ADeRtzj_FJ4:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=e07xfRr5nLQ:ADeRtzj_FJ4:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/2880708336964022321/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=2880708336964022321&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/2880708336964022321?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/2880708336964022321?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/06/blog-post_30.html" title="せいき表現練習 - 最短一致" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CkEAQHwzcCp7ImA9WxJVEk0.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-6036414873983415861</id><published>2009-06-28T23:27:00.003+09:00</published><updated>2009-06-28T23:50:41.288+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-28T23:50:41.288+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sql" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="jdbc" /><title>jdbc IN句</title><content type="html">Javaです。JDBCです。PreparedStatementです。ふと、whereで使うIN句で、？に配列(リスト)を指定できないのかしらと思ったわけです。&lt;br /&gt;どういうことかといいますと、&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM 品番 WHERE 品番 IN('A001')&lt;/blockquote&gt;&lt;br /&gt;って感じのSQLで、さらに、&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM 品番 WHERE 品番 IN('A001', 'A003', 'A011', 'A087')&lt;/blockquote&gt;&lt;br /&gt;って感じになるときに、PreparedStatementで、&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM 品番 WHERE 品番 IN(?, ?, ?, ?)&lt;/blockquote&gt;&lt;br /&gt;って指定するのではなく、ずばり、&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM 品番 WHERE 品番 IN(?)&lt;/blockquote&gt;&lt;br /&gt;はてな一個でできないかということです。&lt;br /&gt;&lt;br /&gt;なんかできそうだよなーと思いつつもできないかもなぁという思いありつつ調べたのですが、結論は、おそらく《できない》、です。&lt;br /&gt;&lt;br /&gt;似たように考えるひとびとは結構いるらしい、検索すると、でてきます。&lt;br /&gt;Java以外の言語のAPI、ライブラリ−だとあるかもしれませんが...&lt;br /&gt;&lt;br /&gt;その都度、SQLを組み立てればよいですが、組立てる場合、まあ、そのSQLとして問題がないように気を使う必要がでてきますね。&lt;br /&gt;&lt;br /&gt;例えば、はてなを二個連結しするとできるとか、配列（リスト）を展開してくれるとかってはどうでしょうかねー&lt;br /&gt;&lt;blockquote&gt;SELECT * FROM 品番 WHERE 品番 IN(??)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;br /&gt;H2を使って試したコードです。&lt;br /&gt;150000連結させてみました。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;package a;&lt;br /&gt;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.DriverManager;&lt;br /&gt;import java.sql.PreparedStatement;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;public class Test_SelectIn {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        a();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void a() {&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            Class.forName(&amp;quot;org.h2.Driver&amp;quot;);&lt;br /&gt;            Connection conn = DriverManager.getConnection(&amp;quot;jdbc:h2:~/test&amp;quot;,&lt;br /&gt;                    &amp;quot;sa&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;&lt;br /&gt;            // 'a001', 'a001'&lt;br /&gt;            String sql = &amp;quot;select * from 品番 where 品番 IN(@R@)&amp;quot;;&lt;br /&gt;            List&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;            list.add(&amp;quot;a001&amp;quot;);&lt;br /&gt;            for (int i = 0; i &amp;lt; 150000; i++) {&lt;br /&gt;                list.add(&amp;quot;a&amp;quot; + i);&lt;br /&gt;            }&lt;br /&gt;            StringBuilder sb = new StringBuilder();&lt;br /&gt;            for (String s : list) {&lt;br /&gt;                sb.append(&amp;quot;?,&amp;quot;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            if (!(sb.length() - 1 &amp;lt; 0) &amp;amp;&amp;amp; sb.charAt(sb.length() - 1) == ',') {&lt;br /&gt;                sb.deleteCharAt(sb.length() - 1);&lt;br /&gt;            }&lt;br /&gt;            sql = sql.replace(&amp;quot;@R@&amp;quot;, sb);&lt;br /&gt;            PreparedStatement ps = conn.prepareStatement(sql);&lt;br /&gt;            for (int i = 0; i &amp;lt; list.size(); i++) {&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            int pos = 1;&lt;br /&gt;            for (String s : list) {&lt;br /&gt;                ps.setString(pos++, s);&lt;br /&gt;            }&lt;br /&gt;            System.out.println(ps.toString());&lt;br /&gt;            ResultSet resultSet = ps.executeQuery();&lt;br /&gt;            while (resultSet.next()) {&lt;br /&gt;                System.out.println(resultSet.toString());&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            conn.close();&lt;br /&gt;&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-6036414873983415861?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8NwqnIHBO9AvY-Ndxpn6vH-hWAA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8NwqnIHBO9AvY-Ndxpn6vH-hWAA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8NwqnIHBO9AvY-Ndxpn6vH-hWAA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8NwqnIHBO9AvY-Ndxpn6vH-hWAA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=zEtA1Qdxapo:8eE1UJo7MDY:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=zEtA1Qdxapo:8eE1UJo7MDY:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=zEtA1Qdxapo:8eE1UJo7MDY:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=zEtA1Qdxapo:8eE1UJo7MDY:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=zEtA1Qdxapo:8eE1UJo7MDY:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=zEtA1Qdxapo:8eE1UJo7MDY:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=zEtA1Qdxapo:8eE1UJo7MDY:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/6036414873983415861/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=6036414873983415861&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/6036414873983415861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/6036414873983415861?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/06/jdbc-in.html" title="jdbc IN句" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D08GQns_cSp7ImA9WxJVEEs.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-417648204921115557</id><published>2009-06-27T10:18:00.002+09:00</published><updated>2009-06-27T10:23:43.549+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T10:23:43.549+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="osx" /><title>「ファインダーを起動して指定した階層のディレクトリを開く」です。</title><content type="html">Javaです。mac osxです。&lt;br /&gt;&lt;br /&gt;「ファインダーを起動して指定した階層のディレクトリを開く」です。&lt;br /&gt;何かとOS側と連携したいとき便利です。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://macwiki.sourceforge.jp/wiki/index.php/OSX%E3%81%AE%E5%9B%BA%E6%9C%89%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89"&gt;MacWiki - OSXの固有コマンド&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;windowsではopenではなく、explore.exeを指定します。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;package aaa;&lt;br /&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;public class OSX_command {&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) throws IOException, InterruptedException {&lt;br /&gt;       open(new File("/tmp1"));&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   static void open(File f) throws IOException, InterruptedException{&lt;br /&gt;   &lt;br /&gt;       Runtime runtime = Runtime.getRuntime();&lt;br /&gt;       Process process = runtime.exec("open " + f.getAbsolutePath());&lt;br /&gt;      &lt;br /&gt;       process.waitFor();&lt;br /&gt;       System.out.println(process.exitValue());&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-417648204921115557?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0bx9bUW57RmOmYOpLPlDkd2tyVE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0bx9bUW57RmOmYOpLPlDkd2tyVE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0bx9bUW57RmOmYOpLPlDkd2tyVE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0bx9bUW57RmOmYOpLPlDkd2tyVE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=5_8v7fhZvek:VPTf6BInRM8:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=5_8v7fhZvek:VPTf6BInRM8:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=5_8v7fhZvek:VPTf6BInRM8:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=5_8v7fhZvek:VPTf6BInRM8:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=5_8v7fhZvek:VPTf6BInRM8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=5_8v7fhZvek:VPTf6BInRM8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=5_8v7fhZvek:VPTf6BInRM8:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/417648204921115557/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=417648204921115557&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/417648204921115557?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/417648204921115557?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/06/blog-post.html" title="「ファインダーを起動して指定した階層のディレクトリを開く」です。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C0QARns7fip7ImA9WxJWGEs.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-3059904467276757322</id><published>2009-06-25T01:23:00.002+09:00</published><updated>2009-06-25T01:35:47.506+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T01:35:47.506+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="swing" /><title>JTextPaneで行をおりかえさない。</title><content type="html">Javaです。Swingです。JTextPaneです。&lt;br /&gt;&lt;br /&gt;もとネタは下記&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://forums.sun.com/thread.jspa?threadID=5275222"&gt;Swing - Stretching background colour across whole JTextPane for one line of text&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://terai.xrea.jp/Swing/NoWrapTextPane.html"&gt;JEditorPaneで長い行を折り返さない - Java Swing Tips&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;折り返さないことはできたのですが、スクロールペインが反応してくれなくて、うーん、と悩んだわけです。&lt;br /&gt;で、JTextArea(BasicTextAreaUI)の実装をぱらぱらみてて、JTextAreaは、WrappedPlainViewというものを使っていて、よくよくみると折り返し（wrap）しない場合は、javax.swing.text.PlainViewを使ってました。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.sun.com/thread.jspa?threadID=5275222"&gt;Swing - Stretching background colour across whole JTextPane for one line of text&lt;/a&gt;では、いろいろスクロールペインを効かせるためのコードがのってるようでしたが、いっそPlainViewを使ってしまえということで、下記のコード。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;package a;&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import javax.swing.text.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* http://forums.sun.com/thread.jspa?threadID=622683&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;public class NoWrapEditorKit extends StyledEditorKit {&lt;br /&gt;   public ViewFactory getViewFactory() {&lt;br /&gt;       return new StyledViewFactory();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   static class StyledViewFactory implements ViewFactory {&lt;br /&gt;       public View create(Element elem) {&lt;br /&gt;           String kind = elem.getName();&lt;br /&gt;&lt;br /&gt;           if (kind != null) {&lt;br /&gt;               if (kind.equals(AbstractDocument.ContentElementName)) {&lt;br /&gt;                   return new LabelView(elem);&lt;br /&gt;               } else if (kind.equals(AbstractDocument.ParagraphElementName)) {&lt;br /&gt;                   return new ParagraphView(elem);&lt;br /&gt;               } else if (kind.equals(AbstractDocument.SectionElementName)) {&lt;br /&gt;                   &lt;span style="color: rgb(255, 102, 0);"&gt;// return new NoWrapBoxView(elem, View.Y_AXIS);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;                    // return new WrappedPlainView(elem, false);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;                    return new PlainView(elem);&lt;/span&gt;&lt;br /&gt;               } else if (kind.equals(StyleConstants.ComponentElementName)) {&lt;br /&gt;                   return new ComponentView(elem);&lt;br /&gt;               } else if (kind.equals(StyleConstants.IconElementName)) {&lt;br /&gt;                   return new IconView(elem);&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           return new LabelView(elem);&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   static class NoWrapBoxView extends BoxView {&lt;br /&gt;       public NoWrapBoxView(Element elem, int axis) {&lt;br /&gt;           super(elem, axis);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public void layout(int width, int height) {&lt;br /&gt;           super.layout(1024, height);&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) throws Exception {&lt;br /&gt;       JTextPane textPane = new JTextPane();&lt;br /&gt;       textPane.setEditorKit(new NoWrapEditorKit());&lt;br /&gt;&lt;br /&gt;       JFrame frame = new JFrame();&lt;br /&gt;       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;       frame.getContentPane().add(new JScrollPane(textPane));&lt;br /&gt;       frame.setSize(200, 200);&lt;br /&gt;       frame.setLocationRelativeTo(null);&lt;br /&gt;       frame.setVisible(true);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-3059904467276757322?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wCG7yqW98P5x94cm0AZrnKojPno/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wCG7yqW98P5x94cm0AZrnKojPno/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wCG7yqW98P5x94cm0AZrnKojPno/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wCG7yqW98P5x94cm0AZrnKojPno/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=hWlVijEMwqo:kiTdy1ZB0eg:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=hWlVijEMwqo:kiTdy1ZB0eg:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=hWlVijEMwqo:kiTdy1ZB0eg:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=hWlVijEMwqo:kiTdy1ZB0eg:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=hWlVijEMwqo:kiTdy1ZB0eg:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=hWlVijEMwqo:kiTdy1ZB0eg:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=hWlVijEMwqo:kiTdy1ZB0eg:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/3059904467276757322/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=3059904467276757322&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3059904467276757322?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3059904467276757322?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/06/jtextpane.html" title="JTextPaneで行をおりかえさない。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;A0MARn8-cSp7ImA9WxJXGEo.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-3122170757959504014</id><published>2009-06-13T16:38:00.004+09:00</published><updated>2009-06-13T16:50:47.159+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-13T16:50:47.159+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="スクラッピング" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>リンク収集 - Mozilla Java Html Parserを使ってみる。</title><content type="html">HTMLに存在するリンク(aタグのhrefがあるもの)をひろいだしたいと思ったのでした。&lt;br /&gt;htmlパーサーはいろいろあるようですが、Mozilla Java Html Parserを使ってみます。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://mozillaparser.sourceforge.net/index.html"&gt;Mozilla Java Html Parser&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://txqz.net/blog/2008/06/19/1424"&gt;Mozilla Java Html Parserが動いた&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;実は、以前、試そうとして、ネイティブライブラリを使うことを知って、環境変数の設定が面倒だと思い、使わずじまいでした。&lt;br /&gt;&lt;br /&gt;今回はosx上のEclipse上で動かしてみます。&lt;br /&gt;&lt;br /&gt;僕の環境変数の設定は、実行する際の「Run configurations」のEnvironmentを利用しました。&lt;br /&gt;mac osxの場合は、DYLD_LIBRARY_PATHを設定します。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Je91jmleIYg/SjNZs-1id6I/AAAAAAAABYY/MFoN0eRzas0/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 397px;" src="http://3.bp.blogspot.com/_Je91jmleIYg/SjNZs-1id6I/AAAAAAAABYY/MFoN0eRzas0/s400/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+9.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5346715811935582114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以下コードです。&lt;br /&gt;&lt;div id="src"&gt;package aaa;&lt;br /&gt;&lt;br /&gt;import static quicklunch.e2.goodies.utils.ObjectUtils.eq;&lt;br /&gt;&lt;br /&gt;import java.io.BufferedInputStream;&lt;br /&gt;import java.io.ByteArrayOutputStream;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.net.URLConnection;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import org.w3c.dom.Document;&lt;br /&gt;import org.w3c.dom.NamedNodeMap;&lt;br /&gt;import org.w3c.dom.Node;&lt;br /&gt;import org.w3c.dom.NodeList;&lt;br /&gt;&lt;br /&gt;import com.dappit.Dapper.parser.MozillaParser;&lt;br /&gt;&lt;br /&gt;public class A_リンク収集 {&lt;br /&gt;&lt;br /&gt; public static void main(String[] args) throws Exception {&lt;br /&gt;  test();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; static String get_html(String surl, String enc)&lt;br /&gt;   throws MalformedURLException, IOException {&lt;br /&gt;  URLConnection connection = new URL(surl).openConnection();&lt;br /&gt;  connection.connect();&lt;br /&gt;  BufferedInputStream in = new BufferedInputStream(&lt;br /&gt;    (InputStream) connection.getContent());&lt;br /&gt;&lt;br /&gt;  return get(in, enc);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static String get(InputStream in, String enc) throws IOException {&lt;br /&gt;  ByteArrayOutputStream outputStream = new ByteArrayOutputStream();&lt;br /&gt;  try {&lt;br /&gt;   int len = 0;&lt;br /&gt;   byte[] bs = new byte[8192];&lt;br /&gt;   while ((len = in.read(bs)) != -1) {&lt;br /&gt;    outputStream.write(bs, 0, len);&lt;br /&gt;    outputStream.flush();&lt;br /&gt;   }&lt;br /&gt;   outputStream.close();&lt;br /&gt;  } finally {&lt;br /&gt;   in.close();&lt;br /&gt;  }&lt;br /&gt;  String s = new String(outputStream.toByteArray(), enc);&lt;br /&gt;  return s;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static String get_file(String filepath, String enc)&lt;br /&gt;   throws IOException {&lt;br /&gt;&lt;br /&gt;  BufferedInputStream bis = new BufferedInputStream(new FileInputStream(&lt;br /&gt;    filepath));&lt;br /&gt;  return get(bis, enc);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; static void test() throws Exception {&lt;br /&gt;  String s = get_html(&amp;quot;http://deiji.jp&amp;quot;, &amp;quot;utf-8&amp;quot;);&lt;br /&gt;  MozillaParser.init();&lt;br /&gt;  Document document = new MozillaParser().parse(s);&lt;br /&gt;  System.out.println(getLink((Node) document.getDocumentElement()));&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static class Link {&lt;br /&gt;  String title;&lt;br /&gt;  String link;&lt;br /&gt;&lt;br /&gt;  public Link(String title, String link) {&lt;br /&gt;   this.title = title;&lt;br /&gt;   this.link = link;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String toString() {&lt;br /&gt;   return title + &amp;quot;:&amp;quot; + link;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public static List&amp;lt;Link&amp;gt; getLink(Node node) {&lt;br /&gt;  List&amp;lt;Link&amp;gt; list = new ArrayList&amp;lt;Link&amp;gt;();&lt;br /&gt;  switch (node.getNodeType()) {&lt;br /&gt;  case Node.ELEMENT_NODE:&lt;br /&gt;   NamedNodeMap attrs = node.getAttributes();&lt;br /&gt;   if (eq(node.getNodeName(), &amp;quot;a&amp;quot;)&lt;br /&gt;     &amp;amp;&amp;amp; attrs.getNamedItem(&amp;quot;href&amp;quot;) != null) {&lt;br /&gt;    String link = attrs.getNamedItem(&amp;quot;href&amp;quot;).getNodeValue();&lt;br /&gt;    NodeList nl = node.getChildNodes();&lt;br /&gt;    for (int i = 0; i &amp;lt; nl.getLength(); i++) {&lt;br /&gt;     Node n2 = nl.item(i);&lt;br /&gt;     if (n2.getNodeType() == Node.TEXT_NODE) {&lt;br /&gt;      list.add(new Link(n2.getNodeValue(), link));&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   for (Node child = node.getFirstChild(); child != null; child = child&lt;br /&gt;     .getNextSibling()) {&lt;br /&gt;    list.addAll(getLink(child));&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  return list;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-3122170757959504014?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NFZil98Da5pVHtW3SVlnD8doQkM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NFZil98Da5pVHtW3SVlnD8doQkM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NFZil98Da5pVHtW3SVlnD8doQkM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NFZil98Da5pVHtW3SVlnD8doQkM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=3OPWF12IXaI:Bo8cGcZ_OsA:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=3OPWF12IXaI:Bo8cGcZ_OsA:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=3OPWF12IXaI:Bo8cGcZ_OsA:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=3OPWF12IXaI:Bo8cGcZ_OsA:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=3OPWF12IXaI:Bo8cGcZ_OsA:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=3OPWF12IXaI:Bo8cGcZ_OsA:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=3OPWF12IXaI:Bo8cGcZ_OsA:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/3122170757959504014/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=3122170757959504014&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3122170757959504014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3122170757959504014?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/06/mozilla-java-html-parser.html" title="リンク収集 - Mozilla Java Html Parserを使ってみる。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Je91jmleIYg/SjNZs-1id6I/AAAAAAAABYY/MFoN0eRzas0/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+9.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DUcCQHY7eyp7ImA9WxJQFE4.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-2139236959101826425</id><published>2009-05-28T00:02:00.003+09:00</published><updated>2009-05-28T00:11:01.803+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-28T00:11:01.803+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>css セレクタ - 頭がこんがります。- 頭がコンガリコーン</title><content type="html">CSSよくわからんです。&lt;br /&gt;なんか複雑すぎて。。。&lt;br /&gt;id,classとか頭がこんがります。&lt;br /&gt;&lt;br /&gt;忘れないようにメモ。&lt;br /&gt;&lt;br /&gt;たとえば、&lt;br /&gt;&lt;blockquote&gt;&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;h3&amp;gt;h3タイトル&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;とかある場合、このクラスcontentsのh3にだけ設定したいときは、下記のように書けます。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;&lt;br /&gt;div.content h3{&lt;br /&gt;    font-size: 115%;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ひとりごと...&lt;br /&gt;はっ気がついたら前回のブログの更新から、一ヶ月もたってしまってました&lt;br /&gt;Orz...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-2139236959101826425?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lMjRsGpiNr1ttwEZeGX8Udx7j_E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lMjRsGpiNr1ttwEZeGX8Udx7j_E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lMjRsGpiNr1ttwEZeGX8Udx7j_E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lMjRsGpiNr1ttwEZeGX8Udx7j_E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=ESDIuhV0lZA:cT4CX14Ku4w:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=ESDIuhV0lZA:cT4CX14Ku4w:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=ESDIuhV0lZA:cT4CX14Ku4w:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=ESDIuhV0lZA:cT4CX14Ku4w:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=ESDIuhV0lZA:cT4CX14Ku4w:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=ESDIuhV0lZA:cT4CX14Ku4w:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=ESDIuhV0lZA:cT4CX14Ku4w:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/2139236959101826425/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=2139236959101826425&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/2139236959101826425?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/2139236959101826425?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/05/css.html" title="css セレクタ - 頭がこんがります。- 頭がコンガリコーン" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D0EARXo_eyp7ImA9WxJTGEk.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-5068151272670525933</id><published>2009-04-28T00:16:00.003+09:00</published><updated>2009-04-28T00:20:44.443+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T00:20:44.443+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><title>[windows]空のファイルを作成します。</title><content type="html">touchコマンドがあれば、touchで空のファイルをつくるところですが、windowsにはないわけです。&lt;br /&gt;うーんとなやみました。&lt;br /&gt;&lt;br /&gt;echo とリダイレクトを使ったりしたわけですが、うまくいかず。&lt;br /&gt;&lt;br /&gt;どうも下記のようにするとよいようです。&lt;br /&gt;&lt;br /&gt;&lt;div id="src"&gt;type nul &amp;gt; empty.txt&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;参考&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tohoho-web.com/lng/200003/00030528.htm"&gt;DOSのファイル生成コマンド&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-5068151272670525933?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/j9_hzHlSkR1Ck5Etv_6LQDGbkDI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j9_hzHlSkR1Ck5Etv_6LQDGbkDI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/j9_hzHlSkR1Ck5Etv_6LQDGbkDI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j9_hzHlSkR1Ck5Etv_6LQDGbkDI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=BRbZ5gkK3fk:M6LR2SQtYaw:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=BRbZ5gkK3fk:M6LR2SQtYaw:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=BRbZ5gkK3fk:M6LR2SQtYaw:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=BRbZ5gkK3fk:M6LR2SQtYaw:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=BRbZ5gkK3fk:M6LR2SQtYaw:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=BRbZ5gkK3fk:M6LR2SQtYaw:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=BRbZ5gkK3fk:M6LR2SQtYaw:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/5068151272670525933/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=5068151272670525933&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/5068151272670525933?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/5068151272670525933?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/04/windows.html" title="[windows]空のファイルを作成します。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkEESHo4cSp7ImA9WxJTEUg.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-14545877173456059</id><published>2009-04-19T23:59:00.005+09:00</published><updated>2009-04-20T00:23:29.439+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-20T00:23:29.439+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="雑記" /><title>[雑記]えくせるはえくせる</title><content type="html">エクセル、ワードはないと困るアプリケーションナンバーワンな感じがします。&lt;br /&gt;とくにエクセル。エクセルは苦手です。たいがいエクセルを操作しないといけない場合って仕方がなくです。とにかくセルを埋める埋める埋める。&lt;br /&gt;&lt;br /&gt;で、最近のお気に入りは２０〜３０のエクセルファイルを、WSHで操作することです。エクセル＋マクロではなく、エクセルを外部アプリケーション（WSH）で処理するわけです。&lt;br /&gt;&lt;br /&gt;一括処理のためには、どこのセルに何が入ってるとか曖昧ではいけません。であるので、セル以外のところに付箋のようなオブジェクトを配置してデータは入れとくのはもってのほかです。あと、記述に《ぶれ》があってはいけない。&lt;br /&gt;&lt;br /&gt;仕様をもっと的確(自然言語ではなく)に表現する方法があればよいのに、でも、学習コストが高かそう。&lt;br /&gt;&lt;br /&gt;さわればさわるほど、エクセルってよくできてるなぁと思います。&lt;br /&gt;もう全てはエクセルでいいんじゃないかと思えるぐらいです（笑）。&lt;br /&gt;&lt;br /&gt;なんだか３週間ほとんどコーディングできてないのが悲しい。&lt;br /&gt;＞＿＜！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-14545877173456059?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CFTlo-QuzLgsWH9R3yfFSdXa-ps/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CFTlo-QuzLgsWH9R3yfFSdXa-ps/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CFTlo-QuzLgsWH9R3yfFSdXa-ps/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CFTlo-QuzLgsWH9R3yfFSdXa-ps/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Q07gB014gSw:yNQjXGxWfXA:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=Q07gB014gSw:yNQjXGxWfXA:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Q07gB014gSw:yNQjXGxWfXA:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=Q07gB014gSw:yNQjXGxWfXA:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Q07gB014gSw:yNQjXGxWfXA:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Q07gB014gSw:yNQjXGxWfXA:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=Q07gB014gSw:yNQjXGxWfXA:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/14545877173456059/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=14545877173456059&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/14545877173456059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/14545877173456059?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/04/blog-post.html" title="[雑記]えくせるはえくせる" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CU4MR3wzeSp7ImA9WxVbGE4.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-7108879790117675033</id><published>2009-04-04T17:19:00.003+09:00</published><updated>2009-04-04T17:33:06.281+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-04T17:33:06.281+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="image" /><title>LightFilterのSpotLightを使ってみた。</title><content type="html">&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.jhlabs.com/ip/filters/LightFilter.html"&gt;LightFilter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;SpotLightというのがあって使い方がよくわからなくて、試行錯誤中です。&lt;br /&gt;LightFilterってすごくよくできてるなぁと思うのですが、使う勘所が思い浮かばず。&lt;br /&gt;&lt;br /&gt;光ものってweb2.0っぽいのかな。もしかして、web2.0って言い方はもう死語！？&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Je91jmleIYg/SdcaD7YZbHI/AAAAAAAABWw/HkO4AHR43eU/s1600-h/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 391px; height: 400px;" src="http://2.bp.blogspot.com/_Je91jmleIYg/SdcaD7YZbHI/AAAAAAAABWw/HkO4AHR43eU/s400/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+11.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5320750139543481458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;スクリーンキャスト&lt;br /&gt;&lt;object width="359" height="393"&gt; &lt;param name="movie" value="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/jingswfplayer.swf"&gt;&lt;/param&gt; &lt;param name="quality" value="high"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/FirstFrame.jpg&amp;containerwidth=359&amp;containerheight=393&amp;loaderstyle=jing&amp;content=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/00000085.swf"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="scale" value="showall"&gt;&lt;/param&gt; &lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt; &lt;param name="base" value="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/"&gt;&lt;/param&gt; &lt;embed src="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="359" height="393" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/FirstFrame.jpg&amp;containerwidth=359&amp;containerheight=393&amp;loaderstyle=jing&amp;content=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/00000085.swf" allowFullScreen="true" base="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/fb0150e4-d790-43c9-a94e-a490ad0b9941/" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;使っているライブラリは、&lt;a href="http://www.jhlabs.com/ip/filters/index.html"&gt;Jerry's Java Image Processing Pages&lt;/a&gt;にあります。&lt;br /&gt;あとユーティリティ、GUI周りは、&lt;a href="http://code.google.com/p/quicklunch/"&gt;quicklunch - Google Code&lt;/a&gt;とかにパーツとして置いていこうかなと思います。&lt;br /&gt;&lt;br /&gt;以下コード&lt;br /&gt;&lt;div id="src"&gt;package ifif;&lt;br /&gt;&lt;br /&gt;import static quicklunch.e2.goodies.utils.ObjectUtils.eq;&lt;br /&gt;&lt;br /&gt;import java.awt.BorderLayout;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.Graphics2D;&lt;br /&gt;import java.awt.image.BufferedImage;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;import quicklunch.e2.goodies.swingy.MyFrame;&lt;br /&gt;import quicklunch.e2.goodies.swingy.SlidersPanel;&lt;br /&gt;&lt;br /&gt;import com.jhlabs.image.FillFilter;&lt;br /&gt;import com.jhlabs.image.LightFilter;&lt;br /&gt;&lt;br /&gt;public class TestMain {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        MyFrame myFrame = new MyFrame();&lt;br /&gt;&lt;br /&gt;        final MyPanel panel = new MyPanel();&lt;br /&gt;&lt;br /&gt;        myFrame.getContentPane().setLayout(new BorderLayout());&lt;br /&gt;        myFrame.getContentPane().add(new SlidersPanel() {&lt;br /&gt;            {&lt;br /&gt;                addSlider(&amp;quot;centerX&amp;quot;, &amp;quot;cenx&amp;quot;);&lt;br /&gt;                addSlider(&amp;quot;centerY&amp;quot;, &amp;quot;ceny&amp;quot;);&lt;br /&gt;                addSlider(&amp;quot;cornAngle&amp;quot;, &amp;quot;cornang&amp;quot;);&lt;br /&gt;                addSlider(&amp;quot;distance&amp;quot;, &amp;quot;distance&amp;quot;);&lt;br /&gt;                &lt;br /&gt;                addSlidersPanelEventListener(new ISlidersPanelEventListener() {&lt;br /&gt;&lt;br /&gt;                    @Override&lt;br /&gt;                    public void slidersPanelEvent(SildersPanelEvent event) {&lt;br /&gt;                        System.out.println(event);&lt;br /&gt;                        String name = event.getName();&lt;br /&gt;                        if (eq(name, &amp;quot;cenx&amp;quot;)) {&lt;br /&gt;                            panel.cenx = event.getFloat();&lt;br /&gt;                            panel.gen();&lt;br /&gt;                            panel.repaint();&lt;br /&gt;                            return;&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                        if (eq(name, &amp;quot;ceny&amp;quot;)) {&lt;br /&gt;                            panel.ceny = event.getFloat();&lt;br /&gt;                            panel.gen();&lt;br /&gt;                            panel.repaint();&lt;br /&gt;                            return;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;br /&gt;                        if (eq(name, &amp;quot;cornang&amp;quot;)) {&lt;br /&gt;                            panel.cornAng = event.getFloat();&lt;br /&gt;                            panel.gen();&lt;br /&gt;                            panel.repaint();&lt;br /&gt;                            return;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;br /&gt;                        if (eq(name, &amp;quot;distance&amp;quot;)) {&lt;br /&gt;                            panel.distance = 1000 * event.getFloat();&lt;br /&gt;                            panel.gen();&lt;br /&gt;                            panel.repaint();&lt;br /&gt;                            return;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;br /&gt;                    }&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;        }, BorderLayout.NORTH);&lt;br /&gt;        myFrame.getContentPane().add(panel, BorderLayout.CENTER);&lt;br /&gt;        myFrame.setVisible(true);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static class MyPanel extends JPanel {&lt;br /&gt;        BufferedImage image;&lt;br /&gt;&lt;br /&gt;        public float cenx;&lt;br /&gt;        public float ceny;&lt;br /&gt;        public float cornAng;&lt;br /&gt;        public float distance;&lt;br /&gt;        {&lt;br /&gt;            gen();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void gen() {&lt;br /&gt;            FillFilter fillFilter = new FillFilter();&lt;br /&gt;            fillFilter.setFillColor(new Color(100, 190, 28)&lt;br /&gt;                    .getRGB());&lt;br /&gt;&lt;br /&gt;            fillFilter.setDimensions(400, 400);&lt;br /&gt;&lt;br /&gt;            BufferedImage image2 = fillFilter.filter(new BufferedImage(400,&lt;br /&gt;                    400, BufferedImage.TYPE_INT_ARGB), null);&lt;br /&gt;&lt;br /&gt;            LightFilter lightFilter = new LightFilter() {&lt;br /&gt;                {&lt;br /&gt;                    Vector&amp;lt;Light&amp;gt; vector = this.getLights();&lt;br /&gt;                    Iterator&amp;lt;Light&amp;gt; iterator = vector.iterator();&lt;br /&gt;                    removeLight(vector.firstElement());&lt;br /&gt;&lt;br /&gt;                    SpotLight spotLight = new SpotLight();&lt;br /&gt;&lt;br /&gt;                    spotLight.setCentreX(cenx);&lt;br /&gt;                    spotLight.setCentreY(ceny);&lt;br /&gt;                    spotLight.setConeAngle(cornAng);&lt;br /&gt;                    spotLight.setDistance(distance);&lt;br /&gt;                    addLight(spotLight);&lt;br /&gt;                }&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            try {&lt;br /&gt;                this.image = lightFilter.filter(image2, image2);&lt;br /&gt;            } catch (Exception e) {&lt;br /&gt;                e.printStackTrace();&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        @Override&lt;br /&gt;        protected void paintComponent(Graphics g) {&lt;br /&gt;            Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;            g2d.drawImage(this.image, 0, 0, null);&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-7108879790117675033?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jcMG_X2qTaQ0SiSN7E5Rk4Bzh7U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jcMG_X2qTaQ0SiSN7E5Rk4Bzh7U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jcMG_X2qTaQ0SiSN7E5Rk4Bzh7U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jcMG_X2qTaQ0SiSN7E5Rk4Bzh7U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=qBe0PTWCh5M:MDEUuMnJvRo:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=qBe0PTWCh5M:MDEUuMnJvRo:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=qBe0PTWCh5M:MDEUuMnJvRo:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=qBe0PTWCh5M:MDEUuMnJvRo:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=qBe0PTWCh5M:MDEUuMnJvRo:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=qBe0PTWCh5M:MDEUuMnJvRo:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=qBe0PTWCh5M:MDEUuMnJvRo:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/7108879790117675033/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=7108879790117675033&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7108879790117675033?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/7108879790117675033?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/04/lightfilterspotlight.html" title="LightFilterのSpotLightを使ってみた。" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Je91jmleIYg/SdcaD7YZbHI/AAAAAAAABWw/HkO4AHR43eU/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+11.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CUAERns6eSp7ImA9WxVbFk8.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-8159576726594790831</id><published>2009-04-02T06:56:00.002+09:00</published><updated>2009-04-02T07:08:27.511+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-02T07:08:27.511+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="パンくず" /><category scheme="http://www.blogger.com/atom/ns#" term="ナビゲーション" /><title>[java]パン屑もどき</title><content type="html">&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/03/17/breadcrumbs-in-web-design-examples-and-best-practices-2/"&gt;Breadcrumbs In Web Design: Examples And Best Practices | Design Showcase | Smashing Magazine&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/architectonics/usability/breadcrumbs-in-web-design.html"&gt;パンくず詳解 | コリス&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Javaです。パンくずです。&lt;br /&gt;パンくずってすごくすぐれたナビゲーションだと思います。&lt;br /&gt;&lt;br /&gt;既存の部品でそれっぽいの作成してみます。&lt;br /&gt;&lt;br /&gt;&lt;object width="295" height="177"&gt; &lt;param name="movie" value="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/jingswfplayer.swf"&gt;&lt;/param&gt; &lt;param name="quality" value="high"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/FirstFrame.jpg&amp;containerwidth=295&amp;containerheight=177&amp;loaderstyle=jing&amp;content=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/00000084.swf"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="scale" value="showall"&gt;&lt;/param&gt; &lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt; &lt;param name="base" value="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/"&gt;&lt;/param&gt; &lt;embed src="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="295" height="177" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/FirstFrame.jpg&amp;containerwidth=295&amp;containerheight=177&amp;loaderstyle=jing&amp;content=http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/00000084.swf" allowFullScreen="true" base="http://content.screencast.com/users/ugo.nakawaka/folders/Jing/media/5baefda8-b7c6-4e06-804b-74364fd2473e/" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;JLabelを使ってます。HTMLコードをsetTextして見え方を変えてます。&lt;br /&gt;配置するパネルのレイアウトをFlowLayoutにしています。&lt;br /&gt;&lt;br /&gt;以下、コード&lt;br /&gt;&lt;div id="src"&gt;import java.awt.Color;&lt;br /&gt;import java.awt.FlowLayout;&lt;br /&gt;import java.awt.event.MouseAdapter;&lt;br /&gt;import java.awt.event.MouseEvent;&lt;br /&gt;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;import javax.swing.JLabel;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;public class Breadcrumbs {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        final JFrame frame = new JFrame() {&lt;br /&gt;            {&lt;br /&gt;                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;                setAlwaysOnTop(true);&lt;br /&gt;            }&lt;br /&gt;        };&lt;br /&gt;        frame.getContentPane().add(new _Breadcrumbs() {&lt;br /&gt;            {&lt;br /&gt;                addBread(&amp;quot;aaaa&amp;quot;);&lt;br /&gt;                addBread(&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;                addBread(&amp;quot;bbbb&amp;quot;);&lt;br /&gt;                addBread(&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;                addBread(&amp;quot;cccc&amp;quot;);&lt;br /&gt;                addBread(&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;                addBread(&amp;quot;dddd&amp;quot;);&lt;br /&gt;            }&lt;br /&gt;        });&lt;br /&gt;&lt;br /&gt;        frame.setVisible(true);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static class _Breadcrumbs extends JPanel {&lt;br /&gt;&lt;br /&gt;        public _Breadcrumbs() {&lt;br /&gt;            super();&lt;br /&gt;            setLayout(new FlowLayout());&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void addBread(String s) {&lt;br /&gt;            add(new MyLabel(s));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static class MyLabel extends JLabel {&lt;br /&gt;        {&lt;br /&gt;            final String _HTML_ = &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;u&amp;gt;%s&amp;lt;/u&amp;gt;&amp;lt;/body&amp;gt;&amp;quot;;&lt;br /&gt;            final String SEPA = &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;            setForeground(Color.BLUE);&lt;br /&gt;            addMouseMotionListener(new MouseAdapter() {&lt;br /&gt;                {&lt;br /&gt;                    addMouseListener(this);&lt;br /&gt;                }&lt;br /&gt;                String tmp;&lt;br /&gt;&lt;br /&gt;                @Override&lt;br /&gt;                public void mouseEntered(MouseEvent e) {&lt;br /&gt;                    tmp = getText();&lt;br /&gt;                    // 区切りなら入れ替えない&lt;br /&gt;                    if (SEPA.equals(tmp))&lt;br /&gt;                        return;&lt;br /&gt;&lt;br /&gt;                    setText(String.format(_HTML_, getText()));&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                @Override&lt;br /&gt;                public void mouseExited(MouseEvent e) {&lt;br /&gt;                    setText(tmp);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public MyLabel(String s) {&lt;br /&gt;            super(s);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-8159576726594790831?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gEIDVKnWSdXAowzEPgd0EmG_aCo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEIDVKnWSdXAowzEPgd0EmG_aCo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gEIDVKnWSdXAowzEPgd0EmG_aCo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEIDVKnWSdXAowzEPgd0EmG_aCo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=gtNECiW2vfA:LSwR5hS25pg:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=gtNECiW2vfA:LSwR5hS25pg:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=gtNECiW2vfA:LSwR5hS25pg:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=gtNECiW2vfA:LSwR5hS25pg:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=gtNECiW2vfA:LSwR5hS25pg:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=gtNECiW2vfA:LSwR5hS25pg:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=gtNECiW2vfA:LSwR5hS25pg:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/8159576726594790831/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=8159576726594790831&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/8159576726594790831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/8159576726594790831?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/04/java.html" title="[java]パン屑もどき" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C04GRH0-cCp7ImA9WxVbFUQ.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-618349383194635841</id><published>2009-04-01T22:01:00.003+09:00</published><updated>2009-04-01T22:18:45.358+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-01T22:18:45.358+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ファイル" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="unix" /><title>/dev/nullを読む</title><content type="html">&lt;a href="http://x68000.q-e-d.net/~68user/unix/pickup?%2Fdev%2Fnull"&gt;UNIXの部屋 コマンド検索:/dev/null (*BSD/Linux)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki//dev/null"&gt;/dev/null - Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB"&gt;スペシャルファイル - Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/dev/null はビットバケツ (bit bucket)、ブラックホール (black hole)と呼ばれる何かです。 &lt;br /&gt;スペシャルファイルの一種だそうです。&lt;br /&gt;&lt;br /&gt;ビットバケツという言い方をするとは知りませんでした。&lt;br /&gt;&lt;br /&gt;それで、これを開いてreadしてみます。&lt;br /&gt;以下、コード。&lt;br /&gt;&lt;div id="src"&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;public class Open_DEV_NULL {&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) throws IOException {&lt;br /&gt;        File file = new File("/dev/null");&lt;br /&gt;        System.out.println("/dev/null exists " + file.exists());&lt;br /&gt;        System.out.println("/dev/null length " + file.length());&lt;br /&gt;        FileInputStream fis = new FileInputStream(file);&lt;br /&gt;        byte[] bs = new byte[4096];&lt;br /&gt;        int size = fis.read(bs);&lt;br /&gt;        System.out.println("read size:[" + size + "]");&lt;br /&gt;        fis.close();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ちなみにreadは、&lt;br /&gt;&lt;blockquote&gt;バッファーに読み込まれたバイトの合計数。または、ファイルの終わりに達したためにそれ以上データが存在しない場合は -1 &lt;cite&gt;javadoc&lt;/cite&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;実行はmac osxです。&lt;br /&gt;&lt;br /&gt;結果&lt;br /&gt;&lt;blockquote&gt;/dev/null exists true&lt;br /&gt;/dev/null exists 0&lt;br /&gt;read size:[-1]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;javaで開いて読めることがわかりました。中身はEOFというわけでした。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-618349383194635841?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cKZQCQ5kNoDyoxcyip_hZF0oEqk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cKZQCQ5kNoDyoxcyip_hZF0oEqk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cKZQCQ5kNoDyoxcyip_hZF0oEqk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cKZQCQ5kNoDyoxcyip_hZF0oEqk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=J3O2gstR7RU:iGOaOlT1cZM:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=J3O2gstR7RU:iGOaOlT1cZM:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=J3O2gstR7RU:iGOaOlT1cZM:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=J3O2gstR7RU:iGOaOlT1cZM:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=J3O2gstR7RU:iGOaOlT1cZM:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=J3O2gstR7RU:iGOaOlT1cZM:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=J3O2gstR7RU:iGOaOlT1cZM:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/618349383194635841/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=618349383194635841&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/618349383194635841?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/618349383194635841?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/04/devnull.html" title="/dev/nullを読む" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEUARnozeip7ImA9WxVbFUw.&quot;"><id>tag:blogger.com,1999:blog-7616979561464828711.post-3906924647244450591</id><published>2009-03-31T23:38:00.005+09:00</published><updated>2009-04-01T00:10:47.482+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-01T00:10:47.482+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rdb" /><title>Join Engineかぁ</title><content type="html">で、最近RDB(リレーショナルデータベース)がよくわからないので居心地が悪いです。&lt;br /&gt;joinがとくにわからないです。あれを頭の中でイメージできるひとはすごいと思います。&lt;br /&gt;いやべつに頭の中でどうイメージしようが勝手でしょうが。&lt;br /&gt;僕自身の用語の理解も危ういです。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nippondanji.blogspot.com/2009/03/mysqlexplain.html"&gt;漢(オトコ)のコンピュータ道: MySQLのEXPLAINを徹底解説!!&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;で、上記の記事で、「MySQLが実行出来るJOINの種類...」云々とあって、そうかjoinにもいろいろあるわけだと、知った次第ですが、苦手意識は対象にたいする知識不足からくる場合が多いので、この際、RDBの根っこから勉強せねばなぁと思うこの頃。&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://plus.ce-lab.net/plus-stream/good-bye-relational-algebra"&gt;Good-bye, Relational Algebra — Community Engine Plus&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;それで、話変わって、たまたま上記の記事をみて、たしかにべつにjoinをアプリケーション側で行ってもよいよなぁーと思ったわけです。&lt;br /&gt;&lt;br /&gt;結論は、今現在、いわゆるRDB(リレーショナルデータベース)の実装も調べつつも、脱RDBの道を模索するのがかっこいいかなと。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7616979561464828711-3906924647244450591?l=programamemo2.blogspot.com'/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UTuOEBv-Ru3z3sqnshz7cygnYMg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UTuOEBv-Ru3z3sqnshz7cygnYMg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UTuOEBv-Ru3z3sqnshz7cygnYMg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UTuOEBv-Ru3z3sqnshz7cygnYMg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=YoSIXWAVwIs:BLWIkuZR1y8:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=YoSIXWAVwIs:BLWIkuZR1y8:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=YoSIXWAVwIs:BLWIkuZR1y8:_ezEcGVEzUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?i=YoSIXWAVwIs:BLWIkuZR1y8:_ezEcGVEzUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=YoSIXWAVwIs:BLWIkuZR1y8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=YoSIXWAVwIs:BLWIkuZR1y8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/programmermemo2?a=YoSIXWAVwIs:BLWIkuZR1y8:fqmcRPSHgvs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/programmermemo2?d=fqmcRPSHgvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://programamemo2.blogspot.com/feeds/3906924647244450591/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=7616979561464828711&amp;postID=3906924647244450591&amp;isPopup=true" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3906924647244450591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7616979561464828711/posts/default/3906924647244450591?v=2" /><link rel="alternate" type="text/html" href="http://programamemo2.blogspot.com/2009/03/join-engine.html" title="Join Engineかぁ" /><author><name>ugo</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09187168060248749572" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
