RSS

カテゴリー別アーカイブ: WindowsTIPS

GoogleApps を お名前.com で使うときに登録するべきDNSレコード

目代です

GoogleAppsのステップbyステップのマニュアルだと別の画面で各レコードの設定内容が出てくるので
何度も登録するときに、結構めんどくさかったので一気に登録するためのメモ
※2011年10月25日現在の情報です

DNS所有権の確認の時に google-site-verification で始まるTXTレコードを作成しますが、
その時一緒に以下のレコードも一緒に登録しておけば楽かと思います。

TXT v=spf1 include:_spf.google.com ~all
MX ASPMX.L.GOOGLE.COM  1
MX ALT1.ASPMX.L.GOOGLE.COM  5
MX ALT2.ASPMX.L.GOOGLE.COM  5
MX ASPMX2.GOOGLEMAIL.COM  10
MX ASPMX3.GOOGLEMAIL.COM  10

 
コメントする

投稿者: : 2011/10/26 投稿先 運用, WindowsTIPS

 

ドメインコントローラの時刻動機方法

Windowsドメイン環境では、ドメインに参加しているWindowsコンピューターは、ドメインコントローラから時刻をもらって同期しています

では、ドメインコントローラ自身はどうやって同期しているのでしょうか?
詳しい説明は@IT:Windowsネットワーク時刻同期の基礎とノウハウ を読んでいただければよいかと思います。

管理者権限でコマンドプロンプトを実行して以下のコマンドを投入します
w32tm /config /manualpeerlist:[NTPサーバー名] /syncfromflags:manual /reliable:yes

さてここで閑話休題。
昔の話ですが、パソコンの時刻同期をフリーソフトで行っていました
とある優秀で便利なフリーソフトがあったのですが、たまたま説明に福岡大学のNTPサーバーを説明として使っていました。
もちろん、初心者は説明書きに書かれているからそのまま設定してしまって、福岡大学のNTPサーバーにすごい負荷がかかってしまうという悲しい出来事があったので、
上記コマンドもあえてNTPサーバーの名前は書いていません

なので、NTPサーバーは使用しているプロバイダなどの自分の環境に合ったものを選択するべきです。
以下のサイトなど(もしくは検索で「NTPサーバ一覧」とか)で自分の環境に合ったNTPサーバーを選択してください
http://wiki.nothing.sh/page/NTP

 

 

 
コメントする

投稿者: : 2011/10/07 投稿先 運用, WindowsTIPS

 

Windows7のジャンプリストが表示されなくなった時の表示方法

Windows7の便利な機能の一つに「ジャンプリスト」というものがあります。

このジャンプリストは、これまでのwindowsにあった「最近使ったファイル」が、よく使う各アプリケーションごとに参照できる機能です。
画像でスタートメニューのExcelのよく使うファイルが表示されていることが分かります。

このジャンプリストは、タスクバー上にピン止めしたアプリケーションもしくは実行中のアプリケーションを右クリックしても表示されます。

こんな便利なジャンプリストがある日突然(Excelだけ)表示されなくなってしまうことがありました。

対処方法としては(すべてのアプリケーションの最近使ったファイル一覧が消えてしまいますが)、
以下のフォルダにあるファイルを削除すれば解決します。

%AppData%\Microsoft\Windows\Recent\CustomDestinations
%AppData%\Microsoft\Windows\Recent\AutomaticDestinations

ピン止めしていたファイルも消えてしまって悲しいですが、全然出ないよりはマシなので、泣く泣く削除しましょう。

目代昌幸

 
コメントする

投稿者: : 2011/10/06 投稿先 運用, WindowsTIPS

 

アクティブディレクトリーのOU(Organization Unit) 一覧を作成できるコントロールを作成しました。

野呂です。

情報ソースは以下です。
http://www.exceedone.co.jp/tabid/157/Default.aspx

アクティブディレクトリーOU(Organization Unit) 一覧(アトリビュート情報含む)

アクティブディレクトリ(Microsoft ActiveDirectory, AD)からOU(Organization Unit)の一覧をツリービューにて表示できるコントロールです。(詳細のアトリビュート情報も出力できます。)
このコントロールは弊社の近日公開予定の「ユーザ管理マネジャー」で使用されています。

アクティブディレクトリ一覧のツリービューコントロールの使用法とサンプルアプリについて

  1. アクティブディレクトリーイメージ
    アクティブディレクトリ(Microsoft ActiveDirectory, AD)からOU(Organization Unit)の一覧をツリービューにて表示できるコントロールです。(詳細のアトリビュート情報も出力できます。)

     
  2. テストサンプルアプリ実行方法
    開発環境 Visual Studio 2008 SP1 .NET Framework 2.0 C#
    以下がVisual Studio のプロジェクトファイルのダウンロードリンクです。
    CaD_UC_TreeActiveDirectoryDriver20110927.zip
  3. 関数の使用方法です。 
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
     
    namespace CaD_UC_TreeActiveDirectoryDriver
    {
        public partial class FormDriver : Form
        {
            public FormDriver()
            {
                InitializeComponent();
            }
     
            private void Driver_Shown(object sender, EventArgs e)
            {
                cad_UC_TreeActiveDirectory.DomainName = Environment.UserDomainName;
                //cad_UC_TreeActiveDirectory.NTAccount = null;
                //cad_UC_TreeActiveDirectory.NTPassword = null;
     
                cad_UC_TreeActiveDirectory.ExecThread_MakeTree(false);
     
            }
     
            private void cad_UC_TreeActiveDirectory_PathChanged(object sender, TreeViewEventArgs e, string strPath)
            {
                MessageBox.Show(this, “パスが変更されました。; Path=” + strPath , this.Text, MessageBoxButtons.OK);
            }
        }
    }
    1. CaD_TreeActiveDirectory.DomainName(プロパティ)
      ドメイン名を指定します。
       
    2. CaD_TreeActiveDirectory.NTAccount(プロパティ)
      実行するユーザを指定します。省略した場合は、ログインユーザになります。
       
    3. CaD_TreeActiveDirectory.NTPassword(プロパティ)
      実行するユーザパスワードを指定します。省略した場合は、ログインユーザになります。
       
    4. CaD_TreeActiveDirectory.ExecThread_MakeTree(メソッド)
      非同期でアクティブディレクトリのOU情報を表示します。
      引数:Question : 実行時に確認ダイアログを表示する。
       
    5. CaD_TreeActiveDirectory.NTPassword(イベント)
      TreeViewのNodeが変更された場合 アクティブディレクトリのPath(パス)を通知するイベントです。
       
  4. Visual Studioの参照設定及びツールボックス表示方法
    1. 参照設定で以下のdllを参照する。
      場所=CaD_UC_TreeActiveDirectoryDriver/dll
      Cadree.Win.UserControl.dll
      Cadree.Win.Class.dll
      Cadree.Common.Object.dll
       
    2. ツールボックスのアイテムの選択
      ※ツールボックスに(CaD_UC_TreeActveDirectory)がでてきて、コントロールとして使用できます。
      場所=CaD_UC_TreeActiveDirectoryDriver/dll
      Cadree.Win.UserControl.dll
 

有線LANが届かないところで、無線LANじゃなくて有線LANを使いたい

目代です

弊社会議室にはLANケーブルはありません。
会議室でPCを使う場合はすべて無線LANで接続しています。

ですが、時々有線LANしか接続できない機器を接続したい時があり、
そんな時にはとーっても長いLANケーブルを持ってきて接続する必要があってとってもかっこ悪いです。

なので、PCIのMZK-RP150N 通称:ちびファイを購入してきました。
http://www.planex.co.jp/product/router/mzk-rp150n/

MZK-RP150N サイズ

この製品は、無線親局にも子局にもできるスグレモノです。
ホテルのLANケーブルに挿して、アクセスポイントとしても、
普通にルーターとしても利用できるようです。

今回は社内の有線LANケーブルが届かないところに、有線LAN製品の設置のために購入してみました。
このような無線LAN子局の使い方をコンバーターモード といいます。

さて、マニュアルを開いて初めて問題があることが分かりました。
SSIDステルス設定(ANY接続拒否)にしていた場合は設定画面に表示されず、
SSIDを直接入力する項目もありません。
買ってきた3140円は無駄になってしまうのでしょうか!?

いいえ。そんなことはありません。
一時的に無線親局のSSIDステルス設定を無効にする必要はありますが、
設定した後に無線親局のステルス設定を有効に戻しても、設定は保存されているので接続は可能でした。
この説明書きがマニュアル上に無いのですごく戸惑うのですが、現在のところ接続できています。

最後に、じつはほかにも問題があるのです。
ちびファイの電源はUSB給電なんです。つまりパソコンが近くにあることが前提なんです。
もし、パソコン以外の機器を使用する目的の場合は、別途USB-コンセント変換プラグを購入する必要があります。
最近のスマートフォンに付属しているUSBコンセントで動作します。
たぶん家電量販店で千円以下で購入ができます。

 

Ustreamでの簡単配信方法 めも

Ustreamをやってみたので、その手順のメモです

まず最低限必要なものは、以下の2つだけ
・インターネットに接続するパソコン
・Webカメラ

Ustreamにアカウントを作成して、WebカメラをつなげばそれだけでWeb動画を配信できます。
この辺の便利さは Skype や Windows Live Messenger と同じですね

ただ動画を映すだけでは面白くないので、PC画面の特定領域を表示したりできるようにソフトを導入します。

必要なソフトは、
ManyCam
SCFH DSF
どちらもフリーソフトです。
ManyCamのインストーラーは途中でAskMeのツールバーなどをインストールしようとするので、インストールしないように注意しましょう

SCFH DSF はzipファイルなので、適切な場所(デスクトップは非推奨、C:\Program Files\SCFHDSF とかフォルダーを作ったほうがよいと思います)
ファイル解凍後、Install.batを実行(64bitOSは64付きを実行)します

実行順序ですが、まずはManyCamを実行します。
その後、SCFH DSFを実行しManyCamを選択して実行することで、

SCFH DSFで選択した範囲のデスクトップ画像をUstream配信することが可能です。

ふたつのソフトの動作についての理解のコツは、
SCFH DSFで選択した範囲の画像をManyCamに渡して、それをUstreamにWebカメラの画像としてManyCamが渡すという構造になっていることです

[デスクトップ画像]->[SCFH DSF]->[ManyCam]->[Ustream]

セットアップの手順などは以下のサイトなどを参考にしています

 
 

有線LAN?無線LAN?

【疑問】
 無線LANを使用している状態で、有線LANを挿すとどっちが優先されるのでしょうか?

【環境】
 機種:Panasonic Let’s Note(CF-Y7)
 OS:Windows XP

【調査】
①コマンドラインから「netstat -r」を実行して、Metric値を確認

②Metric値を変更する場合は、インターネット プロトコル(TCP/IP)のプロパティ画面から変更
   

【結果】
 Metric値によって、どのインターフェースが優先か判断している。
 もし、無線LANを有線LANより優先させたければ、無線LANのMetric値を
 手で変更すればいいみたいです。

 ちなみに、Metric値は低い方が優先です。

 
コメントする

投稿者: : 2011/09/07 投稿先 WindowsTIPS

 

ファイルをコピーするときに使うフリーツール

Windowsでファイルをコピーするとき、標準の機能(エクスプローラーの
機能)で行うのが普通だと思います。

しかし、大量のファイルや、サイズの大きいファイルをコピーすると、
だんだんとスピードが落ちてくるわ、Windows そのものが重くなるわ、
で、イライラすることがあります。(ありますよね?)

(まじめに調べてはいませんが、挙動を見ていると、コピーするファイルを
空きキャッシュに溜め込んで、そのフラッシュに時間がかかっているでしょうか?
どなたか教えてください。。。)

そんなときに重宝しているのが FireFileCopy です。
FireFileCopy : http://www.k3.dion.ne.jp/~kitt/pc/sw/ffc/
作者の解説を読みますと色々と利点があるようですが、私にとっては「速い」、
この1点だけで充分ありがたいツールです。(感謝)
また、コピーを最適化するためのオプションが豊富なのも、大変助かります。
(副ストリームの扱いを設定できるなど、なかり細かな指定ができます)

かなり以前より愛用させていただいていますが、特段トラブルもなく、
自分のPCには無くてはならないツールの1つとなっています。

また、手動でデータバックアップを行う際にもエクスプローラーでファイル
コピーを行いますが、一番困るのが「ミラーリング」したいときです。

お手軽なデータのバックアップ方法としては、
①PCから外付けメディア(HDDなど)へコピー
②上記「①」で取得した外付けメディアの複製
が考えられます。

②は、“バックアップ”の“バックアップ”です。
この業界長いと、複数メディア・世代へバックアップ採るのは、性(さが)ですね。

①は上記 FireFileCopy で素早く処理できるのですが、②が悩ましい。
色々な方が同じような悩みをもていらっしゃるようで、ミラーリング
ソフトは多くの方が開発され、多種多様なものがあります。
個人的に使っているのは Microsoft の robocopy です。
シンプルですし、なんだかんだで安定していますし、バッチファイルを
組めば、あとコピーが終わるまでほおっておいても、ちゃんとログを
採ってくれるので安心です。

コマンドラインツールなので、使い慣れない方には取っ付き辛い所は
ありますが、一度「呪文(コマンド)」を覚えてしまえばよいので、
ぜひトライしていただきたいです。
参考:http://www.atmarkit.co.jp/fwin2k/win2ktips/877robomir/robomir.html

昨今はウィルスなどで貴重なデータを失う危険性は高まるばかりですので、
せっかく便利なツールたちがあるんですから、ありがたく使用させて頂き
自衛しないと、ですね。
(まぁ、一番データ消してしまう危険性は、自分自身の誤操作なのですが・・・)

またどこかで、すばらしいフリーツールたちを紹介したいと思います。
 
コメントする

投稿者: : 2011/08/31 投稿先 おすすめ, 運用, 雑談, WindowsTIPS

 

Facebook Never Note アプリ(Windows のNotepadみたいなの)

<ソース> 


Facebook Never Note アプリ(Windows のNotepadみたいなの)


<本文>


Facebook Never Note アプリ(Windows のNotepadみたいなの)



  • このアプリケーションはノートを書いて保存できるアプリです。

  • このアプリケーションは、Facebook ユーザアカウントを使用して、ユーザ毎にデータ保存、検索できるアプリケーションです。このアプリケーションで、Facebookのログイン、ログアウト、データ保存方法がわかります。 
    ※データの保存、検索にははフェイスブックユーザID(long型)をテーブルに紐づけていますのでそのユーザしかデータがみえません。

  • まずはアプリケーションを動かしてみよう。
    Facebook内側で表示
    http://apps.facebook.com/exoneapptest/

    Facebook外側で表示
    http://facebook.exceedone.co.jp/appstest/ 

 


 


ダウンロード – プログラムソース(PHP), DB作成用SQL(mysql)


参考にどうぞ


プログラムソース(PHP), DB作成用SQL(mysql)です。
※すべてのファイルはUTF-8ですので、編集するときはUTF-8のEditorで開いてください。(Eclipse等)



  1. 20110819日(V1)

    1. プログラムソース(PHP)
      appstest20110819.zip

    2. DB作成用SQL(mysql)
      appstest20110819_SQL.zip

 


基本機能の説明



  • 以下のURLをブラウザーでひらきます。
    フェイスブックにログインされていないと 右上に「Log in(Facebook)」ボタンが現れますのでクリックします。
    http://facebook.exceedone.co.jp/appstest/


     

  • このアプリケーションを初めて実行するときは、実行許可を求められますので右下の「許可する」をクリックします。
     
     

  • ログインできますと、「Welcom Top Page」と表示されます。
    右のほうの「Nevernote」をクリックします。
     
     

  • 「Add」ボタンをクリックします。(新規作成できます。)
     
     

  • データを入力して「Add」ボタンを押すとDB(MySQL)にデータが追加されます。
     
     

  • データが追加されと以下のように一覧に表示されます。
    編集したい場合は「編集」ボタンをクリックしてください。
    削除したい場合は「削除」ボタンをクリックしてください。

 


 


フェイスブックのアプリケーション登録




  1. フェイスブックアプリケーションの初期設定方法は以下のリンクの真ん中あたりの「Facebookにアプリケーションを登録するを参考にしてください。
    Facebookにアプリケーションを登録する。
     

  2. フェイスブックでログイン後以下のURLでアプリを登録します。
    https://www.facebook.com/developers/apps.php
     

    1. アプリ名称
      appstest

    2. [Web Site][サイトURL][キャンバスページ]
      ※フェイスブックの内側で動作する。
      http://apps.facebook.com/exoneapptest/
        

    3. [Web Site][サイトURL][キャンバスページURL]
      ※フェイスブックの外側で動作する。
      http://facebook.exceedone.co.jp/appste
       st/

    4. [詳細設定][サンドボックス]
      有効にする。

 


フォルダー構成

フォルダー構成(PHP,TPL(Smarty), CSS)
appstest-+- .htaccess (一覧不可, この拡張子のアクセス不可(ht,tpl,crt)) |- index.php (ログインのコントロール) |- logout.php (ログアウトのコントロール) |- nevernote.php (Nevernoteのコントロール) |- top.php (ログイン後の初期ページ) |- css/ (CSSファイル) |- libs/ -+- .htaccess (このフォルダーのアクセス不可) | |- base_facebook.php (Facebook提供のベースクラス) | |- common.application.php(共通クラスアプリケーション用) | |- common.index.php (共通クラスIndex用) | |- common.php (共通クラスCommon用) | |- DBConnect.class.php (MySQL DB接続クラス) | |- facebook.php (Facebook提供のクラス) | |- fb_ca_chain_bundle.crt(Facebook提供のcrt) | |- Nevernote.class.php (Nevernoteのクラス) | |- SmartyEx.class.php (Smartyの設定クラス) |- properties/ -+- — .htaccess (このフォルダーのアクセス不可) | |- config.inc.php (サーバ等の環境の設定ファイル) |- smarty/ (Smarty-2.6.26) |- smartytemplate/-+- .htaccess (このフォルダーのアクセス不可) |- configs/ (今回は使用しない)             |- templates/-+- foot.tpl (共通フッターtemplate)                            |             |- head.tpl (共通ヘッダーtemplate)                           |             |- login.tpl (ログインtemplate)                         |             |- nevernotedetail.tpl(明細template)                         |             |- nevernotemain.tpl (メインtemplate)                         |             |- top.tpl (Toptemplate)                           |             |- transfer.tpl (URL転送時template) +- templates_c/ (重要:Apacheの書き込み権限が必要です)
※template_c の権限の変更コマンド




#chmod -R 777 templates_c/
 

 


実行環境について(Apache, PHP, MySQLバージョン)


#httpd -v
Server version: Apache/2.2.3
Server built:   May 4 2011 06:51:15


# apachectl -v
Server version: Apache/2.2.3
Server built:   May 4 2011 06:51:15


# rpm -qa php*
php-cli-5.1.6-27.el5_5.3
php-pdo-5.1.6-27.el5_5.3
php-mcrypt-5.1.6-15.el5.centos.1
php-xml-5.1.6-27.el5_5.3
php-mbstring-5.1.6-27.el5_5.3
php-mysql-5.1.6-27.el5_5.3
php-pear-1.4.9-6.el5
php-common-5.1.6-27.el5_5.3
php-5.1.6-27.el5_5.3
php-devel-5.1.6-27.el5_5.3


[root@www001 ~]# rpm -qa mysql*
mysql-devel-5.0.77-4.el5_6.6
mysql-5.0.77-4.el5_6.6
mysql-server-5.0.77-4.el5_6.6


データベースとテーブルの構造 (MySQL)





  1. データベース作成
    mysql>CREATE DATABASE IF NOT EXISTS appstest;
     

  2. テーブル作成
    mysql>USE appstest;

    mysql>CREATE TABLE `nevernote` (
                              `idnevenote` int(10) unsigned NOT NULL AUTO_INCREMENT,
                              `facebookuserid` bigint(20) unsigned NOT NULL,
                              `title` text NOT NULL,
                              `detail` text NOT NULL,
                              PRIMARY KEY (`idnevenote`),
                              KEY `Index_1` (`facebookuserid`)
                             ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; 
     


  3. testuser (localhostから)が appstest のテーブルがアクセスできるようにします。
    grant all privileges on appstest.* to testuser@localhost identified by ‘testuser123’;

Smartyについて





  1. Smartyとは

    1. 簡単に説明しますと、PHPプログラムから、「Smarty->Display(xxx.tpl)」という命令を実行するととxxx.tplを読み込み、htmlとして出力する機能です。 
       

    2. Smarty自体もPHPプログラムですので、サーバの任意の場所に設置して使用します。
       ApacheのDocument Folder配下でなくてもOKです。
      Apacheに読み取り権限があるフォルダーであればOKです。
       

    3. 注意としては、実際には、Smartyは 「template_c」 というところに、事前にtplからコンパイルした、phpを出力しますのでApacheにはこのフォルダーの書き込み権限が必要です。
       

  2. 「appstest/libs/SmartyEx.class.php」 の説明
    以下はSmartyのtemplateの場所を指定しています。




    <?php

    require_once(_ROOT_DOCUMENT . “smarty/libs/Smarty.class.php”);


    class SmartyEx extends Smarty{
     function SmartyEx(){
     $this->Smarty();
     $this->template_dir= _ROOT_DOCUMENT . “smartytemplate/templates/”;
     $this->compile_dir = _ROOT_DOCUMENT . “smartytemplate/templates_c/”;
     $this->config_dir = _ROOT_DOCUMENT . “smartytemplate/configs/”;
     }
    }
    $smarty = new SmartyEx();
    ?>




 


Facebookログイン、ログアウトの仕組み



  • 「appstest/index.php」 の説明
    indexなので最初によびだされるphpです。Facebookユーザがログインされているか確認しています。
    ログインされている場合は「top.php」を呼び出します。




    //——————————————————————
    //Include common.index.php class
    require_once(“libs/common.index.php”);
    //——————————————————————

    //Include Facebook class(フェイスブックのクラスをインクルードする。)
    require_once(_ROOT_DOCUMENT . ‘libs/facebook.php’);


    //Get Facebook Object with Facebook ApplicationID (フェイスブックのアプリケーションIDでオブジェクトを取得する。
    $facebook = new Facebook(array(
       ‘appId’ => _FACEBOOK_APPLICATIONID,
       ‘secret’ => _FACEBOOK_SECRETKEY,
    ));


    //Get Facebook userid (フェイスブックのユーザIDを取得する)
    $user = $facebook->getUser();


    //Check login Facebook(フェイスブックにログイン済みか確認する。)
    if ($user) {
     try {
     //Get Facebook user profile (フェイスブックのユーザプロフィールを取得する。)
     $user_profile = $facebook->api(‘/me’);
     } catch (FacebookApiException $e) {
     error_log($e);
     $user = null;
     }
    }


    if($user)
    {
     //フェイスブックにログイン済み


     //フェイスブックのユーザ情報をセッションに保存する。
     $_SESSION[‘FB’][‘user’]=$user;
     $_SESSION[‘FB’][‘name’]=$user_profile[‘name’];


     $_SESSION[‘FB’][‘user_profile’]=$user_profile;
     $_SESSION[‘FB’][‘logoutUrl’]=$facebook->getLogoutUrl();


     //top画面表示する。
     $smarty->assign(‘transferurl’, ‘./top.php’);
     $smarty->display(‘transfer.tpl’);


    }
    else
    {
     //フェイスブックにログインしていない。


     //login画面表示する。
     $loginUrl=$facebook->getLoginUrl();
     $smarty->assign(‘loginUrl’, $loginUrl);
     $smarty->display(“login.tpl”);
    }


    ?>


     


  • 「appstest/logout.php」 の説明
    ログアウト時にはフェイスブックユーザのログアウトとセッションの削除をしています。




    //——————————————————————
    //Include common.application.php class
    require_once(‘libs/common.application.php’);
    //——————————————————————

    //Display Logout Screen (logout画面表示)
    $smarty->assign(‘transferurl’, $_SESSION[‘FB’][‘logoutUrl’]);
    $smarty->display(‘transfer.tpl’);


    //Clear Session (セッションクリアする。)
    session_destroy();


    ?>




Nevernoteの仕組み


「appstest/nevernote.php」 の説明
Nevernoteの制御をしているPHPで、状況により、いろんな tpl(Smartyテンプレート)を呼び出しています。





//——————————————————————
//Include common.application.php class
require_once(‘libs/common.application.php’);
//——————————————————————

//Include Nevernote.class for using db(DBの操作Classの呼び出し)
require_once(_ROOT_DOCUMENT.’libs/Nevernote.class.php’);
$objNevernote = new Nevernote($objDBConnect);


if (isset($_REQUEST[“submit_main”]))
{
 //nevernotemain.tpl, [Search button] or [Add button] が押されたとき。


 if (isset($_REQUEST[“submit_search”]))
 {
 //nevernotemain.tpl, [Search button] が押されたとき。
 displaylist($objNevernote, $smarty);
 }
 elseif (isset($_REQUEST[“submit_add”]))
 {
 //nevernotemain.tpl, [Add button] が押されたとき。
 $smarty->assign(‘detail_mode’, ‘add’);
 $smarty->display(‘nevernotedetail.tpl’);
 }
}
elseif (isset($_REQUEST[“submit_main_list”]))
{
 //nevernotemain.tpl, [Edit button] or [Delete button] が押されたとき。
 if (isset($_REQUEST[“submit_edit”]))
 {
 //nevernotemain.tpl, [Edit button] が押されたとき。
 $nidnevenote = getArrayKeyFirst($_REQUEST[“submit_edit”]);
 $dataNevernote = $objNevernote->GetOne($nidnevenote);
 $smarty->assign(‘dataNevernote’, $dataNevernote);
 $smarty->assign(‘detail_mode’, ‘edit’);
 $smarty->display(‘nevernotedetail.tpl’);
 }
 elseif (isset($_REQUEST[“submit_delete”]))
 {
 //nevernotemain.tpl, [delete button] が押されたとき。
 $nidnevenote = getArrayKeyFirst($_REQUEST[“submit_delete”]);
 $dataNevernote = $objNevernote->Delete($nidnevenote);


 displaylist($objNevernote, $smarty);
 }
}
elseif (isset($_REQUEST[“submit_detail”]))
{
 //nevernotedetail.tpl, [Add button] or [Update button] or [Cancel button] が押されたとき。


 if (isset($_REQUEST[“submit_detail_Add”]))
 {
 //nevernotedetail.tpl, [Add button] が押されたとき。
 $data[“title”]=$_REQUEST[“title”];
 $data[“detail”]=$_REQUEST[“detail”];
 $objNevernote->Insert($_SESSION[‘FB’][‘user’], $data);
 }
 elseif (isset($_REQUEST[“submit_detail_Update”]))
 {
 //nevernotedetail.tpl, [Update button] が押されたとき。
 $nidnevenote=$_REQUEST[“idnevenote”];
 $data[“title”]=$_REQUEST[“title”];
 $data[“detail”]=$_REQUEST[“detail”];
 $objNevernote->Update($nidnevenote, $data);


 }
 elseif (isset($_REQUEST[“submit_detail_Cancel”]))
 {
 //nevernotedetail.tpl, [Cancel button] が押されたとき。
 }


 displaylist($objNevernote, $smarty);
}
else
{
 //Init (最初)
 displaylist($objNevernote, $smarty);
}


//一覧表示
function displaylist($objNevernote, $smarty)
{
 $listNevernote = $objNevernote->GetList($_SESSION[‘FB’][‘user’]);
 $smarty->assign(‘listNevernote’, $listNevernote);
 $smarty->display(‘nevernotemain.tpl’);
}


?>


DBクラスの説明(mysql)


「appstest/libs/DBConnect.class.php」 の説明
MySQLのDBにアクセスするクラスです。





class DBConnect {

 var $dbname;
 var $host;
 var $port;
 var $user;
 var $password;
 var $socket;
 var $con      = false;


 function DBConnect($DBNAME, $HOST, $PORT, $USER, $PASSWORD, $SOCKET) {
 $this->dbname = $DBNAME;
 $this->host   = $HOST;
 $this->port   = $PORT;
 $this->user   = $USER;
 $this->password = $PASSWORD;
 $this->socket = $SOCKET;


 $this->GetConnection();
 }


 function GetConnection(){
 if($this->con == false) {
   return($this->_DBConnect());
 }
 return($this->con);
 }


 function _DBConnect(){
 $result = mysql_pconnect($this->host.”:”.$this->socket, $this->user, $this->password);
 if($result==false)
 {
   printf(“Error DB Connect:”.mysql_error());
   return false;
 }


 $result = mysql_select_db($this->dbname);


 if($result==false)
 {
   printf(“Error DB Select:”.mysql_error());
   return false;
 }
 }


 function DBClose(){
 if($this->con != false){
   mysql_close($this->con);
   $this->con = false;
 }
 }


 function Query($sql){
 $result = mysql_query($sql);
 if(!$this->CheckQuery($sql,$result)) return false;
 return $result;
 }


 function FetchOne($sql){
 $result = mysql_query($sql);
 if(!$this->CheckQuery($sql,$result)) return false;


 if($result != false){
   $num = mysql_num_rows($result);
   if($num > 0){
    $data = mysql_fetch_object($result);
    settype($data, “array”);
    return $data;
   }else{
    return false;
   }
 }else{
   return false;
 }
 }


 function FetchAll($sql)
 {
 $result = mysql_query($sql);
 if(!$this->CheckQuery($sql,$result)) return false;


 if($result != false)
 {
   $num = mysql_num_rows($result);
   if($num > 0)
   {
    for($i=0;$i<$num;$i )
    {
     $list[$i] = mysql_fetch_object($result);
     settype($list[$i], “array”);
    }
    return $list;
   }else
   {
    return false;
   }
 }else
 {
   return false;
 }
 }


 function CheckQuery($sql, $result)
 {
 if($result == false){
   printf(“Error Query; SQL=”.$sql.”; Error Detail=”.mysql_error());
   return false;
 }
 return true;
 }
}
?>




Commonクラスの説明



  • 「appstest/libs/common.php.php」 の説明
    commonの共通ルーチン




    <?php
    define(‘_ROOT_DOCUMENT’, dirname(__FILE__).’/../’);

    require_once(_ROOT_DOCUMENT.’properties/config.inc.php’);
    require_once(_SMARTYLOCATION);


    if (!isset($_SESSION)) {
     session_start();
    }


    $smarty->assign(‘site_title’, _SITE_TITLE);


    // Common function
    function getArrayKeyFirst($array)
    {
     $arrykeys = array_keys($array);
     return $arrykeys[0];


    }
    ?>


     


  • 「appstest/libs/common.index.php」 の説明
    appstest/index.php にインクルードされるヘッダー




    <?php
    require_once(dirname(__FILE__).’/../’.’libs/common.php’);
    ?>

     


  • 「appstest/libs/common.application.php」 の説明
    appstest/index.php 以外にインクルードされるヘッダー




    <?php
    require_once(dirname(__FILE__).’/../’.’libs/common.php’);

    //ログインしていない場合はLogin画面へ戻る
    if (!isset($_SESSION[‘FB’][‘user’]))
    {
     //index画面表示する。
     $smarty->assign(‘transferurl’, ‘./index.php’);
     $smarty->display(‘transfer.tpl’);
     exit;
    }


    $smarty->assign(‘name’, $_SESSION[‘FB’][‘name’]);
    $smarty->assign(‘user’, $_SESSION[‘FB’][‘user’]);
    $smarty->assign(‘logoutUrl’, $_SESSION[‘FB’][‘logoutUrl’]);


    // DB
    require_once(_ROOT_DOCUMENT.’libs/DBConnect.class.php’);
    $objDBConnect = new DBConnect(_DBNAME, _HOST, _PORT, _USER, _PASSWORD, _SOCKET);


    ?>

 

Windowsを「軽く」するときに使うフリーツール

今更ですが、Windows が “重い” と感じたときに、私がよくやる方法です。

実際、以下のツールと手順を紹介して実施した方々からは、「軽くなったね~」と
いわれることもしばしば。
私自身、Windowsの起動が遅くなったり、Windows Update が走ったあとには
必ず行っています。
動作もさることながら、Windowsの起動が体感で分かるくらい速くなりますので、
「遅いな~」と感じる方は参考にしてみてください。

1)不要なファイルとレジストリの掃除
まずは CCleaner でお掃除します。有名なツールですね。安定感もあり、重宝しています。
まずはこれで、不要なファイルとレジストリをきれいにお掃除します。
CCleaner : http://www.piriform.com/CCLEANER
たまに窓の手(こちらも有名ですね)の「不要ファイル掃除機」で、CCleanerでは削除
しきれない(?)ファイルのお掃除もします。
窓の手 : http://www.asahi-net.or.jp/~vr4m-ikw/

2)レジストリのデフラグ
Googleなどで検索すると、レジストリのデフラグに関する方法がよく見られます。
私は以下のツールを愛用しています。
NT Registry Optimizer : http://www.larshederer.homepage.t-online.de/erunt/
Wise Registry Cleaner : http://www.wisecleaner.com/download.html
どちらも今まで特にトラブルなく使えており、かつ効果が高いように感じます。
経験上ですが、レジストリの場合、デフラグして速くするというより、最適化による
レジストリの圧縮という行為に効果があるように感じます。

3)デフラグ
最後はディスクのデフラグです。
私は市販のものを愛用していますが、フリーの Defraggler もよく使います。
CCleanerと同じ製造元のツールですが、こちらも安心感のあるツールですね。
Defraggler :  http://www.piriform.com/defraggler

あと、自分のこだわりはWindowsを再起動して行うことです。
私の場合、
再起動⇒1)と2)を実行⇒再起動⇒3)を実行
の順で実施しています。
果たしてそれで本当に効果があるのが、技術的な点は分かりませんが、
経験上、効果が高まる気がします。
※再起動の手間をかけた分、そんな気になっているだけかもしれませんが・・・

なお、検証環境は Windows XP(!)です。
なので、Bootvis なども使ったりします。非常に効果の高いツールだと思うので、
興味のある方は探してみてください。結構記事にされている方がいらっしゃいます。
また、これらは環境によって効果も変わると思いますし、システムをガシガシいじくる
ことになりますので、当然 Windows がクラッシュする可能性もあります。
実施は自己責任でお願いします。

他にも実際の運用作業で使用している、すばらしいフリーツールがまだまだあります。
それはまたどこかで、運用事例を含めて紹介できればと思っております。

 
コメントする

投稿者: : 2011/08/10 投稿先 雑談, WindowsTIPS