home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

1 - 10 / 674    1  2  3  4  5  6  7  8  9  10   [>]  [>|][>|]
タイトル/名前 更新者 更新日
日記/2010/09/09/「BINARY HACKS」読み終わった msakamoto-sf 2010-09-09 12:54:00
日記/2010/09/08/「確認」画面が必要な時 msakamoto-sf 2010-09-08 10:08:28
日記/2010/09/08/Webアプリの状態遷移と「戻る」ボタン msakamoto-sf 2010-09-08 09:57:58
日記/2010/09/06/「デバッガによるx86プログラム解析入門」読み終わった。 msakamoto-sf 2010-09-06 21:53:21
Emacs msakamoto-sf 2010-09-05 13:12:24
日記/2010/09/05/「やさしいEmacs-Lisp講座」読書メモ msakamoto-sf 2010-09-05 13:11:03
SideBar msakamoto-sf 2010-09-04 22:37:45
技術/vim/メモ2, ウインドウ, タブ msakamoto-sf 2010-09-04 13:43:46
技術/vim/メモ1 msakamoto-sf 2010-09-04 13:43:20
C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション msakamoto-sf 2010-09-02 18:23:02
ソート項目 / ソート順     1ページ 件ずつ表示

日記/2010/09/09/「BINARY HACKS」読み終わった  

所有者: msakamoto-sf    作成日: 2010-09-09 12:39:18
カテゴリ: 読書 

初版購入して4年間本棚に積まれていたが、やっと読み終えた。

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

「なんでsoファイルを作る時は"-fPIC"が必要なんだろう」とか、「ld.soが実行可能でなおかつsoファイルとしてリンク可能なのはなんで?」等の疑問も解決出来た。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-09 12:54:00
md5:0823ddadb189efaa92fb8291c8eca3e4
sha1:fd9ed7476a4e8db36b3a4087d9bb2b3a199ddc86

日記/2010/09/08/「確認」画面が必要な時  

所有者: msakamoto-sf    作成日: 2010-09-08 09:59:39
カテゴリ:

・入力フォームと、表示形式が大きく異なる時、「今入力した値が、実際はどう表示されるのか?」を確認してから保存したいので、「確認」画面が欲しい。
・入力内容を確認出来る、1クッションが欲しい。
・お金や個人情報のやり取りなどで、最終確認出来る1クッションが欲しい。

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

最も、Twitterやチャットみたいな場面で「確認」画面を用意するのは冗長ですし利用者的にも煩わしさが先立つと思いますので、何が何でも「確認」画面が必要、というわけでは無いと思います。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-08 10:08:28
md5:b6b5fbb05c6ec6b9e1abb475b0aae1b2
sha1:8db996c770347331a855f52a83850e71d751251c

日記/2010/09/08/Webアプリの状態遷移と「戻る」ボタン  

所有者: msakamoto-sf    作成日: 2010-09-08 09:31:06
カテゴリ: PHP Xhwlay 

Event-Drivenな状態遷移を管理する目的でXhwlayを作ったが、Webアプリケーションで使う上で一点だけ未解決の領域があります。
それはブラウザの「戻る」ボタンです。

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

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

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

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

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

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

しかしXhwlay単体だとやはり使いにくいです。毎回アプリ毎に作り込みが発生してしまう。
そろそろ、XhwlayのアイデアをCakePHPやSymfonyなど他のフレームワークに、プラグイン等の形式で移植するべきかも知れません。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-08 09:57:58
md5:2e1f8c68fe1237aa9ac8cd6bbbb9f830
sha1:05594b764b1d3195507b77990398489e28af7f49

日記/2010/09/06/「デバッガによるx86プログラム解析入門」読み終わった。  

所有者: msakamoto-sf    作成日: 2010-09-06 21:39:19
カテゴリ: Assembler 読書 

ようやく読み終わりました。

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

Windows x86でのプログラム解析にまつわるトピックを広く浅く取りあげているので、さらにディープな領域に進みたいときの案内書として手元に置いておこうかと思います。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-06 21:53:21
md5:e4ddc0708f7399fa71b66f851fae99ec
sha1:bc97b3194ae7cac41297327ca539b590092ae181

Emacs  

所有者: msakamoto-sf    作成日: 2009-04-26 12:50:33
カテゴリ: Emacs 
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2010-09-05 13:12:24
md5:24dc1ab200cc3e626214ed8882b24eaa
sha1:40954d586eac894be39de583c6dac62e29a9eea0

日記/2010/09/05/「やさしいEmacs-Lisp講座」読書メモ  

所有者: msakamoto-sf    作成日: 2010-09-05 12:48:42
カテゴリ: Emacs 読書 

「やさしいEmacs-Lisp講座」をさっくりと読み終えた。

これを最初に読んでいれば、Emacsを嫌いにならずに済んでいたと思う程の良書。

簡潔かつ明快に、Emacs-Lispの書き方のエッセンス、ポイント、基本的な概念を流れるようにスマートにコンパクトに学べる。
特に嬉しいのは、マニュアルやInfoだけでは分からない関数や構文の「つなげ方」を示してくれている点。
例えば"while"の説明では、「C言語のforやwhileのような繰り返しを行う時は~」で

(let ((i ?a))
 (while (<= i ?z)
   (insert i)
   (setq i (1+ i))))

のような実践的なパターンを示してくれている。
個々の関数一つ一つの使い方を知るだけでは学べない、"Emacs-Lispならではの「お作法・パターン」"が随所に散りばめられており、ページ数に対する内容の濃さ・読みやすさは格別のものがある。

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

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

Emacs-Lispを好きになりたい人全てにお奨め出来る、ピカイチの良著。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-05 13:11:03
md5:d99340c75002f48b46947996d08fb0e6
sha1:9261c88c1c62a82bc422ab3fdda66f9fd01c2b67

SideBar  

所有者: msakamoto-sf    作成日: 2008-11-23 18:22:11
カテゴリ:


最新コメント10件
2009-03-21 by msakamoto-sf

プレーンテキスト形式でダウンロード
現在のバージョン : 12
更新者: msakamoto-sf
更新日: 2010-09-04 22:37:45
md5:492fccf9a926a92e3cf50c3b5cc1a625
sha1:f82d7a992c36a872747cacf0870e08b9f5ad9e0c

技術/vim/メモ2, ウインドウ, タブ  

所有者: msakamoto-sf    作成日: 2010-09-04 13:24:46
カテゴリ:

参考

ウインドウ分割・ウインドウ間移動

・とりあえず編集中のウインドウを分割したい。

C-w s → 垂直方向
C-w v → 水平方向

・新しいファイルを開く時にウインドウを分割したい。

垂直方向
:new ファイル名
水平方向
:vnew ファイル名

・空っぽのウインドウで分割したい。

C-w n

個人的には「空っぽ」よりかは、":new ."でディレクトリ(Netrw)を開く方が好み。

・ウインドウを移動

C-w h/j/k/l

個人的には次の"C-w w"の方が単純で好き。

C-w w 次のウインドウに移動

基本的に垂直分割しか使ってないので。

・現在のウインドウを最大化

C-w _

・全てのウインドウサイズを揃える

C-w =

タブ分割・タブ移動

・新しいタブを開く

:tabnew (ファイル名)
:tabedit (ファイル名)

・タブ切替

:tabnext or "gt"
:tabprevious or "gT"
:tabfirst
:tablast

・タブ一覧と移動

:tabs
:tabmove タブ番号

・オプション
set tabpagemax=15 ; 同時タブ表示数
set showtabline=0 ; タブバー非表示

Netrw directory listing からの便利操作

(ファイル or ディレクトリ上で) "o"
→ ウインドウを分割し、新しいウインドウでファイル or ディレクトリを表示
(ファイル or ディレクトリ上で) "t"
→ 新しいタブでファイル or ディレクトリを表示


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-04 13:43:46
md5:5d797f6f371b0053fb1bcc77d8bd497d
sha1:ab81956a15363a660bc66c99b11c19ca91b096cf

技術/vim/メモ1  

所有者: msakamoto-sf    作成日: 2008-12-16 23:40:38
カテゴリ:

基本:「名無しのvim使い」を見ておきたい。
http://nanasi.jp/

文字コード・改行コードの変更

「vimエディタで「文字コード、改行コードを変更して保存する。」」からの抜粋:

・文字コードの変更

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

・ファイルフォーマットの種類の変更

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

・ファイルが文字化けしている場合のエンコーディングの修正の手順

:e ++enc=utf-8 ... まず、ファイルを文字化けしない、正しいエンコーディングで開き直します。
:set fileencoding=euc-jp ... 変更したいファイルのエンコーディングをセットします。
:w ... 最後にファイルの保存を行います。

バッファの一覧とバッファの消去

基本:「vimエディタ・スターターマニュアル #6 (複数のバッファの管理)」
http://nanasi.jp/articles/howto/user-manual/user-manual-buffer.html

・バッファ一覧

:ls

・バッファ一覧で確認出来たバッファ番号を使って、バッファを切替

:b バッファ番号

・非表示のバッファも含めて全て表示する。

:buffers!

・バッファを完全に解放する。

:bwipe

ビジュアルに選択

・大文字V → 複数行選択開始
・小文字v → 通常のビジュアル選択開始

以下はvimオンリー
・C-v → ビジュアルな矩形選択開始



プレーンテキスト形式でダウンロード
現在のバージョン : 3
更新者: msakamoto-sf
更新日: 2010-09-04 13:43:20
md5:4743fd8eb299c4ba592999ea22106dd6
sha1:faee9c6f7c3d72d814777e683d34a6bbff1e9e4b

C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション  

所有者: msakamoto-sf    作成日: 2010-09-02 18:04:32
カテゴリ: C言語 Windows セキュリティ 

参考リンク

参考リンクのまとめメモです。

初級:構造化例外処理の使い方を学ぶ

  • MSDNの基本情報
    • "MSDN Library" > "Windows Development" > "Diagnostics" > "Debugging and Error Handling" > "Structured Exception Handling"
  • SEHのサンプル
    • "MSDN Library" > "Windows Development" > "Diagnostics" > "Debugging and Error Handling" > "Structured Exception Handling" > "Using Structured Exception Handling"
  • "Windows の内部動作 - Web/DB プログラミング徹底解説" : 例外処理の一通りの日本語解説
  • VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo)

中級:構造化例外処理の実装とC++の例外処理の関係について学ぶ

アセンブラ知識が必要。内容も非常に濃厚。

上級:"/SAFESEH"とセキュリティ関連の話題

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



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-09-02 18:23:02
md5:150dec004e925a949a6e060c9fb69bc0
sha1:93ab1150a42155c86a8f89bc669ecbdc340fbbd5