2010年12月23日木曜日

ACCESS:別フォームのフォーカス位置

クエリベースのデータシート形式のフォームでRequeryした場合、
カーソル(フォーカス)位置が先頭行(先頭のレコード)に戻るわけなんですが、
Requery前のフォーカス位置にフォーカスがあるようにしたくて結構悩みまして(笑)

フォーム名:FM_納品確認
対象コントロール名:ID

コントロールの値を取得して変数num_FindIDに格納

Forms!FM_納品確認.Requery
Forms!FM_納品確認!ID.SetFocus
Forms!FM_納品確認!.Recordset.FindFirst "ID = " & num_FindID

これだけのこと・・・(笑)。

ちゃんと分かっているヒトには当たり前のことなんでしょうけど。

2010年11月24日水曜日

PostgreSQL:自分メモ

前述の記事に書いた続き。

これで2日間、157500円也。

------------------------------------------------
トレーニングの前に
内部構造
メモリ・プロセス・ストレージの構成、サーバへの接続処理、SQL の実行処理、データベースクラスタの構造、ブロックの構造、データの読み取り・書き込み

デプロイメント
システム構成の設計、ディスク容量の見積もり、インストール、データベースクラスタの作成、テーブルスペース、フィルファクタ、性能検証

セキュリティ管理
通信経路の暗号化、データの暗号化、クライアント認証、データベースオブジェクトの暗号化、監査ログ

メンテナンス
ログの取得、バックアップ、PITR、ホットスタンバイとストリーミングレプリケーション、バキューム、統計情報の更新、インデックスの再構築、ディスク容量の監視、システムカウンタの監視

性能分析
ボトルネックの調査、実行時統計情報 (統計情報ビュー)、実行計画 (EXPLAIN、auto_explain、計画タイプ)、統計情報 (pg_class テーブル、pg_stats ビュー)

性能チューニング
バキューム (maintenance_work_mem、max_fsm_pages)、読み取り・書き込み (shared_buffers、wal_buffers)、実行計画 (インデックス、work_mem)

障害対応
起動できない場合 (pg_resetxlog)、反応しない場合、停止してしまう場合 (セグメンテートン違反、OOM Killer)、データが破損した場合 (インデックスの再構築、zero_damaged_pages)

PostgreSQL:自分メモ

適当にPostgreSQL9.0について見ていたら、
次のような内容で2日間トレーニングを行うというのを見つけまして。
2日間で84000円らしいです。
なんか高くない?と思いましたが、
これくらいが普通なのかもしれませんね。

この内容がマスターできたら、脱初心者になれるのでしょうか。

まぁ、自分への指標ということで、勝手にメモ。

-------------------------------------------------------
トレーニングの前に
RDBMS、テーブルの正規化、PostgreSQL の特徴

インストールと設定
データベースクラスタの作成、データベースサーバの起動・停止、ロールの作成、データベースの作成

基本的なSQL
psql、基本的な SQL (CREATE TABLE、INSERT、SELECT、UPDATE、DELETE)、データ型、インデックス
CREATE
制約、デフォルト値、ドメイン、テーブル定義の変更、一時テーブル、ビュー、継承、スキーマ
SELECT
ORDER BY、LIMIT / OFFSET、DISTINCT、GROUP BY / HAVING、CASE、結合、副問い合わせ、集合演算 (UNION、INTERSECT、EXCEPT)、カーソル
トランザクション
トランザクション (BEGIN、COMMIT、ROLLBACK、SAVEPOINT)、トランザクション隔離レベル (READ COMMITTED、SERIALIZABLE)、トランザクション同時実行制御 (行ロック、テーブルロック、デッドロック)

関数
関数の定義、SQL 関数、PL/pgSQL 関数、トリガ、プリペアードステートメント

運用管理基礎
クライアント認証、テーブルのアクセス権限、バックアップ、ログの取得、バキューム、統計情報の更新

2010年11月17日水曜日

Symantec AntiVirus Corporate Edition

SymantecAntivirusCorprateEdition(以下SACE)は、
すでに販売もサポートも終了している商品ですが、
私の今の職場では利用されていたんですよ…サポート対象○のバージョンが。

で、最近、定時ライブアップデートでウィルス定義ファイルが更新されると、
PCの電源投入後、Windowsロゴが表示されたあと、画面が真っ暗になる、と(笑)。

台数を考えると笑い事じゃないんですけどね。

ちなみに、真っ暗になるのはLenovo製ThinkPad SL510という機種。

もっと古い機種では、ログインするとユーザープロフィルが読み込めない、
という感じのメッセージが表示されてまともに動作しません(笑)。

いや、ホント笑い事じゃないんですよ。

現Lenovo、旧IBMではRescue and Recovery(以下R&R)という、
バックアップ作成アプリ(厳密に言うと違う気がしますが)があるのですが、
SymantecEndpointProtection(以下SEP)の検証を行えるようになった時期のR&Rのバージョンとは相性が悪く、
いろいろと小細工をしないと正常にバックアップが作成されないという状態でした。

当時はSACEのサポートもあり、
結果SACEが利用され続けました。
その後もR&Rのバージョンが更新された場合、
暇を見て検証していたのですが、なかなか問題解消されず・・・。
SL510の場合、SEP11+R&R4.21にXPSP3用バッチを適用した環境でようやく落ち着いた感じです。
この検証以降導入のPCにはこの組み合わせを適用しています。

で、それ以前のPCに前述の問題発生(笑)。

ほぼ丸々1ヵ月掛けて、
私の担当する範囲のPCは修正を完了しました。

西日本行脚して来ました(笑)。

2010年9月7日火曜日

ACCESS VBA:Format関数で月日の2桁表示など。

ま、1月を01と表示したかったので。

PC内の時計から年月日を取得したりするのは、
年:Year(Date)
月:Month(Date)
日:Day(Date)
だったりします。

で、今9月ですが、09って表示させるには、
Format(Date,"mm")
で。


最初、
Format(Month(Date),"mm")
とかやってうまくいかず(笑)。

正しい記述で、あら便利(笑)。

2010年8月23日月曜日

覚書:Windows版MySQL5.1

MySQL5.1.50-win32.msiをダウンロードしてインストール。

MySQLに限らず、Windowsファイアウォールが有効なら該当するポートを開放しておく。
ただ…PHP経由する場合ってファイアウォールに穴空ける必要あるのかな?
だって、80番とか443番経由じゃん?

てことで試してみる。

必要ないですね。

外部から直接MySQLのデータベースにアクセスしようとする場合は当然必要でしょうけど。

なんていうか、ウィザードでTypicalを選択してインストールすれば、
php側の設定が終わっていれば問題なく動く、ということで。

覚書:Windows版PHP5.3の設定

Windwos版Apache2.2の基本的な部分はこちら。

PHPのダウンロードページから、
PHP5.3.3のVC9 x86 Thread Safeにある、Zipファイルをダウンロード。

解凍後、名前を変更して任意の場所へ。ここではCドライブ直下に。

apacheのhttpd.confを変更。

LoadModuleほにゃらら~とある末行に以下を追加。
PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2_2.dll"

AddType application/x-gzip .gz .tgzの次行に以下を追加。
AddType application/x-httpd-php .php

c:/phpフォルダ内のphp.ini-developmentをコピーしてファイル名をphp.iniに変更。

php.ini内を以下のように追加、変更。
; On windows:
extension_dir = "c:/php/ext"

;extension = ほにゃらら 部分は行頭のセミコロンでコメントアウトされているので、
必要な箇所のセミコロンを削除。
例えば日本語を使うならphp_mbstringなど。

mbstringとえいば、[mbstring]内を環境に応じて変更。

覚書:Windows版Apache2.2のhttpd.conf

いわゆるUserDirを有効に。

# User home directories
#Include conf/extra/httpd-userdir.conf

# User home directories
Include conf/extra/httpd-userdir.conf

C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-userdir.conf
(ファイルの位置は、なにも考えずにデフォルトでmsiによりインストールした場合)
を開く。

UserDir "My Documents/My Website"

UserDir "C:/Program Files/Apache Software Foundation/Apache2.2/users/*/public_html/"

<Directory "C:/Documents and Settings/*/My Documents/My Website">

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/users/*/public_html/">

このディレクティブの中身は環境に合わせる。

<追記>
再度別の機会に設定を行った際に、
ちょっと躓いたので。

httpd.confにて
LoadModule userdir_module modules/mod_userdir.so
がコメントアウトされていたので、有効にする。

2010年8月13日金曜日

覚書:起動または利用中にDVD等のメディアを要求される場合

個人で利用するソフトの場合、
最近は、いったんインストールしてしまえば、
起動時や利用中にCDやDVD等に読みに行く仕様のソフトウェアは少ないと思います。

ただ、ちょっと前のソフトや企業が頒布しているソフトの場合、
まだまだこのパターンはあるようですね。

これ、
ちょっと知識のあるヒトから、
仮想ドライブをマウントすればいいじゃん、とか言われそう。

はい、そうです。その通り(笑)。

CDやDVDのイメージを「DVD Decrypter」等のソフトでISOイメージなんかで
まるっと保存してやって、
「DAEMON Tools Lite」等の仮想ドライブソフトでマウント、と。

2010年8月10日火曜日

OpenPNE3:携帯から投稿できない。

OpenPNE2系のようにOPNEPNE_DIR/bin/mail.phpがない!
ということで、ネットで検索を。
http://www.icoro.com/201001224716.html

こちらが参考になりそうです。

体調不良でまだ確認していませんけど・・・。

いつものように並行作業できないのです。

あとで確認します。

2010年7月30日金曜日

linux:覚書:.tbz2解凍

bunzip2 [ファイル名]
tar xvf [ファイル名] または tar zxvf [ファイル名]

fedora13:ffmpegインストール

横着かつ初心者枠を脱せない私は、
こちら様を参考にyumでインストールしてみました。

2010年7月27日火曜日

OpenPNE3:インストール

次のサイトを参考にさせて頂きました。
Fedora で自宅サーバー構築のSNS構築(OpenPNE)
というページ。
大変参考になりました。ありがとうございます。

参考というか、まるっとそのままでOKでした。

私がインストールしたバージョンはOpenPNE3.4.6です。

symfonyでのType database socket path (optional)部分は未入力のまま進めてみました。

<<注意>>
web検索すればわかるのですが、
私は最初RewriteBaseを/snsとしていたました。
これだと管理画面でSNS設定が行えなくなります。
ということで別の名前をつけました。

zipファイルに同梱のOpenPNE3_Setup_Guide.txtにはweb/.htaccessのRewriteBaseの記述の仕方については、
あまり詳しく触れていないので、ここでしばらく悩みましたけど・・・。
冒頭の参照ページに助けられました。
ん~、Aliasとかmod_rewriteとか、
ちゃんと基礎が出来ていないヒトはご遠慮ください、という暗黙の警告でしょうかね(笑)。
適当に設定して動いちゃうと危険ですもんね。

2010年7月25日日曜日

fedora13:MySQL:yumでインストール

#yum -y install mysql-server

-yは別につける必要ないですけど。

インストール完了後、深く考えずに、

#service mysqld start

で初期かも実行されます。
まぁ、すべてデフォルトのままですけどね。

そしてとりあえずログイン。

#mysql -u root

rootのパスワードを設定。

SET PASSWORD FOR 'root'@'localhost'=PASSWORD('任意で');

こんなとこですかね。

2010年7月20日火曜日

access vba:カーソルがある位置のコントロール名取得

タイトルがなんか変ですが。

例えばフォーカス取得時のイベントで、

Dim ctlName As String, ctlValue As Variant
ctlName = Me.ActiveControl.Name
ctlValue = Me.ActiveControl

でctlNameにコントロール名格納。
ctlValueに値取得。

サブフォームの場合は、http://www.accessclub.jp/bbs2/0095/beginter29204.htmlにあるように、
Dim ctlName As String, ctlValue As Variant
ctlName = Me!サブフォームコントロール名.Form.ActiveControl.Name
ctlValue = Me!サブフォームコントロール名.Form(ctlName)
ですね。

予断ですが、例えばコントロール名とテーブルのフィールド名が一緒だったら、
sql="select * from test where " & ctlName & " = " & ctlValue & ";"
とかいけるんでしょうかね(未検証)。

一緒じゃなくても
Select Case ctlName
Case ほにゃらら
sql="select * from test where id = " & ctlValue & ";"
Case ふもふも
sql="select * from test where name = " & ctlValue & ";"
End Select
みたいに対応するテーブルのフィールド名と一致したときに対応するsql文を組む、とか。

2010年5月28日金曜日

SonicWallのMTU値

一度は経験しないと覚えない類のこと。

マニュアルには記載があるようですけどね。

SonicWALLにPPPoEの設定をしてネットに接続させようとしたのですが、
どうもWEBページが表示されず・・・。

WAN側はIPも取れているし、
IPアドレスを直接指定しているVPNクライアントは、
外部のVPNサーバにちゃんと接続できている・・・と。

久しぶりに自分一人で現場の機器設置を行っているので、
すっかり忘れていました。

MTUの存在を(笑)。

試しに数値を下げてみたら問題解決。

過去に何度か同じ箇所で躓いておいて良かったです。
なにごとも無駄にはならんなぁ(笑)。

2010年5月25日火曜日

PostgreSQL VPNで暗号化された経路を利用してODBC接続

これといって技術情報はなし。

PostgreSQLは外部から接続可能にしてあればよく、
あとはクライアント側がサーバーのあるネットワークにVPN接続できればいいだけ。
ODBCのファイルDNS構成も通常通り。

クライアント側のローカルネットワーク内に
接続したいサーバーと同じIPアドレスを持ったサーバーなんかがあると駄目でしょうけど。

2010年5月24日月曜日

PostgreSQL yumでインストール

yumでインストールしてみました。
PostgreSQLのバージョンはPostgreSQL-8.3.11。

rootで
yum -y install postgresql-server

ちなみにユーザーpostgresを先に作ってありましたが、
不要なのかも?

インストール後なにも考えずに、

service postgresql initdb --encoding=UTF-8 --no-locale

service postgresql start

と実行。

2010年3月31日水曜日

linux ハードディスクからファイルを抜く。

サーバの電源部分が壊れまして、ハードディスクを抜いて別の筐体に挿せば終わり・・・のはずが、
どうもハードディスクの調子がおかしく、起動しません(泣)。

ということでデータを抜きに掛かったワケですが、
ちょっと苦闘しましたので、
メモ代わりに記録します。

LVMで構成されたボリュームということで、
単純にマウントできません。

ということで結論は目的のVGをアクティブ(vgchange -a y [VG名])にして、
LVをマウント。

たぶんそれだけのことだったのだと思いますが、
今回は悩んで色々やっちゃいました。
それを整理します。

<データHDDのみ接続>
まず、手元にFedora11のCD#1がありましたので、
ここを参考にhttp://www.linuxmania.jp/f7_rescue.htmlRescueモードで起動しました。

コマンドが入力できる状態になったら、
# lvm vgchange -an VolGroup00" <- VGを無効化する
# lvm vgrename VolGroup00 VolNewGroup00 <- 名前を変更する
# lvm vgchange -ay VolNewGroup00" <- VGを有効化する(有効化できるか確認するだけ)

一度シャットダウンし、今度はLiveCDで起動しました。
起動用HDD+データ用HDDではうまくデータ用HDDのVGを有効化できませんでした。

ということでLiveCD(Fedora8ですが)で起動後、
# vgchange -an VolNewGroup00" <- VGを有効化する
# mount /dev/VolNewGroup00/LogVol00 /mnt <= LV nameでマウント

で無事データを抜き出しました。

2010年3月10日水曜日

役に立たない話:どこまで人力やねん。

これは架空の話です。とか書いてみる。

某社では、
広告メール発信のために、
1.検索エンジンにキーワードを手動で入力し検索を行い
2.上位数件のリンクを辿り
3.メールアドレスを探し出す

というクロラー作戦ならぬローラー作戦を展開するという。

私が仮にこれをやれと言われたら拒否します(笑)。
1.と2.の作業だけでもえらく時間が掛かるのに・・・。

当然ですが、
検索結果のhtmlページをfile_get_contentsで取得して、
リンク部分(表現不正確ですが)をpreg_matchやらpreg_match_allやらで取り出せるはず・・・
とか妄想するワケです。

正規表現苦手ですが。

苦手とか言う問題じゃないですけど。

検索キーワードを$keywordに代入するとして、

$url = "http://www.google.co.jp/search?hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&q=" . $keyword . "&start=";

$html = file_get_contents($url);

でページのソースをあらかた取得。

さらにpreg_match_allで正規表現検索・・・と。

正規表現は理解に及んでいないのでここでは言及しません・・・。残念。

PHP,Smarty:Google Analyticsのコード

Smartyのテンプレートファイルのコード内に
そのままGoogle Analyticsのトラッキングコードを貼り付けると、
エラーが返ってきます。

当たり前か・・・。

{literal}{/literal}でコード自体を囲ってみました。
ちゃんと反応するのかは後日確認。

Google Analyticsのヘルプに動的なサイトをトラッキングするという項目がありますが、
そのままだとSmartyのテンプレートには当てはまりませんよね?

日ごろからSmartyを利用しているヒトにしてみれば、
Google Analyticsのトラッキングコードの冒頭にjavascriptと記述がある段階で、
回避策を思いつくのでしょうねぇ。

2010年3月5日金曜日

ホスティングでSNSを運営するとして

ホスティングでSNSを運営するとして、
ざっと計算。

たとえばCPIのもっとも安いサービスで、
月額約4000円。年間だと48000円ですね。

容量は50Gです。
仮にすべての容量をユーザーに割り当てられるとしても、
一人当たり25MB。
余裕のある容量とは言い難いです。
(0.5MBの画像50枚で終わりですから)

これだけのザックリした計算でもどれくらい費用が掛かるのか想像できますが、
満足する機能を備えたSNSを運営しようとした場合、
結構いいお値段になってしまうことがわかります。

これに加えて、
インストール、メンテナンス、その他の作業が発生します。

他に仕事を持つ個人が、
好意で運営するにはいかに大変か、
これを見ただけでも想像できますね。

2010年2月28日日曜日

@R(アットアール)どうなりますやら。

GT-R乗りが集まるSNS、@R(アットアール)のログイン不能が続いている。

運営を担う株式会社クールアーツが別途公開する
「日産GT-Rウェブマガジン - GTR-WORLD.net -」にも@Rのログインフォームが存在するのものの、
同ページにおいて@Rの利用不能について一切触れられていない。
ちなみに同ページのコピーライトは2008年から変更されていない。


企業がらみではなく、
まったくの有志で別途SNSを立ち上げたほうが、
結果的に楽なんじゃないでしょうかね。

自由度は下がるかもしれませんが、
その際はホスティング等のレンタルサーバを利用すれば、
ユーザーの望む結構自分勝手な希望も「仕様」で不可にすることもできますし。

2010年2月11日木曜日

役に立たない話:社会不適合

自分ではない人間は揃って他人である。

当たり前の話ですね(笑)。

結局、どれだけ近しい存在といえど、
自分がなにを想っているのか、他人に完全に伝わることはないし、
他人がなにを想っているのか、自分は分かったように思っても、
それは詰まるところ、自分の中の想像でしかないワケです。

さて、相変わらず論点がボヤけていますが、
精神的に不安定になっているときに書く文章なんて、そんなものです(笑)。

とか開き直ってみる。

こんなことを考えること自体、
私が他人の目を気にして生きていることの顕れですが、
私の場合、自意識過剰と言えるほど、それが顕著な面があります。

反面、他人の目などどうでも良い、と思い、
実際そのように振舞うことも多いです。

ときにそのような相反する気分の移り変わりは滑らかではなく、
精神的に破綻している自分をどのように回避するかというと、
それらを更に俯瞰して見て、馬鹿々々しさを嘲笑ってようやく普通に見えるように成済ましているワケですね。

さあ、もう既に現代日本に社会不適合の様相を呈していますが、
一般的な企業とはややズレた感があるものの、
一般企業の枠からハミでていない会社に勤務していると
何故みんな無表情に働いていられるのか、不思議に感じることがあります。

多くのひと達にとって、それはあまりに普通のことで、
そこに違和感を感じることもないのかもしれませんね。

それとも、そう感じないようにしているのでしょうか。無意識に。

2010年2月1日月曜日

神奈川中央交通 バス 携帯 落とし物

2月1日朝
木曽南住宅 発
町田バスセンター 行き
のバス車内 最後列(いちばんうしろ)の席に落ちていました。

たぶん町田から木曽南住宅へ向かう途中で落とされたんだと思います。

私の隣に座った方が運転手さんに届けました。

念のため検索を意識して記事を書いてみました。

2010年1月29日金曜日

癇に障る。

最近、どうもある人物の声が聞こえるとイライラすることがあります。

ここでの話題はイライラするということではなく、
そのことを言い表すのに、ぴったりの表現が絶対なにかあったのに!と
しばらく考え込んでいたことです(笑)。

それがタイトルに書いた通りです。
「癇に障る。」

思い出せてスッキリ(笑)。

2010年1月6日水曜日

TVXQ:どうなるんでしょうねぇ。

自動で流れる作業の合間に、
考える系(笑)の仕事を出来るほど頭が冴えていないので、
ちょっとブログを更新。

さて、東方神起ですが。

紅白でのユノやチャンミンの態度が悪く評されたり、
解散が近いとかどうとか情報が錯綜していますが、
実際どうなんでしょうねぇ。

ユノやチャンミンにしてみれば、
自分達がどのようにしたらいいのか、分からないんじゃないでしょうか。
公の場で、ジュンス、ユチョン、ジェジュンと仲良くするには韓国事務所の(というか社長の)
圧力は相当なものでしょうし、当然恩義も感じているでしょうしうから、
簡単に、楽しそうな姿を電波に乗せられないのかもしれません。

まとまらない頭で書いているので話があちこと飛びますが、
東方神起が解散、なんてことになったら、
観光にも影響が出るのではないでしょうか?
日本人ファンの反発もありますし、
私のように、俄かに韓国に興味をひかれた人間にしてみれば、
韓国に対して感じていた魅力は半減かもしれません(ちょっとオーバーですかね)。

いったいどこに着地することになるんでしょうね。