エンジニアが発信する【2007年04月】の記事です

エンジニアが作る最新ITブログ トップ>【2007年04月】

2007年04月30日

VBAはどこへ行く?

Office 2000/XP には Developer Edition がある。これにはExcel VBAのソースコードを管理できる Visual Souce Safe (以下、VSS)が付属している。


Visual Studio なんかのソースコードはテキストであろう。が、Excel VBAはソースコード自体がExcelオブジェクトの内部に含まれているのでそのままVSSに突っ込むわけにはいかず、アドインを利用してソースコードの授受を行う。


ところが、Office 2003以降はDeveloper Editionの提供がなくなり、Visual Studio Tools for Office(以下、VSTO)になった。確かにそのメリットはあるし、マイクロソフト自体も「補完的な関係」と謳っていた覚えがある。

調べた限り、VSTOにはVBAのソースコードをVSSで管理するアドインはないようである。マイクロソフトに問い合わせたものの返答は得られなかった・・。

もしそうだとすると、VBAソースコード管理がVSSではできなくなったことになる。VSSを使うことにより共通モジュールのブラッシュアップなどもできていたのだが、少なくともチーム開発では使えなくなる。


仕方がないので、アドインを作ってみようかなとも考えている。別にターゲットはVSSでなくても、CVSや、外部DBへの連携でもよいかな、と思う。ニーズは・・ほとんどないだろうなぁ。教育用には使えるのかもしれない。



2007年04月30日

初めてのC++(MFC)

この会社に入って初めての仕事はC++で作る指紋認証システムでした。

今回受注を受けている仕事に組み込めたら組み込みたいので、調査をして欲しいとのことでした。


私はとりあえず、C++のソースを解析しながらわからないところはサポートセンターに聞き調査を進めていきました。

この時に思ったのが、


C言語とC++なんて全く同じ


じゃないか!

ご大層に、C++なんて付けるから意味わからないんだよ。



学生時代に読んでいた本も

「初めてのC/C++」(だったと思う。)

という、C言語とC++の区別が無い本を読んでいたので、この時の自分はC++はC言語に毛が生えたレベル(関数が増えたなど)のものだと思っていた。



等と思いながら仕事を進めていた。

調査は案外簡単に終わり、組み込めることがわかった。

(MFCは指紋認証システムのサンプルに付いていた為そこまで学べなかった。そして、今は大好きであるオブジェクト指向はこのときには全くわからなかったし、必要なかった。)


それを社長に報告すると


「あ、そう。わかった。」


のような回答。

で、次に俺は何をすればいいの??

指示なし?


とりあえず、仕事しているふりをしていたが・・・


とにかく暇だった。


で、自分が向かった先は・・・

もちろんインターネット♪


家のインターネットもケーブルに変えたばかりで、つなぎ放題の快感に酔っていた時だったのだ。

(ちょっと前まではテレ放題を使っていた。{知っている人は知っているはずw})


いやぁ、チャット面白いなぁ~。

会社って楽だなぁ~。

時間一杯チャットしてればいいし~♪


ところで、この時期に同じ中途採用でおっさんが入社してきた。

彼は、正直オタクっぽく(いや、社内の人は殆どオタクっぽかった・・・。)仕事も出来そうに無い人だった。

いや、俺もチャットしてるくらいだし人の事は言えないだろう。


そんなおっさんに


「傲慢SEさんは一時間に一回タバコ休憩をするんですか?」


ってみんなの前で嫌みったらしく言われた。

タバコはベランダでしか吸えない為、タバコを吸っている時は仕事が出来ないのだ。

それをおっさんは「仕事しろよ」という口調で話し掛けてきたので


「一時間に一回ペースで吸ってますね~。」


と適当に相槌。

内心は、「何だこいつ?いちいちみんなの前で言われたらタバコ吸いづらいじゃないか。」と思っていた。

ついでにウザいな。とも思っていた。


そんなおっさんは一ヶ月もたたずに、


実力不足のため解雇


という不名誉な退職を行った。

それをみて俺はチャットをやめた。(^^;)

(自分も「チャットしすぎで解雇」なんてされたら不名誉だしw)


そうこうしているうちに、念願のVBの仕事がやってきたのだ。


P.S.

仕事中のチャットはかなり怖いです。

しかも入ったばかりの会社でそんなことをしているなんて・・・ねぇw


一度あった怖い出来事は・・・

チャットに入ってきた人のハンドルネームが社長のフルネームだったことがあってかなり驚いた。


社長フルネーム「傲慢SE仕事しろ!」


って言われてかなり焦りました。

直ぐに退出してビクビクしていたことがありますw


ちなみに、IPから会社のHPを探った人の仕業で社長にはばれませんでしたw


☆☆☆このときのスキル☆☆☆

【好きな言語】

・C言語

・VB(きっとバージョン4)


【出来る言語】

・Delphi

・FORTRAN

・C++(C言語と同じと勘違いしていた。)


【スキル?】

・チャット歴一ヶ月

【嫌いな言語】

・SQL


【嫌いな作業】

・無駄な残業


【やりたいこと】

・チャット♪

2007年04月29日

Free IIS 7 Beta Hosting

以前 Maximum ASP ってところが beta hosting やってると書きましたが、その他4社も beta サービスを開始した模様。

続きは こちら へ。

2007年04月28日

Excelアプリケーション特有の考慮点

シート間の遷移方法

 アプリケーションとして作成するのであれば、シートタブを直接選択するのではなく、シートタブを隠し画面やフォーム等に配置したボタン等で遷移するほうがよいだろう。

 気をつけたいのが、ショートカットキーによるシート遷移の防御である。せっかくタブを隠してマウスでは画面制御を防止したつもりでも、ショートカットキーでは難なく破られてしまう、ということがある。


終了や保存の制限

 途中で右上の終了ボタンを押されたりしても問題ないか?ブック自体を保存できてもよいか?まずいのならそれを制限しておく方がよい。



セルの書式 DB上の項目の型

 Excelのシートをインターフェースとすることを想定してであるが、DBからシート、シートからDBへデータを書く場合に、どういう型、どういう書式が最適かを検討しておく方がいい。

 これが不適切だったり中途半端だったりすると、不具合の原因にもなりうる。



2007年04月27日

C#

このテーマはプログラム言語の特徴を私なりの解釈で書いていこうと思います。


これを書こうと思ったのは、営業さんにC#の名前の由来を説明して技術者を見るときのポイントを教えたら凄く感謝されたので、結構役に立つ知識なのかもしれないなぁと思ったからです。


もちろん自己満足の世界ですが、少しでも読んでいる方のお役にたてれば幸いです。



ということで、現時点で一番好きなプログラム言語


C#


の特徴などを自分なりに解釈して書きます。


ところで、C#の由来って知っています?

C言語の兄弟っぽいのは名前から想像がつくと思います。


C++はC言語を進化してオブジェクト指向をくっ付けたものです。

ところが、C#はC++を進化させたはずなのに++が消えています。

何故#になったのでしょうか?


実はC#の「#」は

++++

のことなのです。


すなわち


C#はC++++


なのです。

え?全然#じゃないって。


いいですか。


++

++


とするとどうですか?

#っぽくないですか?


これがC#の名前の由来です。

アンダース・ヘルスバーグ氏が語っているものです。

(由来はこれだけではないのですが、この話が一番受けました。)


さて、名前の由来は分かったでしょうか?

ところで、C++はC言語をただ進化させたのではなく、オブジェクト指向の原型である「Simula」を参考にして生まれた言語です。

なので、C++の親はC言語Simulaになると思います。

そう考えるとC#の親はC++Javaになります。

ただ、C++よりJava寄りである感が否めません。

(ちなみに、Javaの親はC++Smalltalkになります。)


では、C#の特徴をここに書きます。

・C++やJavaを参考にして出来たオブジェクト指向型言語である。

・Javaと同様多重継承を禁止している。(C++では多重継承が出来たのですが、プログラムが煩雑になるためJavaでは多重継承を禁止しました。その代わりにインターフェースが存在します。)

・Javaを相当意識しているのか、構文や命令がかなりJavaに似ている

・C++から引き継いだポインタ型がつかえる。(ただし、強い制限がある。)

・スタック領域でクラスを生成する仕組みが存在する。そのため一部の処理を高速化することが出来る。(構造体のことです。)

・IDE(統合開発環境)がかなり強化された。画面デザインはVBのように開発することが出来るため開発効率がかなり上がっている。

・C++にあったDLL地獄がかなり緩和された。(DLLの管理が楽になっている。)

Javaよりは高速に動作するが、C++の速度を実現することは出来ない。(JavaもC#も中間言語のためC++のようなネイティブ言語の速度は出せない。)

・ポインタを安全に使うメソッドが用意されている。(デリゲート)

・デリゲートがあるためJavaと違い、インターフェースが極端に少ない。

・C#は構造体やポインタが使えるためオブジェクト指向開発以外にも使える。(逆に完全オブジェクト指向開発にすると良さが無くなる。)

・・・等


色々書きましたが、簡潔に説明すると

Javaからは


使いやすいオブジェクト指向


を継承して、C++からは


ポインタ


を継承したものがC#という位置付けになるかと思います。

なので、Javaユーザーはポインタを除けは違和感無く入れると思います。

しかし、C++ユーザーはオブジェクト指向の理解がないとC#に入るのは難しいと思います。

(これは、オブジェクト指向寄りの言語であるためです。)

2007年04月26日

ポインタ

ポインタと聞くとC言語を連想される方が多いのではないだろうか?

そして、拒絶反応を起こす人も多いのではないだろうか?

C言語にはポインタがあるからVBに逃げ出した人もいるのではないだろうか?


実は私もそんな一人である。


大体


int a;

int *p;


a = 10;

p = &a;


なんて書かれても何の事だかわからないし、ポインタを何故使うのかすら理解できなかった。

大体、この「*」やら「&」やらを使うから意味がわからないのである。

そして混乱するのである。


しかしこのポインタを使えるかどうかはプログラマのスキルに大きく影響するものである。

別にC言語が使えればいいのではなく、ポインタが使えればいいのだ。


言い方を変えると


ポインタの概念を理解していればいいのだ


その概念さえ理解しているかいないかが大きなスキルの差になるのだ。

(にもかかわらず、このスキルを計る資格も無ければ計れる人(マネージャー)も少ないのが現状である。実に嘆かわしい。)


例えば、オブジェクト指向では一見ポインタを使っていないように見えるが実際のところはポインタ変数だらけ(クラスは全てポインタ変数)なのです。

(※オブジェクト指向 参照)

また、文字列型や配列型、List型等も全てポインタ変数なのです。

これほど至る所で使われているのに、ポインタを扱えるプログラマーはかなり少ないです。

特にJavaやVB等は少ない。


何故ポインタを扱えるプログラマーが少ないかというと初心者プログラマーがバグを引き起こしやすいという欠点がありその欠点を無くすためにプログラム言語自体が極力ポインタの存在を隠すようになったからである。

いや、少なくないというよりプログラマーの敷居が低くなりなんちゃってプログラマーが増えたというべきかもしれません。


ところで、このポインタの概念が分からないと優れたプログラムを構築することが出来ないのです。

(少々大げさかもしれませんが、優れたフレームワークやプログラムを書くためには必須のスキルであると私は思っています。)


例えば、オブジェクト指向(ポリモルフィズム←ポインタ関数を隠蔽している仕組み)だけを使うと効率が悪い場合や実現出来ない場合にはリフレクション(C#ならデリゲート等他の選択肢もある。)という機能を使います。

(例えば、J2EEのstrutsでXMLに画面とサーブレットのマッピングを記載していると思いますが、あそこにかかれているクラスはリフレクションで呼び出されていると思います。)


他にも、リスト型の効率のいい使い方や文字列連結の効率のいい方法などは全てポインタを抑えておくだけで分かるのです。

良かったらもう一度ポインタを勉強してみませんか?


ポインタはあなたが想像している通りの物ですが・・・


概念だけならば決して難しいものではないのです。


C言語という言語がポインタを難しくしているだけで仕組みは極めて単純なものです。

2007年04月25日

Biz/Browserの納品が素早くなった!

今週火曜日、CV.netバンドル版Biz/Browserということで、50User*2企業分を発注した。
以前は、CDメディアとライセンス証書の納品が1週間程度かかっていたものが、最近はずいぶん早く納品されるようになった。

今回の2本に関しては火曜日発注分が水曜日(今日)の午前中に到着していた。(1日かかっていない!)

※写真は納品されたBiz/Browserとセットアップ中のDBサーバ[Xeon5110(@1.6GHz) 2Core*2CPU]


アクシスソフト社が、Biz/Browserのパートナー企業に対し実務面でもサポート面でも対応がよくなってきていることを実感している。

業績もV字回復を果たし、Biz/Browser Mobileも好調になってきた。
このような時こそ、ぜひ攻めの姿勢で臨んでもらいたい
SODECをはじめ、展示会やセミナーをどんどん開催し、リッチクライアントを盛り上げていって欲しい。
例えばFメーカーやNメーカーなどは、「企業の情報統制を考える」「企業の情報システムの効率化」などという名目で、実際の中身は例を出しながら製品紹介に近い内容をやったりしている。

直接的な紹介セミナーというものも当然必要だが、今後はもっと多角的な内容のセミナー、展示会出展というのもどんどんやっていく段階に入っているのではないか。
考えてみると、Biz/Browserが製品化されてから既に10年近く経つ。
競合であるMacromediaのFlexやCurl社のCurlは結構宣伝に力を入れているのに対し、Biz/Browserはそんなに宣伝してはいない(と感じる)。

今年の初めにも書いたが、今年はリッチクライアントの勝負の年だと感じている。ここで一気にBiz/Browserを盛り上げていきたい
DTP社も去年から今年にかけてBiz/Browserの発注回数が多くなってきているので、微力ながら協力できていると思っている。

2007年04月24日

アクセスランキング

試験も終わり、家に帰ってきてもいまいち何をすれば良いのかわからない状況です。

毎日が勉強で忙しかったあの時が嘘のようです。

(いや、やることはあるんだけど、それをする気にならなくて・・・ついついブログを書いてますw)


という事で暇なので・・・

アクセスランキングをここに発表します。

(集計単位は過去一ヶ月です。)


○アクセスが多かったページベスト3

1.人気blogランキング(プログラム)

2.Mixiの自分のページ

3.Yahoo!カテゴリ

※blogランキングはすごいなぁ・・・。みんなもっとクリックして下さい(願)


○検索エンジンベスト3

1.Google

2.Yahoo!Japan

3.Gooblg

※Googleがダントツでした。


○検索キーワードベスト5

1.傲慢SE

2.SE 日記

3.オフシェア

4.プログラム 悲劇

5.HIPO図

※【プログラム 悲劇】って調べる人がこのサイトを見つけるのか・・・(微妙な気分だ)


○リピーターのアクセス頻度ベスト3

1.23時間に一度

2.24時間に一度

3.3日に一度

※いつも見てくれる皆様ありがとうございます。


最近のアクセス解析はすごいなぁ~。

昔は自分でPHPを使って頑張って作ってたんだけどなぁ~。(ちょぼい奴だけど(^^;))


また、検索キーワードはちょっと意外なキーワードで来てるんだなぁ~と思いました。

HIPO図なんて「ソフトウェア開発試験」でしか使わないんじゃないかな?

なのに【ソフトウェア開発試験】のキーワードより遥かに上だし・・・。

何でヒットするか分からないものですね~。


↓応援宜しくお願いします♪↓

人気blogランキング

2007年04月21日

2007春 セールスフォース・ドットコム イベント情報(徳原)

 4月19日(木)新高輪プリンスホテル・国際館パミールにてセールスフォース・ドットコム「Success On Demand Tour Spring 2007」に参加してきました。
 参加1000名超の満員御礼の広い会場で驚きましたが、プレゼン画面の中でセールスフォース・ドットコムのパートナーであるアクシスソフトとアスリックスの社名ロゴが光ってました。特にモバイル対応において、DoCoMo版、Au版、Windows Mobile 5.0 Biz/Browser Mobile版(開発:アスリックス社)が紹介されてました。事前に聞いていなかったのでちょっとビックリしました。
 セールスフォース・ドットコムとつながりの深いソフトバンク社スマートフォン「X01HT」での運用にも期待されているので今後が楽しみであります。


セールスフォース・ドットコム セミナー資料
Biz/Browser for AppExchange (アクシスソフト)
Biz/Browser Mobile for Salesforce AppExchange (アスリックス)

エンジニアが作る最新ITブログ トップ>【2007年04月】

メンバー紹介

タグパネル

ランキング

エンジニアが作る最新ITブログ DODA