2008年12月24日水曜日

GoogleEarthのフォント変更


ubuntuのGoogleEarthのフォントがおかしい場合は~/.config/Google/GoogleEarthPlus.confの以下を変更する。
GuiFontFamily=Gothic [Kochi]
GuiFontSize=8

2008年12月9日火曜日

MFC-850CDNのインストール

ブラザーのMFC-850CDNのドライバーをubuntu8.10に設定する方法

(1)ブラザーのホームページより以下のdebian用のドライバーを取得する。
mfc850cdnlpr-1.0.1.i386.deb
  mfc850cdncpswrapper-1.0.1-1.i386.deb
(2)以下のコマンドを実行する。
  sudo mkdir /usr/share/cups/model
sudo mkdir /var/spool/lpd
(3)以下のコマンドを実行し、ドライバーをインストールする。
  sudo dpkg -i --force-all mfc850cdnlpr-1.0.1.i386.deb
sudo dpkg -i --force-all mfc850cdncpswrapper-1.0.1-1.i386.deb
(4)usb接続のプリンターが自動設定されるので、
  ネットワーク接続の場合はプリンターを新規作成する。

2008年10月28日火曜日

相互参照時段落内容が意図しない内容の場合

MS-Wordにて[相互参照]時に[段落の内容]等により参照先の文字列が意図しない範囲の場合の対処方法。
(1)相互参照している文字列も右クリックし、[フィールド編集]を選択する。
(2)参照先のブックマーク名をメモる
(3)ダイアログを閉じる。
(4)[挿入]-[ブックマーク]を選択し、ブックマークダイアログを表示する。
(5)[自動的に挿入されたブックマークを表示する]にチェックを付ける。
(6)メモしたブックマーク名を選択する。
(7)[ジャンプ]ボタンを押下する。
(8)一旦、ブックマークダイアログを閉じる。
(9)意図している文字列をマウスで選択する。
(10)[挿入]-[ブックマーク]を選択し、ブックマークダイアログを表示する。
(11)メモしたブックマーク名を選択されている状態で、[追加]ボタンを押下する。
(12)相互参照している文字列を右クリックし、[フィールド更新]を選択する。

2008年8月14日木曜日

参照やポインタを返すメソッド作成時の注意点


C++において参照やポインタを返すメソッドは基本的にはconstを付けて作成する。
メソッドより取得した参照、ポインタに対して変更を許す場合には、constを付けた
メソッドと付けていないメソッドを両方用意する。
つまり、以下のような例において、const int &getY() constメソッドを用意しないと
コンパイルで失敗する。(y.getY()でエラーとなる)


#include
class YY {
protected:
int y;
public:
YY() {
y = 123;
}
int &getY() {
return y;
}
const int &getY() const{
return y;
}

};


int main() {
const YY y;
YY y2;
y2.getY() = 134;
printf("%i %i\n",y.getY(),y2.getY());
return 0;
}

2008年7月31日木曜日

vectorでバッファを実現する。


vectorにおいて下記のようなコードを記述することが可能である。


void Copy(std::vector& v,char* buff,int size) {
v.resize(size);
memcpy(&v[0], data, data + size);
}

ただし、bool型では使用できない。

2008年7月11日金曜日

古い設定のSAMBAへアクセスする

古いSAMBAでは、暗号化パスワードが使えず平文パスワードにしないと
アクセスできない場合がある。
アクセスするためには、WindowsXPでデフォルトでは許されていない平文パスワードを
許可する必要がある。
平文パスワードを許可するには、以下の手順を行う。
(1)Regeditを起動する。
(2)以下を1に変更する。   
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
  lanmanworkstation\parameters\enableplaintextpassword
(3)Regeditを停止する。

2008年7月8日火曜日

C++ではvirtualのデストラクタを必ず宣言する。

C++ではvirtualのデストラクタを宣言しないと、
継承した際に、子のデストラクタが呼ばれないため、
メモリリークしてしまう不適合が入る可能性がある。
このため、常にvirtualのデストラクタを用意した方が
良い。

2008年5月16日金曜日

Windowsのプログラムから、リモートへのファイルコピーを行う方法


・Unix系のPCへのファイルコピー

char cmd[256];
sprintf(cmd,"c:\\windows\\system32\\rcp.exe %s hs.yoshida:/tmp",FileName);
int x = system(cmd);
printf("%i=%s\n",x,cmd);

・Windowsへのファイルコピー

sprintf(cmd,"c:\\windows\\system32\\net.exe use \\\\Hostname\\name /USER:user passwd");
x = system(cmd);
printf("%i=%s\n",x,cmd);

sprintf(cmd,"copy %s \\\\Hostname\\name\\path\\",FileName);
x = system(cmd);
printf("%i=%s\n",x,cmd);

sprintf(cmd,"c:\\windows\\system32\\net.exe use \\\\Hostname\\name /DELETE");
x = system(cmd);
printf("%i=%s\n",x,cmd);

2008年5月1日木曜日

Visioでページ番号を途中から振る方法


Visioでページ番号を途中から振る場合は以下の手順を行う。(Visio2003で動作確認)
(1)メニューより[挿入]-[フィールド]を選択する。
(2)フィールドのカテゴリとしてユーザ定義式を選択する。
(3)ユーザ定義式として以下の例のような式を入れる。
  =PAGENUMBER() + 26
この例は27ページから順にページ番号を振っていく場合。
(4)[OK]ボタンを押下し、ページ番号を挿入する。

※:ページプロパティの種類を背景にしたページに上の方法でページ番号を設定し、
  他のページはページプロパティでページ番号を設定したページを背景に設定する
  ことにより、開始ページの変更の際に一箇所の変更で済む。

2008年4月27日日曜日

cron-apt


自動でaptitudeを使ってセキュリティアップデートをするには
(1)cron-aptのインストール
sudo aptitude install cron-apt
(2)/etc/cron-aptを修正
$ diff config config.org
15c15
< APTCOMMAND=/usr/bin/aptitude
---
> # APTCOMMAND=/usr/bin/aptitude
23c23
< FILTERCTRLM="false"
---
> # FILTERCTRLM="false"
26c26
< export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
---
> # export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
31c31
< RUNSLEEP=3600
---
> # RUNSLEEP=3600
34c34
< ACTIONDIR="/etc/cron-apt/action.d"
---
> # ACTIONDIR="/etc/cron-apt/action.d"
38c38
< ACTIONCONFDIR="/etc/cron-apt/config.d"
---
> # ACTIONCONFDIR="/etc/cron-apt/config.d"
43c43
< MAILMSGDIR="/etc/cron-apt/mailmsg.d"
---
> # MAILMSGDIR="/etc/cron-apt/mailmsg.d"
48c48
< SYSLOGMSGDIR="/etc/cron-apt/syslogmsg.d"
---
> # SYSLOGMSGDIR="/etc/cron-apt/syslogmsg.d"
53c53
< ERRORMSGDIR="/etc/cron-apt/errormsg.d"
---
> # ERRORMSGDIR="/etc/cron-apt/errormsg.d"
58c58
< LOGMSGDIR="/etc/cron-apt/logmsg.d"
---
> # LOGMSGDIR="/etc/cron-apt/logmsg.d"
63c63
< MAILONMSGSDIR="/etc/cron-apt/mailonmsgs"
---
> # MAILONMSGSDIR="/etc/cron-apt/mailonmsgs"
68c68
< SYSLOGONMSGSDIR="/etc/cron-apt/syslogonmsgs"
---
> # SYSLOGONMSGSDIR="/etc/cron-apt/syslogonmsgs"
75c75
< ERROR="/var/log/cron-apt/error"
---
> # ERROR="/var/log/cron-apt/error"
79c79
< TEMP="/var/log/cron-apt/temp"
---
> # TEMP="/var/log/cron-apt/temp"
82c82
< LOG="/var/log/cron-apt/log"
---
> # LOG="/var/log/cron-apt/log"
85c85
< MAIL="/var/log/cron-apt/mail"
---
> # MAIL="/var/log/cron-apt/mail"
88c88
< MAILTO="user"
---
> # MAILTO="root"
97c97
< MAILON="error"
---
> # MAILON="error"
105c105
< SYSLOGON="upgrade"
---
> # SYSLOGON="upgrade"

(3)/etc/cron-apt/action.d/3-download
< dist-upgrade -d -y -o APT::Get::Show-Upgraded=true
> dist-upgrade -y -o APT::Get::Show-Upgraded=true

2008年4月12日土曜日

アンチウィルスソフトのインストール


sudo aptitiude install clamav-daemon

sshでパスワードなしでログインする設定


(1)クライアント側にて以下のコマンドで鍵を作成する。
>ssh-keygen
(2)公開鍵(id_rsa.pub)の内容をサーバ側の~/.ssh以下のauthorized_keysに追加する.
  authorized_keysが存在しない場合は作成する。
(3)authorized_keysのアクセス権を600にする。
  chmod 600 ~/.ssh/autorized_keys
(3)クライアント側でssh-agentを起動する。
eval `ssh-agent`
(4)クライアント側にて秘密鍵を登録する。
  ssh-add ~/.ssh/id_rsa
(5)sshのサーバでのログインがパスワードなしで行えるようになる。
(6)ssh-agentを終了する場合は以下のコマンドを実行する。
eval `ssh-agent -k`

ntpの設定

以下の手順を行う。
(1)sudo aptitude install ntp ntp-doc
(2)cd /etc/
(3)sudo vi ntp.conf
(4)ntp.confを以下のように修正する。
   /etc$ diff ntp.conf ntp.conf.org 
   15,18c15
   < #server ntp.ubuntu.com
   < server ntp1.jst.mfeed.ad.jp
   < server ntp2.jst.mfeed.ad.jp
   < server ntp3.jst.mfeed.ad.jp
   ---
   > server ntp.ubuntu.com

2008年4月10日木曜日

gitのインストール


バージョン管理ツールであるgitをインストールする手順は
(1)aptitude install cogito

SubVersionのリポジトリをgitで使う方法
(1)aptitude install git-svn
(2)git-svnimport [svnのURL]
例:git-svnimport file:///home/user/svnrepos

2008年4月6日日曜日

Wake On Lanの設定

Wake On Lanの設定
条件:LANカード、BIOSが対応していること。
(1)BIOSにてWake On Lanを有効にする。
(2)下記のコマンドを実施
  sudo aptitude install ethtool
(3)/etc/rc.localのexit 0の前に以下を追加
  /usr/sbin/ethtool -s eth0 wol g

hosts.allow,hosts.denyの設定


hosts.allowとhosts.denyを設定しアクセス制限を行う.

(1)hosts.denyに以下を追加
ALL: ALL <-- すべてを禁止する。
(2)hosts.allowに許可するアドレスを設定する。
ALL: 192.168.0. <-- ローカルからのアクセスを許可する。
ALL: .XXXX.XX.jp <-- ルーターの外からのアクセスを許可するURLを設定する。

2008年3月18日火曜日

プロセスの生存確認(Linux)

下記のコードでLinux上でのプロセスの生存確認が可能である。


#include<stdio.h>
#include<sys/types.h>
#include<signal.h>
#include<errno.h>

int main(int argc,char* argv[])
{
int pid;

sscanf(argv[1],"%i",&pid);

if (kill(pid,0) != 0) {
perror("kill");
return 1;
}
else {
printf("OK\n");
return 0;
}
}