2014年9月28日日曜日

SQL文におけるデータベースやフィールドを指定する識別子 (mySQL)

ダブル・クォーテーション(")、シングル・クォーテーション(')、バッククォート/バックティック(`)の使い方を一度整理してみます。

基本的にSQLの構文はどのデータベースでも同じでしょうが、下記リンクなどを読む限りではデータベースソフトごとに微妙に仕様が違うと思われます。

ここではMySQL 5.4/PHPMyAdmin4.1.12で確認しています。

違うデータベースソフトを使っている場合には、それぞれのデータベースソフトのマニュアルを参照するのが一番確実でしょう。
http://pear.php.net/manual/ja/package.database.mdb2.intro-quote.php

ここでも最後にmySQLの参考ページを紹介します。

「顧客データ」というデータベースで「名前」というフィールドに「鈴木」という文字列を含むレコードを抽出するクエリ文は次のようになります。

ここで%はSQLのWHERE句におけるLIKE演算子におけるワイルドカードです。


SELECT * FROM `顧客データ` WHERE `名前` like '%鈴木%'


私もごちゃごちゃになっていたのですが、データベース名とフィールド名はバックティック(`)で引用し、指定してあげる必要があります。


2014年9月26日金曜日

MySQLでデータ挿入が出来ない!?

Windows Server 2008上にアプリケーションとFTPサーバー機能を持たせて、Webベースのドキュメント共有・管理システムを運用しています。PHPとMySQLを利用しています。

社内のサーバーに移行作業と基本的なテストが終わり、いよいよ切り替えというタイミングなのですが、一部のページでmySQLのデータベースへデータ登録がエラーとなるという不具合が分かりました。

テストの時には問題なかったと思うのでとても不思議です。

2014年9月22日月曜日

アプリケーション・ウインドウの自動最大化の解除 (英語版のWindows 7)

Windowsのデフォルトなのでしょうか、よくウインドウを移動したりしている際に勝手にスクリーン全体に最大化されてしまうことがあります。

スナップ機能というのですね。でも私は勝手にサイズが最大化されると、本当にいやな気持ちになります。




このスナップ機能を解除する手順です。

1. [スタート]メニューから[Control panel]をクリック。

2. [Ease of Access]をクリック。


3. [Change how your mouse works] をクリック。


4. [Prevent windows from...] をクリック。最後に[OK]ボタンを押します。






よろしければ、クリックいただけると嬉しいです♪


2014年9月21日日曜日

アメリカ人だって大変なんです~ (単位換算 その2)


先日の記事の中で、摂氏温度の換算について次のように書きました。

アメリカ人も換算に苦労しているようです。正確な換算式は(華氏温度 - 32)*5/9ですが、私などはパッと概算で換算したい場合は、30を引いて半分にしています。ただ、どうしても誤差は出てしまいます

アメリカ人だって大変なんです~ (単位換算)

これは私自身の反省ではありますが、この誤差がどの程度なのか定量的には把握していませんでした。今回簡単に検討してみることにしました。

簡単な例題ですが、どうせならScilabを使ってまずグラフ化しました。が、まずはExcelで検算したものを使って先に結論を紹介し、Scilabのコードは後ほど紹介します。
縦軸:℃ 横軸: F青:正確な値  
赤:近似値   
       緑:正確な値 ― 近似値  

2014年9月19日金曜日

アメリカ人だって大変なんです~ (単位換算)


すみません、ちょっと技術的な話でもあるので、こちらでも紹介させていただきます。

アメリカ人だって大変なんです~

アメリカ人のエンジニアと食事をした際に、単位の話が出ました。

皆さんご存知のように、アメリカでは一般的にMKS単位系(長さの単位にメートル m、質量の単位にキログラム kg、時間の単位に秒 s を用いる)が使われません。

ただ大学等の物理などの授業では、やはりMKS単位が使われるようです。先日見た『MIT白熱教室』でもそうでした。重力加速度は我々と同じ9.8m/s/sが使われていますね。

さて、温度も水の氷点と沸点をそれぞれ0℃と100℃と定義した摂氏温度を国際的には使っていますが、アメリカでは氷点を32Fとしている華氏温度ですね。






2014年9月13日土曜日

一口に赤外線といってもさらに細かく分類されますね

カメラやビデオなどで夜間の撮影モードが搭載されたモデルがありますよね。いわゆるナイト・ビジョンといわれるものです。

これは赤外線を利用していることは知っていたのですが、赤外線の中でも比較的波長の短く、可視光に近い、近赤外線(およそ0.7から2.5μm)だということです。

ちょっと調べる機会があったので、メモとしてまとめます。

その他大きく分類すると、化学物質の同定に使われる波長がおよそ2.5 - 4 μmの中赤外線、天文物理や熱源として登場する波長がおよそ4 - 1000 μmの遠赤外線に分けられます。

英語ではInfrared、略してIRと呼ばれます。

夜間を含めたセキュリティ・カメラのニーズからソニーを始めとするいくつものメーカーから赤外線撮影モードを搭載したカメラ、赤外線を照射する機器が出ているようです。

この赤外線投光器で利用されている波長には主に850nm(0.85μm)と940nm(0.94μm)があり、前者は人間の目でも赤い発光が認識できるため可視タイプ、後者は不可視タイプと呼ばれています。

最近の赤外線投光器はLEDタイプのものが多く、購入する場合には使用状況に応じて、上記の波長のほか、ビームの幅とその到達距離(レンジ)、および消費電力(W)などが比較検討するための主要なパラメータとなります。



2014年9月11日木曜日

サーバー移行の覚書

使用中のサーバー(Windows Server 2008 R2)ですが、社外のレンタルから社内のものに移行しました。


個人用のメモになりますが、まとめます。

理由

1. コスト低減
2. セキュリティ強化(拠点間VPNを使用)

現状の使用方法

FTPおよびWebデータベースおよびそのアプリケーション(PHPとmySQLの連携による)

本社と拠点間で申請ドキュメントの共有およびそのデータベース化

特長

Webページで本社サイドは本社ドキュメントを必要情報と一緒にDBとして登録できる
 登録日と登録者および製品情報をもとに管理番号を自動発番し、保管フォルダを自動生成する
 登録完了後に保管フォルダのリンクが表示される。
 本社の登録者は該当ドキュメントをExploreを使って貼り付けるだけでよい。
 (登録後、連絡メールの自動送信機能は未実装なので、別途メールで連絡が必要)
 拠点側の担当者および関係者の全員がそのフォルダにを開けば該当ドキュメントを入手できる
 登録されたドキュメントはmySQLに登録されており、用意されたスクリプトページで一覧を表示することができる。

移行の作業内容

1. サーバー準備はIT部門による
  新サーバーへのOS搭載、ネットワーク設定(VPN、IPアドレス設定など
2. PHP5.5/mySQL 5.5の据付
3. 必要ユーザの設定
4. IISによるWebアプリサーバー、FTPサーバーなど必要なサーバー機能の設定
5. アプリケーション (PHPコード)あるいはドキュメント保存先など、必要フォルダの作成と権限設定
   wwwroot、ftprootおよびその下のアプリ、旧データベースのバックアップおよび 
6. アプリケーション、データベース、ドキュメントのコピーと復旧
7. 動作確認テスト




2014年9月7日日曜日

付録:グラフのお化粧およびアニメーションの作成 : 最終のScilabコード (2)

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。 

後日追記
ImageMagicを使ったGifアニメーションはループになっていなかったので、最終的にはAdobeのFlashを使いました。アニメに出力した際グラフの線が途切れ途切れになってしまい苦労しました。画像サイズをFlash上で変えないほうが良いようです。

************************************************************

前回の続きです。

付録:グラフのお化粧およびアニメーションの作成 : 最終のScilabコード(1)


最後にGifファイルをつないでアニメーションを作る方法です。Webを調べ、ImageMagicというオープンソフトを使うとできることがわかりました。


MatlabプログラムをScilabに変換、再編集するに当たって

Scilabのコードは大雑把な言い方ですが、90%程度Matlabと同じです。コツさえつかめれば、Matlabの簡単なコードをScilab上で動かすことはさほど時間が掛かりません。

もちろん複雑なコードはそれなりに時間が掛かったり、落とし穴があって悩んだりしますが。

ポイントは次の通りです。私は付属のSciNotesをエディタとして使っていますが、Find & Replaceが活躍します。


2014年9月6日土曜日

Scilabにおける関数の定義と使い方(2)

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。

今回もC/C++を勉強していた時のテキストブックに出ていたプログラムをScilabで作ってみました。

関数の定義には、多少ですが、前回とは違う方法があり、これを使いました。

倍音としてSine波を徐々に重ね合わせていくとのこぎり波に近づいていく様子が分かると思います。

関数形は下記より調べ、k=11まで重ね合わせて作成したものが下のアニメーションです。kの数を増やしていくとさらにきれいなのこぎり波となっていきます。
Wiki: のこぎり波


Scilabにおける関数の定義と使い方(1)

今回はC/C++を勉強していた時のテキストブックに出ていたプログラムをScilabで作ってみました。

まずは関数の定義のしかたと使い方を習得するために階乗のプログラムです。ここではForループでも良かったのですが、whileループとしました。

Scilab自体にfactorial()という関数があるので、ここではmyFactorialという関数名としました。引数を一つとり、この引数(int型)の階乗を計算してその値を返します。

Scilabのヘルプにも関数の使い方は載っており、参考としました。

14行目はデバックの目的で入れてあります。5の階乗を計算させていますが、ループが正しく回っていることがコンソール画面上で確認できます。

Scilab ― 始めの一歩と免責事項

むかしMathematicaという数値計算ソフトをかじっていましたが、恥ずかしながら十分に使いこなしてはいませんでした。

今回数値シミュレーションを勉強するに当たってMatlabクローンであるScilabを選びました。

2014年9月5日金曜日

JavaScriptをかじっています♪

※ ソースコードを見やすくするために、Syntaxhilighterを使っています。状況によって表示に時間がかかる場合があります。

今回のものはゲームというよりも自分用の英語トレーニングツールですが、こんなのを作りました♪

『えいごであそぼう』の第2弾、LとRの特訓編です。


LとRの特訓



これ自体はAS3.0を使っていますが、ブログを書くに当たってArrayの中身をカンマ区切りの英単語リストに直す必要あり、お勉強も兼ねてJavaScriptで遊んでみました~ (次の1)を2)のように直したかった)

1) "rice", "lice", "rose", "louse", "light", "right", "grew", "glue", "slew", "straw",
2) rice, lice, rose, louse, light, right, grew, glue, slew, straw,


スクリプト
まだまだつたないコードで恥ずかしいのですが、何かのお役に立てればと思い、あげますね。私もWeb上のあちこちのサイトでお世話になったお礼です。ただし、使用される場合は自己責任である旨、ご了解願いますね。


ちなみに今回は特に次のサイトにお世話になりました。
http://www.html5rocks.com/ja/tutorials/file/dndfiles/
http://d.hatena.ne.jp/sho322/20130627/1372355192


今回のJavaScriptのコードです







情報処理技術者試験の記録です~

ずいぶん昔のものですが、私が情報処理技術者試験に挑戦していた頃の勉強記録です。
基本的には模試を買い込んできての独学。たまに何社かの模擬試験を受けに行ったり、自宅受験をしました~

模擬試験との格闘記録

当 時のシステムアナリストまで一気に取得しましたが、この記録を読むと、全部紙一重で合格してきたように思います。模試で出来たところと出来なかったところ を技術・知識の面とメンタルの面の両方から分析し、合格点数とのギャップをどう埋めていくかという点に心を砕いていたことに改めて気がつきます♪


野 球やサッカーなどスポーツとは異なるものの、資格試験も特に本番は勝負ごとと似ている側面もあるのかなと思います、ケアレス・ミスして取れる点数を取りこ ぼさない、分からなくてgive upしたい問題も、粘りに粘って一つでも正解でな選択肢をふるい落とす(そして4択を、3択へ2択へと落とし込む) - テクニックもそうですが、集中力 と精神力、粘りも重要な役割を果たすと思います♪


受験者の皆さん、頑張ってくださいね!


参考
現在の区分で言えば、次に(ほぼ)相当します。。

基本情報技術者試験 (FE)
応用情報技術者試験 (AP)
ITストラテジスト試験 (ST)



英語であそぼう!

ある別のブログで紹介したのですが、AS3でお子様向けの英語教育ゲームの習作を作りました。


LetsPlay2
 

上の画像をクリックして、PLAYボタンを押してください。

音声が流れるので、マッチする絵をクリックしてね! まだまだ習作でお恥ずかしい限りの単純なものですが、そのうちバージョンアップしますね!


私が使用しているRemote Desktopです♪

TeamViewer - ネット経由のパソコン遠隔操作(リモートコントロール)ソフトです。

http://www.teamviewer.com/ja/

便利ですよ~


Windows Server 2008 R2で苦戦しました

PHPとMySQLによるデータベース管理
会社の仕事の一部としてWindows Server 2008 R2を外部にレンタルし、PHPとMySQLで簡単なWebベースのデータエントリープログラムとデータベースを作成、運用しています。

このサーバー上ではWebサーバーとFTPサーバー機能を持たせ、Web上のフィールドで必要な情報を入れることによって、フォルダを自動生成し、必要なファイルをそこにアップロード/ダウンロードすればいいという仕組みも作っています。本職のプログラマではないのでいたってシンプルなものですが、PHPは手軽な割にはけっこういろいろ遊べます。  

トラブルの始まりは・・・
サーバー上の単純な設定ではこれまでずっと動いていたのですが、トラブルの始まりはユーザを3つほど追加してフォルダごとにアクセス権を変えようとしていた時でした。なんとftprootに置いたいくつかの重要なフォルダの属性がおかしなことになったらしく、外部からFTP接続できなくなってしまいました。始めは例えばhogeというフォルダ内のファイルがダウンロードできないというのが問題でした。  

フォルダ名を元に戻すと外部からアクセスできなくなる!?
アクセス権をいろいろいじってもうまく行かないので、hogehogeという新しいフォルダ名で新たにフォルダを作ってファイルも置き直したら何とか外部からアクセスできるようになりました。 ところがとても不思議なことに、これをもとのhogeというフォルダ名に戻すと、その途端にFTPフォルダとして外部からアクセスできなくなるのです。例えばhogeではなくhoge2なら問題ないのですが、hogeに戻すとダメになるのです。これには途方に暮れました。このまま我慢しようかとも思いましたが、PHPのコードを書き直す作業が発生する他、下手にフォルダ名を変更したまま整合がとれない可能性が残るのも気持ち悪いので、丸々1日七転八倒してしまいました。

設定ファイルをいじってもうまく行かず、最後は力技で
エラーログによるとおそらく原因はapplicationHost.configという設定ファイルの中にFTPサイトのフォルダごとのユーザ権限が記載されている箇所があり、この部分と実際のフォルダのアクセス権限属性にミスマッチがあったのだろうと推測しています。しかし、この設定ファイルのバッティングしていると思われる箇所を消したり、net share korekore /deleteなどといろいろいじってみましたが、結局うまく行きません。設定ファイルは変更して修正しても、サービスやロールをRestartするだけではOSが変更を認識しないようです。 結局、IISマネージャで一度FTPサイトを消去して再度作成し直し、何とか復帰しました!この時同時にftprootフォルダからフォルダも全て一から作成し直しています。  
Windows Server 2008 R2は敷居が高い
私自身がサーバー運用の専門家ではないためいろいろトライ&エラーでここまで構築してだましだまし運用していますが、特にACL(アクセス制御リスト)の理解は決定的に不十分です。 見よう見まねで設定しそれなりに動いてはいますが、一度体系的に学習したいものです。何か良い本などがあれば教えてくださいね!