MW211 EXIT

devlog
MySQL/データフォルダ移動
2014年07月20日
以下の順で行う。

(1) MySQLを(サービスの停止にて)停止させる。

(2) 設定ファイル(例えば「C:\Program Files\MySQL\MySQL Server 5.5\my.ini」)にて
   「datadir」の内容を書き換える。
┌──────────────────────────────────────┐
│#datadir="C:/MySQL/data/"                                                   │
│datadir="D:/MySQL/data/"                                                    │
└──────────────────────────────────────┘

(3) 変更前フォルダの内容を変更後フォルダへ移動する。
    #当該フォルダの横に「my.ini」があるので、
      それも移動する(その内容も同様に書き換える)。

(4) MySQLを再度起動させれば完了。
分類:MySQL
Linux/メモリリークの確認
2014年07月19日
メモリ使用量を確認する方法。

全体の空き状況を確認するには「free」コマンドを使う。
┌──────────────────────────────────────┐
│# free                                                                      │
├──────────────────────────────────────┤
│              total         used         free       shared      buffers     │
│  Mem:        66666        44444        22222            0        11111     │
│ Swap:            0            0            0                               │
│Total:        66666        44444        22222                               │
└──────────────────────────────────────┘
「total」=「used」+「free」なので、
「Mem」における「free」の「total」に対する割合がある程度あれば問題なし。

プロセス個別の使用状況を確認するには「top」コマンドを使う。
┌──────────────────────────────────────┐
│# top                                                                       │
├──────────────────────────────────────┤
│Mem: 44444K used, 22222K free, 0K shrd, 11111K buff, 12121K cached          │
│Load average: 0.00, 0.00, 0.00    (State: S=sleeping R=running, W=waiting)  │
│                                                                            │
│  PID USER     STATUS   RSS  PPID %MEM COMMAND                              │
│ 1001 root     S <     6000     1 11.0 process1                             │
│ 1002 root     S <     1000     1  2.4 process2                             │
└──────────────────────────────────────┘
ある期間の前後で計測し、「%MEM」の値が劇的に増加していなければまずはOK。
さらに長期間での前後で計測し、じわりじわりと増加していないかも確認。
分類:Linuxシェル
Linuxシェル/起動中の場合のみkill
2014年07月17日
特定のプロセスを終了させるが、やみくもに「killall」をしても
起動していなければエラーとなる。
ま、気にしないというのもありだが、チェックした上で実行するには…。
┌──────────────────────────────────────┐
│isKill=`ps -ef | grep " プロセス名 " | grep -v grep | wc -l`                │
│if [ $isKill = 1 ]; then                                                    │
│    killall プロセス名                                                      │
│    sleep 1                                                                 │
│fi                                                                          │
└──────────────────────────────────────┘
「ps」コマンドで当該プロセスの行を「grep」して、行数を求める。
但し、そのままだと「grep」している自身の行も含まれてしまうので
それを除いて行数を求める。
で、一行あれば(たぶん二行以上はない)、「kill」実行可ってことだ。
分類:Linuxシェル
設計/サブウインド化を正規形にしてみた
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++
前へ 1 … 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 … 156 次へ