2008年4月7日月曜日

[OS]Windows Vista 感想

業務地が代わり開発は現在Vistaで行っている。

さまざまな難点が出たのでまとめてみる。

管理者権限がうるさい。
互換性が低い
GUIが使いにくい
過去のバージョンとの違いが多いので使い慣れるまでが大変
初心者には難しいと思う



・管理者権限がうるさい

ソフトやアプリをインストールしたり実行したりする際にいちいち出現する確認を求める質問が多すぎる。
過去バージョンのアプリなどをインストールすると、またいちいちインストールが完了できたかどうかの確認が出る。

そんなの自分で判断できるやろ?と思ってしまった。

また自分のPCで作成したファイルを他の人へ渡して、使用する際に上書き保存ができなくなるときもある。

管理者が違うための問題と勝手に判断してるが、そう見ても問題ないのではないだろうか?

この確認をなくす方法もあるが、このOSを理解した人や、ヘビーユーザーには容易い事だろうが、ライトユーザーには優しくない。



・互換性が低い

現状XPで十分と判断されているためか、Vistaに対応しているソフトウェアが少ない。

もちろん使用できないわけではないが、上記に書いたように、OS側で判断ができないため確認の質問が現れてしまう。

このソフトウェアを使用後、終了するとまた確認の質問が現れることもしばしばある。

いままで強気だったPCがいきなり弱気になったように感じてしまうのは私だけだろうか?


・GUIが使いにくい

グラフィックは確かにきれいだが、XPまでの流れを完全に断ち切り、新たにUIを使用しているため、ユーザーは過去のバージョンと照らし合わせながら使用しているのではないだろうか?

スタートメニューにしてもまったく別物となっているので、戸惑ったことが多いと思う。

過去バージョンと同様のGUIにすることは可能だが、かかる負荷は一緒なのであまり意味がない。



・過去のバージョンとの違いが多いので使い慣れるまでが大変

上記のGUIの項にも書いたが、XPまでの流れを断ち切っているため使用方法を覚えるところから始めなければならない。

そういうことが好きな物好きも中に入ると思うが、どうせ使うのであれば今までと同じ使い勝手であって欲しいと思う。

そうでなければOSの性能差を確認することが難しいと思う。

新しいOSには大抵新しいスタイルや楽しみ方があるだろうけど、大変だった。



・初心者には難しいと思う

これまでの項を見ても分かるとおり、ヘビーユーザーですら始め慣れるまで苦労しているのだから、ライトユーザーには難しいのではないだろうか?

近くに詳しい人間があるのであればその都度連絡を取り確認すればいいだろうが、いない場合どうしたらよいのだろうか?

結局ユーザーは不安になる一方だと思った。



Windows7が1年以内に登場するらしい。

どうやらMicrosoftはVistaを見限ったのではないだろうかとおもう。

XPをベースに、Vistaの機能を取り入れていけば使用ユーザーも増えるのではないだろうか?


しかしVista登場までかなりの年月がかかっているのに、この時期にもう発表しているということははじめからVistaは捨石だったのではないだろうか?


しばらくは2000、XP、Vistaを使用していくだろうが、Vistaにはそろそろ慣れたいものだ。

2008年1月18日金曜日

色々とお詫び

どういうきっかけかは知らないけれど、このページを見てくれた皆様へ。

色々とコメントなども残っていなかったので気にしてませんでしたが、サンプルを書いているところなどで表示されていない箇所やインデントがなってなくて汚かったりしている箇所が多々見つけました。

色々対策をしてみたのですがうまく表示できませんでしたのでここでお詫び申し上げます。


次からはこれらのことに気をつけて書いていきたいと思います。

[C#]XMLの読み込み 書き込み

とあることをやるためにDBを使わずXMLを使うことになったのでとりあえず書き残します。

始めにXmlを操作するので宣言をしておく
ついでにパスを取得したりもするのでIOの宣言もしておく
using System.Xml;
using System.IO;

public class XmlIo
{
XmlDocument doc = new XmlDocument();
//絶対パスを取得しファイルを指定する
string xmlPath = System.IO.Directory.GetCurrentDirectory();
string xmlFile = "data.xml";
#region XML読み込み
public void ReadXml(string nodes)
{
XmlDocument doc = new XmlDocument();
doc.Load(xmlFile);
//リストに引数を渡す
XmlNodeList list = doc.SelectNodes(nodes);
#if DEBUG
foreach (XmlNode node in list)
{
System.Diagnostics.Debug.Write(node.InnerText + "\n");
}
#endif
}
#endregion
#region XML書き込み
public void SaveXml()
{
XmlDocument doc = new System.Xml.XmlDocument();
var estate = doc.CreateElement("estate");
var name = doc.CreateElement("name");
name.AppendChild(doc.CreateTextNode("○○"));
estate.AppendChild(name);
var terop = doc.CreateElement("terop");
terop.AppendChild(doc.CreateTextNode("XMLの書き込み"));
estate.AppendChild(terop);
var items = doc.CreateElement("items");
estate.AppendChild(items);
doc.AppendChild(estate);
//デバッグ時はXmlを上書きされないようにする
#if DEBUG
string debugXml = xmlPath + "/../xml" + xmlFile;
var writer = new System.Xml.XmlTextWriter(debugXml, Encoding.UTF8);
#else
var writer = new System.Xml.XmlTextWriter(xmlPath + xmlFile, Encoding.UTF8);
#endif
writer.WriteStartDocument();
writer.Formatting = System.Xml.Formatting.Indented;
doc.WriteTo(writer);
writer.Close();
}
#endregion
}

XmlDocumentを使ってやりとりを行っています。
ReadXml()では引数にXMLのタグ(?)を書くようにします。

リストに引数が渡り、その部分のデータを取得してます。
#if DEBUGの部分ではデバッグ時に確認のため出力ウィンドウに取得したデータを表示させるようにしてます。

SaveXml()に引数はないです。

現在未完成なので説明とかも簡略化します。
varは、intやchar等のいろんな型に対応しています。
しかしローカル変数としか使えません。

CreateElementで始め、AppendChildで終わらせる。







とイメージしてもらえれば幸いです。


#ifDEBUGではデバッグ中に書き出すファイルが上書きされると困る場合お使いください。




新年ですね。

昨年は3ヶ月もしないうちにいろんな人に見てもらえ、驚いてます。

しかしながらあまり書く時間と気力がないのでのっそのっそとやってます。

今年もかけるときがあったら書こうと思います。

[oracle]一時表領域の作成と変更

自動拡張したら良いんだろうけれど、面倒なので新しく一時領域を作ってインポートしたりしました。

新しい一時領域を作成(1G分の領域TEMP2の作成)
create temporary tablespace TEMP2 TEMPFILE 'temp2.dbf' size 1000M;

ユーザーのデフォルト一時表領域の変更(TEMP2に変更)
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2;

これで新しい一時表領域が変わったはずです。

確認
SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS;

TEMPORARY_TABLESPACEの欄がTEMP2になっていれば成功です。

不要になった表領域の削除
drop table space '表領域名' includeing contents;

2007年12月13日木曜日

[oracle]ユーザーに権限を与える

前回インポートについて書きましたが、DBAのロール権限を持っていないと出来ないことが発覚。
(これに気づくまで約1日かかってました。最初から知ってる人に聞くのが一番って事ですね)

まずはじめに権限を持ってるユーザーでログインします。


ロールをユーザーに付与する
GRANT ロール TO 権限を与えるユーザー名 [IDENTIFIED BY password][WITH ADMIN OPTION];

ロールをユーザーに付与するには、GRANT文で付与するロール名を指定し、TO句で付与するユーザー名を指定します。

IDENTIFIED BY句
IDENTIFIED BY句に続けてパスワードを指定すると、既存ユーザーを明確に識別できます(ユーザーが存在しない場合は新規にユーザーが作成されます)。

WITH ADMIN OPTION句WITH ADMIN OPTION句を指定すると、
  ・ロールがGLOBALロールでない場合、そのロールをほかのロールに付与可能
  ・ロールをほかのロールから取り消すことが可能 
  ・ロールへのアクセスに必要な認可を変更するため、ロールを変更可能 
  ・ロールを削除可能になります。

ということです。

2007年12月11日火曜日

[oracle]dmpファイルのインポートとエクスポート

そんなに項目がないのであればツールなどでSQLを書けばいいんだけれど、かなり大きなモノになると大変なのでdmpファイルにするらしい。

oracle crientがインストールされていることが最低条件です。

dmpファイルの作成方法
DOSプロンプトを開いて
exp ユーザ名/パスワード@設定しているtns file=作ったファイルを置く場所ファイル名 log=ファイルを置く場所作ったファイルに関するログファイル

これでdmpファイルという形でエクスポートされている。

次にインポート
imp ユーザ名/パスワード@設定しているtns file=dmpファイルが置いてある場所ファイル名 log=dmpファイルが置いてある場所作ったファイルに関するログファイル

これでインポートできるはずです。

どうやらバージョンが違うoracleでエクスポートするとインポートできないらしい。

まぁそれ以前に同じバージョンで渡されたdmpファイルがインポートできなかったのでこれであっているかの自信がないです。

[oracle]ユーザーの追加

まずはじめにDOSプロンプトを開いて
sqlplus ユーザー名/パスワード@設定しているtns
と入力しSQLPLUSを開く

SQLPLUSを開いたら
登録したいユーザー名とパスワードを入力する。
create user '登録したいユーザー名' identified by '登録したいパスワード';

権限を与えるために
create role '登録したユーザー名'_ROLE ;
を入力し、権限を与える内容を入力

例)
grant
ALTER PROFILE
,ALTER SESSION
,ALTER SYSTEM
,ALTER TABLESPACE
,ALTER USER
,CREATE PROCEDURE
,CREATE PROFILE
,CREATE PUBLIC SYNONYM
,CREATE ROLE
,CREATE ROLLBACK SEGMENT
,CREATE SEQUENCE
,CREATE SESSION
,CREATE SYNONYM
,CREATE TABLE
,CREATE TABLESPACE
,CREATE TRIGGER
,CREATE VIEW
,EXECUTE ANY PROCEDURE
,SELECT ANY DICTIONARY
,SELECT ANY SEQUENCE
,SELECT ANY TABLEto '登録したユーザー名'_ROLE;

これらの権限を与えるため
grant '登録したユーザー名'_ROLE to '登録したユーザー名' ;


これでユーザーの登録が完了するはず。