2013年3月30日土曜日

SMS Eメール 違い

 SMSとEメールの違いについて、適当メモ

SMS 従来は同一キャリアでしか使用できなかったが、主要なキャリア間で使用可能になった。電話番号で宛先を指定してメッセージをやり取りできる。

MMS SMSが拡張されたもの。 @softbank.ne.jpが該当

Eメール @i.softbank.jp

ソフトバンクに限ると 

 Eメール = S!メール = MMS

らしい。

2013年3月29日金曜日

ドラッカー 難しい? 

継続して成長するためにはどうすればよいか?という疑問を抱えていたときに、
ドラッカーの「プロフェッショナルの条件」を読んだ。

以前にもドラッカーの著作は少し読んだことがあり、ドラッカーは難しい、難解と感じていた。

しかし、たとえば「自己の成長」のようなテーマ、
問題意識を持って「プロフェッショナルの条件」を読んだところ、わかりやすいと感じた。

以下に、印象深く感じた箇所を一部抜粋しておく。(途中)

産業革命の本質 百科全書

技能に関するあらゆる知識をまとめ、徒弟にならなくとも技能技術者になれることを目指していた。

経験  →知識
徒弟制 →教科書
秘伝  →方法論
作業  →知識

資本主義

既存の知識をいかに有効に適用するかを知るための知識がマネジメントである。

知識が資源の中心になる → ポスト資本主義
土地、資本、労働は制約条件でしかない。

知識は、一般知識から専門知識へ重心を移行している

「変化のための仕組みを持つ」








シェルスクリプト バッチファイル 引数

リナックスのシェルスクリプトとWindowsのバッチファイルでの
引数の使い方。よく忘れるのでメモしておく。

linuxコマンド

./script a1 a2

スクリプト内での参照方法
$1
$2

Windowsコマンド
batfile.bat a1 a2

バッチファイル内での参照方法
%1
%2

2013年3月26日火曜日

リファクタリング

マーチン・ファウラーの「リファクタリング」を読んだことで

ソースコードを書くスタイルが随分と変わったように思う。

多くのサンプルコードを上げてリファクタリングの過程を示しておりわかりやすい。

コメントを書かなくても、ソースコード自体がコメントとなるような記述が理想的である。
そのようにコードを書くことを学んだ。


また、重複したコードがあればメソッドに抽出することを検討すべき、
などのアドバイスも具体的でわかりやすい。

リファクタリングとは「外部の振る舞いは変更せず、内部の構造を変更する」ことであるが、
自ずと綺麗なコードを書くことにつながる。



2013年3月11日月曜日

負荷調査

システムが遅くなってくると、苦情として上がってくる。
経験的に、ある水準を超えると指数関数的に遅くなるようだ。

こちらが知りたいことは、いつ、どんな操作をしたときに、どのくらい遅いのか、
といった内容だが、上がってくるのは「なんか遅い」、という漠然としたものである。
致し方ない。

データベースアプリケーションの場合、ボトルネックとなる多くは
データベース周りであろう。

そこで、その調査方法をメモしておく。

・遅いSQLを特定

  アプリケーションを操作して特定する。
  v$sql などのビューから負荷をかけているSQLを割り出す

・実行計画を確認

 explain plan 、各種ツールによりSQLを実行し、確認する

・SQLの見直し、インデックスの調整

 キャッシュサイズを増やす。
 ハードを増強する。
 不要なデータを取得しているならば見直す。
 必要に応じて、適切なインデックスを追加する。

 (データを削除する。)

Oracle ツール

SQL Developer というツールがあり、便利。

無償でこれだけ出来るとは。

各オブジェクトの確認
SQLの発行、実行計画取得
セッションの調査
実行中のSQL

Oracle11g 注意点

 Oracle11g データベース構築の注意点

・インストール
 setup.exe

・リスナーのインストール

 NetCAを起動する。

 予め動作確認をしておいたlistener.ora をコピーする。
  (ここがややこしい。)

 必要であればファイアーウォールを通れるようにする。

 ※調査にはlsnrctl  コマンドを使う。
  lsnrctl status /start / stop /reload [リスナー]
 
・データベースのインストール

 DBCAを起動する。

・表領域、ユーザー、テーブル作成、データのインポート等

・バックアップ


・必要に応じて

 パスワードの有効期限が決まっているので解除する。
 (デフォルトでは180日?また、一定回数間違えるとロックアウトする。)
   password_life_time unlimited など

 パスワードの大文字小文字の区別をしないように解除する。
  sec_case_sensitive_logon = false

・アンインストール

 deinstall
 (ディレクトリが一部残る。手動で削除。 
  再起動しないと削除できないかも)

※環境の検証などのため、何度もインストール、DB構築、などを繰り返す場合は、
 インストールの自動化を検討するとよいかもしれない。別記事参照


Oracle エンタープライズマネジャー

Oracle11gでは、エンタープライズマネジャーがWEBベースになった。
(10でも?)

インストール後にサーバーのIPアドレスを変更すると、エンタープライズマネジャーが使えなくなる。
その後いろいろいじっても改善できず、データベースごと再構築して使えるようになった。
よくわからん。

Oracleデータベースの構築はややこしい。

Oracle キャッシュのクリア

Oracle10g 移行、キャッシュをクリアするのに、再起動しなくてもよくなった。

・共有プールのクリア
  ALTER SYSTEM FLUSH SHARED_POOL;

・バッファキャッシュのクリア
  ALTER SYSTEM FLUSH BUFFER_CACHE ;

キャッシュ有無のパフォーマンスチェックがらくになった。

2013年3月10日日曜日

プログラムの種類

プログラムといってもいろいろあると思う。

作ったプログラムを人に提供する。

プログラムを作るためのプログラムを作る。

プログラム自体が働いてくれるようなプログラム。



2013年3月6日水曜日

巨大データのコピー

100GBを超えるようなデータを端末間でコピーするには

ネットワークを介すると、スイッチなどのオーバーヘッドが大きい。
パソコン同士をLANケーブルで直結すると早い。

USB制御

Windows でのUSB制御について

Microsoft のサイトにある devcon.exe を使用すると便利である。

devcon disable "シリアル値"
devcon enable "シリアル値"

シリアル値はWMIを使って取得すると便利である。
WMICodeCreator.exeをつかう。

あとはWindows API でUSB着脱のイベントを検知する。

vmware サーバー移行 Vmware Converter

サーバーが古くなってきたので、ハードだけ新しいものに
したい場合がある。

vmware converter を使えば、まるごと移行できて便利である。

Linux 遅い

Linux 遅いとき

top コマンドの右上の方に

「Load Average 」

という項目があるので、これを確認する。

これは、処理待ちのプロセス数の平均を示しており、
数が増えるほど体感速度が遅く感じる。

個人的な感覚だが、2、3くらいになってくるとだんだん遅く感じ、
それ以上だと、これは明らかに遅く異常だと感じる。

できれば1以下に保っておきたいところである。

その時に動作しているプロセスを確認すれば、どのプログラムが原因か
ある程度判断できる。

Android USBホスト機能

Android 端末でUSBキーボードを使おうとした。

・端末が「USBホスト機能」を有している
・対応したケーブルを使う

ことが必要らしい。

自分の端末は「USBホスト機能」に対応していないためか
うまくいかなかった。

おとなしくBlue Tooth にするか。

C# 集計処理

C#で集計するには
 
 DataTable の Compute メソッドが便利である。

            DataTable table = new DataTable();

            table.Compute("Sum(値)", "種類 = 商品");

Sum,AVG,MIN,MAX,Var(分散)、StDev(標準偏差)が使える。

Oracle 遅い

長らくつかっていると、システムのレスポンスが低下してくる。

やはりデータベース周りが疑われることが多いだろう。

たとえば

・データが増えてきた
 →削除できるなら削除する

・適切なインデックスを使用していない
 →SQLを調査する。
  SQLトレース
  explain plan コマンド

・メモリが足りない →db_cache サイズを増やす
  特定のテーブルはメモリに置く







Oracle セッション数が足りない

Oracleは接続するためのセッションが足りなくなることがある。

どうすればよいのか。

接続の方法として
 ・専用サーバー接続
 ・共有サーバー接続

とある。

専用サーバー接続は要求があるたびにセッションをつくるが、
共有サーバー接続は、これを使いまわすため、セッション数を稼ぐ
ことができる。



Oracle ヒント

Oracle ヒント の書き方

SELECT /*+ INDEX(EMP IDX_EMPNO) */ EMPNO FROM EMP WHERE EMPNO = 123;

2013年3月5日火曜日

ソースコード

システムに不具合があってもベンダーがろくに対応して
くれない場合がある。

せめてソースコード くらいあれば調査でそうなものである。

ソースコードを開示するように契約上盛り込めればよいのだが、
そう簡単にはいかないだろう。

リスク回避の策を考えていく必要がある。

2013年3月4日月曜日

プログラムのテンプレート

システム開発にあたって、誰が見てもわかりやすい、メンテナンスしやすい
という要素は大事ですが、各人まかせという場合も多々あると思います。


プログラムのテンプレートを用意して、大枠はそこから外れないように
しつつ、ある程度の自由は認めてあげる、というのが良いのではないかと思う。

ある程度人員や時間が確保できる組織ならば
しっかりと標準化に取り組めるかもしれないが、リソースの限られている
われわれに簡単にできるのはこのくらいでは。


windows7以降 administrator

windows7やwindows8では、デフォルトでadministratorが使えない。

コンピュータ→右クリック→管理→ローカルユーザー

にて有効にしてやる必要がある。

oracle11gr2 クライアントを windows8 に入れてみた。

oracle11gr2 クライアントを windows8 に入れてみた。

setup.exe を走らすと、
「最低要件を満たしていません。」
→無視して続行したら入った。が、インストール方法を間違えた。
 tnsnames.ora を置くための network フォルダがない。

setup.exe はきどうしなくなったので、
次はoui.exe を直接起動してセットアップした。

動作確認すると、.net のプログラムが動かなくなった。

retrieve text for error ora 01019 のようなエラーが出る。

client_1 , client_2 の2つが存在したためか。
環境変数path からclient_1を削除したら動くようになった。

2013年3月2日土曜日

李儒

董卓の知恵袋で李儒という人がいる。

董卓のような横暴なものに意見し、納得させるという意味では
学ぶ点があると思う。


横山光輝三国志によると


1国の主君たるもの、天下をとるためには寛容な態度も必要なこと、
許されないことを許し、それに恩義を感じより一層呂布は董卓のために
働くであろうこと、
董卓と呂布が組んでいるからこそ、うまくいっていること、

これらのことを訴えるために、「絶纓の会」という故事を出して
諌めている。


参考文献:三国志 ○巻 ○ページ

FireFox OS

iPhone , Androidとは別のスマートフォン用OSに
FireFox OSが名乗りを上げたようです。

Firefox のアドオンから簡単にインストールできます。

Android がベースになっているようで、似たような操作感です。

iPhone , Androidの対抗馬になりうるのか、注目したいと思う。

2013年3月1日金曜日

ハードオフ

ハードオフ

ジャンク品というものがある。
がらくた同然で商品価値のなくなったものである。

ところが、中には正常に動作するものもある。

ほしいものがうまく見つかればお値打ちである。