<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DailyHckr &#187; None</title>
	<atom:link href="http://hylom.net/tag/none/feed/" rel="self" type="application/rss+xml" />
	<link>http://hylom.net</link>
	<description>Hack, Hacker, Hackest</description>
	<lastBuildDate>Mon, 16 Jan 2012 13:32:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Pythonのクラスの挙動を調べる：class構文の外からクラスにメンバ関数を追加（1）</title>
		<link>http://hylom.net/2009/06/18/20090618_pyclass1/</link>
		<comments>http://hylom.net/2009/06/18/20090618_pyclass1/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 06:41:20 +0000</pubDate>
		<dc:creator>hylom</dc:creator>
				<category><![CDATA[Docs]]></category>
		<category><![CDATA[None]]></category>

		<guid isPermaLink="false">http://hylom.net/2009/06/18/20090618_pyclass1/</guid>
		<description><![CDATA[Pythonのクラスの挙動を調べる：class構文の外からクラスにメンバ関数を追加（1） 　Pythonでプラグイン的な機構を実装する際、あるモジュールで定義されたクラスに対し、ほかのモジュールからメンバ関数を追加できると楽しいのでは？とふと思う。 　ちょっと分かりにくいが、例えばHogeというクラスがhoge.pyで定義されており、Hogeクラスのメンバ関数を追加するコードがplugin.pyで定義されている。そして、plugin.pyで定義されている機能を使いたい場合のみimport pluginすると、その機能がHogeクラスで利用できるようになる、というイメージだ。 　ということで、ちょっと試してみた。 [Macintosh:~]$ python Python 2.5.1 (r251:54863&#44; Feb 6 2009&#44; 19:02:12) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help"&#44; "copyright"&#44; "credits" or "license" for more information. # 適当な関数を定義 &#62;&#62;&#62; class FooBar(object): ... def func1(self): ... print "func1!" ... def func2(self): ... print "func2!" ... # FooBarクラスのインスタンスを作成 &#62;&#62;&#62; a = FooBar() [...]]]></description>
			<content:encoded><![CDATA[<p>Pythonのクラスの挙動を調べる：class構文の外からクラスにメンバ関数を追加（1）
<p> 　Pythonでプラグイン的な機構を実装する際、あるモジュールで定義されたクラスに対し、ほかのモジュールからメンバ関数を追加できると楽しいのでは？とふと思う。</p>
<p> 　ちょっと分かりにくいが、例えばHogeというクラスがhoge.pyで定義されており、Hogeクラスのメンバ関数を追加するコードがplugin.pyで定義されている。そして、plugin.pyで定義されている機能を使いたい場合のみimport pluginすると、その機能がHogeクラスで利用できるようになる、というイメージだ。</p>
<p> 　ということで、ちょっと試してみた。</p>
<pre>
[Macintosh:~]$ python
Python 2.5.1 (r251:54863&#44; Feb  6 2009&#44; 19:02:12)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help"&#44; "copyright"&#44; "credits" or "license" for more information.

 <b>  # 適当な関数を定義 </b>

&gt;&gt;&gt; class FooBar(object):
...     def func1(self):
...             print "func1!"
...     def func2(self):
...             print "func2!"
...

 <b>  # FooBarクラスのインスタンスを作成 </b>

&gt;&gt;&gt; a = FooBar()
&gt;&gt;&gt; a.func1()
func1!
&gt;&gt;&gt; a.func2()
func2!

 <b>  # FooBarは__main___内にクラスオブジェクトして記録される </b>

&gt;&gt;&gt; locals()
{'__builtins__': &lt;module '__builtin__' (built-in)&gt;&#44; '__name__':
'__main__'&#44; '__doc__': None&#44; 'a': &lt;__main__.FooBar object at
0x2454f0&gt;&#44; 'FooBar': &lt;class '__main__.FooBar'&gt;}
&gt;&gt;&gt; print FooBar
&lt;class '__main__.FooBar'&gt;
&gt;&gt;&gt; print FooBar.__dict__
{'func2': &lt;function func2 at 0x5e2f0&gt;&#44; '__module__': '__main__'&#44;
'func1': &lt;function func1 at 0x5e2b0&gt;&#44; '__dict__': &lt;attribute
'__dict__' of 'FooBar' objects&gt;&#44; '__weakref__': &lt;attribute
'__weakref__' of 'FooBar' objects&gt;&#44; '__doc__': None}

 <b>  # FooBarクラスに追加する関数を定義 </b>

&gt;&gt;&gt; def add1(self):
...     print "add1!"
...

 <b>  # add1関数をFooBarクラスのメンバに追加 </b>

&gt;&gt;&gt; FooBar.add1 = add1

 <b>  # クラスを改変する前に作成したインスタンスも影響を受ける！ </b>

&gt;&gt;&gt; a.add1()
add1!
&gt;&gt;&gt; print FooBar.__dict__
{'func2': &lt;function func2 at 0x5e2f0&gt;&#44; '__module__': '__main__'&#44;
'add1': &lt;function add1 at 0x5e270&gt;&#44; 'func1': &lt;function func1 at
0x5e2b0&gt;&#44; '__dict__': &lt;attribute '__dict__' of 'FooBar' objects&gt;&#44;
'__weakref__': &lt;attribute '__weakref__' of 'FooBar' objects&gt;&#44;
'__doc__': None}
&gt;&gt;&gt;
</pre>
<p> 　ということで、少なくともクラスオブジェクトに対して属性を追加することで、クラスにメンバ関数を追加できることは分かりました。なるほどなるほど。</p>
]]></content:encoded>
			<wfw:commentRss>http://hylom.net/2009/06/18/20090618_pyclass1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perlは十分良い言語ですよと言ってみる</title>
		<link>http://hylom.net/2009/04/10/20090410_perl/</link>
		<comments>http://hylom.net/2009/04/10/20090410_perl/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 16:29:48 +0000</pubDate>
		<dc:creator>hylom</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[None]]></category>

		<guid isPermaLink="false">http://hylom.net/2009/04/10/20090410_perl/</guid>
		<description><![CDATA[　『 Perlの啓蒙と促進を目指す「Japan Perl Association」発足 』とのこと。Slashdot Japanでも、「 なぜ今Perlか &#8211; parsley の日記 」で 私はあまりPerlを仕事で使いたいとは思わない。使う必要もあまりない。道具は個人で使う分には、使い手の裁量で選べるが、組織だって使う場合は他の要素が重要視される。 とか、「 techsideでPerlネタが紹介されてた &#8211; tarna の日記 」で 省略形が多すぎ。他人のソースが読みにくい。 など、まだまだ「堅い」ものとは見られていない。その点では、企業ベースで盛り立てていくことには意義があるのだろう。 　あと、前述のtarna氏の日記では、下記のような「Perlが嫌いな理由」が述べられているけど、3.は Best Practice に基づけば解決、2.も皆がBest Practiceに基づけば解決するので、大きな問題ではない（「皆が」というのは大変ではあるが）。 プログラムは速度が命。スクリプト言語とか遅すぎる（元ゲームプログラマーなんで） 省略形が多すぎ。他人のソースが読みにくい。 省略形が多すぎて、書くときにどう書くか迷う。で、後日、自分で理解苦慮。 Cが好き（C系の文法に慣れすぎた） 　1.と4.についてはしょうがないけど、実用的な観点から言えばだいたいのケースで速度が遅くて問題になる、ということはないような気がする。以前サイズが数十MBにもなるテキストファイルの処理（正規表現マッチやソートなどを行うもの）を実行させたとき、思ったより速くて驚いたことがある。実際にデータ取って比較してみると面白いかも。 　と、なんだかんだいってますが自分は Perlに愛想をつかして 「2つ以上のスクリプト言語を習得すべし」（多分弾小飼氏の言葉だったと思う。ソース失念）という教えに基づいてPythonを学んだ結果、現在ではPythonがメインの作業言語となってしまいました（汗）。でもBest Practiceに基づいたPerlは堅い企業ユースでも使い物になると思っている。]]></description>
			<content:encoded><![CDATA[<p> 　『 <a href="http://slashdot.jp/developers/article.pl?sid=09/04/09/163245">  Perlの啓蒙と促進を目指す「Japan Perl Association」発足 </a> 』とのこと。Slashdot Japanでも、「 <a href="http://slashdot.jp/~parsley/journal/472592">  なぜ今Perlか &#8211; parsley の日記 </a> 」で <q>  私はあまりPerlを仕事で使いたいとは思わない。使う必要もあまりない。道具は個人で使う分には、使い手の裁量で選べるが、組織だって使う場合は他の要素が重要視される。 </q> とか、「 <a href="http://slashdot.jp/~tarna/journal/472605">  techsideでPerlネタが紹介されてた &#8211; tarna の日記 </a> 」で <q>  省略形が多すぎ。他人のソースが読みにくい。 </q> など、まだまだ「堅い」ものとは見られていない。その点では、企業ベースで盛り立てていくことには意義があるのだろう。</p>
<p> 　あと、前述のtarna氏の日記では、下記のような「Perlが嫌いな理由」が述べられているけど、3.は <a href="http://blog.livedoor.jp/dankogai/archives/50003309.html">  Best Practice </a> に基づけば解決、2.も皆がBest Practiceに基づけば解決するので、大きな問題ではない（「皆が」というのは大変ではあるが）。</p>
<blockquote cite="http://slashdot.jp/~tarna/journal/472605"><ul>
<li>   プログラムは速度が命。スクリプト言語とか遅すぎる（元ゲームプログラマーなんで）  </li>
<li>   省略形が多すぎ。他人のソースが読みにくい。  </li>
<li>   省略形が多すぎて、書くときにどう書くか迷う。で、後日、自分で理解苦慮。  </li>
<li>   Cが好き（C系の文法に慣れすぎた）  </li>
</ul>
</blockquote>
<p> 　1.と4.についてはしょうがないけど、実用的な観点から言えばだいたいのケースで速度が遅くて問題になる、ということはないような気がする。以前サイズが数十MBにもなるテキストファイルの処理（正規表現マッチやソートなどを行うもの）を実行させたとき、思ったより速くて驚いたことがある。実際にデータ取って比較してみると面白いかも。</p>
<p> 　と、なんだかんだいってますが自分は <strike>  Perlに愛想をつかして </strike> 「2つ以上のスクリプト言語を習得すべし」（多分弾小飼氏の言葉だったと思う。ソース失念）という教えに基づいてPythonを学んだ結果、現在ではPythonがメインの作業言語となってしまいました（汗）。でもBest Practiceに基づいたPerlは堅い企業ユースでも使い物になると思っている。</p>
]]></content:encoded>
			<wfw:commentRss>http://hylom.net/2009/04/10/20090410_perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>さくらのサーバーがアップデート</title>
		<link>http://hylom.net/2009/04/07/20090407_sakura_update/</link>
		<comments>http://hylom.net/2009/04/07/20090407_sakura_update/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 16:49:58 +0000</pubDate>
		<dc:creator>hylom</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[None]]></category>

		<guid isPermaLink="false">http://hylom.net/2009/04/07/20090407_sakura_update/</guid>
		<description><![CDATA[　このblogをホスティングしているさくらのサーバーがアップデート。FreeBSD 7.1へのアップデートということで、多少ユーザーランドが変わっている模様。とりあえずjvim2がjvim3になっていたのでエイリアスを修正。あとはPythonがやっと2.5系に。これでやっとバージョン違いによるsqlite3とかハッシュ関数とかの相違を気にしなくて良くなりますな。]]></description>
			<content:encoded><![CDATA[<p> 　このblogをホスティングしているさくらのサーバーがアップデート。FreeBSD 7.1へのアップデートということで、多少ユーザーランドが変わっている模様。とりあえずjvim2がjvim3になっていたのでエイリアスを修正。あとはPythonがやっと2.5系に。これでやっとバージョン違いによるsqlite3とかハッシュ関数とかの相違を気にしなくて良くなりますな。</p>
]]></content:encoded>
			<wfw:commentRss>http://hylom.net/2009/04/07/20090407_sakura_update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

