MW211 EXIT

devlog
設計/サブウインド化を正規形にしてみた
2014年07月15日
┌──────────────────────────────────────┐
│【非正規形】別々の画面の状態                                                │
│┌──────────┐┌──────────┐                            │
││A画面              ││B画面              │                            │
││                    ││                    │                            │
││                    ││                    │                            │
│└──────────┘└──────────┘                            │
├──────────────────────────────────────┤
│【第一次正規形】一つの画面にまとめる                                        │
│┌──────────┐                                                    │
││A画面              │                                                    │
││                    │                                                    │
││                    │                                                    │
│├──────────┤                                                    │
││B画面              │                                                    │
││                    │                                                    │
││                    │                                                    │
│└──────────┘                                                    │
│→非正規形から退化して感じだが、手順を踏むとこうなる。                      │
├──────────────────────────────────────┤
│【第二次正規形】一方を非表示にし表示ボタンで切り替える                      │
│┌──────────┐                                                    │
││┌───┐┌───┐│                                                    │
│││A表示││B表示││                                                    │
││└───┘└───┘│                                                    │
│├──────────┤                                                    │
││A画面              │                                                    │
││                    │                                                    │
││                    │                                                    │
│├──────────┤                                                    │
││B画面              │                                                    │
││                    │                                                    │
││                    │                                                    │
│└──────────┘                                                    │
│→よくなってきた。でも初期表示で裏画面も読み出すので遅くなってしまう。      │
├──────────────────────────────────────┤
│【第三次正規形】表示ボタン押下の都度Ajaxで呼び出す                          │
│┌──────────┐                                                    │
││┌───┐┌───┐│                                                    │
│││A表示││B表示││                                                    │
││└───┘└───┘│                                                    │
│├──────────┤  ┌──────────┐┌──────────┐  │
││                    │  │A画面              ││B画面              │  │
││                    │←│                    ││                    │  │
││                    │  │                    ││                    │  │
│└──────────┘  └──────────┘└──────────┘  │
│→完成。(もちろん初期表示でどちらかを表示しておいてもよい)                  │
└──────────────────────────────────────┘
っていうか、一気に第三次正規形にいけそうだね。
分類:設計
Linux/ファイル検索
2014年07月14日
┌──────────────────────────────────────┐
│find パス -name ファイル名                                                  │
└──────────────────────────────────────┘
パス配下(孫階層以降も含む)から、指定したファイル名を検索し
結果をフルパスで表示(出力)してくれる。

例としては、以下のような感じ。
┌──────────────────────────────────────┐
│find / -name hoge.txt                                                       │
└──────────────────────────────────────┘
分類:Linuxシェル
Excel/互換性チェックのダイアログ
2014年07月13日
互換性チェックのダイアログのチェックボックスをうっかりはずしてしまった場合。
┌──────────────────────────────────────┐
│Microsoft Excel - 互換性チェック                                            │
│┌────────────────────────────────────┐│
│└────────────────────────────────────┘│
│□このブックを保存するときに互換性を確認する                                │
└──────────────────────────────────────┘

以下の順で、実行し、同ダイアログを再表示し、チェックボックスを入れればよい。
  ファイル>情報>問題のチェック>互換性チェック
分類:Excel
Web画面設計/あるある(2)ボタンとタイトルの兼用
2014年07月12日
複数タイトルがあり、そのタイトルを押すことにより中身が表示される
…なんてケースで。

必然的というべきか、ボタンとタイトルが兼用状態となる。

でも…。

ボタンって結構「押せますよ」ってことをアピールする、
つまり目立ちたがり屋な訳だ。

一方、押しても何も変化しないタイトルは控えめになりがち。

っていうか、タイトルが目立ち過ぎてボタンの存在が霞むのもまずい。

ということで、綱引きが始まる訳です。
分類:設計
Web画面設計/あるある(1)プルダウンのボタン化
2014年07月11日
ボタンを押す都度ボタン内容を変更することにより、
プルダウンメニューと同等のUIを実現できたと思ったが…。

…submitのタイミングがわからない。

ボタンが変わる都度submitしてたのでは無駄な画面更新が頻発する。
しかし、どこでボタンを確定したかはわからない(変化が止まったのを検知する?)。
となると、別途「確定」ボタンが…。
これでは本末転倒。
ボタンを変更しただけでは確定されないのでは意味がない。

プルダウンメニューはあなどれない。
分類:設計
C/空文字の設定方法
2014年07月08日
文字列に「」(空文字)を設定する方法はいくつかあるのでまとめてみた。
#PHPとかでいう「文字列変数 = ""」の処理

┌──────────────────────────────────────┐
│char  c[4];                                                                 │
└──────────────────────────────────────┘
サンプルは上記として、以下のような方法がある。

┌─┬────────────────────────────────────┐
│ 1│c[0] = 0;                                                               │
├─┼────────────────────────────────────┤
│ 2│memset(c, 0, sizeof(c));                                                │
├─┼────────────────────────────────────┤
│ 3│snprintf(c, sizeof(c), "");                                             │
└─┴────────────────────────────────────┘
1は最速だが、ぱっとみわかりづらい。いかにもC言語って書き方。
2と3は若干遅いがすっきりしている。
3はなんでもかんでも「snprintf()」派って感じのイレギュラーなやつだ。

但し「c = ""」はダメなので注意のこと。
分類:C/C++
C/snprintfは便利な関数
2014年07月07日
文字列を代入するにはこの関数は便利。
┌──────────────────────────────────────┐
│snprintf(出力先, sizeof(出力先), 入力元);                                   │
├──────────────────────────────────────┤
│snprintf(buf, sizeof(buf), "123");                                          │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│snprintf(出力先, sizeof(出力先), 書式, パラメータ, …);                     │
├──────────────────────────────────────┤
│snprintf(buf, sizeof(buf), "%s-%d", s, d);                                  │
└──────────────────────────────────────┘
こんな感じで使う。

何よりも便利なのは、出力先の末尾に必ずNULLが保証されること。

以下のような場合でも
┌──────────────────────────────────────┐
│char  buf[4];                                                               │
│snprintf(buf, sizeof(buf), "1234");                                         │
└──────────────────────────────────────┘
「1234」ではなく「123+NULL」となってくれる。
最後の一文字は紛失してしまうが、文字の終わりがなくなってしまうので
その恐怖(「%s」とかで出力した場合に例外など)に比べれば全然問題ない。

これが「memcpy()」だと「-1」とかややこしい数式が必要になってくる。
┌──────────────────────────────────────┐
│char  buf[4];                                                               │
│memset(buf, 0, sizeof(buf));                                                │
│memcpy(buf, "1234", sizeof(buf) - 1);                                       │
└──────────────────────────────────────┘

すっごい便利。

但し、高機能ゆえの弱点で処理速度が若干遅いらしい。そこだけは気を付けて。
分類:C/C++
Firefox/戻るボタンの挙動
2014年07月06日
以下のような処理を通って、「飛び先URL②」へ飛んだ後で…。
┌──────────────────────────────────────┐
│<form method="post" action="飛び先URL①">                                   │
├──────────────────────────────────────┤
│document.forms[0].action = '飛び先URL②';                                   │
│document.forms[0].submit();                                                 │
└──────────────────────────────────────┘

ブラウザの「戻る」ボタンで元の画面に戻って、
以下のような処理で再度実行したとする…。
#条件分岐で「'飛び先URL②'」の代入をスキップしたとする
┌──────────────────────────────────────┐
│<form method="post" action="飛び先URL①">                                   │
├──────────────────────────────────────┤
│document.forms[0].submit();                                                 │
└──────────────────────────────────────┘

(「document.forms[0].action」の値に従い)
IEやChromeであれば「飛び先URL①」に飛ぶのに対して
Firefoxだと、「飛び先URL②」に飛んでしまう。

前に表示した時の内容を記憶しているからのようだ。
分類:ブラウザ
Linux/システム時刻を確認するコマンド
2014年07月04日
「date」

結果例)「Wed Aug 27 14:33:48 JST 2014」
分類:Linuxシェル
PHP/表示のタイミング
2014年07月03日
情報量の多いページの場合、以下の二つのパターンがある。
  (1) 部分的に徐々に表示する
  (2) 全部出揃うまでは表示せず、最後に一気に表示する

たいては、(2)なのだが、それは「php.ini」の以下の設定による。
┌──────────────────────────────────────┐
│implicit_flush = Off                                                        │
└──────────────────────────────────────┘

これを「On」にすると、「echo」などを行う場合、都度、「flush()」で出力され
部分的に表示される形となる。

但し、「On」にすると著しい性能低下を生じさせるので、
これをするのはやむを得ないデバッグの時に限定すべきらしい。
分類:PHP
前へ 1 2 3 次へ