<?xml version="1.0" encoding="UTF-8" ?>
<feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
	xml:lang="ja-JP"
>
	<title>私とTips</title>
	<subtitle>最新4件を表示します。</subtitle>
	<id>tag:txqz.net,1970:/genre/Tips</id>
	<link rel="self" href="http://txqz.net/genre/Tips.atom"/>
	<link rel="alternate" type="application/rss+xml" href="http://txqz.net/genre/Tips.rdf"/>
	<link rel="alternate" type="application/xhtml+xml" href="http://txqz.net/genre/Tips.xhtml"/>
	<link rel="alternate" type="text/html" href="http://txqz.net/genre/Tips.html"/>
	<link rel="contents" href="http://txqz.net/genre" title="タグ一覧"/>
	<link rel="first" href="http://txqz.net/genre/%28%E7%A6%8F%29" title="(福)"/>
	<link rel="prev" href="http://txqz.net/genre/TF-IDF" title="TF-IDF"/>
	<link rel="next" href="http://txqz.net/genre/TMN" title="TMN"/>
	<link rel="last" href="http://txqz.net/genre/%EF%BD%83%EF%BD%83TLD" title="ｃｃTLD"/>
	<author>
		<name>陽坂智佐</name>
		<email>spambasket@txqz.net</email>
	</author>
	<entry>
		<title>小数点以下n桁の表示</title>
		<id>tag:txqz.net,2008-05-30:/blog/2008/05/30/2158</id>
		<link rel="alternate" href="http://txqz.net/blog/2008/05/30/2158"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>doubleやfloatの値をそのままSystem.out.prinlt()すると小数点以下16桁とか出てきて見にくいので、これを小数点以下2桁くらいにできないものかと検索すると、たとえば<a href="http://always-pg.com/java/j2se_rd/number/setscale.html" title="小数点第２位以下で四捨五入する / Java(SE) API 逆引き辞典">Java(SE) API 逆引き辞典</a>が引っかかるので、それに則って書くと:</p>
<pre><code class="java">double before = 0.3456789012345678;
double after = new BigDecimal(String.valueOf(before)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(after);
//=> 0.35</code></pre>
<p>長い。</p>
<p>ここで思い直してみると、<em>小数点以下2桁に丸めた数値をdoubleのまま扱う必要があるのか</em>ということに気づく。特に今回の場合、「doubleをprint()すると小数点以下16桁も出てきて長いから小数点以下2桁だけ表示させたい」わけで、ただ小数点以下2桁までを表現した文字列が得られればいい。なので:</p>
<pre><code class="java">double before = 0.3456789012345678;
String after = String.format("%.2f", before);
System.out.println(after);
//=> 0.35</code></pre>
<p><a href="http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html#format(java.lang.String, java.lang.Object...)" title="String (Java 2 Platform SE 5.0)">formatメソッド</a>が使えるのはJava5.0ことJava1.5からなので、そこだけ罠。</p>
<p>ていうか、sprintf()みたいなのはほかのLLでは当たり前のように用意されていると思うのに、Javaでの提供が1.5までずれ込んだのはなぜだろう。需要がなかったのかなー。検索してみたら<a href="http://www.sabaji.com/printf/index.html" title="printf and sprintf for java">独自にsprintfを実装している例</a>がいくつか見つかったので、需要がなかったわけでもないみたいだけど。</p>
			</div>
		</content>
		<category term="Java"/>
		<category term="Tips"/>
		<trackback:ping>http://txqz.net/blog/2008/05/30/2158/tb</trackback:ping>
		<published>2008-06-10T11:54:07+09:00</published>
		<updated>2008-06-10T12:07:27+09:00</updated>
	</entry>
	<entry>
		<title>Re: PHP コード最適化 Best Practices 63+</title>
		<id>tag:txqz.net,2008-05-22:/blog/2008/05/22/1712</id>
		<link rel="alternate" href="http://txqz.net/blog/2008/05/22/1712"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p><a href="http://d.hatena.ne.jp/koto2/20080518/1211070116" title="PHP コード最適化 Best Practices 63+ - カタコト日記">PHPコードを最適化するTips</a>がはてブで話題になっている。<a href="http://labs.unoh.net/2007/05/phptips.html" title="ウノウラボ Unoh Labs: PHP最適化tipsまとめサイト">前に似たようなものを見て</a>そのときも思ったのだけれども、いくつかよく分からない項目が紛れている。前回は<a href="http://b.hatena.ne.jp/denken/20070514#bookmark-4707767" title="はてなブックマーク - txqz bkmk / 2007年05月14日">はてブのコメントにちょろっと書いた</a>けど、2回目なのでちゃんとエントリにしておく。</p>
<blockquote cite="http://d.hatena.ne.jp/koto2/20080518/1211070116" title="PHP コード最適化 Best Practices 63+ - カタコト日記">
<p>17. $row['id'] は $row[id] より7倍速い。</p>
</blockquote>
<p>これは最適化プラクティスというレベルの話ではない。<var>id</var>が定数でないなら、ここでE_NOTICEが出る。そうなると、<var>id</var>を文字列"id"として再評価しないといけなくなるから、遅くなるのも当たり前だ。</p>
<pre><code class="php">&lt;?php
error_reporting(E_ALL);
$row = array(
     "id" => 12
);
echo $row[id];</code></pre>
<pre><samp>Notice: Use of undefined constant id - assumed 'id' in /home/youzaka/temp/rowid.php on line 6
12</samp></pre>
<p>これが<code class="php">$row[id]</code>でなくて<code class="php">$row-&gt;id</code>なら分かるけど、なんでそもそも<code class="php">$row[id]</code>と書こうだなんて発想が出てきたのか、当時よく分からなかった。error_reportingの初期値が<code class="php">E_ALL ^ E_NOTICE</code>だから、引用符なしで書いても問題なく表示されてしまうのだった。</p>
<blockquote cite="http://d.hatena.ne.jp/koto2/20080518/1211070116" title="PHP コード最適化 Best Practices 63+ - カタコト日記">
<p>49. DB に入れる値なら GET より POST を使おう。（パフォーマンスが上がる）</p>
</blockquote>
<p>データベースに値を入れるならPOSTメソッドを使うのが本来の姿で、パフォーマンスがあがるからGETじゃなくてPOSTを使うという考え方は危険だと思う。GETとかPOSTとかのメソッドの名前からそこら辺は察してほしい。</p>
<p>以下、ツッコミでなくマイ補足知識。</p>
<blockquote cite="http://d.hatena.ne.jp/koto2/20080518/1211070116" title="PHP コード最適化 Best Practices 63+ - カタコト日記">
<p>02. echo の方が print より速い。</p>
</blockquote>
<p>調べてみると、echoやprintは関数ではなく式であるという点は共通だが、echoは戻り値を返さないのに対しprintは常にTRUEを返すそうで。戻り値の評価の分だけわずかにprintの方が遅くなるのでしょうね。ほとんど無視できるような気もするけど。</p>
<p>あと、「n倍速い」というのが強調されているけど、それが環境によらないものなのか、どれくらいの誤差があるのか、絶対値でどれくらい違うのかが気になった。</p>
			</div>
		</content>
		<category term="PHP"/>
		<category term="最適化"/>
		<category term="Tips"/>
		<trackback:ping>http://txqz.net/blog/2008/05/22/1712/tb</trackback:ping>
		<published>2008-05-22T17:12:01+09:00</published>
		<updated>2008-05-22T17:12:01+09:00</updated>
	</entry>
	<entry>
		<title>Googleのパーソナライズド検索を無効にする</title>
		<id>tag:txqz.net,2007-06-10:/blog/2007/06/10/2010</id>
		<link rel="alternate" href="http://txqz.net/blog/2007/06/10/2010"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p><a href="http://google-mania.net/archives/315" title="Googleパーソナライズド検索を無効にする３つの方法 - Google Mania | グーグルの便利な使い方">Googleのパーソナライズ検索をログイン状態で無効にするやりかたを</a>Google Maniaで知った。いやぁこれは助かる。<a href="http://www.google.com/searchhistory/welcome?hl=ja" title="Google - 検索履歴">Googleの検索履歴のページ</a>を見ると、</p>
<blockquote title="Google - 検索履歴" cite="http://www.google.com/searchhistory/welcome?hl=ja">
<p>検索した情報を検索履歴に登録しない場合は、このページの [一時停止] ボタンをクリックします。 [再開] をクリックするまで、検索内容は検索履歴に保存されず、パーソナライズド検索の検索結果にも反映されません。 </p>
</blockquote>
<p>て書いてあるのだけれども、 <q title="Google - 検索履歴" cite="http://www.google.com/searchhistory/welcome?hl=ja">[一時停止] ボタン</q>も<q title="Google - 検索履歴" cite="http://www.google.com/searchhistory/welcome?hl=ja">[再開]</q>も見あたらないしどうしようかと思っていたのだった。これはGoogleの罠なのか???</p>
			</div>
		</content>
		<category term="Google"/>
		<category term="tips"/>
		<category term="パーソナライズ検索"/>
		<category term="検索エンジン"/>
		<trackback:ping>http://txqz.net/blog/2007/06/10/2010/tb</trackback:ping>
		<published>2007-06-10T20:10:01+09:00</published>
		<updated>2007-06-10T20:18:06+09:00</updated>
	</entry>
	<entry>
		<title>それっぽいプレゼンテーションを作る</title>
		<id>tag:txqz.net,2007-02-07:/blog/2007/02/07/2107</id>
		<link rel="alternate" href="http://txqz.net/blog/2007/02/07/2107"/>
		<content type="xhtml">
			<div xmlns="http://www.w3.org/1999/xhtml">
<p>そこらを見て回って良いと思ったプレゼンの仕方のまとめ。そろそろ卒研発表も近いのでぜひ踏まえておきたい。</p>
<ul>
<li>1分間に2～3枚のペース</li>
<li>1枚のスライドは7行未満を心がける</li>
<li>スライドに書いてあることをそのまま読まない</li>
<li>最初に結論を言う</li>
<li>タイトルは簡単に</li>
<li>話し言葉でプレゼン。これ大事</li>
<li>図示がいい場面で積極的に図示</li>
<li>A群B群とかを使うと、次のシートにいったときにどれがAかBか分からなくなる</li>
<li>まとめはすっぱり。フローチャートとかも使ってみる</li>
<li>事実と意見の区別を徹底</li>
<li>30pt以下の文字は使わない</li>
<li>2画面モードを利用</li>
</ul>
<p>あと<a href="http://www.bricklife.com/weblog/000626.html" title="bricklife.weblog.*: 「もんたメソッド」は○○なプレゼン手法だ (説明ムービーなど)">もんたメソッド</a>とか<a href="http://www.snowballdesign.com/sugi/2006-04-06-1.html" title="クライングドーベルマン : プレゼンテクニックまとめのまとめ+スギヤマメソッド">スギヤマメソッド</a>とか。</p>
<ins class="ps" datetime="2007-06-02T19:35:45+09:00" id="PS20070602193545">
<p>先日の英語の講義で<a href="http://txqz.net/presentation/20070523" title="My favorite hot springs">高橋メソッドを使ったプレゼン</a>をやったら褒められた。</p>
</ins>
			</div>
		</content>
		<category term="Tips"/>
		<category term="まとめ"/>
		<category term="プレゼン"/>
		<category term="卒研発表"/>
		<trackback:ping>http://txqz.net/blog/2007/02/07/2107/tb</trackback:ping>
		<published>2007-06-02T19:35:45+09:00</published>
		<updated>2007-06-02T19:35:45+09:00</updated>
	</entry>
</feed>