<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.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" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0YBRXgzfyp7ImA9WhRWFUg.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868</id><updated>2012-01-03T10:45:54.687+09:00</updated><category term="Unix" /><category term="Go" /><category term="Macを買ったら何をする？" /><category term="App" /><category term="SQL" /><category term="Gemstone" /><category term="おすすめ" /><category term="VisualWorks" /><category term="入門" /><category term="etc" /><category term="Windows" /><category term="Java" /><category term="Lisp" /><category term="Web" /><category term="Command" /><category term="Haskell" /><category term="CCNA" /><category term="Seaside" /><category term="iPhone" /><category term="Audio" /><category term="Smalltalk" /><category term="Ruby" /><category term="Linux" /><category term="OOL" /><category term="Objective-C" /><category term="Squeak" /><category term="Mac" /><category term="TeX" /><category term="iPad" /><category term="Book" /><category term="JavaScript" /><category term="Scheme" /><category term="グルメ" /><title>トウヨウリンゴ</title><subtitle type="html">Mac関連の情報とプログラミングメモ</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://newringo.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>122</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/Oqhr" /><feedburner:info uri="blogspot/oqhr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0YERXs8cSp7ImA9WhRWFUg.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-8078550930454575672</id><published>2012-01-03T10:45:00.001+09:00</published><updated>2012-01-03T10:45:04.579+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T10:45:04.579+09:00</app:edited><title>引越のお知らせ</title><content type="html">&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;引越しました．ふたたびりんごの種へ．&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;りんごの種２&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;http://ringoseed2.blogspot.com/&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-8078550930454575672?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Jhu9c5Elvm6ZW2KJ7rhFVo-h-Gc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jhu9c5Elvm6ZW2KJ7rhFVo-h-Gc/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/Jhu9c5Elvm6ZW2KJ7rhFVo-h-Gc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jhu9c5Elvm6ZW2KJ7rhFVo-h-Gc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/oJwpUi9HqAQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/8078550930454575672/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2012/01/blog-post.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8078550930454575672?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8078550930454575672?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/oJwpUi9HqAQ/blog-post.html" title="引越のお知らせ" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2012/01/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QERXozcCp7ImA9Wx9QF0U.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-8012244660382123697</id><published>2010-12-31T18:55:00.000+09:00</published><updated>2010-12-31T18:55:04.488+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-31T18:55:04.488+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="etc" /><title>ふりかえってみると</title><content type="html">ふりかえってみると今年もいろいろあった年だった．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;修論発表&lt;/li&gt;
&lt;li&gt;就職&lt;/li&gt;
&lt;li&gt;勉強会での発表&lt;/li&gt;
&lt;li&gt;いい椅子を手に入れたこと&lt;/li&gt;
&lt;li&gt;仲間とのiPhone Programmingの勉強&lt;/li&gt;
&lt;/ul&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;br /&gt;
残念だったことを書こうとおもったが，それについては来年の目標としてがんばろうと思う．&lt;br /&gt;
それではよいお年を．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-8012244660382123697?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EwnN0hbD3Vn9DTZYNwcAka1PlVQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EwnN0hbD3Vn9DTZYNwcAka1PlVQ/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/EwnN0hbD3Vn9DTZYNwcAka1PlVQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EwnN0hbD3Vn9DTZYNwcAka1PlVQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/-ce4LW8JMv0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/8012244660382123697/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/12/blog-post_31.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8012244660382123697?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8012244660382123697?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/-ce4LW8JMv0/blog-post_31.html" title="ふりかえってみると" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/12/blog-post_31.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8DQHY_fip7ImA9Wx9QE0o.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-3302092535450151126</id><published>2010-12-26T22:39:00.001+09:00</published><updated>2010-12-26T22:41:11.846+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-26T22:41:11.846+09:00</app:edited><title>とりあえず，Smalltalk使いたい人へ その２</title><content type="html">&lt;a href="http://newringo.blogspot.com/2010/10/smalltalk.html"&gt;前回&lt;/a&gt;Smalltalkのチュートリアルの資料について紹介しましたが，前回の改訂版？を出しましたので（出したのは11月），ご紹介&lt;br /&gt;
&lt;br /&gt;
第26回Smalltalk勉強会&lt;br /&gt;
http://www.smalltalk-users.jp/Home/gao-zhi/dai26kaismalltalkbenkyoukai&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span style="background-color: #ffe599;"&gt;当日の&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;a href="http://tomoyo.mine.nu/~ringo/smalltalk/tutorial/20101129/smalltalktutorial20101129.pdf" rel="nofollow" style="color: #4e7dbf; outline-color: initial; outline-style: none; outline-width: initial;" target="_blank"&gt;&lt;span style="background-color: #ffe599;"&gt;資料&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span style="background-color: #ffe599;"&gt;です&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
かってに配布しちゃっても構いません．&lt;br /&gt;
Keynoteで作成したので，Keynoteが欲しい方がいらっしゃいましたら，ご連絡を．&lt;br /&gt;
もちろん無料でさしげます（←あたりまえw）．&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://newringo.blogspot.com/2010/10/smalltalk.html"&gt;とりあえず，Smalltalk使いたい人へ - トウヨウリンゴ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-3302092535450151126?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I_hAmWXS1nY-h3eTbQy8zuwTsh8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I_hAmWXS1nY-h3eTbQy8zuwTsh8/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/I_hAmWXS1nY-h3eTbQy8zuwTsh8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I_hAmWXS1nY-h3eTbQy8zuwTsh8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/dUpy1aI1ZEA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/3302092535450151126/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/12/smalltalk.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3302092535450151126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3302092535450151126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/dUpy1aI1ZEA/smalltalk.html" title="とりあえず，Smalltalk使いたい人へ その２" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/12/smalltalk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4CSH05eip7ImA9Wx9QE0o.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-1313028116615377831</id><published>2010-12-26T22:35:00.002+09:00</published><updated>2010-12-26T22:42:49.322+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-26T22:42:49.322+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title>"もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら"を読んでみた</title><content type="html">"もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら"を読んでみました．&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;br /&gt;
私も少し考えが変わりました．&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=ringosseed-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;md=1X69VDGQCMF7Z30FM082&amp;amp;asins=4478012032" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-1313028116615377831?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IZDmJoQQ5gplDdR244TbhkFKdec/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IZDmJoQQ5gplDdR244TbhkFKdec/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/IZDmJoQQ5gplDdR244TbhkFKdec/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IZDmJoQQ5gplDdR244TbhkFKdec/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/TzHsoVHIZho" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/1313028116615377831/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/12/blog-post.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1313028116615377831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1313028116615377831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/TzHsoVHIZho/blog-post.html" title="&quot;もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら&quot;を読んでみた" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/12/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBSXs5fyp7ImA9Wx9TFk0.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-2441895234048444895</id><published>2010-11-24T23:13:00.004+09:00</published><updated>2010-11-24T23:22:38.527+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-24T23:22:38.527+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iPhone" /><category scheme="http://www.blogger.com/atom/ns#" term="iPad" /><title>iOSのベータ版から公開版にアップデートする方法</title><content type="html">iOSのベータ版から公開版にアップデートする方法のご紹介．&lt;br /&gt;
iPhone, iPadにはDFU (Device Firmware Upgrade) モード*1 というのがあります．&lt;br /&gt;
これを利用すると公開版iOSにアップデートできます．&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;iPhone, iPad touchまたはiPadをパソコンに接続&lt;/li&gt;
&lt;li&gt;iPhone, iPad touchまたはiPadの電源を切る&lt;/li&gt;
&lt;li&gt;電源ボタンとホームボタンを10秒間同時押しする&lt;/li&gt;
&lt;li&gt;電源ボタンだけ放し，ホームボタンはパソコンがUSBデバイスを認識するまで（約10秒）押し続ける&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
iTunesから復元を行なうと，公開版iOSがダウンロードされ，インストールされます．&lt;br /&gt;
&lt;br /&gt;
ちなみに私のiPadは，この方法でiOS 4.2.1にしております．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;*1 DFU (Device Firmware Upgrade) モードは，iPhone等のファームウェアのバージョン関係なく，復元可能にする&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-2441895234048444895?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1JytczvjZEIxJCx3VS4CUJ6DWqA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1JytczvjZEIxJCx3VS4CUJ6DWqA/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/1JytczvjZEIxJCx3VS4CUJ6DWqA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1JytczvjZEIxJCx3VS4CUJ6DWqA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/e_S1a_DI-lY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/2441895234048444895/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/11/ios.html#comment-form" title="1 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2441895234048444895?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2441895234048444895?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/e_S1a_DI-lY/ios.html" title="iOSのベータ版から公開版にアップデートする方法" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/11/ios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMFRHc7eCp7ImA9Wx5bFU4.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-2144844245240773549</id><published>2010-10-31T22:40:00.000+09:00</published><updated>2010-10-31T22:40:15.900+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-31T22:40:15.900+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Smalltalk" /><title>とりあえず，Smalltalk使いたい人へ</title><content type="html">本当は本を購入してきちんと勉強してもらいたいけど，とりあえず味見したい人のために，以前作った資料をどうぞ．&lt;br /&gt;
&lt;br /&gt;
http://docs.google.com/viewer?a=v&amp;pid=sites&amp;srcid=c21hbGx0YWxrLXVzZXJzLmpwfGhvbWV8Z3g6MTgyYWZkMmY3NjVhNmRlMg&lt;br /&gt;
&lt;br /&gt;
第24回Smalltalk勉強会(roppongi.st)&lt;br /&gt;
http://sites.google.com/a/smalltalk-users.jp/home/Home/gao-zhi/dai24kaismalltalkbenkyoukai&lt;br /&gt;
&lt;br /&gt;
はやくチュートリアルを完成させたい．&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-2144844245240773549?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rkqyywKeJNHSnCDi670ZQxCmTu0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rkqyywKeJNHSnCDi670ZQxCmTu0/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/rkqyywKeJNHSnCDi670ZQxCmTu0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rkqyywKeJNHSnCDi670ZQxCmTu0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/Cbi2cbIsU_Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/2144844245240773549/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/10/smalltalk.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2144844245240773549?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2144844245240773549?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/Cbi2cbIsU_Y/smalltalk.html" title="とりあえず，Smalltalk使いたい人へ" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/10/smalltalk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04ESHs8fCp7ImA9Wx5WFEs.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-2048960639034735799</id><published>2010-09-26T09:45:00.000+09:00</published><updated>2010-09-26T09:45:09.574+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-26T09:45:09.574+09:00</app:edited><title>iOS 4.2 iPadで3G回線を利用する方法</title><content type="html">iOS 4.2 iPadをインストールすると「PDP認証に失敗しました」と表示されて3G回線が利用できなくなる．通常はiTunesに接続をして同期を行えば改善されるのだが，Beta OSだとダメのようです．&lt;br /&gt;
せっかくの3G回線が使えなくなってしまうのは非常にもったいないので、調べて見たところ解決方法がありました．&lt;br /&gt;
&lt;br /&gt;
(以下の内容を行い，何らかの問題が発生しても当方は責任を一切責任を負いません).&lt;br /&gt;
以下のサイトでAPNプロファイルを作成します．&lt;br /&gt;
&lt;br /&gt;
http://www.unlockit.co.nz/ &lt;br /&gt;
&lt;br /&gt;
1. サイトにアクセスしたらContinueを選択&lt;br /&gt;
2. Custom APNを選択&lt;br /&gt;
3. &lt;br /&gt;
APN: sbm&lt;br /&gt;
Username: data&lt;br /&gt;
Password: softbank&lt;br /&gt;
を入力．&lt;br /&gt;
(Carrierは入力しなくても大丈夫です)&lt;br /&gt;
4. CreateProfileを選択してプロファイルをインストールします&lt;br /&gt;
5. インストール後，3G回線が接続できない場合は再起動をすると接続ができます&lt;br /&gt;
&lt;br /&gt;
ということで3G接続ができるiPadを持って，外で朝ごはんを食べながらこの記事を書いています．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-2048960639034735799?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SbkglmaU-sfBxu793lX2KUhE_g8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SbkglmaU-sfBxu793lX2KUhE_g8/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/SbkglmaU-sfBxu793lX2KUhE_g8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SbkglmaU-sfBxu793lX2KUhE_g8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/ShZ6HQJekgg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/2048960639034735799/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/09/ios-42-ipad3g.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2048960639034735799?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2048960639034735799?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/ShZ6HQJekgg/ios-42-ipad3g.html" title="iOS 4.2 iPadで3G回線を利用する方法" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/09/ios-42-ipad3g.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QFQ30_cCp7ImA9Wx5XGU4.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-539787412427646610</id><published>2010-09-20T07:22:00.002+09:00</published><updated>2010-09-20T07:28:32.348+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-20T07:28:32.348+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Command" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>[Command] rsync</title><content type="html">　更新されたファイルのみバックアップをするツールとしてrsyncがありますが，Mac版のrsyncには-Eというオプションがある．これは，リソースフォークスもコピーするオプションなので，覚えておくといい．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-539787412427646610?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TbM3XLXemUSsSXjecXef6XWfLMY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TbM3XLXemUSsSXjecXef6XWfLMY/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/TbM3XLXemUSsSXjecXef6XWfLMY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TbM3XLXemUSsSXjecXef6XWfLMY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/-yYatyFLBx4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/539787412427646610/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/09/command-rsync.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/539787412427646610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/539787412427646610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/-yYatyFLBx4/command-rsync.html" title="[Command] rsync" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/09/command-rsync.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08MQ3c-cCp7ImA9Wx5XFk4.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-8120913943769201116</id><published>2010-09-16T21:24:00.002+09:00</published><updated>2010-09-16T21:24:42.958+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-16T21:24:42.958+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="Unix" /><title>MacPorts 1.9.1</title><content type="html">MacPortsがいつの間にか1.9.1になっていたので，アップデート．&lt;br /&gt;
&lt;br /&gt;
MacPortsを使っている人は以下のコマンドで更新できます．&lt;br /&gt;
&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt;sudo port selfupdate&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
アップデートされたパッケージを更新&lt;br /&gt;
&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt;sudo port upgrade outdated &lt;/pre&gt;&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-8120913943769201116?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EEWiODUhE-91c98NitWmdBBBXv4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EEWiODUhE-91c98NitWmdBBBXv4/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/EEWiODUhE-91c98NitWmdBBBXv4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EEWiODUhE-91c98NitWmdBBBXv4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/tEU2F5Fpjxo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/8120913943769201116/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/09/macports-191.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8120913943769201116?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8120913943769201116?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/tEU2F5Fpjxo/macports-191.html" title="MacPorts 1.9.1" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/09/macports-191.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAHRH86fSp7ImA9Wx5QFkw.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-3544037308410746449</id><published>2010-09-04T23:31:00.001+09:00</published><updated>2010-09-04T23:32:15.115+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-04T23:32:15.115+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Objective-C" /><title>[Objective-C] リファレンスカウンタとの戦い</title><content type="html">以前かいたObjective-Cのリファレンスカウンタについて，再び考える．&lt;br /&gt;
&lt;br /&gt;
[Objective-C] 詳解 Objective-C 2.0 リファレンスカウンタ 不明なところ - トウヨウリンゴ&lt;br /&gt;
http://newringo.blogspot.com/2010/05/objective-c-objective-c-20.html&lt;br /&gt;
&lt;br /&gt;
コードはこちら．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;#import &amp;lt;Foundation/Foundation.h&amp;gt;
#import &amp;lt;stdio.h&amp;gt;

int main(void)
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
  NSObject *obj = [[NSObject alloc] init];
  printf("init: %d\n",[obj retainCount]);
  [obj retain];
  printf("retain: %d\n",[obj retainCount]);
  [obj retain];
  printf("retain: %d\n",[obj retainCount]);

  [obj release];
  printf("release: %d\n",[obj retainCount]);
  [obj release];
  printf("release: %d\n",[obj retainCount]);
  [obj release];
  /* 実行するとエラーになるはずなのだが・・・ */
  printf("release: %d\n",[obj retainCount]); 

  [pool drain];

  return 0;
}
&lt;/pre&gt;&lt;br /&gt;
そして，今日わかったのは，詳解 Objective-C 2.0と同じ結果を得るためには，以下のコンパイルをすればよい．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;gcc -framework Foundation &lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;-m32&lt;/span&gt;&lt;/b&gt; reference.m&lt;/pre&gt;&lt;br /&gt;
結果&lt;br /&gt;
&lt;pre class="prettyprint"&gt;init: 1
retain: 2
retain: 3
release: 2
release: 1
objc[2758]: FREED(id): message retainCount sent to freed object=0x103f60
Illegal instruction
&lt;/pre&gt;&lt;br /&gt;
ただ，このオプションで本通りになるというのは，なっとくいかない．&lt;br /&gt;
&lt;br /&gt;
-m32のオプションなしの場合&lt;br /&gt;
&lt;br /&gt;
結果&lt;br /&gt;
&lt;pre class="prettyprint"&gt;init: 1
retain: 2
retain: 3
release: 2
release: 1
release: 1
&lt;/pre&gt;&lt;br /&gt;
64bit用では，同様の結果が得られないのは，なぜか．&lt;br /&gt;
さっぱりだ．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-3544037308410746449?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IOEppaNOZP001gnYaM24SHhFSZQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IOEppaNOZP001gnYaM24SHhFSZQ/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/IOEppaNOZP001gnYaM24SHhFSZQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IOEppaNOZP001gnYaM24SHhFSZQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/6vNL8WPY2t8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/3544037308410746449/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/09/objective-c.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3544037308410746449?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3544037308410746449?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/6vNL8WPY2t8/objective-c.html" title="[Objective-C] リファレンスカウンタとの戦い" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/09/objective-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMBQHo7fSp7ImA9Wx5QEkQ.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-7101229608919198892</id><published>2010-09-01T07:04:00.002+09:00</published><updated>2010-09-01T07:07:31.405+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-01T07:07:31.405+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>プロセスを起動しているユーザとプロセス数の確認</title><content type="html">プロセスを起動しているユーザとプロセス数の確認をするため，以下のものをかいてみた．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;$ ps ax | awk '{ print $1 }' | sort -n | uniq -c | awk '{ print $2,$1}'&lt;/pre&gt;&lt;br /&gt;
psコマンドでプロセス確認，awkで１列目だけを取り出し，ソート．&lt;br /&gt;
そのあと，重複行を削除し（重複回数を表示），awkで重複回数とユーザ名を交換して表示する．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-7101229608919198892?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PK-unNxmjUKgnc3s_25E_prVao0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PK-unNxmjUKgnc3s_25E_prVao0/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/PK-unNxmjUKgnc3s_25E_prVao0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PK-unNxmjUKgnc3s_25E_prVao0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/PGu74XReQ6g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/7101229608919198892/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/09/blog-post.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/7101229608919198892?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/7101229608919198892?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/PGu74XReQ6g/blog-post.html" title="プロセスを起動しているユーザとプロセス数の確認" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/09/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGRnczeCp7ImA9Wx5QEkQ.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-1258178639024320180</id><published>2010-08-29T21:54:00.002+09:00</published><updated>2010-09-01T07:08:47.980+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-01T07:08:47.980+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>プログラムの実行ログの確認方法</title><content type="html">Linuxでプログラムの実行ログの確認する方法は以下のようにすればよい．&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt;$ tail -f /var/log/messages&lt;/pre&gt;&lt;br /&gt;
/var/log/mesagesも重要だけど，個人的には確認する際の，tailコマンドのオプションfの方が重要だったりする．&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-1258178639024320180?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aC6SaINH0aVTQQI3cqTBo9LApCM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aC6SaINH0aVTQQI3cqTBo9LApCM/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/aC6SaINH0aVTQQI3cqTBo9LApCM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aC6SaINH0aVTQQI3cqTBo9LApCM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/MBnnDDrsSLo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/1258178639024320180/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/08/blog-post.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1258178639024320180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1258178639024320180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/MBnnDDrsSLo/blog-post.html" title="プログラムの実行ログの確認方法" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/08/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACRX4zfSp7ImA9Wx5RF0o.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-8788143993092495718</id><published>2010-08-26T06:39:00.003+09:00</published><updated>2010-08-26T06:46:04.085+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-26T06:46:04.085+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Seaside" /><category scheme="http://www.blogger.com/atom/ns#" term="Smalltalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Gemstone" /><title>[Smalltalk] GLASSを起動してみようとしたが，失敗．</title><content type="html">GLASSを起動してみようとしたが，失敗．&lt;br /&gt;
せっかくサーバを新調したのに，使えないので，ショック．&lt;br /&gt;
&lt;br /&gt;
前回，GLASSをinstallGemstone2.4-Linux.shを使ってインストールしたのだが，Seasideが動作してくれない．Smalltalkのことなのに，すぐに解決できない．情けないorz&lt;br /&gt;
&lt;br /&gt;
installGemstone2.4-Linux.sh入れただけでは，Seasideが動かないのか，きちんとApacheとの連携をしないといけないのか，それとも「ひよっこはVM版を使いなさい！」っということなのか．&lt;br /&gt;
&lt;br /&gt;
失敗したのをメモしようと思う．&lt;br /&gt;
書き出してみると，何かわかるかもしれない．&lt;br /&gt;
&lt;br /&gt;
以下の内容を.bashrcに書き込む．&lt;br /&gt;
source /opt/gemstone/product/seaside/defSeaside&lt;br /&gt;
&lt;br /&gt;
netldiプロセスを起動し，Gemstoneを起動するために，以下のコマンドを実行．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;startnet
startGemstone
&lt;/pre&gt;&lt;br /&gt;
以下のコマンドで，Seasideを実行．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;startSeaside_Hyper 50081&lt;/pre&gt;&lt;br /&gt;
そして以下のエラー&lt;br /&gt;
&lt;pre class="prettyprint"&gt;_____________________________________________________________________________
|                             Configuration Files                             |
|                                                                             |
| System File: /opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/system.conf
|                                                                             |
| Executable File: /opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/gem.conf
|_____________________________________________________________________________|
Using GEM_TEMPOBJ_CACHE_SIZE 50000 from -T command line option
 _____________________________________________________________________________
|               Gem Configuration Options for process id 15795                |
|_____________________________________________________________________________|

DUMP_OPTIONS = TRUE;
GEM_GCI_LOG_ENABLED = FALSE;
GEM_FREE_FRAME_CACHE_SIZE = -1;
GEM_FREE_FRAME_LIMIT = -1;
GEM_HALT_ON_ERROR = 0;
GEM_IO_LIMIT = 5000;
GEM_KEEP_MIN_SOFTREFS = 0;
GEM_MAX_SMALLTALK_STACK_DEPTH = 1000;
GEM_PRIVATE_PAGE_CACHE_KB = 1000;
GEM_PGSVR_FREE_FRAME_CACHE_SIZE = -1;
GEM_PGSVR_FREE_FRAME_LIMIT = -1;
GEM_PGSVR_UPDATE_CACHE_ON_READ = FALSE;
GEM_RPCGCI_TIMEOUT = 0;
GEM_SOFTREF_CLEANUP_PERCENT_MEM = 50;
GEM_TEMPOBJ_AGGRESSIVE_STUBBING = TRUE;
GEM_TEMPOBJ_CACHE_SIZE = 50000;
GEM_TEMPOBJ_INITIAL_SIZE not used on this platform
GEM_TEMPOBJ_MESPACE_SIZE = 0;
GEM_TEMPOBJ_OOPMAP_SIZE = 0;
GEM_TEMPOBJ_POMGEN_SIZE = 0;
GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE = 50;
GEM_TEMPOBJ_POMGEN_SCAVENGE_INTERVAL = 1800;
LOG_WARNINGS = TRUE;
SHR_NUM_FREE_FRAME_SERVERS = 1;
SHR_PAGE_CACHE_NUM_SHARED_COUNTERS = 1900;
SHR_PAGE_CACHE_SIZE_KB = 500000;
SHR_PAGE_CACHE_NUM_PROCS = 1017;
SHR_TARGET_FREE_FRAME_COUNT = -1;
(vmGc spaceSizes: eden init 2000K max 9368K , survivor init 400K max 1568K,
 vmGc    old max 37496K, code max 10000K, perm max 5000K, pom 10 * 4168K = 41680K,
 vmGc    remSet 1008K, meSpace max 47800K oopMapSize 262144 )
 _____________________________________________________________________________
|             GemStone/S64 Object-Oriented Data Management System             |
|               Copyright (C) GemStone Systems, Inc. 1986-2010                |
|                            All rights reserved.                             |
|     covered by Patent Number 6,567,905 Generational Garbage Collector.      |
+-----------------------------------------------------------------------------+
|    PROGRAM: topaz, Linear GemStone Interface (Linked Session)               |
|    VERSION: 2.4.4.1, Tue Jul 13 15:19:49 2010                               |
|      BUILD: gss64_2_4_4_x_branch-23813                                      |
|  BUILT FOR: x86-64 (Linux)                                                  |
|       MODE: 64 bit                                                          |
| RUNNING ON: 6-CPU localhost x86_64 (Linux 2.6.18-194.11.1.el5 #1 SMP Tue Aug|
| 10 19:05:06 EDT 2010) 7480MB                                                |
| PROCESS ID: 15795     DATE: 2010年08月26日 06時38分42秒 JST           |
|   USER IDS: REAL=ringo (500) EFFECTIVE=ringo (500)                          |
|   DATEFORMAT: %Y年%m月%d日 %H時%M分%S秒                               |
|_____________________________________________________________________________|
topaz&gt; topaz&gt; topaz&gt; topaz&gt; topaz&gt; topaz&gt; topaz&gt; topaz&gt; [Info]: LNK client/gem GCI levels = 844/844
[Info]: User ID: DataCurator
[Info]: Repository: seaside
[Info]: Session ID: 1
[Info]: GCI Client Host: &lt;linked&gt;
[Info]: Page server PID: -1
[Info]: Login Time: 2010年08月26日 06時38分42秒.198 JST
[2010年08月26日 06時38分43秒.095 JST] gci login: currSession 1 rpc gem processId -1
successful login
topaz 1&gt; topaz 1&gt; [268 sz:0 cls: 68097 Boolean] true
topaz 1&gt; topaz 1&gt; GemStone Smalltalk Compiler Errors:
   | service server site |
   true "enable for remote breakpoints and profiling"
     ifTrue: [
       GemToGemAnnouncement installStaticHandler.
       Exception
         installStaticException:
           [:ex :cat :num :args | 
             BreakpointNotification signal.
             "needed to avoid infinite loop when resuming from a breakpoint"
             ex _incrementBreakpointsToIgnore. ]
         category: GemStoneError
         number: 6005
         subtype: nil.
      System commitTransaction ifFalse: [ nil error: 'Could not commit for GemToGemSignaling' ]].
   
   System transactionMode: #manualBegin.
   
   Exception 
     installStaticException: 
       [:ex :cat :num :args |
         "Run the abort in a lowPriority process, since we must acquire the
          transactionMutex."
         [
           SeasidePlatformSupport transactionMutex 
 *         ^1                                                         *******
             critical: [ 
               SeasidePlatformSupport doAbortTransaction ].
           System enableSignaledAbortError.
         ] forkAt: Processor lowestPriority.
       ]
     category: GemStoneError
     number: 6009
     subtype: nil.
   System enableSignaledAbortError.
   "This thread is needed to handle the SigAbort exception, when the primary
    thread is blocked on an accept. Assuming default 60 second 
    STN_GEM_ABORT_TIMEOUT, wake up at 30 second intervals."
   [ 
     [ true ] whileTrue: [ (Delay forSeconds: 30) wait ].
   ] forkAt: Processor lowestPriority.
   
   
   service := SeasideHTTPService onPort: 50081 acceptInForeground: true multiThreading: false.
 *            ^2                                                                               
   GsFile gciLogServer: 'Hyper Server started on port ', 50081 printString.
   service start.
   "does not return, unless there's an error"

1: [1031] undefined symbol
2: [1031] undefined symbol

Now executing the following command saved from "iferr 1":
   where
Stack is not active
topaz 1&gt; [268 sz:0 cls: 68097 Boolean] true
topaz 1&gt; 

&lt;/pre&gt;&lt;br /&gt;
もし，分かる人がいれば，教えていただけるとうれしいです．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-8788143993092495718?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e5Ae7eFob1oU-X5WWF06U0By8EM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e5Ae7eFob1oU-X5WWF06U0By8EM/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/e5Ae7eFob1oU-X5WWF06U0By8EM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e5Ae7eFob1oU-X5WWF06U0By8EM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/8F3K35M1c2c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/8788143993092495718/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/08/smalltalk-glass.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8788143993092495718?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8788143993092495718?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/8F3K35M1c2c/smalltalk-glass.html" title="[Smalltalk] GLASSを起動してみようとしたが，失敗．" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/08/smalltalk-glass.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YNQXk8fip7ImA9Wx5XGU4.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-1383233476597973530</id><published>2010-08-24T00:58:00.001+09:00</published><updated>2010-09-20T07:26:30.776+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-20T07:26:30.776+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Windows 7を購入してみました</title><content type="html">いろいろなソフトウェアなどの検証のために，Windows 7を購入してみました．&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HmZhi2U5N_w/THKaWUzPKCI/AAAAAAAABG0/W6fv6hw5E00/s1600/%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%882010-08-21+13.17.44%EF%BC%89.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HmZhi2U5N_w/THKaWUzPKCI/AAAAAAAABG0/W6fv6hw5E00/s320/%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%882010-08-21+13.17.44%EF%BC%89.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
インストールもXPより楽になっています．また，Vistaのようにログインが遅くありません．&lt;br /&gt;
&lt;br /&gt;
言いたいことはそれだけです．はい．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=ringosseed-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=B002ST6D02" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-1383233476597973530?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1b21RQswiXN22or_xNApwnVD96E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1b21RQswiXN22or_xNApwnVD96E/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/1b21RQswiXN22or_xNApwnVD96E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1b21RQswiXN22or_xNApwnVD96E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/l5vsMMFXX74" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/1383233476597973530/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/08/windows-7.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1383233476597973530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1383233476597973530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/l5vsMMFXX74/windows-7.html" title="Windows 7を購入してみました" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HmZhi2U5N_w/THKaWUzPKCI/AAAAAAAABG0/W6fv6hw5E00/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%882010-08-21+13.17.44%EF%BC%89.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/08/windows-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04FSHg_cSp7ImA9Wx5RF0o.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-784031856914821497</id><published>2010-08-21T12:27:00.003+09:00</published><updated>2010-08-26T06:31:59.649+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-26T06:31:59.649+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Smalltalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Gemstone" /><title>[Smalltalk] GemStone（GLASS）をインストールしてみた</title><content type="html">サーバを新設したので，GemStone（GLASS）をインストールしてみました．&lt;br /&gt;
&lt;br /&gt;
GemStoneは，OODBと説明されるのですが，OODBというより多人数で使えるSmalltalkの処理系の１つだととらえるとしっくりきます．&lt;br /&gt;
&lt;br /&gt;
インストールしたのは，Cent OS 5.5．&lt;br /&gt;
GemStoneは64bit環境で動作するため，インストールする際にはご注意を．&lt;br /&gt;
&lt;br /&gt;
http://seaside.gemstone.com/downloads.html よりinstallGemstone.shをダウンロードして，実行する．&lt;br /&gt;
このとき，シェルを実行する際は通常ユーザで行ないましょう．&lt;br /&gt;
&lt;br /&gt;
あとは，サーバにインストールして外部に公開する人は，ファイアウォールの設定を変えておきましょう．&lt;br /&gt;
&lt;br /&gt;
GLASS (GemStone Seaside)&lt;br /&gt;
http://seaside.gemstone.com/about.html&lt;br /&gt;
&lt;br /&gt;
ちなみに，公式サイトではVMWareのイメージも配布されているので，すぐに使いたい人はそちらでお試しすることができます．&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-784031856914821497?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gX0DQGusUbsRQyU18ryOII7F-Hc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gX0DQGusUbsRQyU18ryOII7F-Hc/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/gX0DQGusUbsRQyU18ryOII7F-Hc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gX0DQGusUbsRQyU18ryOII7F-Hc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/GMZqrK6cu9g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/784031856914821497/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/08/gemstoneglass.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/784031856914821497?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/784031856914821497?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/GMZqrK6cu9g/gemstoneglass.html" title="[Smalltalk] GemStone（GLASS）をインストールしてみた" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/08/gemstoneglass.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIERHY_fCp7ImA9Wx5SEEw.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-6754990780812204886</id><published>2010-08-05T22:55:00.000+09:00</published><updated>2010-08-05T22:55:05.844+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-05T22:55:05.844+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Command" /><title>[Command] script</title><content type="html">ターミナル入出力をログとして保存するには，scriptを使いましょう．&lt;br /&gt;
&lt;br /&gt;
任意のディレクトリに移動して，以下のコマンドを入力します．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;$ script test.log
&lt;/pre&gt;&lt;br /&gt;
ログを終了させるには，&lt;br /&gt;
&lt;pre class="prettyprint"&gt;$ exit
&lt;/pre&gt;を入力します．&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-6754990780812204886?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/G4thuIOo3m6v-TZvkgHrRIcnBl0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G4thuIOo3m6v-TZvkgHrRIcnBl0/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/G4thuIOo3m6v-TZvkgHrRIcnBl0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G4thuIOo3m6v-TZvkgHrRIcnBl0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/RL8TJNjGh-E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/6754990780812204886/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/08/command-script.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/6754990780812204886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/6754990780812204886?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/RL8TJNjGh-E/command-script.html" title="[Command] script" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/08/command-script.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcARXYzeip7ImA9Wx5TFUk.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-3883436777184060456</id><published>2010-07-31T12:32:00.003+09:00</published><updated>2010-07-31T12:47:24.882+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-31T12:47:24.882+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><title>[Squeak] ボゴソート？</title><content type="html">同僚にボゴソートというのいうソート？があるのを聞いたので，作ってみた．&lt;br /&gt;
説明を受けた通りに実装したみた．&lt;br /&gt;
&lt;br /&gt;
合っているのかよくわからない・・・．&lt;br /&gt;
最悪計算量，無限大ってどうなんでしょうね．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;Transcript clear.
x := 10.
box := Array new:x.
1 to:x do:[:v | box at:v put: (1 to: 100) atRandom].
box do:[:v |Transcript show:v; show:Character space. ].
Transcript cr.
c := 1.
counter := 1.
[box size = counter] whileFalse:[
  counter := 1.
  box := box shuffle.
  2 to: box size do:[:i | 
    ((box at: i -1) &lt; (box at: i) )
         ifTrue:[ counter := counter + 1]
  ].
 c := c + 1.
].

box do:[:v |Transcript show:v; show:Character space. ].
Transcript cr;show:'loop counter='; show:c; cr.
&lt;/pre&gt;
&lt;br /&gt;
ソートとよべるのか？　これは，奇跡を待つだけのソートだと思う．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-3883436777184060456?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wpYxB0yvWojOCWktKGJTbTPiVx8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wpYxB0yvWojOCWktKGJTbTPiVx8/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/wpYxB0yvWojOCWktKGJTbTPiVx8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wpYxB0yvWojOCWktKGJTbTPiVx8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/Pc5UsssgEiI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/3883436777184060456/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/squeak_31.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3883436777184060456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3883436777184060456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/Pc5UsssgEiI/squeak_31.html" title="[Squeak] ボゴソート？" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/squeak_31.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04ARHs8eSp7ImA9Wx5RF0o.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-8611933769467056803</id><published>2010-07-26T23:31:00.002+09:00</published><updated>2010-08-26T06:32:25.571+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-26T06:32:25.571+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Smalltalk" /><category scheme="http://www.blogger.com/atom/ns#" term="VisualWorks" /><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><title>[Smalltalk] Smalltalkの虎の巻</title><content type="html">sumimさんがSmalltalkのチートシートを書かれたようです．&lt;br /&gt;
個人的には，読む価値がかなりある記事だと思います．&lt;br /&gt;
&lt;br /&gt;
話題の Big Scripting Languages チートシートの Smalltalk の空欄を埋めてみた - Smalltalkのtは小文字です&lt;br /&gt;
&lt;br /&gt;
http://d.hatena.ne.jp/sumim/20100726/p1&lt;br /&gt;
http://d.hatena.ne.jp/sumim/20100727/p1&lt;br /&gt;
&lt;br /&gt;
最初見たとき，ちょっと感動しちゃった．&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;タイトルを虎の巻にしたのは，Eclipseの日本語ローカライズが「チートシート」を「虎の巻」と訳していたからw&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-8611933769467056803?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sspKOT4dUGRYAF4XEZb5DndyAto/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sspKOT4dUGRYAF4XEZb5DndyAto/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/sspKOT4dUGRYAF4XEZb5DndyAto/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sspKOT4dUGRYAF4XEZb5DndyAto/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/aHIqG84q_Wo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/8611933769467056803/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/smalltalk.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8611933769467056803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8611933769467056803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/aHIqG84q_Wo/smalltalk.html" title="[Smalltalk] Smalltalkの虎の巻" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/smalltalk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQHQH87eSp7ImA9Wx5RE0o.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-8761319910939206612</id><published>2010-07-26T22:28:00.087+09:00</published><updated>2010-08-21T16:55:31.101+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-21T16:55:31.101+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Objective-C" /><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><title>[Squeak][Objective-C] へっぽこSqueak SmalltalkユーザによるSqueak Smalltalkで考えるObjective-C その1</title><content type="html">私はinputはしてもoutputをあまりしてこなかったので，文章を書くのが下手．&lt;br /&gt;
未だに知識がしっかりつかないのは，outputがきちんとできないため．&lt;br /&gt;
&lt;br /&gt;
ということで，需要があるかわかりませんが，へっぽこSqueak SmalltalkユーザによるSqueak Smalltalkで考えるObjective-Cを書いてみます（おそらく大学の身内しか必要ないだろう）． &lt;br /&gt;
&lt;br /&gt;
でも，時間がないので，テキトーなメモです．&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Hello World&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;Transcript cr; show:'Hello World'.
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
&lt;pre class="prettyprint"&gt;// file name &amp;nbsp; -&amp;gt; &amp;nbsp;test.m
#import&amp;lt;foundation/foundation.h&amp;gt;
int main(void){
&amp;nbsp;&amp;nbsp;NSLog(@"Hello World");
&amp;nbsp;&amp;nbsp;return 0;
}
&lt;/pre&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;実行方法&lt;/span&gt;&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;"Workspaceに記述し，do it"
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
例&lt;br /&gt;
端末で以下のような方法でコンパイル&lt;br /&gt;
&lt;pre class="prettyprint"&gt;$ gcc -framework Foundation &amp;nbsp;test.m
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;リテラル&lt;/span&gt;&lt;br /&gt;
Objective-CはC言語のリテラルが使えます．&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;コメント&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Squeak Smalltalk&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;ダブルクオーテーションで囲みます．&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Objective-C&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;// または，/* ・・・*/　です．&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;数&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
全てオブジェクトとして扱います．&lt;br /&gt;
&lt;br /&gt;
Objective-C&lt;br /&gt;
Cの基本データ型の数値とNSNumberクラスのインスタンスがある．&lt;br /&gt;
NSIntegerは普通のintまたはlong．&lt;br /&gt;
&lt;br /&gt;
例&lt;br /&gt;
&lt;pre class="prettyprint"&gt;NSNumber *number = [NSNumber numberWithFloat: 1.0];
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;文字列&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
シングルクオーテーションで囲みます．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;'文字列です'
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
C言語の文字列以外に，NSStringのインスタンスの文字列があります．&lt;br /&gt;
&lt;br /&gt;
ダブルクオーテーションで囲み，先頭に@を付けます．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;@"文字列です"
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;代入&lt;/b&gt;&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;&amp;nbsp;:=
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
&lt;pre class="prettyprint"&gt;=
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;文末&lt;/b&gt;&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;."ピリオド"
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
&lt;pre class="prettyprint"&gt;; //セミコロン
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;メッセージ式&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;'Ringo no Tane' size. "文字列の長さを求める"
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
[ ] で囲むことにより，メッセージが送信できます．Objective-Cにはメッセージ式による優先順位がない．優先順位は括弧の付け方で決定される．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;[@"Ringo no Tane" length]; //文字列の長さを求める&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;算術演算&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
Smalltalkでは，メッセージ式の優先順位で計算をする．&lt;br /&gt;
&lt;br /&gt;
Objective-C&lt;br /&gt;
C言語と同様な優先順位で行なわれる．&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;カスケード&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;; "セミコロン"&lt;/pre&gt;&lt;br /&gt;
例&lt;br /&gt;
&lt;pre class="prettyprint"&gt;"カスケードなし"
Transcript cr.
Transcript show:'Hello'.

"カスケードあり"
Transcript cr; show:'Hello'.
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
存在しません．&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ブール値&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;true "真，Trueクラスのインスタンス"
false "偽，Falseクラスのインスタンス"
nil "不定"
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
Bool型はブール値を扱うための方&lt;br /&gt;
&lt;pre class="prettyprint"&gt;YES //真を表す定数 0でない値
NO //偽を表す定数 0
nil //nullのオブジェクトを示す．nilはid型の空ポインタ．値は0．
&lt;/pre&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;制御構造&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;if&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
if文はありませんが，ifに相当するメソッドが実装されています．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;1 &amp;gt; 0 ifTrue:[ &amp;nbsp;Transcript show:'Ha Ha Ha!!'; cr. ].
&lt;/pre&gt;Objective-C&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;if(1 &amp;gt; 0){
&amp;nbsp;&amp;nbsp;printf("Ha ha Ha!\n");
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;while&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
&lt;pre class="prettyprint"&gt;i := 0.
[i&amp;lt;4] whileTrue:[ Transcript cr;show:'hoge'. i := i + 1. ].
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
&lt;pre class="prettyprint"&gt;int i = 0;
while(i&amp;lt;4){
  printf("hoge\n");
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;for&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalk&lt;br /&gt;
for文のように振る舞うto:, to:do:, to:by:do:があります．&lt;br /&gt;
&lt;br /&gt;
例&lt;br /&gt;
&lt;pre class="prettyprint"&gt;1 to: by:1 10 do:[:v | Transcript cr;show:v ].
&lt;/pre&gt;&lt;br /&gt;
Objective-C&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;int i;
for(i=1; i&amp;lt;11; i=i+1){
  printf("%d",i);
}
&lt;/pre&gt;SmalltalkのイテレータとObjective-C高速列挙&lt;br /&gt;
別の時に説明します．&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;switch&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Squeak Smalltalkにはありません．&lt;br /&gt;
余談，SmallTalk R4.1　http://smalltalk.smalltalk-users.jp/　ならあります．&lt;br /&gt;
&lt;br /&gt;
Objective-C&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/1261376307522255868-8761319910939206612?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ANHPPfbBnMlP-XfXk8Whg1O65Go/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ANHPPfbBnMlP-XfXk8Whg1O65Go/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/ANHPPfbBnMlP-XfXk8Whg1O65Go/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ANHPPfbBnMlP-XfXk8Whg1O65Go/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/-6Vr_uqy8VQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/8761319910939206612/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/squeakobjective-c-squeak.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8761319910939206612?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/8761319910939206612?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/-6Vr_uqy8VQ/squeakobjective-c-squeak.html" title="[Squeak][Objective-C] へっぽこSqueak SmalltalkユーザによるSqueak Smalltalkで考えるObjective-C その1" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/squeakobjective-c-squeak.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AMSH05fip7ImA9Wx5XFkk.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-302995557131766782</id><published>2010-07-26T21:07:00.001+09:00</published><updated>2010-09-16T21:56:29.326+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-16T21:56:29.326+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Objective-C" /><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title>[Objective-C] 基礎から学ぶ iPhoneアプリ開発</title><content type="html">「Objective-C逆引きハンドブック」の著者である林 晃さんが，新しい本を出されました．&lt;br /&gt;
&lt;br /&gt;
「基礎から学ぶ iPhoneアプリ開発」&lt;br /&gt;
&lt;br /&gt;
昨日本屋で発見．思わず購入．&lt;br /&gt;
&lt;br /&gt;
Core DataについてがAppleのDocumentより分かりやすいことと，具体的なサンプルがあって，良書です．&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=ringosseed-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=486354071X" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Objective-C逆引きハンドブックは，萩原さんの詳解Objective-C 2.0と一緒に持っておくとかなりいい．&lt;br /&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=ringosseed-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4863540515" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Objective-Cのサンプルコードが，これほど多くまとめられているものは私の知っている限り数少ないと思う．&lt;br /&gt;
特に日本語で，非常に意味のあるサンプルコードばかりなので，Objective-Cをしっかりと使いたいひとにはお勧めだと思います．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-302995557131766782?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/F4dk_JA6jS84Oe98K7f71howpHY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F4dk_JA6jS84Oe98K7f71howpHY/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/F4dk_JA6jS84Oe98K7f71howpHY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F4dk_JA6jS84Oe98K7f71howpHY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/5DorgoW3ioQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/302995557131766782/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/objective-c-iphone.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/302995557131766782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/302995557131766782?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/5DorgoW3ioQ/objective-c-iphone.html" title="[Objective-C] 基礎から学ぶ iPhoneアプリ開発" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/objective-c-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcFSXs4fyp7ImA9Wx5TFUk.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-2592207693823355586</id><published>2010-07-25T09:04:00.013+09:00</published><updated>2010-07-31T12:46:58.537+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-31T12:46:58.537+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><category scheme="http://www.blogger.com/atom/ns#" term="VisualWorks" /><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><category scheme="http://www.blogger.com/atom/ns#" term="Haskell" /><title>[Squeak][VisualWorks] fold:</title><content type="html">相変わらず，どうでもいいこと書きます．&lt;br /&gt;
&lt;br /&gt;
http://lists.gforge.inria.fr/pipermail/pharo-project/2010-July/029669.html&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;fold:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
foldと言われると，Squeakでは，inject:into:がすぐに思いつく．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;#(1 2 3) inject:0 into:[:v1 v2 | v1 + v2 ].
&lt;/pre&gt;&lt;br /&gt;
Haskellでは&lt;br /&gt;
&lt;pre class="prettyprint"&gt;foldl (+) 0 [1, 2, 3]
&lt;/pre&gt;Schemeでは&lt;br /&gt;
&lt;pre class="prettyprint"&gt;(fold + 0 '(1 2 3))
&lt;/pre&gt;&lt;br /&gt;
私のような初心者プログラマーは，初期値を考えるのが大変なので，ついつい，以下のようなコードを書いてしまいそうになってしまう．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;array := Array with: 1 with: 2 with:3.
x := array first.
xs := array allButFirst.
xs inject:x into:[:v1 :v2 | v1 + v2 ].
&lt;/pre&gt;&lt;br /&gt;
このプログラムでは，allButFirstで，新たに配列を生成しているので，非効率．&lt;br /&gt;
やはり，きちんと初期値を決めなければなりません．&lt;br /&gt;
&lt;br /&gt;
一方，Schemeでは，&lt;br /&gt;
&lt;pre class="prettyprint"&gt;gosh&gt; (define array '(1 2 3))
gosh&gt; (fold + (car array) (cdr array))
6
&lt;/pre&gt;&lt;br /&gt;
cdrは新たにリストを作成しているわけではないので，心配ありません．&lt;br /&gt;
&lt;br /&gt;
それなら，初期値を考えていれればいいと言われる方もいると思いますが，これが意外と難しい．&lt;br /&gt;
例えば，配列の中から最大値を求めるのを&lt;b&gt;inject:into:&lt;/b&gt;を書こうと思うと・・・．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;array := Array with:-10 with:2 with:100.
array inject:  Float infinity negated into:[:v1 :v2 | v1 max: v2 ].
&lt;/pre&gt;この場合は，マイナス無限大を初期値にする．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ちなみにVisualWorksでは，SequenceableCollection&amp;gt;&amp;gt;fold: が実装されている（さすが！）．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;array := Array with:1 with:2 with:3.
array fold:[:v1 :v2 | v1 + v2 ].
&lt;/pre&gt;&lt;br /&gt;
実装方法は，以下の通り．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;SequenceableCollection&amp;gt;&amp;gt;fold: 
 | size nextValue |
 (size := self size) = 0 ifTrue: [^self emptyCollectionError].
  nextValue := self at: 1.
  2 to: size do:
  [:i | nextValue := binaryBlock value: nextValue value: (self at: i)].
  ^nextValue
&lt;/pre&gt;&lt;br /&gt;
先ほど，プログラムも簡単にかけます．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;array := Array with:-10 with:2 with:100.
array fold:[:v1 :v2 | v1 max: v2 ].
&lt;/pre&gt;&lt;br /&gt;
ただし，SequenceableCollection&amp;gt;&amp;gt;fold: では，空のコレクションが与えられると，エラーになるので，注意が必要．エラーを発生させたくないなら，inject:into:を使うべき．&lt;br /&gt;
&lt;pre class="prettyprint"&gt;#() inject: 0 into:[:v1 :v2 | v1 + v2 ]　"0が，かえってくる"
&lt;/pre&gt;&lt;br /&gt;
&lt;pre class="prettyprint"&gt;gosh&gt; (fold +  0 '())
0
&lt;/pre&gt;&lt;br /&gt;
ふー，つかれた．&lt;br /&gt;
&lt;br /&gt;
素人の意見としては，fold:が実装されるのは賛成．&lt;br /&gt;
みなさんはどう思われますか？&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr/&gt;さらに，どうてもいいこと．&lt;br /&gt;
&lt;br /&gt;
今回のでVisualWorksすごい！ってと思いましたが，Squeakユーザなので，操作がなかなか慣れない．&lt;br /&gt;
&lt;br /&gt;
もともとHaskell,Schemeは，ほどんと書けなかったのですが，さらに書けなくなりましたorz&lt;br /&gt;
&lt;br /&gt;
やっぱりReal Worldを購入すべきなのだろう．&lt;br /&gt;
英語本はもっているけど，読む時間がかかるので，やっぱり翻訳版を購入しようかな（でも高い・・・）．&lt;br /&gt;
&lt;i&gt;学生の頃に，翻訳本が出るとは思わなかったので，ついつい買ってしまった．&lt;/i&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/1261376307522255868-2592207693823355586?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EpzvOeZpgwv1Pa1f0pAnyIPvxCQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EpzvOeZpgwv1Pa1f0pAnyIPvxCQ/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/EpzvOeZpgwv1Pa1f0pAnyIPvxCQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EpzvOeZpgwv1Pa1f0pAnyIPvxCQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/rZii4wirKp8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/2592207693823355586/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/squeakvisualworks-fold.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2592207693823355586?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/2592207693823355586?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/rZii4wirKp8/squeakvisualworks-fold.html" title="[Squeak][VisualWorks] fold:" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/squeakvisualworks-fold.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08ERng_cSp7ImA9WxFaGUo.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-6220529521407552950</id><published>2010-07-24T20:35:00.002+09:00</published><updated>2010-07-24T20:43:27.649+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-24T20:43:27.649+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>日本語変換</title><content type="html">高階関数を入力しようとおもったら，ことえりの変換では「後悔関数」．&lt;br /&gt;
がっかりだorz&lt;br /&gt;
ATOKはどうなんだろう．&lt;br /&gt;
&lt;br /&gt;
iPhone, iPadもきちんと変換できなかった．&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-6220529521407552950?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EV2HzKVLe1REyJ3_3N8HNFZpszs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EV2HzKVLe1REyJ3_3N8HNFZpszs/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/EV2HzKVLe1REyJ3_3N8HNFZpszs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EV2HzKVLe1REyJ3_3N8HNFZpszs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/1le6yO4tTUs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/6220529521407552950/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/blog-post_24.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/6220529521407552950?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/6220529521407552950?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/1le6yO4tTUs/blog-post_24.html" title="日本語変換" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/blog-post_24.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkANSXo7eip7ImA9WxFaF0Q.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-1465788205747567888</id><published>2010-07-22T19:31:00.002+09:00</published><updated>2010-07-22T19:33:18.402+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-22T19:33:18.402+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><title>[Squeak] クイックソート その２</title><content type="html">&lt;a href="http://newringo.blogspot.com/2010/07/squeak.html"&gt;前回のクイックソート&lt;/a&gt;をSqueak 4.1以前のSqueakでも実行できるように変更してみました．&lt;br /&gt;
&lt;br /&gt;
相変わらず，コストは無視しています．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;quickSort := [:array  |
 | x xs left right |
 array isEmpty ifTrue:[ array ] ifFalse:[
 x := array first.
 xs := array allButFirst.
 left := xs select:[:v | v &lt; x].
 right := xs select:[:v | v &gt;= x].
  (quickSort  copy fixTemps value: left),(Array with:x), (quickSort copy fixTemps value:right )]].

quickSort copy fixTemps value: #(30 10 20 40 80 60) .
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
やっぱりSqueak 4.1がいい！&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-1465788205747567888?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qXC1d0eFF2y7ctrSnqBxXruZVvw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qXC1d0eFF2y7ctrSnqBxXruZVvw/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/qXC1d0eFF2y7ctrSnqBxXruZVvw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qXC1d0eFF2y7ctrSnqBxXruZVvw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/fzPOjsgsfbQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/1465788205747567888/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/squeak_22.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1465788205747567888?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/1465788205747567888?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/fzPOjsgsfbQ/squeak_22.html" title="[Squeak] クイックソート その２" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/squeak_22.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ACRHs7cCp7ImA9WxFaGUo.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-3740430171762932071</id><published>2010-07-22T07:08:00.004+09:00</published><updated>2010-07-24T20:42:45.508+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-24T20:42:45.508+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><title>[Squeak] クイックソート</title><content type="html">Squeakのブロックの使い方の例として．クイックソートを考えてみた．&lt;br /&gt;
&lt;br /&gt;
コストは気にせず書くと，Haskellっぽく記述できます．&lt;br /&gt;
&lt;br /&gt;
Squeak 4.1以前のSqueakだと以下のプログラムは実行できません．&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;quickSort := [:array |
| x xs left right |
array isEmpty ifTrue:[ array ] ifFalse:[
x := array first.
xs := array allButFirst.
left := xs select:[:v | v &lt; x].
 right := xs select:[:v | v &gt;= x].
(quickSort value: left ),{x}, (quickSort value:right )]].

quickSort value: #(30 10 20 40 80 60).
&lt;/pre&gt;ここでのポイントは，ブロック内リターンを使わないこと．&lt;br /&gt;
ブロックは最後に評価したオブジェクトの返り値がかえるので，それを利用すること．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;!--&lt;pre style="padding-left:10px;background-color:#F0F8FF;border-style:solid;border-width:1px;display:block;"&gt; &lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-3740430171762932071?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VQV3K_KNAam83Q3jNNMGySZIq-0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VQV3K_KNAam83Q3jNNMGySZIq-0/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/VQV3K_KNAam83Q3jNNMGySZIq-0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VQV3K_KNAam83Q3jNNMGySZIq-0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/664dxtL9Mv4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/3740430171762932071/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/squeak.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3740430171762932071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3740430171762932071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/664dxtL9Mv4/squeak.html" title="[Squeak] クイックソート" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/squeak.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQMQ348fCp7ImA9Wx5VEEg.&quot;"><id>tag:blogger.com,1999:blog-1261376307522255868.post-3965712962798069643</id><published>2010-07-19T07:23:00.018+09:00</published><updated>2010-10-03T05:46:22.074+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-03T05:46:22.074+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iPhone" /><category scheme="http://www.blogger.com/atom/ns#" term="iPad" /><category scheme="http://www.blogger.com/atom/ns#" term="Squeak" /><title>iSqueakを動かしてみる</title><content type="html">iPhoneやiPad上で動かせるSqueakとしてiSqueakというのがあります．&lt;br /&gt;
&lt;br /&gt;
そのためのコードを作者であるJohn M McIntoshさんが公開してくださっています．&lt;br /&gt;
&lt;i&gt;John M McIntoshさんに感謝です．&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
http://isqueak.org/HomePage&lt;br /&gt;
&lt;br /&gt;
このiSqueakのVMを利用してEtoysのイメージを動かしているのが，先日公開されました．&lt;br /&gt;
&lt;br /&gt;
&lt;object width="200" height="137"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gYrp31fH-Jk&amp;amp;hl=ja_JP&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gYrp31fH-Jk&amp;amp;hl=ja_JP&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="200" height="137"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
このソースはBert Freudenbergさんが公開してくれています．こちらでは，キーボード入力ができるようになっています．マルチタッチも可能．&lt;br /&gt;
&lt;br /&gt;
ということで試してみました．&lt;br /&gt;
きちんと利用できるのにするためには．少し手間がかかったので，ここに記録しておきます．&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;いろいろと間違っていたらすみません．&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
必要なもの&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Mac（intel + Snow Leopard ）&lt;/li&gt;
&lt;li&gt;Xcode（iPhone開発環境が含まれているのもの）&lt;/li&gt;
&lt;li&gt;iSqueakのソースコード&lt;/li&gt;
&lt;li&gt;PharoV10.sources.zip（iPadでEtoysを動かさないなら必要ない）&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;iPadでEtoysを動かすためのソースコード（キーボード入力を可能にする人）&lt;/li&gt;
&lt;li&gt;Etoys（Etoys-To-Go4-Final.zip）&lt;/li&gt;
&lt;li&gt;iPhone Developer Program（実機で動かしたい場合には必要です．１ライセンスで100台まで動かすことが可能なので，私に連絡していただけたら，一部の方だけなら・・・．）&lt;/li&gt;
&lt;li&gt;iPhoneまたはiPad（実機で動かしたい場合には必要です）&lt;/li&gt;
&lt;li&gt;あとは根性w？&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;まずは，iSqueakのソースコードをダウンロードしましょう．Subversionで公開されているので，保存したいディレクトリに移動して，ターミナルで以下のように入力します．&lt;br /&gt;
&lt;br /&gt;
&lt;strike&gt;$ svn co http://squeak.org/svn/squeak/trunk/&lt;/strike&gt;&lt;br /&gt;
$ svn co http://squeakvm.org/svn/squeak/trunk/&lt;br /&gt;
&lt;br /&gt;
続いてPharoV10.sources.zipをダウンロードします．&lt;br /&gt;
&lt;br /&gt;
http://www.pharo-project.org/pharo-download&lt;br /&gt;
&lt;br /&gt;
PharoV10.sources.zipを解凍して，PharoV10.sourcesをtrunk/platforms/iOS/vm/iPhone/ に入れます．&lt;br /&gt;
&lt;br /&gt;
trunk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.cを以下のように編集します．&lt;br /&gt;
&lt;br /&gt;
82行目&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #e00500; font-family: Menlo; font-size: 11px;"&gt;&lt;span style="color: #7e4824;"&gt;# include&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #e00500; font-family: Menlo; font-size: 11px;"&gt;&amp;lt;netinet/udp.h&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
以下のように変更します．&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #7e4824; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;# ifndef TARGET_OS_IS_IPHONE&lt;/div&gt;&lt;div style="color: #e00500; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #7e4824;"&gt;# include &lt;/span&gt;&amp;lt;netinet/udp.h&amp;gt;&lt;/div&gt;&lt;div style="color: #7e4824; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;#endif&lt;/div&gt;&lt;br /&gt;
ダウンロードしたiSqueak内のSqueakPureObjc.xcodeprojをダブルクリックをします（trunk/platforms/iOS/vm/ 内にあります）．&lt;br /&gt;
「ビルドと実行」をします．問題があったら大変なので，まずはシミュレータを使って実行しましょう．&lt;br /&gt;
&lt;br /&gt;
続いて，iPadでEtoysを動かしてみたいと思います．Xcodeを開いてる場合，終了します．&lt;br /&gt;
&lt;br /&gt;
以下のアドレスから，Etoys4iPad-VM.zip，touchHand-bf.1.cs，touchSensor-bf.1.csをダウンロードします．&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Bert Freudenbergさんに感謝&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
http://lists.squeakland.org/pipermail/etoys-dev/2010-June/005098.html&lt;br /&gt;
&lt;br /&gt;
touchHand-bf.1.cs，touchSensor-bf.1.csは，拡張子をcsファイルとしてダウンロードしてください．&lt;br /&gt;
&lt;br /&gt;
Etoys4iPad-VM.zipを解凍して，Etoys4iPad-VMディレクトリのplatforms/Mac\ OSObjC/vm/iPhone/Classes の中にあるファイルをtrunk/platforms/iOS/vm/iPhone/Classesにコピーします．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
続いて，Etoys-To-Go4-Final.zipをダウンロードします．&lt;br /&gt;
&lt;br /&gt;
http://www.squeakland.org/download/&lt;br /&gt;
&lt;br /&gt;
Etoys-To-Go4-Final.zipを解凍しましょう．Etoys-To-Go 4.appで右クリックをして「パッケージ内容を表示」を選択します．&lt;br /&gt;
&lt;br /&gt;
Contents/Resourcesからetoys.image，etoys.changes，EtoysV4.sources，fontsディレクトリをtrunk/platforms/iOS/vm/iPhone にコピーをします．&lt;br /&gt;
&lt;br /&gt;
コピーしたetoys.imageをEtoys-To-Go 4.appにドラッグして起動します．&lt;br /&gt;
起動したら，日本語フォントを導入するかは任意です．&lt;br /&gt;
&lt;br /&gt;
touchHand-bf.1.cs，touchSensor-bf.1.csをWorld内にドラッグをして読み込ませます．&lt;br /&gt;
&lt;br /&gt;
etoys.imageでワークスペースを開く方法がわからなかったので，Etoysのライセンス表示で開かれるWorkspaceを利用して以下のプログラムを実行．&lt;br /&gt;
&lt;br /&gt;
TouchCmdMorph new openInWorld.&lt;br /&gt;
&lt;br /&gt;
表示されたMoprhは好きな一に移動させておきます．&lt;br /&gt;
変更内容を保存します．etoys.imageだとどのように保存するかわからないので，Workspaceで以下のコードを実行．&lt;br /&gt;
&lt;br /&gt;
Smalltalk snapshot: true andQuit: true.&lt;br /&gt;
&lt;br /&gt;
終了したら，コピーしたfontsディレクトリは削除しても構いません．&lt;br /&gt;
&lt;br /&gt;
Xcodeを開きます．etoys.image，etoys.changes，EtoysV4.sourcesをXcodeの左側に表示されているResourcesフォルダにドロップします．&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HmZhi2U5N_w/TEN6Rs6Ld3I/AAAAAAAABGc/LLdB9dcdh1w/s1600/xcode_etoys_ipad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_HmZhi2U5N_w/TEN6Rs6Ld3I/AAAAAAAABGc/LLdB9dcdh1w/s320/xcode_etoys_ipad.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Xcodeで「プロジェクト」—「アクティブターゲット"SqueakNoOGLIPhone"を編集」を選び，「ビルド」のタブを選択します．&lt;br /&gt;
&lt;br /&gt;
GCC 4.2 - プリプロセスのプリプロセッサマクロにISQUEAK_SOURCES="PharoV10"とISQUEAK_IMAGE="iPhone"を追加します．&lt;br /&gt;
動作させるイメージはetoys.imageですけど，追加しないと動作しません．&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HmZhi2U5N_w/TEN7Gn7Qq9I/AAAAAAAABGs/vZ7vJf9bldc/s1600/xcode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="352" src="http://4.bp.blogspot.com/_HmZhi2U5N_w/TEN7Gn7Qq9I/AAAAAAAABGs/vZ7vJf9bldc/s400/xcode.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;ここまでが終わったら，ビルドと実行をしましょう．最初はシミュレータを使ってビルドすることをおすすめします．&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;起動すると，画面がおかしいので，command + ← をして画面を横にします．&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;横になるときちんと表示されます．&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;command + → で画面を縦にするとキーボードが表示されます．&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;仕様で画面を縦にしないと表示されません．&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;TouchCmdMorphを押しながら，pなどをするとprint itができます．&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HmZhi2U5N_w/TEN6TtJBzdI/AAAAAAAABGk/dkLEYyLYrcE/s1600/isqueak.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/_HmZhi2U5N_w/TEN6TtJBzdI/AAAAAAAABGk/dkLEYyLYrcE/s640/isqueak.png" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
素敵ですね！！&lt;br /&gt;
よかったらお試しあれ．&lt;br /&gt;
&lt;br /&gt;
私は，iPadを3.2.1にアップデートしてしまったので，iPadインストールができない状態ですorz&lt;br /&gt;
&lt;br /&gt;
iOS 4.1 betaには対応しているけど，3.2.1には対応していないのはどうなんだろう・・・．&lt;br /&gt;
Xcode早くアップデートして欲しい．&lt;br /&gt;
&lt;br /&gt;
さすがに，ここまで書くと疲れる．&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
ビルドしてきちんと動作しない場合は，Xcodeで「キャッシュを空」にして「全てのターゲットをクリーニング」しましょう．&lt;br /&gt;
他にもいったんXcodeを終了して，再度ビルドをしてみるのもいいかもしれません．&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1261376307522255868-3965712962798069643?l=newringo.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ru7wgj7EK5mgaCLOgfWXYPegaXk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ru7wgj7EK5mgaCLOgfWXYPegaXk/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/ru7wgj7EK5mgaCLOgfWXYPegaXk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ru7wgj7EK5mgaCLOgfWXYPegaXk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Oqhr/~4/Da4N9QHE0CQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://newringo.blogspot.com/feeds/3965712962798069643/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://newringo.blogspot.com/2010/07/isqueak.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3965712962798069643?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1261376307522255868/posts/default/3965712962798069643?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Oqhr/~3/Da4N9QHE0CQ/isqueak.html" title="iSqueakを動かしてみる" /><author><name>Ringo</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HmZhi2U5N_w/TEN6Rs6Ld3I/AAAAAAAABGc/LLdB9dcdh1w/s72-c/xcode_etoys_ipad.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://newringo.blogspot.com/2010/07/isqueak.html</feedburner:origLink></entry></feed>

