<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xml:lang="ja">
	<channel>
		<title>Glamenv-Septzen.net</title>
		<link>http://www.glamenv-septzen.net/index.php</link>
		<description>Glamenv-Septzen.net</description>
		<dc:creator>msakamoto-sf</dc:creator>
		<atom:link href="http://www.glamenv-septzen.net/index.php?mdl=rss&amp;mode=rss2&amp;c=&amp;s=&amp;ism=&amp;cs=&amp;ao=&amp;sb=&amp;ob=&amp;l=" rel="self" type="application/rss+xml" />
		<item>
			<title>日記/2010/09/09/「BINARY HACKS」読み終わった</title>
			<link>http://www.glamenv-septzen.net/view/776</link>
			<description><![CDATA[
<p class="paragraph">
初版購入して４年間本棚に積まれていたが、やっと読み終えた。
<br />
</p>
<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=glamenvseptze-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4873112885" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

<p class="paragraph">
教科書的な書き方はしていないのである程度の予備知識は要求されたが、トリビア・豆知識・雑学をあれこれつまみ食いしたり、広範囲に散らばりやすいLinux/UNIX世界のバイナリレイヤーの入り口をこの本一冊に集約するのに便利。binutilsのハンドブックとしても使える。
<br />
</p>

<p class="paragraph">
「なんでsoファイルを作る時は&quot;-fPIC&quot;が必要なんだろう」とか、「ld.soが実行可能でなおかつsoファイルとしてリンク可能なのはなんで？」等の疑問も解決出来た。<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=776" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Thu, 09 Sep 2010 03:54:00 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/776</guid>
<category>読書</category>
		</item>
		<item>
			<title>日記/2010/09/08/「確認」画面が必要な時</title>
			<link>http://www.glamenv-septzen.net/view/774</link>
			<description><![CDATA[
<p class="paragraph">
・入力フォームと、表示形式が大きく異なる時、「今入力した値が、実際はどう表示されるのか？」を確認してから保存したいので、「確認」画面が欲しい。
<br />
・入力内容を確認出来る、１クッションが欲しい。
<br />
・お金や個人情報のやり取りなどで、最終確認出来る１クッションが欲しい。
<br />
</p>

<p class="paragraph">
いずれにせよ、利用者の「不安感」を低減するためにも「確認画面」は有った方が良いと自分は思います。
<br />
</p>

<p class="paragraph">
最も、Twitterやチャットみたいな場面で「確認」画面を用意するのは冗長ですし利用者的にも煩わしさが先立つと思いますので、何が何でも「確認」画面が必要、というわけでは無いと思います。<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=774" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Wed, 08 Sep 2010 01:08:28 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/774</guid>

		</item>
		<item>
			<title>日記/2010/09/08/Webアプリの状態遷移と「戻る」ボタン</title>
			<link>http://www.glamenv-septzen.net/view/773</link>
			<description><![CDATA[
<p class="paragraph">
Event-Drivenな状態遷移を管理する目的でXhwlayを作ったが、Webアプリケーションで使う上で一点だけ未解決の領域があります。
<br />
それはブラウザの「戻る」ボタンです。
<br />
</p>

<p class="paragraph">
「戻る」ボタンが押された時ですが、サーバーがクライアントキャッシュが効くようなHTTPヘッダーを送信していれば、ブラウザはHTTPリクエストは送信せず、自分で保存していたキャッシュを表示します。もしサーバーがキャッシュ無効なHTTPヘッダーを送信していれば、ブラウザはHTTPリクエストを再送信するでしょう。
<br />
</p>

<p class="paragraph">
ところがXhwlayの場合、「今どのページを表示しているのか」をサーバー側で保持することになります。
<br />
５画面に分かれたウィザード形式の入力フローを想定し、例えばユーザーが画面４まで進んだ後に画面２まで「戻る」ボタンで戻って入力をやり直したい、と思っても、Xhwlayの管理上はユーザーが今居る画面は画面４のままです。従って、画面２まで「戻る」で戻ったユーザーが入力値を修正して画面２の「次へ」ボタンをクリックしたとしても、Xhwlayの管理上では画面４に対して無効なイベントがリクエストされ、おそらくは無視され、ユーザーには画面４が表示されてしまいます。そのため、「前の画面に戻って入力をやり直す」イベントやそのためのボタンをアプリ側で用意する必要がありました。
<br />
</p>

<p class="paragraph">
これをどうやって解決するかですが、以前触ったAppleのWebObjectsにヒントがありました。
<br />
WebObjectsではURL構成要素の最後、fragment(&quot;#&quot;以降)を使い、画面の履歴を裏側で保持しています。正確には画面表示に使う値をオブジェクトとして、fragmentの値に紐づけることが出来るようになっていて、WebObjectsが自動で管理してくれます。
<br />
これと「キャッシュ無効」を併せると、「戻る」ボタンでURLが再リクエストされると、そのfragmentから以前の画面表示に使われた値を取り出すことができ、以前の値を再表示可能になるという仕組みです。
<br />
・・・えっと、確かそんな感じでした。大筋は間違ってないと思います。とりあえずfragmentを履歴管理のIDとしているアイデアは間違ってないはず（;´Д｀）。
<br />
</p>

<p class="paragraph">
もちろん、無限に履歴を保持することは出来ないので、上限数も設定出来るようになっていました（たしか50とかそれくらい。50ページも「戻る」で戻るのはレアケースなので実用上はこれでOKではないでしょうか。それ以上越えると、「これ以上戻れません」的なページが表示された記憶があります）。
<br />
</p>

<p class="paragraph">
つまり、「巻き戻し再生用のID」を用意すれば解決出来そうです。格好つけて「セーブポイント」と名付けてみましょう。この「セーブポイント」にその時点での「今居るページ」を保存しておけば、巻き戻しも出来るようになります。
<br />
さらにXhwlayの場合、ページフロー遷移中にフロート紐づけたいデータを「Bookmark Data」として保持していますので、これをその時その時の「セーブポイント」に履歴として保存しておく。
<br />
こうすれば、「戻る」で任意の「セーブポイント」まで戻り、その時点でのState, Bookmark-Dataに巻き戻し、なおかつそこから進め直す事が出来るようになる・・・筈、です。多分。
<br />
</p>

<p class="paragraph">
「セーブポイント」についてはBookmark-IDとは別でHTTPリクエストに含ませることになりますが、fragmentは避けたいです。JavaScriptや画面ナビゲーションで&quot;#&quot;以降を使いたい場合も有ると思いますので。
<br />
Bookmark-IDの後ろに、&quot;.&quot;とか&quot;,&quot;で区切ってセーブポイントのIDを入れておくのが分かりやすいと思います。
<br />
</p>

<p class="paragraph">
しかしXhwlay単体だとやはり使いにくいです。毎回アプリ毎に作り込みが発生してしまう。
<br />
そろそろ、XhwlayのアイデアをCakePHPやSymfonyなど他のフレームワークに、プラグイン等の形式で移植するべきかも知れません。<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=773" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Wed, 08 Sep 2010 00:57:58 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/773</guid>
<category>PHP</category>
<category>Xhwlay</category>
		</item>
		<item>
			<title>日記/2010/09/06/「デバッガによるx86プログラム解析入門」読み終わった。</title>
			<link>http://www.glamenv-septzen.net/view/772</link>
			<description><![CDATA[
<p class="paragraph">
ようやく読み終わりました。
<br />
</p>
<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=glamenvseptze-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4798017051" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

<p class="paragraph">
OllyDbgなどデバッガを使ってWindows上のx86プログラムを解析するための入門書、まさしく名前の通りの内容です。一応前提知識についても網羅的に書かれていますが、個別の詳細までは解説されていません。本文中で詳解されている参考資料などを読み込んでおく必要があります。
<br />
少なくともPE/COFFフォーマットを理解し、アセンブラもある程度読むことが出来、Win32APIプログラミングの素養がないとキツイかも。というか自分は、そこまで勉強して、ようやく本書を読み終えることが出来ました。
<br />
</p>

<p class="paragraph">
Windows x86でのプログラム解析にまつわるトピックを広く浅く取りあげているので、さらにディープな領域に進みたいときの案内書として手元に置いておこうかと思います。
<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=772" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Mon, 06 Sep 2010 12:53:21 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/772</guid>
<category>Assembler</category>
<category>読書</category>
		</item>
		<item>
			<title>Emacs</title>
			<link>http://www.glamenv-septzen.net/view/356</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/370" title="Emacs/.emacs.el">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/356" title="Emacs">Emacs</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<ul><li> GNU Emacs<ul><li> <a class="externallink" href="http://www.gnu.org/software/emacs/" target="_blank">http://www.gnu.org/software/emacs/</a></li></ul></li>
<li> Emacs-21 @ki.nu<ul><li> <a class="externallink" href="http://emacs-21.ki.nu/" target="_blank">http://emacs-21.ki.nu/</a></li></ul></li>
<li> Emacs 電子書棚<ul><li> <a class="externallink" href="http://www.bookshelf.jp/" target="_blank">http://www.bookshelf.jp/</a></li></ul></li>
<li> Programming in Emacs Lisp(Japanese)<ul><li> <a class="externallink" href="http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html" target="_blank">http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html</a></li></ul></li></ul>

<p class="paragraph">
参考書籍：
<br />
</p>
<ul><li> <a href="http://www.glamenv-septzen.net/view/771" >日記/2010/09/05/「やさしいEmacs-Lisp講座」読書メモ</a></li></ul>

<p class="paragraph">
※Emacsを使っていたのは2003年の1年間で、Emacs20/21時代の知識になります。既に古い知識になりますが、キーバインドの設定や、当時の.emacs.elに残された設定tipsはもしかしたらまた使うかも知れませんので、残しておきます。
<br />
</p>

<hr />
<ul>
<li><a href="http://www.glamenv-septzen.net/view/370">Emacs/.emacs.el</a></li>
<li><a href="http://www.glamenv-septzen.net/view/365">Emacs/EmacsLispロードパス(load-path)の調整</a></li>
<li><a href="http://www.glamenv-septzen.net/view/364">Emacs/Infoファイルの追加</a></li>
<li><a href="http://www.glamenv-septzen.net/view/363">Emacs/M-xで始まる便利コマンド</a></li>
<li><a href="http://www.glamenv-septzen.net/view/362">Emacs/コマンド履歴の呼び出し</a></li>
<li><a href="http://www.glamenv-septzen.net/view/358">Emacs/テキストの折り返し</a></li>
<li><a href="http://www.glamenv-septzen.net/view/366">Emacs/ナローイング(選択範囲で○○する)</a></li>
<li><a href="http://www.glamenv-septzen.net/view/361">Emacs/バッファを読み込み専用に</a></li>
<li><a href="http://www.glamenv-septzen.net/view/367">Emacs/メニューバー・ツールバーの非表示</a></li>
<li><a href="http://www.glamenv-septzen.net/view/368">Emacs/モードライン(mode-line-format)</a></li>
<li><a href="http://www.glamenv-septzen.net/view/360">Emacs/指定行数にジャンプ</a></li>
<li><a href="http://www.glamenv-septzen.net/view/357">Emacs/文字コード</a></li>
<li><a href="http://www.glamenv-septzen.net/view/359">Emacs/選択リージョンの色づけ</a></li>
</ul>


<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/370" title="Emacs/.emacs.el">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/356" title="Emacs">Emacs</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=356" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 05 Sep 2010 04:12:24 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/356</guid>
<category>Emacs</category>
		</item>
		<item>
			<title>日記/2010/09/05/「やさしいEmacs-Lisp講座」読書メモ</title>
			<link>http://www.glamenv-septzen.net/view/771</link>
			<description><![CDATA[
<p class="paragraph">
「やさしいEmacs-Lisp講座」をさっくりと読み終えた。
<br />
</p>

<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=glamenvseptze-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4906391702" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

<p class="paragraph">
<strong>これを最初に読んでいれば、Emacsを嫌いにならずに済んでいたと思う程の良書。</strong>
<br />
</p>

<p class="paragraph">
簡潔かつ明快に、Emacs-Lispの書き方のエッセンス、ポイント、基本的な概念を流れるようにスマートにコンパクトに学べる。
<br />
特に嬉しいのは、マニュアルやInfoだけでは分からない関数や構文の「つなげ方」を示してくれている点。
<br />
例えば&quot;while&quot;の説明では、「C言語のforやwhileのような繰り返しを行う時は～」で
<br />
</p>
<pre>(let ((i ?a))
 (while (&lt;= i ?z)
   (insert i)
   (setq i (1+ i))))
</pre>
<p class="paragraph">
のような実践的なパターンを示してくれている。
<br />
個々の関数一つ一つの使い方を知るだけでは学べない、&quot;Emacs-Lispならではの「お作法・パターン」&quot;が随所に散りばめられており、ページ数に対する内容の濃さ・読みやすさは格別のものがある。
<br />
</p>

<p class="paragraph">
&quot;Emacs-Lisp&quot;というLisp言語の方言を解説してくれているのみならず、「Emacsというプラットフォーム」におけるEmacs-Lispの書き方のコツ・要点までを実にスマートに明快に示してくれている点が素晴らしい。
<br />
</p>

<p class="paragraph">
もしEmacsのカスタマイズ目的でEmacs-Lispの学習を始め、ASCIIやオライリーの分厚いEmacs(-Lisp)マニュアルに辟易しているのであれば、まずはこちらの一読をお奨めしたい。「なんだ、Emacs-Lispってこんなにコンパクトに学べるものだったんだ。」と目から鱗になるだろう。
<br />
</p>

<p class="paragraph">
<strong>Emacs-Lispを好きになりたい人全てにお奨め出来る、ピカイチの良著。</strong>
<br />
</p><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=771" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sun, 05 Sep 2010 04:11:03 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/771</guid>
<category>Emacs</category>
<category>読書</category>
		</item>
		<item>
			<title>SideBar</title>
			<link>http://www.glamenv-septzen.net/view/2</link>
			<description><![CDATA[
<ul><li> <a href="http://www.glamenv-septzen.net/view/8" >プロフィール</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/166" >YakiBiki</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/7" >TODO</a></li>
<li> <a href="http://www.glamenv-septzen.net/nifty/index.html" target="_blank" >Nifty時代</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/23" >技術</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/478" >C言語系</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/457" >Java</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/421" >ActionScript</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/410" >Assembler</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/409" >Erlang</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/25" >PHP</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/109" >Perl</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/184" >Python</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/474" >Ruby</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/162" >JavaScript</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/356" >Emacs</a></li>
<li> <a href="http://www.glamenv-septzen.net/index.php?mdl=help&amp;h=HelpTop">ヘルプ</a></li>
<li> <a href="http://www.glamenv-septzen.net/view/3" >SandBox</a></li>
<li> <a href="http://www.glamenv-septzen.net/index.php?mdl=new&amp;title=%E5%80%89%E5%BA%AB" >倉庫</a></li></ul>

<hr />
<div class="plugin_recent">
<span class="plugin_recent_date">2010-09-09</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/776">日記/2010/09/09/「BINARY HACKS」読み終わった</a><br />
</div>
<span class="plugin_recent_date">2010-09-08</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/774">日記/2010/09/08/「確認」画面が必要な時</a><br />
<a href="http://www.glamenv-septzen.net/view/773">日記/2010/09/08/Webアプリの状態遷移と「戻る」ボタン</a><br />
</div>
<span class="plugin_recent_date">2010-09-06</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/772">日記/2010/09/06/「デバッガによるx86プログラム解析入門」読み終わった。</a><br />
</div>
<span class="plugin_recent_date">2010-09-05</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/356">Emacs</a><br />
<a href="http://www.glamenv-septzen.net/view/771">日記/2010/09/05/「やさしいEmacs-Lisp講座」読書メモ</a><br />
</div>
<span class="plugin_recent_date">2010-09-04</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/2">SideBar</a><br />
<a href="http://www.glamenv-septzen.net/view/770">技術/vim/メモ2, ウインドウ, タブ</a><br />
<a href="http://www.glamenv-septzen.net/view/38">技術/vim/メモ1</a><br />
</div>
<span class="plugin_recent_date">2010-09-02</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/769">C言語系/memos/VC++/11, 構造化例外処理と&quot;/SAFESEH&quot;リンカオプション</a><br />
</div>
<span class="plugin_recent_date">2010-09-01</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/768">技術/Windows/Matt Pietrek氏MSJ私家版PDF</a><br />
</div>
<span class="plugin_recent_date">2010-08-30</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/765">日記/2010/08/30/黒歴史の撲滅</a><br />
</div>
<span class="plugin_recent_date">2010-08-26</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/757">PHP/Tips/parse_ini_fileで値に記号を使う時のPHP4&lt;&gt;5間の相違点</a><br />
</div>
<span class="plugin_recent_date">2010-08-23</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/734">日記/2010/08/23/RPM, specファイルの&quot;%makeinstall&quot;マクロのメモ</a><br />
</div>
<span class="plugin_recent_date">2010-08-19</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/730">技術/VMware/時刻ズレ対策メモ</a><br />
<a href="http://www.glamenv-septzen.net/view/731">技術/Linux/CentOS 5.3 をクライアントとして使う時のntpd</a><br />
<a href="http://www.glamenv-septzen.net/view/733">日記/2010/08/19/TortoiseSVNでsvn+sshをputtyで接続する時の注意点</a><br />
<a href="http://www.glamenv-septzen.net/view/732">日記/2010/08/19/pageant.exeをスタートアップに登録しようとして嵌ったメモ</a><br />
</div>
<span class="plugin_recent_date">2010-08-18</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/729">日記/2010/08/18/フリーのER図作成ツール「A5:SQL Mk-2」</a><br />
</div>
<span class="plugin_recent_date">2010-08-13</span>
<div class="plugin_recent_page">
<a href="http://www.glamenv-septzen.net/view/728">PHP/Tips/テキスト中のURL自動リンク</a><br />
</div>
</div>

<hr />
<div class="plugin_newcomments">
<h6>最新コメント10件</h6>
<a href="http://www.glamenv-septzen.net/view/211#cf_1">2009-03-21</a>&nbsp;by&nbsp;msakamoto-sf<br />
</div>
<br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=2" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sat, 04 Sep 2010 13:37:45 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/2</guid>

		</item>
		<item>
			<title>技術/vim/メモ2, ウインドウ, タブ</title>
			<link>http://www.glamenv-septzen.net/view/770</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/38" title="技術/vim/メモ1">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/327" title="技術/プロトコルまとめメモ(HTTP,SMTP,POP3)">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/23" title="技術">技術</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
参考
<br />
</p>
<ul><li> vimのタブ操作 簡単まとめ | jigelog<ul><li> <a class="externallink" href="http://jigen.aruko.net/2007/01/26/tab-operation-simple-summary-of-vim/" target="_blank">http://jigen.aruko.net/2007/01/26/tab-operation-simple-summary-of-vim/</a></li></ul></li>
<li> Vim-users.jp - Hack #25: タブページで複数の画面を管理する<ul><li> <a class="externallink" href="http://vim-users.jp/2009/06/hack25/" target="_blank">http://vim-users.jp/2009/06/hack25/</a></li></ul></li>
<li> vimで効率的にコードを書くための小技 - bonar note<ul><li> <a class="externallink" href="http://d.hatena.ne.jp/bonar/20070415/1176651778" target="_blank">http://d.hatena.ne.jp/bonar/20070415/1176651778</a></li></ul></li></ul>


<h3 id="idaef557">ウインドウ分割・ウインドウ間移動</h3>

<p class="paragraph">
・とりあえず編集中のウインドウを分割したい。
<br />
</p>
<pre>C-w s → 垂直方向
C-w v → 水平方向
</pre>

<p class="paragraph">
・新しいファイルを開く時にウインドウを分割したい。
<br />
</p>
<pre>垂直方向
:new ファイル名
</pre>

<pre>水平方向
:vnew ファイル名
</pre>

<p class="paragraph">
・空っぽのウインドウで分割したい。
<br />
</p>
<pre>C-w n
</pre>
<p class="paragraph">
個人的には「空っぽ」よりかは、&quot;:new .&quot;でディレクトリ(Netrw)を開く方が好み。
<br />
</p>

<p class="paragraph">
・ウインドウを移動
<br />
</p>
<pre>C-w h/j/k/l
</pre>
<p class="paragraph">
個人的には次の&quot;C-w w&quot;の方が単純で好き。
<br />
</p>
<pre>C-w w 次のウインドウに移動
</pre>
<p class="paragraph">
基本的に垂直分割しか使ってないので。
<br />
</p>

<p class="paragraph">
・現在のウインドウを最大化
<br />
</p>
<pre>C-w _
</pre>

<p class="paragraph">
・全てのウインドウサイズを揃える
<br />
</p>
<pre>C-w =
</pre>

<h3 id="id263999">タブ分割・タブ移動</h3>

<p class="paragraph">
・新しいタブを開く
<br />
</p>
<pre>:tabnew (ファイル名)
:tabedit (ファイル名)
</pre>

<p class="paragraph">
・タブ切替
<br />
</p>
<pre>:tabnext or &quot;gt&quot;
:tabprevious or &quot;gT&quot;
:tabfirst
:tablast
</pre>

<p class="paragraph">
・タブ一覧と移動
<br />
</p>
<pre>:tabs
:tabmove タブ番号
</pre>

<p class="paragraph">
・オプション
<br />
set tabpagemax=15 ; 同時タブ表示数
<br />
set showtabline=0 ; タブバー非表示
<br />
</p>

<h3 id="id04be60">Netrw directory listing からの便利操作</h3>

<pre>(ファイル or ディレクトリ上で) &quot;o&quot;
→ ウインドウを分割し、新しいウインドウでファイル or ディレクトリを表示
</pre>

<pre>(ファイル or ディレクトリ上で) &quot;t&quot;
→ 新しいタブでファイル or ディレクトリを表示
</pre>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/38" title="技術/vim/メモ1">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/327" title="技術/プロトコルまとめメモ(HTTP,SMTP,POP3)">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/23" title="技術">技術</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=770" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sat, 04 Sep 2010 04:43:46 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/770</guid>

		</item>
		<item>
			<title>技術/vim/メモ1</title>
			<link>http://www.glamenv-septzen.net/view/38</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/156" title="技術/vim/vimrc">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/770" title="技術/vim/メモ2, ウインドウ, タブ">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/23" title="技術">技術</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<p class="paragraph">
基本：「名無しのvim使い」を見ておきたい。
<br />
<a class="externallink" href="http://nanasi.jp/" target="_blank">http://nanasi.jp/</a>
<br />
</p>

<h3 id="idf818bf">文字コード・改行コードの変更</h3>

<ul><li> 「vimエディタで「文字コード、改行コードを変更して保存する。」」<ul><li> <a class="externallink" href="http://advweb.seesaa.net/article/3074705.html" target="_blank">http://advweb.seesaa.net/article/3074705.html</a></li></ul></li>
<li> 「ファイルの文字コード、フォーマットを指定して、読み直す。」<ul><li> <a class="externallink" href="http://nanasi.jp/articles/howto/file/open-with-format.html" target="_blank">http://nanasi.jp/articles/howto/file/open-with-format.html</a></li></ul></li>
<li> 「ファイルのエンコーディング、改行コードを変更して、ファイルを保存する。」<ul><li> <a class="externallink" href="http://nanasi.jp/articles/howto/file/save-with-format.html" target="_blank">http://nanasi.jp/articles/howto/file/save-with-format.html</a></li></ul></li></ul>

<p class="paragraph">
「vimエディタで「文字コード、改行コードを変更して保存する。」」からの抜粋：
<br />
</p>

<p class="paragraph">
・文字コードの変更
<br />
</p>
<pre>:set fileencoding=文字コード
:set fenc=文字コード (上のコマンドの短い形式。こちらでも良い。)
:set fileencoding=euc-jp (エンコーディングEUC-JPに変更。)
:set fileencoding=shift_jis (エンコーディングSHIFT_JISに変更。)
:set fileencoding=utf-8 (エンコーディングUTF-8に変更。)
</pre>

<p class="paragraph">
・ファイルフォーマットの種類の変更
<br />
</p>
<pre>:set fileformat=ファイルフォーマットの種類
:set ff=ファイルフォーマットの種類 (上のコマンドの短い形式。こちらでも良い。)
:set fileformat=dos (改行をWindowsの形式に変更。)
:set fileformat=mac (改行をMacの形式に変更。)
:set fileformat=unix (改行をUnixの形式に変更。)
</pre>

<p class="paragraph">
・ファイルが文字化けしている場合のエンコーディングの修正の手順
<br />
</p>
<pre>:e ++enc=utf-8 ... まず、ファイルを文字化けしない、正しいエンコーディングで開き直します。
:set fileencoding=euc-jp ... 変更したいファイルのエンコーディングをセットします。
:w ... 最後にファイルの保存を行います。
</pre>

<h3 id="ida389fe">バッファの一覧とバッファの消去</h3>

<p class="paragraph">
基本：「vimエディタ・スターターマニュアル #6 （複数のバッファの管理）」
<br />
<a class="externallink" href="http://nanasi.jp/articles/howto/user-manual/user-manual-buffer.html" target="_blank">http://nanasi.jp/articles/howto/user-manual/user-manual-buffer.html</a>
<br />
</p>

<p class="paragraph">
・バッファ一覧
<br />
</p>
<pre>:ls
</pre>

<p class="paragraph">
・バッファ一覧で確認出来たバッファ番号を使って、バッファを切替
<br />
</p>
<pre>:b バッファ番号
</pre>

<p class="paragraph">
・非表示のバッファも含めて全て表示する。
<br />
</p>
<pre>:buffers!
</pre>

<p class="paragraph">
・バッファを完全に解放する。
<br />
</p>
<pre>:bwipe
</pre>

<h3 id="id77b7af">ビジュアルに選択</h3>

<p class="paragraph">
・大文字V → 複数行選択開始
<br />
・小文字v → 通常のビジュアル選択開始
<br />
</p>

<p class="paragraph">
以下はvimオンリー
<br />
・C-v → ビジュアルな矩形選択開始
<br />
</p>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/156" title="技術/vim/vimrc">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/770" title="技術/vim/メモ2, ウインドウ, タブ">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/23" title="技術">技術</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=38" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Sat, 04 Sep 2010 04:43:20 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/38</guid>

		</item>
		<item>
			<title>C言語系/memos/VC++/11, 構造化例外処理と&quot;/SAFESEH&quot;リンカオプション</title>
			<link>http://www.glamenv-septzen.net/view/769</link>
			<description><![CDATA[
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/694" title="C言語系/memos/VC++/10, &quot;/NODEFAULTLIB&quot;使用時の注意">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/482" title="C言語系/memos/autoconf">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/478" title="C言語系">C言語系</a>&nbsp;]</li>
</ul>
<hr class="full_hr" />

<h3 id="id0fcad9">参考リンク</h3>

<p class="paragraph">
<strong>参考リンクのまとめメモです。</strong>
<br />
</p>

<h4 id="id69fcab">初級：構造化例外処理の使い方を学ぶ</h4>

<ul><li> MSDNの基本情報<ul><li> &quot;MSDN Library&quot; &gt; &quot;Windows Development&quot; &gt; &quot;Diagnostics&quot; &gt; &quot;Debugging and Error Handling&quot; &gt; &quot;Structured Exception Handling&quot;</li></ul></li>
<li> SEHのサンプル<ul><li> &quot;MSDN Library&quot; &gt; &quot;Windows Development&quot; &gt; &quot;Diagnostics&quot; &gt; &quot;Debugging and Error Handling&quot; &gt; &quot;Structured Exception Handling&quot; &gt; &quot;Using Structured Exception Handling&quot;</li></ul></li>
<li> &quot;Windows の内部動作 - Web/DB プログラミング徹底解説&quot; : 例外処理の一通りの日本語解説<ul><li> <a class="externallink" href="http://keicode.com/windows/index5.php" target="_blank">http://keicode.com/windows/index5.php</a><ul><li> 「例外処理」の見出し参照</li></ul></li></ul></li>
<li> VC++構造化例外メモ(Hishidama&#039;s VC++2005 SEH Memo)<ul><li> <a class="externallink" href="http://www.ne.jp/asahi/hishidama/home/tech/vcpp/seh.html" target="_blank">http://www.ne.jp/asahi/hishidama/home/tech/vcpp/seh.html</a></li></ul></li></ul>

<h4 id="idb39cb2">中級：構造化例外処理の実装とC++の例外処理の関係について学ぶ</h4>

<p class="paragraph">
アセンブラ知識が必要。内容も非常に濃厚。
<br />
</p>

<ul><li> A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997<ul><li> <a class="externallink" href="http://www.microsoft.com/msj/0197/exception/exception.aspx" target="_blank">http://www.microsoft.com/msj/0197/exception/exception.aspx</a><ul><li> アセンブラレベルでの構造化例外処理の実装詳解</li></ul></li></ul></li>
<li> How a C++ compiler implements exception handling - CodeProject<ul><li> <a class="externallink" href="http://www.codeproject.com/kb/cpp/exceptionhandler.aspx" target="_blank">http://www.codeproject.com/kb/cpp/exceptionhandler.aspx</a><ul><li> C++の例外処理が構造化例外処理を使ってどのようにVC++で実現されているかの解説</li></ul></li></ul></li></ul>

<h4 id="idc13d94">上級：&quot;/SAFESEH&quot;とセキュリティ関連の話題</h4>

<p class="paragraph">
なぜ&quot;/SAFESEH&quot;を使うべきなのか？それはバッファオーバーフローを使ってスタック上に展開された例外ハンドラのアドレスを書き換える&quot;SEH Overwiting Expoit&quot;という攻撃を防止するためである。しかしロードされる他のモジュールの&quot;/SAFESEH&quot;有無やSoftwareDEPの有効・無効によって回避される場合もあり、万能ではない。
<br />
また&quot;/SAFESEH&quot;はx86のみ有効である点も注意が必要である。x64におけるSEHの仕組みについての解説記事へのリンクも載せているので、参照されたい。
<br />
</p>

<ul><li> Nothing But Programming - SEH<ul><li> <a class="externallink" href="http://programming.jugglershu.net/study/seh.html" target="_blank">http://programming.jugglershu.net/study/seh.html</a><ul><li> セキュリティの観点で SEH, &quot;/SAFESEH&quot; を包括的に解説した記事。アセンブラコードは出てこない。メモリイメージを図で描いてくれているので、分かりやすい。</li></ul></li></ul></li>
<li> Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link)<ul><li> <a class="externallink" href="http://d.hatena.ne.jp/xna/20091018/1255876308" target="_blank">http://d.hatena.ne.jp/xna/20091018/1255876308</a><ul><li> x64でのSEHの仕組みに言及されている包括的な解説記事。</li></ul></li></ul></li>
<li> Exploit writing tutorial part 6 : Bypassing Stack Cookies, SafeSeh, SEHOP, HW DEP and ASLR | Peter Van Eeckhoutte&#039;s Blog<ul><li> <a class="externallink" href="http://www.corelan.be:8800/index.php/2009/09/21/exploit-writing-tutorial-part-6-bypassing-stack-cookies-safeseh-hw-dep-and-aslr/" target="_blank">http://www.corelan.be:8800/index.php/2009/09/21/exploit-writing-tutorial-part-6-bypassing-stack-cookies-safeseh-hw-dep-and-aslr/</a><ul><li> &quot;/GS&quot;オプションによるstack上のcookieチェックをSEH Overwriteで回避するなど、実践的なexploit記事。</li></ul></li></ul></li></ul>

<hr class="full_hr" />
<ul class="plugin_navi">
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/694" title="C言語系/memos/VC++/10, &quot;/NODEFAULTLIB&quot;使用時の注意">Prev</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/482" title="C言語系/memos/autoconf">Next</a>&nbsp;]</li>
<li>[&nbsp;<a href="http://www.glamenv-septzen.net/view/478" title="C言語系">C言語系</a>&nbsp;]</li>
</ul><br /><a href="http://www.glamenv-septzen.net/index.php?mdl=raw&amp;id=769" style="font-size: small">プレーンテキスト形式でダウンロード</a>
]]></description>
			<dc:creator>msakamoto-sf</dc:creator>
			<pubDate>Thu, 02 Sep 2010 09:23:02 GMT</pubDate>
			<guid isPermaLink="true">http://www.glamenv-septzen.net/view/769</guid>
<category>C言語</category>
<category>Windows</category>
<category>セキュリティ</category>
		</item>
	</channel>
</rss>