<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>HDEラボ</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/" />
    <link rel="self" type="application/atom+xml" href="http://lab.hde.co.jp/atom.xml" />
    <id>tag:lab.hde.co.jp,2007-12-26://1</id>
    <updated>2010-11-19T05:16:29Z</updated>
    <subtitle>テクノロジー解放ブログ</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.27-ja</generator>

<entry>
    <title>HDE Controller 7.0 Professional ベータ版 Update 1 (7.0-8P00_20101118153146) リリースノート</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/11/hde-controller-70-professional-1.html" />
    <id>tag:lab.hde.co.jp,2010://1.183</id>

    <published>2010-11-18T07:34:53Z</published>
    <updated>2010-11-19T05:16:29Z</updated>

    <summary>最初のアップデートリリースになります。本アップデートで基本機能(Web/DNS/...</summary>
    <author>
        <name>tanabe</name>
        
    </author>
    
        <category term="HDE_Controller_beta" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<p>最初のアップデートリリースになります。本アップデートで基本機能(Web/DNS/FTP/Mail/FW)のIPv6対応が完了しました。</p>

<h3><strong>IPv6対応</strong></h3>

<p>以下の機能を新たにIPv6へ対応致しました。</p>

<ul>
<li>メールサーバ(postfix)
<ul>
<li>(メールサーバ(postfix)機能はHDE Controller 6.0 ISP相当へアップグレード)</li>
<li>(メールサーバ(sendmail)機能はIPv6対応の予定はありません)</li>
<li>基本設定
<ul>
<li>IPv6経由でのメール送受信の設定に対応</li>
</ul></li>
<li>アクセス制御
<ul>
<li>IPv6アドレスの入力に対応</li>
<li>※POP before SMTPは廃止予定</li>
</ul></li>
<li>スマートリレー設定
<ul>
<li>IPv6アドレスの入力に対応</li>
</ul></li>
</ul></li>
</ul>

<h3><strong>英語版対応</strong></h3>

<p>日本語版と英語版への切り替えに対応致しました。</p>

<ul>
<li>「HDE Controller 設定」-「インターフェース設定」で、ユーザーのデフォルト使用言語が選択</li>
</ul>

<h3><strong>RHEL 6対応</strong></h3>

<ul>
<li>LDAPサーバー機能
<ul>
<li>RHEL6 Serverでは、既知の不具合により正常動作しない場合があります。</li>
</ul></li>
<li>メールサーバ機能(postfix)
<ul>
<li>dovecot 2系には未対応です。</li>
<li>正式版では対応予定です。</li>
</ul></li>
</ul>

<h3><strong>インストール方法</strong></h3>

<p>tarballを展開後、HDE<em>Controller</em>7.0ディレクトリへ移動後、インストーラーを起動し案内に従ってください。</p>

<p># ./lc-install</p>

<h3><strong>アンインストール方法</strong></h3>

<p>tarballを展開したディレクトリにあるアンインストーラーを起動し案内に従ってください。</p>

<p># ./lc-uninstall</p>

<h3><strong>初回ベータ版からのアップデートについて</strong></h3>

<p>メールサーバの構成を変更したためController上からのアップデートはご利用になれません。</p>

<p>ベータ版お申し込み時のメールに記載されているURLから再度tarballを取得しインストーラーからアップデートインストールしていただく必要があります。</p>

<p>tarballを展開後、HDE<em>Controller</em>7.0ディレクトリへ移動後、インストーラーを起動し案内に従ってください。</p>

<p># ./lc-install</p>

<p>インストール後、手動でアップデートスクリプトを実行します。</p>

<p># ./misc/scripts/04<em>P</em>NM_sendmail2postfix.sh</p>

<p>不具合、機能提案、仕様の不明点などはメーリングリスト宛までお送りください。
頂いたご意見は可能な限り製品へ反映致します。</p>

<h3><strong>ベータテスト応募方法</strong></h3>

<p>弊社Webサイトから応募いただけます。</p>

<p><a href="https://www.hde.co.jp/controller/beta/">https://www.hde.co.jp/controller/beta/</a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>HDE Controller 7.0 Professional ベータ版 (7.0-8P00_20101101100704) リリースノート</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/10/hde-controller-70-professional.html" />
    <id>tag:lab.hde.co.jp,2010://1.182</id>

    <published>2010-10-29T07:04:30Z</published>
    <updated>2010-11-09T09:44:20Z</updated>

    <summary>7.0へ向けた最初のリリースになります。主な内容は「IPv6対応」「RHEL6対...</summary>
    <author>
        <name>tanabe</name>
        
    </author>
    
        <category term="HDE_Controller_beta" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="controller_ipv6_relnote" label="Controller_IPv6_RELNOTE" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<p>7.0へ向けた最初のリリースになります。主な内容は「IPv6対応」「RHEL6対応」「英語化」の3点です。</p>

<h2>IPv6対応</h2>

<p>以下の機能をIPv6へ対応致しました。</p>

<ul>
<li>ネットワーク設定
<ul>
<li>基本設定
<ul>
<li>IPv6アドレスの設定、デフォルトゲートウェイの設定および自動設定の有無の設定に対応</li>
</ul></li>
<li>ルーティング設定
<ul>
<li>IPv6のルーティングテーブルの操作に対応</li>
</ul></li>
<li>ネットワークの状態
<ul>
<li>IPv6での通信状態の表示に対応</li>
</ul></li>
<li>ネットワーク情報の取得
<ul>
<li>ping6やtraceroute6に対応</li>
</ul></li>
</ul></li>
<li>DNSサーバー
<ul>
<li>基本設定
<ul>
<li>IPv6経由の問い合わせに対応</li>
</ul></li>
<li>ドメイン情報管理
<ul>
<li>IPv6アドレスの入力に対応</li>
</ul></li>
<li>ドメイン追加
<ul>
<li>AAAAレコードの設定に対応</li>
</ul></li>
<li>スレーブ追加
<ul>
<li>IPv6アドレスの入力に対応</li>
</ul></li>
<li>問い合わせ転送設定
<ul>
<li>IPv6アドレスの入力に対応</li>
</ul></li>
<li>逆引きゾーン追加
<ul>
<li>IPv6アドレスに対する逆引き(ip6.arpa)に対応</li>
</ul></li>
<li>レコード管理
<ul>
<li>AAAAレコードに対応</li>
</ul></li>
</ul></li>
<li>Webサーバー、セキュアWebサーバー
<ul>
<li>ディレクトリ管理
<ul>
<li>アクセス制御でのIPv6アドレスに対応</li>
</ul></li>
<li>ディレクトリ追加
<ul>
<li>アクセス制御でのIPv6アドレスに対応</li>
</ul></li>
<li>アクセス統計
<ul>
<li>IPv6アドレスを含む統計出力に対応</li>
</ul></li>
</ul></li>
<li>FTPサーバー
<ul>
<li>基本設定
<ul>
<li>IPv6での待ち受けに対応</li>
</ul></li>
</ul></li>
<li>HDE Controller設定
<ul>
<li>基本設定
<ul>
<li>「指定したIPアドレスからのみ接続を認める」でIPv6アドレスの設定に対応</li>
</ul></li>
</ul></li>
<li>NTPサーバー
<ul>
<li>NTPサーバー設定
<ul>
<li>「基本設定」「アクセス制限設定」をIPv6へ対応</li>
</ul></li>
</ul></li>
<li>ファイアーウォール
<ul>
<li>パケットフィルタ設定
<ul>
<li>IPv4(iptables)/IPv6(ip6tables)のファイアーウォール設定に対応</li>
</ul></li>
<li>パケットフィルタ管理
<ul>
<li>ICMPv6へ対応</li>
</ul></li>
<li>パケットフィルタ状態
<ul>
<li>ip6tablesへ対応</li>
</ul></li>
</ul></li>
</ul>

<h3>主なIPv6未対応の機能</h3>

<ul>
<li>メールサーバー
<ul>
<li>ベータ期間中の対応を予定しています。</li>
</ul></li>
</ul>

<h3>既知の不具合、仕様</h3>

<p>リンクローカルアドレスは各ミドルウェアでの対応状況が区々なため未対応です。</p>

<p>未対応というのはインターフェース名を明示する必要がある場合です。
例えば、fe80::1%eth0 という文字列はバリデーションで不正扱いになります。</p>

<p>ただし、以下のネットワーク設定ではインターフェース名が不要もしくは別途指定しているため使用可能です</p>

<ul>
<li>「ネットワークカード設定」</li>
<li>「ゲートウェイ設定」のデフォルトゲートウェイ</li>
<li>「ルーティング(IPv6)」</li>
</ul>

<h3>CentOS 5系のip6tablesについて</h3>

<p>CentOS 5系のカーネルである2.6.18のnetfilterではプロトコル依存が解消されていないためip6tablesは基本機能以外正常に動作しません。
RHEL6 Beta2のip6tablesでは各拡張モジュールが正常動作していることを確認しています。</p>

<p>具体的には以下のとおりです。</p>

<ul>
<li>ip6tablesの--stateはCentOS 5では動かない</li>
<li>ip6tablesの--clamp-mss-to-pmtuはCentOS 5では動かない</li>
<li>ip6tablesの-m recent (DDoS検出)はCentOS 5では動かない</li>
</ul>

<h3>Controllerへのアクセスについて</h3>

<p>適切なIPv6アドレスおよびルーティング情報が登録されている場合、ControllerへのアクセスもIPv6経由で行なえます。
Firefoxの場合は以下のようIPv6アドレスを[]でくくるとIPv6アドレスでアクセス可能です。</p>

<p>https://[2001:db8::1]:16590</p>

<h2>RHEL6対応</h2>

<p>Red Hat Enterprise Linux 6 Beta (Santiago) (以下RHEL6 Beta)へ対応致しました。なお、RHEL6 Betaには既知の不具合が含まれているため、いくつかの機能で動作しない場合があることをご了承ください。</p>

<p>また、RHEL6の正式版の仕様によっては、以下の対応方法に変更があるかもしれません。</p>

<p>既に以下のRHEL6 Betaの仕様変更に対応しております。</p>

<ul>
<li>shadowファイルのSHA512対応
<ul>
<li>管理画面でのユーザー追加、パスワード変更時</li>
</ul></li>
<li>RPMパッケージ構成変更への対応
<ul>
<li>インストールスクリプトでのチェック</li>
<li>LDAPクライアント設定の依存パッケージの変更</li>
</ul></li>
<li>各種設定ファイルパスの変更に対応
<ul>
<li>DHCPサーバー設定ファイル</li>
</ul></li>
<li>ext4ファイルシステムの対応
<ul>
<li>ディスク容量制限で設定時</li>
</ul></li>
<li>PostgreSQL 8.4 のENCODING指定のシステム設定依存への対応
<ul>
<li>データベース追加時に、EUC_JPのハードコーディングからシステムロケールに動的指定</li>
</ul></li>
<li>vsftpdのデフォルト設定変更に対応
<ul>
<li>ローカルユーザーの拒否から許可に変更</li>
</ul></li>
</ul>

<h3>主な未対応の機能</h3>

<p>RHEL6 Betaの既知の不具合により現時点では正常動作しないものがあります。
 ただし、ベータ期間中に対応する可能性があります。</p>

<ul>
<li>LDAPサーバー機能
<ul>
<li>RHEL6 Betaでは、既知の不具合により正常動作しない場合があります。</li>
</ul></li>
<li>POP before SMTP
<ul>
<li>RHEL6の正式版リリース以降に対応予定です。</li>
</ul></li>
</ul>

<h2>英語版対応</h2>

<p>日本語版と英語版への切り替えに対応致しました。</p>

<ul>
<li>インストールスクリプトにより、管理画面のデフォルトの言語が選択可能</li>
<li>「個人情報管理」-「表示オプション設定」で、ユーザーの使用言語が選択</li>
</ul>

<h3>既知の不具合、仕様</h3>

<ul>
<li>翻訳し忘れの箇所がいくつかあるかもしれません。</li>
<li>画像に埋め込まれたメッセージで翻訳できていないものが多々あります。</li>
<li>英語のメッセージで奇妙な表現が多々あります。;-P</li>
<li>ユーザーのプロファイル情報を削除すると、「個人情報管理」-「表示オプション設定」の設定が初期化されます。(仕様による)</li>
</ul>

<p>不具合、機能提案、仕様の不明点などはメーリングリスト宛までお送りください。
頂いたご意見は可能な限り製品へ反映致します。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>HDE Controller へのIPv6対応試験実装にともなうベータテスト開始のお知らせ</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/10/hde-controller-ipv6.html" />
    <id>tag:lab.hde.co.jp,2010://1.181</id>

    <published>2010-10-29T06:53:34Z</published>
    <updated>2010-11-09T09:43:43Z</updated>

    <summary>はじめまして。新卒1年目のたなべです。よろしくお願いします。 現在、HDE Co...</summary>
    <author>
        <name>tanabe</name>
        
    </author>
    
        <category term="HDE_Controller_beta" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<p>はじめまして。新卒1年目のたなべです。よろしくお願いします。</p>

<p>現在、HDE Controllerの次期バージョン(7系)へのIPv6対応の試験実装を担当しています。
今回はその試験実装が完了しベータテストを行うこととなりました。
本ベータテストは開発部主導ということで「HDEラボ」にてスモールスタートです。</p>

<h2>背景</h2>

<p>現在の主要なインターネットプロトコルであるIPv4はそのグローバルアドレスの在庫の枯渇を目前に控えています。枯渇後もIPv4によるインターネットは続いていきますが、よりアドレス空間の広いIPv6への移行が徐々に進んでいます。</p>

<p><a href="http://kokatsu.jp/">http://kokatsu.jp/</a></p>

<p>弊社製品 HDE Controller も発売から10年を過ぎ、この時代の流れを受けIPv6対応を試験実装することとなりました。</p>

<h2>目的</h2>

<ul>
<li>IPv6対応を希望されている方の存在確認</li>
<li>対応を希望されている方はどのサービスでIPv6対応を求めているか</li>
<li>対応を行なった場合の既存運用、製品への影響の確認</li>
<li>グローバル環境下での試験</li>
</ul>

<p>リリース版へのIPv6対応の採用は正式決定していませんが、RHEL6でもIPv6対応も強化されていることから次バージョンへのリリースへぜひ組み込みたいと考えています。</p>

<h2>試験環境と動作確認状況</h2>

<p>社内ではULA(Unique Local Address)による試験環境(ESXi + Vyatta)を構築し、試験を行なっています。</p>

<p>現在のところ社内にはグローバルIPv6アドレスへの到達性がないためグローバル環境下でのテストは行なえていないのが現状です。</p>

<p>評価の際はグローバル環境下でお使いいただけると幸いです。もちろん、ULA環境下での評価もしていただけます。</p>

<h2>ベータテスト時の情報交換について</h2>

<p>メーリングリストをご用意しましたので、申込時はぜひ購読のほどよろしくお願いします。なお、本メーリングリストはベータテスト参加者で参加時に希望された方全員に配信されますのでご注意ください。</p>

<h2>ベータテスト応募方法</h2>

<p>弊社Webサイトから応募いただけます。</p>

<p><a href="https://www.hde.co.jp/controller/beta/">https://www.hde.co.jp/controller/beta/</a></p>

<h2>最後に</h2>

<p>開発版ではありますが、期限に制限がある以外は現在発売中のHDE Controller 5 Professional相当の全機能がお使いいただけます。</p>

<p>ベータテスト版の使用期限は2011年4月末日までとなっております。</p>

<p>最悪、私個人のグローバルIPv6アドレス環境で試験する予定ですが、この機会にぜひお試しください。</p>

<p>次の記事でIPv6対応のリリースノートを掲載します。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>処理速度を向上させる　その3　そして速度向上へ</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/10/post-23.html" />
    <id>tag:lab.hde.co.jp,2010://1.174</id>

    <published>2010-10-20T01:00:00Z</published>
    <updated>2010-10-27T02:15:59Z</updated>

    <summary><![CDATA[第一回&nbsp;第二回前回、速度を向上させるため、素数を記憶しようということを...]]></summary>
    <author>
        <name>shiota</name>
        
    </author>
    
        <category term="Python" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<div><a href="http://lab.hde.co.jp/2010/10/post-21.html">第一回</a>&nbsp;</div><div><a href="http://lab.hde.co.jp/2010/10/post-22.html">第二回</a></div><div><br /></div>前回、速度を向上させるため、素数を記憶しようということをやりましたが、失敗しました。<div><br /></div><div>今回は、「どうせ記憶するなら全数記憶してみればいいんじゃないか？」という発想のもと、処理速度改善を行ってみます。</div><div><br /></div><div><br /></div><div><br /></div>]]>
        <![CDATA[<div>あらかじめ対象とする数まで計算し、素数かどうかをリストに記憶します。その後、素数判定の際に対応するリストの値がTrueかFalseかで素数判定を行うことにします。</div><div>---</div><div><div>class Primes35:</div><div>&nbsp;&nbsp;def __init__(self):</div><div>&nbsp;&nbsp; &nbsp;self.prime = [False,False]</div><div>&nbsp;&nbsp;def is_prime(self,number):</div><div>&nbsp;&nbsp; &nbsp;return self.prime[number]</div><div>&nbsp;&nbsp;def ert(self,max):</div><div>&nbsp;&nbsp; &nbsp;self.prime += (max-1) * [True]</div><div>&nbsp;&nbsp; &nbsp;import math</div><div>&nbsp;&nbsp; &nbsp;for p in range(2,int(math.sqrt(max))+1):</div><div>&nbsp;&nbsp; &nbsp; &nbsp;if not self.prime[p]: continue</div><div>&nbsp;&nbsp; &nbsp; &nbsp;for q in range(p+1,max):</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if not q % p:</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.prime[q] = False</div></div><div>---</div><div><br /></div><div>なお、呼び出し部分にも一行追加しました。</div><div>--</div><div><div>if __name__ == '__main__':</div><div>&nbsp;&nbsp;max = 2*(10**6)</div><div>&nbsp;&nbsp;p = Primes35()</div><div>&nbsp;&nbsp;p.ert(max)</div><div>&nbsp;&nbsp;print pe010_01(p,max)</div></div><div>--</div><div><br /></div><div>結果、88.120秒。以前より遅くなりました。</div><div>しかし、素数判定部分(is_prime)の目覚ましい速度向上は見てとれます。記憶しておけば、その後の判定は速くなるというのは間違いないようです。</div><div><br /></div><div>----</div><div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 1000242 function calls in 88.120 CPU seconds</div><div><br /></div><div>&nbsp;&nbsp; Ordered by: standard name</div><div><br /></div><div>&nbsp;&nbsp; ncalls &nbsp;tottime &nbsp;percall &nbsp;cumtime &nbsp;percall filename:lineno(function)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 88.120 &nbsp; 88.120 :0(execfile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp;225 &nbsp; 10.710 &nbsp; &nbsp;0.048 &nbsp; 10.710 &nbsp; &nbsp;0.048 :0(range)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 :0(setprofile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 :0(sqrt)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 88.120 &nbsp; 88.120 &lt;string&gt;:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 88.120 &nbsp; 88.120 pe010.py:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:1(Primes1)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:108(Primes8)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;2.170 &nbsp; &nbsp;2.170 &nbsp; &nbsp;4.230 &nbsp; &nbsp;4.230 pe010.py:129(pe010_01)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:18(Primes3)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:30(Primes35)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:31(__init__)</div><div>&nbsp;&nbsp; 999999 &nbsp; &nbsp;2.040 &nbsp; &nbsp;0.000 &nbsp; &nbsp;2.040 &nbsp; &nbsp;0.000 pe010.py:33(is_prime)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; 73.200 &nbsp; 73.200 &nbsp; 83.890 &nbsp; 83.890 pe010.py:35(ert)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:44(Primes4)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:58(Primes5)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:71(Primes6)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:8(Primes2)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:86(Primes7)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 88.120 &nbsp; 88.120 profile:0(execfile('pe010.py'))</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp;0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;profile:0(profiler)</div></div><div>----</div><div><br /></div><div>課題はリスト作成部分、ert()の速度向上方法がないかどうかを探してみます。</div><div><br /></div><div><br /></div><div>ここで、リスト作成時に素数判定の割り算が効率悪いことに気がつきました。</div><div><br /></div><div>たとえば、77が素数かどうかを判定するのに</div><div>77 % 2 =&gt; 1</div><div>77 % 3 =&gt; 2</div><div>77 % 5 =&gt; 2</div><div>77 % 7 =&gt; 0 &nbsp;not 素数</div><div><br /></div><div>となるとすると、2,3,5で割り算をしている部分が無駄そうです。</div><div>ここを削減できれば、大きな数の素数の場合等に効果が大きそうです。</div><div><br /></div><div>これは、エラトステネスの篩と呼ばれる手法で削減できます。エラトステネスの篩とは、リストの中の素数の倍数を除いていくことにより、素数だけを洗い出す手法です。全数リストを作ろうという発想なのだから、このほうが効率がいいです。</div><div><br /></div><div>「割り算がだめなら掛け算すればいいじゃない」</div><div>エラトステネスの言葉が脳内で聞こえました。</div><div><br /></div><div>---</div><div><div>class Primes4:</div><div>&nbsp;&nbsp;def __init__(self):</div><div>&nbsp;&nbsp; &nbsp;self.prime = [False,False]</div><div>&nbsp;&nbsp;def is_prime(self,number):</div><div>&nbsp;&nbsp; &nbsp;return self.prime[number]</div><div>&nbsp;&nbsp;def ert(self,max):</div><div>&nbsp;&nbsp; &nbsp;self.prime += (max-1) * [True]</div><div>&nbsp;&nbsp; &nbsp;i=2</div><div>&nbsp;&nbsp;for i in range(2,int(math.sqrt(max))+1):</div><div>&nbsp;&nbsp; &nbsp; &nbsp;if self.prime[i]:</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for n in range(i*2,max+1,i):</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.prime[n] = False</div><div>&nbsp;&nbsp; &nbsp; &nbsp;i+=1</div></div><div>---</div><div><br /></div><div>結果、5.660秒と、以前の5分の1の時間になりました。</div><div>---</div><div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 1000240 function calls in 5.660 CPU seconds</div><div><br /></div><div>&nbsp;&nbsp; Ordered by: standard name</div><div><br /></div><div>&nbsp;&nbsp; ncalls &nbsp;tottime &nbsp;percall &nbsp;cumtime &nbsp;percall filename:lineno(function)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;5.660 &nbsp; &nbsp;5.660 :0(execfile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp;224 &nbsp; &nbsp;0.120 &nbsp; &nbsp;0.001 &nbsp; &nbsp;0.120 &nbsp; &nbsp;0.001 :0(range)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 :0(setprofile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;5.660 &nbsp; &nbsp;5.660 &lt;string&gt;:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;5.660 &nbsp; &nbsp;5.660 pe010.py:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:1(Primes1)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:108(Primes8)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;2.640 &nbsp; &nbsp;2.640 &nbsp; &nbsp;4.610 &nbsp; &nbsp;4.610 pe010.py:129(pe010_01)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:18(Primes3)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:30(Primes35)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:44(Primes4)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:45(__init__)</div><div>&nbsp;&nbsp; 999999 &nbsp; &nbsp;1.940 &nbsp; &nbsp;0.000 &nbsp; &nbsp;1.940 &nbsp; &nbsp;0.000 pe010.py:47(is_prime)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.960 &nbsp; &nbsp;0.960 &nbsp; &nbsp;1.050 &nbsp; &nbsp;1.050 pe010.py:49(ert)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:58(Primes5)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:71(Primes6)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:8(Primes2)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:86(Primes7)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;5.660 &nbsp; &nbsp;5.660 profile:0(execfile('pe010.py'))</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp;0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;profile:0(profiler)</div></div><div>---</div><div><br /></div><div><div>しかし、いまだ素数判定部分で2秒もかかっています。</div><div>また、呼び出し部(pe01_01)も2.6秒程度と大きくかかっています。</div><div>まだまだ改良する余地はありそうです。</div></div>]]>
    </content>
</entry>

<entry>
    <title>処理速度を向上させる　その２　悪霊のアルゴリズム々</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/10/post-22.html" />
    <id>tag:lab.hde.co.jp,2010://1.173</id>

    <published>2010-10-13T01:00:00Z</published>
    <updated>2010-10-15T10:10:13Z</updated>

    <summary>こんにちは。前回の続きです。以前作ったコードを動かしてみました。 ...</summary>
    <author>
        <name>shiota</name>
        
    </author>
    
        <category term="Python" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<div>こんにちは。</div><div><br /></div><div><a href="http://lab.hde.co.jp/2010/10/post-21.html">前回</a>の続きです。</div><div><br /></div><div>以前作ったコードを動かしてみました。</div><div><br /></div><div><br /></div> ]]>
        <![CDATA[<div>速度測定には-m profileオプションを使用しました。</div><div>表の見方については、http://docs.python.org/library/profile.html参照</div><div><br /></div><div>1行目にトータルでどのくらいのCPU時間が使われたかが表示されます。</div><div>その後、各関数ごとに呼ばれた回数や処理時間などが出ます。</div><div><br /></div><div>下記であれば、is_prime()という関数が999999回呼ばれ、合計45.880秒かかっていることが分かります。</div><div>---</div><div># python -m profile pe010.py</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 1000007 function calls in 48.800 CPU seconds</div><div><br /></div><div>&nbsp;&nbsp; Ordered by: standard name</div><div><br /></div><div>&nbsp;&nbsp; ncalls &nbsp;tottime &nbsp;percall &nbsp;cumtime &nbsp;percall filename:lineno(function)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 48.800 &nbsp; 48.800 :0(execfile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.040 &nbsp; &nbsp;0.040 &nbsp; &nbsp;0.040 &nbsp; &nbsp;0.040 :0(range)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 :0(setprofile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 48.800 &nbsp; 48.800 &lt;string&gt;:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 48.800 &nbsp; 48.800 pe010.py:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:1(Primes1)</div><div>&nbsp;&nbsp; 999999 &nbsp; 45.880 &nbsp; &nbsp;0.000 &nbsp; 45.880 &nbsp; &nbsp;0.000 pe010.py:2(is_prime)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;2.880 &nbsp; &nbsp;2.880 &nbsp; 48.800 &nbsp; 48.800 pe010.py:9(pe010_01)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 48.800 &nbsp; 48.800 profile:0(execfile('pe010.py'))</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp;0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;profile:0(profiler)</div><div>---</div><div><br /></div><div>計48.88秒、これが速いのか遅いのか、とりあえずこれよりだいぶ早くすることを目標にします。</div><div>なお、状況により速度にばらつきが出ることもあるので、実際に行う場合は何度か測定します。</div><div><br /></div><div><br /></div><div>処理内容を変える前に、品質担保をしておくことが重要です。</div><div>「速く終わるようになったけど正常な動作でなくなった」となると意味がありません。</div><div>　</div><div>今回は、「答えが正解であること」で正常動作と判断することにします。</div><div>　</div><div><br /></div><div>上記に表示されているtottimeを基準に、速度向上対象を決めます。</div><div>&nbsp;&nbsp;999999 &nbsp; 45.880 &nbsp; &nbsp;0.000 &nbsp; 45.880 &nbsp; &nbsp;0.000 pe010.py:2(is_prime)</div><div>↑こいつが半分の速度になれば、23秒くらい削減(全体の47%削減)できそうです。</div><div><br /></div><div>&nbsp;&nbsp; &nbsp; 1 &nbsp; &nbsp;0.040 &nbsp; &nbsp;0.040 &nbsp; &nbsp;0.040 &nbsp; &nbsp;0.040 :0(range) &nbsp;&nbsp;</div><div>&nbsp;↑こういうものを半分にしても、0.02秒(全体の0.1%未満)くらいしか削減できません。そのうち対象とするかもしれませんが、今は放っておきます。</div><div>&nbsp;</div><div>削減できる処理がないか眺めてみました。</div><div>素数は、2以外は奇数です。</div><div>素数を判定する際、2で割りきれないのに4で割り切れるか試すことは、意味がないことです。</div><div>ということで、奇数だけで割り算するようにしてみました。</div><div><br /></div><div>----</div><div>class Primes2:</div><div>&nbsp;&nbsp;def is_prime(self,number):</div><div>&nbsp;&nbsp; &nbsp;if number == 2:return True</div><div>&nbsp;&nbsp; &nbsp;if not number % 2:return False</div><div>&nbsp;&nbsp; &nbsp;i=3</div><div>&nbsp;&nbsp; &nbsp;while number &gt;= i*i:</div><div>&nbsp;&nbsp; &nbsp; &nbsp;if not number % i: return False</div><div>&nbsp;&nbsp; &nbsp; &nbsp;i+=2</div><div>&nbsp;&nbsp; &nbsp;return True</div><div>----</div><div><br /></div><div><br /></div><div>　結果、21.450秒削減できました。</div><div>------</div><div># python -m profile pe010.py</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 1000008 function calls in 27.430 CPU seconds</div><div><br /></div><div>&nbsp;&nbsp; Ordered by: standard name</div><div><br /></div><div>&nbsp;&nbsp; ncalls &nbsp;tottime &nbsp;percall &nbsp;cumtime &nbsp;percall filename:lineno(function)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 27.430 &nbsp; 27.430 :0(execfile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.030 &nbsp; &nbsp;0.030 &nbsp; &nbsp;0.030 &nbsp; &nbsp;0.030 :0(range)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 :0(setprofile)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 27.430 &nbsp; 27.430 &lt;string&gt;:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 27.430 &nbsp; 27.430 pe010.py:1(?)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:1(Primes1)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;2.800 &nbsp; &nbsp;2.800 &nbsp; 27.430 &nbsp; 27.430 pe010.py:18(pe010_01)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 pe010.py:8(Primes2)</div><div>&nbsp;&nbsp; 999999 &nbsp; 24.600 &nbsp; &nbsp;0.000 &nbsp; 24.600 &nbsp; &nbsp;0.000 pe010.py:9(is_prime)</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp;0.000 &nbsp; &nbsp;0.000 &nbsp; 27.430 &nbsp; 27.430 profile:0(execfile('pe010.py'))</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp;0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;profile:0(profiler)</div><div>-----</div><div>　</div><div>　</div><div>　2以外でも素数と分かったものだけで割り算したほうが早いだろうということから、素数と分かったものは辞書を使って記憶するようにしてみました。</div><div>----</div><div>class Primes3:</div><div>&nbsp;&nbsp;def __init__(self):</div><div>&nbsp;&nbsp; &nbsp;self.prime = {}</div><div><br /></div><div>&nbsp;&nbsp;def is_prime(self,number):</div><div>&nbsp;&nbsp; &nbsp;if number &lt; 2: return False</div><div>&nbsp;&nbsp; &nbsp;for i in self.prime.keys():</div><div>&nbsp;&nbsp; &nbsp; &nbsp;if not number % i : return False</div><div><br /></div><div>&nbsp;&nbsp; &nbsp;self.prime[number] = True</div><div>&nbsp;&nbsp; &nbsp;return True</div><div>----</div><div>　</div><div>　結果、終わりませんでした。つまり遅くなりました。</div><div>　これは、keysのコストが大きいか、新たな辞書登録のコストが大きすぎたかのいずれかでしょう。おそらく。</div><div>　</div><div><br /></div><div>　しかし、素数かどうかを記録しておくのは、無駄な数で割り算するより、速くなりそうな気がします。</div><div>　</div><div>　</div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>処理速度を向上させる　その１ </title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/10/post-21.html" />
    <id>tag:lab.hde.co.jp,2010://1.172</id>

    <published>2010-10-04T06:11:13Z</published>
    <updated>2010-10-06T08:10:10Z</updated>

    <summary>こんにちは。私は、最近、よくProject Euler※(http://proj...</summary>
    <author>
        <name>shiota</name>
        
    </author>
    
        <category term="Python" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[こんにちは。<div><br /></div><div>私は、最近、よくProject Euler※(<a href="http://projecteuler.net/">http://projecteuler.net/</a>)の問題を解いています。</div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial, sans-serif; font-size: small; line-height: 20px; "><em style="font-weight: bold; font-style: normal; ">one</em>-<em style="font-weight: bold; font-style: normal; ">minute rule</em></span>&nbsp;は努力目標で、問題が解けりゃいいや（＝うごけばいいや）レベルでコードを書いているので、できたコードの処理速度には目も当てられない状態になっています。。</div><div><br /><div>「これではいかん」と一念発起し、処理速度向上の試みをしてみましたので、紹介します。</div></div><div><br /></div><div>※プログラムで解く問題集です。</div>]]>
        <![CDATA[<div>【処理速度向上対象】</div><div>　今回は以下の一つのコードの高速化をすることを目的とします。</div>　今回の処理速度向上の対象は、Project Euler 第10問(<a href="http://projecteuler.net/index.php?section=problems&amp;id=10">http://projecteuler.net/index.php?section=problems&amp;id=10</a>)に対する解答コードとしました。<div>python2.4で書いています。　</div><div><br /></div><div>　メインは素数判定部分(is_prime())の高速化です。（のちに全体の高速化も行います）</div><div><br /></div><div>【開発環境】</div><div>&nbsp;Intel(R) Xeon(R) CPU &nbsp;5130 &nbsp;@ 2.00GHz</div><div>メモリ 2GB</div><div>OS CentOS 5.5 64bit</div><div><br /></div><div>【処理課題】</div><div>　200万以下の素数の和を求めよ。</div><div>　ここで、素数とは、2以上その数未満の自然数で割りきれない自然数のことです。</div><div><br /></div><div>【最初のコード】</div><div>　200万以下の奇数について、Primes.is_prime()で素数かどうかを判定し、素数であればsumに加算するという方法で答えを求めます。</div><div>　素数の判定方法は、「その数の平方根以下の自然数で割ってみて、どれでも割り切れなければ素数、そうでなければ素数でない」というものです。</div><div><br /></div><div>--------コード開始--------</div><div><div><div>class Primes1:</div><div>&nbsp;&nbsp;def is_prime(self,number):</div><div>&nbsp;&nbsp; &nbsp;i=2</div><div>&nbsp;&nbsp; &nbsp;while number &gt;= i*i:</div><div>&nbsp;&nbsp; &nbsp; &nbsp;if not number % i: return False</div><div>&nbsp;&nbsp; &nbsp; &nbsp;i+=1</div><div>&nbsp;&nbsp; &nbsp;return True</div><div><br /></div><div>def pe010_01(p):</div><div>&nbsp;&nbsp;sum = 2</div><div>&nbsp;&nbsp;for n in range(3,2*(10**6),2):</div><div>&nbsp;&nbsp; &nbsp;if p.is_prime(n) : sum+=n</div><div>&nbsp;&nbsp;return sum</div><div><br /></div><div>if __name__ == '__main__':</div><div>&nbsp;&nbsp;p = Primes1()</div><div>&nbsp;&nbsp;print pe010_01(p)</div></div></div><div>--------コード終わり--------</div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>Scala勉強会第2回目</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/09/scala2.html" />
    <id>tag:lab.hde.co.jp,2010://1.171</id>

    <published>2010-09-13T07:01:12Z</published>
    <updated>2010-09-13T07:08:07Z</updated>

    <summary>こんにちわ。 先週水曜日にScala勉強会の2回目が開かれました。 1回目の参加...</summary>
    <author>
        <name>hayashi</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<pre>こんにちわ。

先週水曜日にScala勉強会の2回目が開かれました。
1回目の参加者は弊社社員が大半でしたが、今回は外部の方で会議室が埋まって
しまいました。
席をご用意できずに、立ち見になってしまった方もいらっしゃいました。申し訳
ありません。
</pre> ]]>
        <![CDATA[<pre>さて、今回は実際に業務でScalaを使われた方が発表したり、目の前でJavaの
コードをScalaに書き換えていく過程を見せたりと盛りだくさんでした。発表途
中に会場を抜け出なければならなくなったのですべて聴くことが出来なかったの
が残念です。

発表の中には、いかにしてScalaを業務に取り込んでいくかについて、Scala day
2010というイベントで発表された内容を紹介するものがありました。以下のURL
にpdfが置かれています。
<a class="moz-txt-link-freetext" href="http://days2010.scala-lang.org/node/138/169">http://days2010.scala-lang.org/node/138/169</a>

内容としては、Javaの代わりにScalaでテストコードを書くことから始めよう、
最初はなるべく関数型プログラミングなどのJavaにはない機能は使わずに徐々に
取り込んでいこう、といったことでした。この点については、参加者の方から
Scalaの良さを殺してしまっているのではないかという意見がでるなど割れる部
分だと思います。

さて、次回のScala勉強会は今週水曜日、午後8:00から弊社会議室、USTREAMで配
信されます。
ぜひご視聴、ご参加ください。

ここで1コード。
val src = "val src = %c%s%c;printf(src, 34, src, 34)";printf(src, 34,
src, 34)
Wikipediaに掲載されているCのコードそのままでお恥ずかしい。
ご存知ないかたはクワインで検索してみてください。

</pre>]]>
    </content>
</entry>

<entry>
    <title>Scala勉強会に参加しました</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/09/scala.html" />
    <id>tag:lab.hde.co.jp,2010://1.170</id>

    <published>2010-09-02T07:38:14Z</published>
    <updated>2010-09-08T09:13:54Z</updated>

    <summary>お久しぶりでございます。久々に記事を書こうと思ったら最後に書いたのは6ヶ月前でし...</summary>
    <author>
        <name>hayashi</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[お久しぶりでございます。<br /><br />久々に記事を書こうと思ったら最後に書いたのは6ヶ月前でした。<br />ログインのパスワードまで忘れている始末。再設定いたしました。<br />これに懲りて、パスワードを忘れない程度には書いていきたいと思う所存です。<br /><br />さて、6ヶ月ぶりの投稿ですから、今まで取り上げてなかった新しいことでも書いてみようかと思います。<br />例えば、関数型言語などいかがでしょうか。<br /> ]]>
        <![CDATA[<br />先日、弊社会議室を会場にScalaの勉強会の第1回目が行われました。<br />オライリーさんが公開している<a href="http://programming-scala.labs.oreilly.com/">Programming Scala</a>の本を読んでいこうという趣旨の勉強会です。<br />開催当日に知り、飛び入り参加してきました。<br />USTREAMでの配信も行なわていましたので、会場に行けなくても参加できるようです。<br /><br />この勉強会は毎週水曜日に行なわれるそうです。興味のある方は参加されてはいかがでしょうか。<br />Twitterのハッシュタグは <span class="status-body"><span class="status-content"><span class="entry-content"></span></span></span><em><a href="https://twitter.com/search?q=%23rpscala" title="#rpscala" class="tweet-url hashtag" rel="nofollow"><em>#rpscala</em></a> です。<br /></em><br />また、この勉強会で講師をされた鹿島さんは、以下のサイトでも今回の勉強会について書かれています。<br /><pre wrap=""><a class="moz-txt-link-freetext" href="http://el.jibun.atmarkit.co.jp/kaigaiengineer/2010/08/programming-sca.html">http://el.jibun.atmarkit.co.jp/kaigaiengineer/2010/08/programming-sca.htm</a></pre><br />一回目はScalaの特徴を知る回でした。<br />大きな特徴としては以下の3点を上げることができると思います。<br /><br />1. 関数型言語の要素を持っている<br />　　一度代入したら、値を変更することができない変数がある、関数を受け取り、関数を返す関数を書けるといった、関数型言語の特徴を持っています。<br /><br />2. オブジェクト指向言語である<br />&nbsp;　PythonやJavaのようにオブジェクトを作り出すためのクラスを定義したり、それを継承したりといった<br />オブジェクト指向言語でもあります。<br /><br />3. Javaや.NETのライブラリを扱える<br />&nbsp;&nbsp; Javaや.NETで開発をしてきた方は、これまで作ってきたものをScalaでも使えるようです。<br /><br />関数型言語もJavaも触ってこなかった私としては、この特徴はScalaを勉強していく上でプラスになるのか、はたまた足を引きずられることになるのかわかりませんが、この勉強会に参加していきたいと思います。<br /><br />ところで、一回目の勉強会のときには処理系をインストールしていませんでした。今後、コードを触る機会があるでしょうから処理系のインストールをしたいと思います。<br /><br />CentOS5.5 32bitへScalaをインストールします。<br />/usr/local　の下に置いてみましょう。<br />1.パッケージのダウンロード<br />まずはScalaのパッケージをダウンロードします。<br />2010/09/01時点での最新版はscala-2.8.0.final.tgzのようですのでこれを手に入れます。<br /><br />http://www.scala-lang.org/downloads/distrib/files/scala-2.8.0.final.tgz<br /><br /># wget http://www.scala-lang.org/downloads/distrib/files/scala-2.8.0.final.tgz<br /><br />2. 解凍、リネーム<br />取ってきたアーカイブを解凍するとscala-2.8.0.finalというディレクトリが出来ていると思います。このディレクトリを環境変数に設定する必要があるのですが、新しくなるたびに設定するのは面倒なのでこれにシンボリックリンクをはります。<br /><br /># tar zxfv scala-2.8.0.final.tgz<br /># ln -s scala-2.8.0.final scala<br /><br />3. JDKアップデート<br />Scalaの起動にはjava-1.6.0-openjdkが必要になります。<br />バージョンが低いと<br />Exception in thread "main" java.lang.NoSuchFieldError: field java.math.MathContext.UNLIMITED was not found.<br />と表示されました。この表示で止まってしまった場合はJDKをアップデートしてみてください。<br /><br /># yum install java-1.6.0-openjdk<br /><br />4. 環境変数設定<br />SCALA_HOMEを新しく設定し、その下にあるbinディレクトリをPATHに追加します。<br />今回は/usr/localにインストールしますが、それ以外の場合はお好みのディレクトリに読み替えてください。<br /><br /># export SCALA_HOME=/usr/local/scala<br /># export PATH=$PATH:$SCALA_HOME<br /><br />exportしただけでは次回起動時に反映されないため、.bashrcへも同じ記述をしておきましょう。<br /><br />5. 確認<br />インストールが正常にできたか確認しましょう。インタプリタを起動してみます。<br /><br /># scala<br />Welcome to Scala version 2.8.0.final (OpenJDK Client VM, Java 1.6.0_0).<br />Type in expressions to have them evaluated.<br />Type :help for more information.<br /><br />scala&gt; <br /><br />上記のように表示されればインタプリタが起動しています。終わらせるときは<br /><br />scala&gt; exit<br /><br />と打ち込むことで終了します。<br /><br />これで勉強を進める環境ができました。<br /><br /><br />Windowsをお使いのかたは、EclipseとNetBeansにそれぞれプラグインが用意されています。<br /><br /><br />]]>
    </content>
</entry>

<entry>
    <title>Red Hat Enterprise Linux release 6.0 Beta を試してみた</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/07/red-hat-enterprise-linux-relea.html" />
    <id>tag:lab.hde.co.jp,2010://1.169</id>

    <published>2010-07-13T04:30:46Z</published>
    <updated>2010-07-29T01:51:06Z</updated>

    <summary>Red Hat Enterprise Linux release 6.0 Bet...</summary>
    <author>
        <name>Taizo ITO</name>
        
    </author>
    
        <category term="Red Hat" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[Red Hat Enterprise Linux release 6.0 Beta (Santiago) （以下RHEL6）を使用してみて気づいた点をメモ的に残しておきます。<br/>

なお、現時点（ベータ版）での検証結果であり、正式リリースでは以下の動作は保証されませんのでご了承ください。
また、現在も検証の最中ですので、今後変更点など気づいた時点で、随時内容を追加、更新します。興味のある方はまたチェックしてみてください。
<br/>


■変更点
<br/>
<ol>
	<li>- デフォルトのファイルシステムがext4になった。</li>
	<li>- caching-nameserverパッケージがbindパッケージに統合された。</li>
	<li>- vsftpdのデフォルト設定では、ローカルユーザはFTPログインできない</li>
	   「#local_enable=YES」のコメントを外して再起動する
	<li>- portmapからrpcbindに変更された。</li>
	<li>- RPMのSPECファイルの書式に若干の変更があった。rpm-4.8 以降の仕様変更</li>
	     - PreReq と BuildPreReq は deprecated 扱いになった。
<br/>
	      　PreReq は、Requiresへ、BuildPreReq は BuildRequires への書き換えが必要。 PreReq -> Requires(triggerin) や Requires(triggerpostun)
<br/>
	     - Patchタグで番号をつけて宣言した場合（Patch0:）に、%patch のようにパッチ番号を省略すると、エラーになる。厳格に番号を指定しなければならなくなった。
	<li>- dhcpの設定ファイル位置が変更された。</li>
             - /etc/dhcpd.conf から /etc/dhcp/dhcpd.conf に。
	<li>- rpmのデフォルトのビルドディレクトリが変更された。</li>
             - 「_topdir    %{getenv:HOME}/rpmbuild」
	<li>- rpmbuildのpatchのオプションが変わった。</li>
             - fuzz=0 でパッチのチェックが厳密になった。<br/>
             - _default_patch_fuzzというマクロで制御できるらしい。 <br/>
        <li>- lsコマンドの出力結果にACLの情報が付加された。</li>
        <li>- shadowのデフォルトの暗号方式がMD5からSHA512に変わった。</li>
             - /etc/pam.d/system-authのpassword管理グループの設定で切り替え可能。 <br/>
</ol>


■その他気づいたこと
<br/>
<ol>
	<li>- Beta現在のopenldap-serversパッケージのパッケージングに不具合らしきものがあり使えない。</li>
             - 設定ファイルが空になる。<br/>
             - configtestでDBエラーがでる。<br/>
             - 不具合でないが、initスクリプトのファイル名がldapからslapdになった。<br/>
             - 不具合でないが、initスクリプトのrestartは、起動中でないと動作しないようになった。<br/>
	<li>- ntpの起動時、空のdriftファイルだとエラーが表示される</li>
	      - デフォルトの周波数である1e9を書き込むとエラーにならない
<br/>
	      - RHEL6のntp-4.2.4で起きるが、ntpの最新の4.2.6では起きない<br/>
	<li>- authconfigでldap認証の設定が正しく書き込まれない</li>
              - /etc/nslcd.confから"pam_password"パラメータの設定を削除しないと、nslcdサービスが起動できない
</ol>]]>
        
    </content>
</entry>

<entry>
    <title>OpenSSL 1.0.0 がでました。</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/03/openssl-100.html" />
    <id>tag:lab.hde.co.jp,2010://1.165</id>

    <published>2010-03-30T01:43:21Z</published>
    <updated>2010-03-30T07:18:16Z</updated>

    <summary>2010年3月29日にOpenSSL 1.0.0 が出ました。NEWSやCHAN...</summary>
    <author>
        <name>hayashi</name>
        
    </author>
    
        <category term="OpenSSL" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[2010年3月29日にOpenSSL 1.0.0 が出ました。<br />NEWSやCHANGESを見ると結構な量の変更がされています。<br />2010年3月24日にリリースされているOpenSSL 0.9.8nと比べて秘密鍵のデフォルトのフォーマットがPKCS#8に変更されたり、初期設定ではMD2が使えなくなるなどの変更が行われているようです。<br /><br />また、makeのターゲットに新しくinstall_html_docsが追加されました。実行すると<br />/usr/local/ssl/にhtmlファイルがインストールされます。<br />コマンドの説明やオプションの解説、使用例などが載っているのでぜひ見てみてください。<br /><br />リリースノート<br /><pre><a href="http://marc.info/?l=openssl-announce&amp;m=126987886907671&amp;w=2">OpenSSL 1.0.0 released</a><br /></pre> ]]>
        
    </content>
</entry>

<entry>
    <title>「karesansui-project.info １０万PV達成記念！マックポテト(L)100個を食べて祝う会」</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/03/karesansui-projectinfo-pvl100.html" />
    <id>tag:lab.hde.co.jp,2010://1.164</id>

    <published>2010-03-11T02:39:30Z</published>
    <updated>2010-03-12T09:26:52Z</updated>

    <summary>こんにちは、船ヶ山です。今回も技術要素皆無の記事です。すいません。さて3月某日H...</summary>
    <author>
        <name>kei</name>
        <uri>http://lab.hde.co.jp</uri>
    </author>
    
        <category term="Karesansui" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="LifeHack" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[こんにちは、船ヶ山です。<br />今回も技術要素皆無の記事です。すいません。<br /><br />さて3月某日HDE社内のIM会議室で、マクドナルドのポテトを100個を食べてみようという企画がだされました。<br /><br />そこで、<a href="http://karesansui-project.info/">「Karesansui Project オフィシャルサイト」</a>が10万PVを軽く超えていたので、そのお祝いもかねて「karesansui-project.info １０万PV達成記念！マックポテト(L)100個を食べて祝う会」を行いました。<br /><br /><br />]]>
        <![CDATA[今回の企画でかかった料金ですが、以下になります。<br />マクドナルド　ポテト（L）　@\150 ×　100個　= \15,000<br />調味料/ドリンクなど　 : \2,071<br />--------------------------------------------------------------------------<br />総計 \17,071<br /><br /><br />さてそれでは当日のレポートです。<br /><br /><br />■注文<br />マクドナルドさんに迷惑をかけてはいけないと、事前に電話予約をしました。<br />後で気づいたのですが、予約者の名前の確認もなく100個予約注文をしてくれました。（いたずらだったらどうするんでしょうね＾＾）<br />注文内容は当然ポテト（L）100個なのですが、前回の<a href="http://lab.hde.co.jp/2010/01/post-19.html">「マクドナルドの食べ放題に同僚数名で行ってみた！」</a>の反省から、塩なしを50個、塩ありを50個にしました。<br />※塩ありポテト(L)を3つ以上食べると唇が痛くなるという方がいたのでその反省です。<br /><br /><br />■購入＋社内のリフレッシュルームでの準備<br />店内に入ると普通に準備されており待つことはなかったです。<br />ケチャップがついてなかったので「お願いします！！」と言ってつけてもらいました＾＾<br /><br />流石に、トッピングがケチャップだけだと大変な事になりそうなので、寄り道して調味料/ドリンクを購入しました<br /><br />調味料(トッピング)<br />「ヨーグルト」<br />「マヨネーズ」<br />「からしマヨネーズ」<br />「タルタルソース」<br />「ふりかけ のりたま」<br />「焼肉のたれ」<br />「サワークリーム」<br /><br />ドリンク<br />コカ・コーラ２L × ２<br /><br />です。トッピングのおすすめは最後に評価します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="1mac.jpg" src="http://lab.hde.co.jp/1mac.jpg" class="mt-image-none" style="" height="160" width="240" /></span><br /><br />■とりあえず展開<br />せっかくですのでテーブルに並べてみました。<br />圧倒的なボリュームでびっくり！！<br />HDE社長はこれをみて「イケんじゃね！！」と言ってましたが.....<br /><br /><br />■実食<br />Karesansuiの話をした様なしない様な感じでみなさん黙々と食べました。<br /><br />10分後<br />みんな爽やか・軽快に消化してました。<br />人数２０名ぐらい<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="2mac.jpg" src="http://lab.hde.co.jp/2mac.jpg" class="mt-image-none" style="" height="160" width="240" /></span><br /><br />30分後<br />トッピングにみなさんが走りだしました。<br />人数２０名ぐらい<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="3mac.jpg" src="http://lab.hde.co.jp/3mac.jpg" class="mt-image-none" style="" height="160" width="240" /></span><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="5mac.jpg" src="http://lab.hde.co.jp/5mac.jpg" class="mt-image-none" style="" height="160" width="240" /></span><br /><br /><br />60分後<br />ちょっと無言な時間があったりして苦しくなってきました。<br />人数１０名ぐらい<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="4mac.jpg" src="http://lab.hde.co.jp/4mac.jpg" class="mt-image-none" style="" height="160" width="240" /></span><br /><br />90分後(結果)<br />参加者全員が「敗北宣言」を納得し、会が終了しました。<br /><br />grz<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="7mac.jpg" src="http://lab.hde.co.jp/7mac.jpg" class="mt-image-none" style="" height="640" width="480" /></span><br />■結果<br />食べたポテト(L)の数　：　６１個<br />参加者へのおみやの数　：　２３個<br />残　：　１６個<br /><br />総カロリー　：　571(kcal)　×　84　＝　47964キロカロリー<br />総重量　：　170g　×　84　＝　14280g(１４キログラム)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="6mac.jpg" src="http://lab.hde.co.jp/6mac.jpg" class="mt-image-none" style="" height="160" width="240" /></span><br /><br /><br />■After<br />残りは、会社の冷凍庫に保管し翌日以降にスタッフが美味しく頂きました。(まあ参加者なわけですが＾＾)<br /><br />■総評<br />とりあえず残念の一言です。念密な計画で決行されたはずなのに...<br />ポテト(L)100個の総重量が<b>１７Kｇ</b>というとんでもない重さにびっくり＾＾<br /><br />さて、おすすめのトッピングは<b>やはりマクドナルドのケチャップ</b>で間違いないです。<br />寄り道して買ったにわか仕込みトッピングはだめですね。<br /><br />意外にヨーグルトがポテトを忘れさせてくれてびっくりでした。<br /><br />■NEXT<br />さて次の企画はまだ検討中ですが、今回の反省で「炭水化物」以外のものが良いと結論づけられました。<br /><br />■最後に<br /><b>マクドナルドさんへ、「チキンマックナゲット」の特別価格キャンペーンをお願いします。m(_ _)m</b><br /><br /><br />■宣伝<br />Karesansui ProjectのオフィシャルTwitterを始めました。是非フォローをお願いします。<br />アカウント　：　<a href="http://twitter.com/karesansui_proj">karesansui_proj</a><br /><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>マクドナルドの食べ放題に同僚数名で行ってみた！</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/01/post-19.html" />
    <id>tag:lab.hde.co.jp,2010://1.161</id>

    <published>2010-01-22T07:02:30Z</published>
    <updated>2010-01-22T07:16:26Z</updated>

    <summary>新年、明けましておめでとうございます。船ヶ山です。さて、一部で話題になっている「...</summary>
    <author>
        <name>kei</name>
        <uri>http://lab.hde.co.jp</uri>
    </author>
    
    <category term="イベント" label="イベント" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="マクドナルド" label="マクドナルド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[新年、明けましておめでとうございます。<br />船ヶ山です。<br /><br /><br />さて、一部で話題になっている「マクドナルドの食べ放題」ですが、同僚数人と行ってみましたのでレポートします。 ]]>
        <![CDATA[<font style="font-size: 1.5625em;">注文</font><br />普通にバリューセットLLを注文するとついてくるようです。<br />レシートには、「ｵｶﾜﾘｼﾞﾕｳｷｬﾝﾍﾟｰﾝ　１ｺ　\0　」と書かれてあります。<br />今回は「チーズバーガーセット \550」を注文しました。(一番安いのは多分ハンバーガーセットで\540です)<br />※飲み物は当然コーラ(ダイエットコーラもOKみたいです)<br /><br /><br /><br />下が今回注文したチーズバーガーセットです。<br />※当然ながら普通です＾＾<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="1.jpg" src="http://lab.hde.co.jp/mac1/1.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><br /><br /><br /><br />おなかがすいてるので当然さくっと1つ目のポテトLを完食<br />回転が速いのかポテトがすこぶる熱いです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="2.jpg" src="http://lab.hde.co.jp/mac2/2.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><br /><br /><br /><br />2つ目のポテトでコーラLがなくなったので、同じものを注文<br />※レジにレシートと空になったコーラLを持っていく必要があるみたいです。（それで店員さんがチェックしているかは不明）<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="3.jpg" src="http://lab.hde.co.jp/mac3/3.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><div><br /><br /><br />ちょうどおなかが膨れてきたぐらいで、ポテトLの2つ目を完食<br />せっかくなので、３つ目のポテトLを注文したついでに、ケチャップをGETし味を変更<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="4.jpg" src="http://lab.hde.co.jp/mac4/4.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><br /><br /><br />さすがに3つ半で苦しくなってきたが、残すのはルール違反なので頑張りました。<br />※写真に撮り忘れましたが、ここでコーラLを再度注文<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="5.jpg" src="http://lab.hde.co.jp/mac5/5.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><br /><br /><br />苦しいながらもポテトL３つコーラL3つを完食<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="6.jpg" src="http://lab.hde.co.jp/mac6/6.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><br /><br />最後に同僚のポテトLの空箱を重ねてみました。<br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="7.jpg" src="http://lab.hde.co.jp/mac7/7.jpg" class="mt-image-none" style="" height="300" width="400" /></span><br /><br /><br /><font style="font-size: 1.5625em;">感想</font><br />いつものマックで特に何もなかったですが、同僚とたまにはこういったイベントもいいのでは？？と思う正月明けでした。<br /><br /><font style="font-size: 1.5625em;">補足</font><br />ホットコーヒーは飲み放題外ですのでご注意ください！！<br /></div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>OpenSSL 1.0.0 Beta5 が出ましたね</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2010/01/openssl-100-beta5.html" />
    <id>tag:lab.hde.co.jp,2010://1.160</id>

    <published>2010-01-21T03:13:44Z</published>
    <updated>2010-01-21T03:29:39Z</updated>

    <summary>こんにちは、しのはらです。 昨日(2010/01/20)OpenSSL 1.0....</summary>
    <author>
        <name>junichi shinohara</name>
        
    </author>
    
        <category term="OpenSSL" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="openssl" label="OpenSSL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[こんにちは、しのはらです。<br />
<br />
昨日(2010/01/20)<a href="http://www.openssl.org/" target="_blank">OpenSSL</a> 1.0.0 Beta5が出ました。<br/>
ダウンロードは<a href="http://www.openssl.org/source/openssl-1.0.0-beta5.tar.gz" target="_blank">こちら</a>から。<br/>
<br/>
2009/04/01 beta1<br/>
2009/04/21 beta2<br/>
2009/07/15 beta3<br/>
2009/11/11 beta4<br/>
2010/01/20 beta5<br/>
<br /> 
beta3,beta4と比べて、少しスパンが短くなりましたね。
]]>
        
    </content>
</entry>

<entry>
    <title>Beta 4 of OpenSSL 1.0.0</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2009/11/beta-4-of-openssl-100.html" />
    <id>tag:lab.hde.co.jp,2009://1.159</id>

    <published>2009-11-11T04:13:30Z</published>
    <updated>2009-11-12T01:50:30Z</updated>

    <summary>HDEラボの桜井です。 今月はThinkIT様にセキュリティの連載をさせていただ...</summary>
    <author>
        <name>Takeshi SAKURAI</name>
        <uri>http://lab.hde.co.jp/</uri>
    </author>
    
        <category term="OpenSSL" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="openssl100beta4" label="OpenSSL 1.0.0 Beta 4" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[HDEラボの桜井です。<br/>
今月は<a href="http://thinkit.jp/article/1061/1/" target="_blank">ThinkIT</a>様にセキュリティの連載をさせていただいております！！<br/>
<br/>
それはさておき、<a href="http://www.openssl.org/" target="_blank">OpenSSL</a> 1.0.0 Beta 4 がでています。<br/>
さっそく、CentOS 5.4 (x86_64) でビルドしてみます。<br/>
<br/>
<div style="padding: 20px 20px 10px 10px; overflow: auto; background-color: rgb(245, 245, 245);">
<pre>
$ tar zxvf openssl-1.0.0-beta4.tar.gz
$ cd openssl-1.0.0-beta4
$ ./Configure linux-x86_64
$ make
$ su
# make install
</pre>
</div>
<br/>
ビルド、インストールは問題なさそうです。<br/>
簡単な暗号処理をしてみましたが、問題なく動作してました。<br/>
<br/>
さて、1.0のStableはいつ頃なんでしょうかね？<br/>]]>
        
    </content>
</entry>

<entry>
    <title>日経225のSPF対応状況（2009年10月）</title>
    <link rel="alternate" type="text/html" href="http://lab.hde.co.jp/2009/10/225spf200910.html" />
    <id>tag:lab.hde.co.jp,2009://1.158</id>

    <published>2009-10-23T10:24:54Z</published>
    <updated>2009-10-23T10:28:43Z</updated>

    <summary>（本調査は、HDEが非公式に、1月、4月、7月、10月の20日頃、日経225採用...</summary>
    <author>
        <name>rgoura</name>
        
    </author>
    
        <category term="Mail" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="セキュリティ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="メール" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://lab.hde.co.jp/">
        <![CDATA[<div>（本調査は、HDEが非公式に、1月、4月、7月、10月の20日頃、日経225採用銘柄のドメインに対し、SPFレコードが設定されているかどうかを独自調査し、主要企業の対応動向をレポートするものです）</div><div>　2009年10月22日時点での日経225採用銘柄におけるSPFレコード登録の状況は、全体で42件となりました。7月時点の40件から2件増加し、設定率は18.7%となっています。</div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="20091022_225spf.png" src="http://lab.hde.co.jp/20091022_225spf.png" width="377" height="226" class="mt-image-none" style="" /></span></div><div><br /></div><div>＜主なトピックス＞</div><div>・クボタ、三菱UFJグループが新たにSPFレコードを設定しました（~all）</div><div>・シチズン、新生銀行、平和不動産、京成電鉄がSPFレコードの設定を変更しました（範囲追加）</div><div>・ソフトバンクが新たにSPFレコードの設定を変更しました（範囲縮小）</div><div><br /></div><div><a href="http://lab.hde.co.jp/2009/07/225spf20097.html">2009年7月の調査</a></div> ]]>
        
    </content>
</entry>

</feed>

