過去の投稿記事 new!
・【画像】漫画でわかる外国人参政権
・東京電力のHPで停電状態が確認できたり(サービス再開!)
・戦国時代 ~ 江戸時代の徳川家康が熱かった
・vaio のバッテリは寿命が短いような気がする
・話題の Western Digital 製 WD20EARS を購入した
・C01LC をビックカメラで買ってきた
・2025年には空中都市が現実化?!
・【動画】わかりやすい「宇宙ひも理論」
・今世紀には「富士山噴火」「東海連動地震」「首都圏直下型地震」か?
・滅びた町、南浜町が Googleストリートビューで見れる

【 amazon 送料無料キャンペーン 】

バックリンクはご自由にどうぞ!     http://mfsocket.blogspot.com/feeds/posts/default?alt=rss リンク集 / ログイン

2008/02/29
うるう年

 
今日はうるう年の影響が出る、2月29日ですね( ´д`)
 
こーいう特別な日って、世の中に何か影響が出てないか興味が出るところです。
 
そして案の定、、
 
 
との事。
 
一部の使用している方たちにとっては、たまらないニュースでしょうね。。
 
 
さてせっかくなので、うるう年をC言語で書くとどーいうコードになるか紹介してみます( ´д`)
 
たぶん、ここを読んでいる9割の方はプログラムに興味の無い方々だと思いますが・・
 
   BOOL  IsLeapYear( int year )
   {
      if( year%400==0 )return true;
      if( year%100==0 )return false;
      if( year%4==0 )return true;
      return false;
   }

 
上のコードはうるう年を判定する関数になります。
使い方としては、今年がうるう年か調べたいときは
 
     BOOL  result =  IsLeapYear( 2008 );
     if( result ){
           // うるう年の処理を書く
     }
 
 
とコーディングして  result = true ならば、うるう年の処理を書くのですね( ´д`)
 
個人的には、ほぼ4年に1回起きるイベントよりも、 2038 年問題の方がどれだけ影響でるのか
興味が尽きません。
 
不謹慎かもしれませんが。。

2008/02/27
Vista 対応・・

 
最近、公開ツールの Windows Vista 対応をしようと手探りで研究してるのですが、
正直言ってうまくいかない( ´д`)
 
基本的に、他プロセスの空間をいじくる( 共有メモリ )では、Windows Vista ではセキュリティの面
からか、うまく動作しないのかな。。
 
 
やりたい事は、デスクトップのアイコンの並び順の書き換えなのですが、アイコンの座標を
取得できてても、書き換える( 並び替える )のが成功しない。
 
 
うーん、もうちょっと研究してみよう。。

2008/02/25
pascal を使う

 
Windows のインストーラーの作成( のカスタマイズ )で、最近 pascal を使ってます。
 
この pascal 言語、C/C++ や Javaコードに慣れすぎてしまってる自分には
 
 
なんすか、これ?? (゜Д゜ )
 
 
という感じ。
 
 
英語のドキュメントと、pascal自体の構文は日本語サイトで世話になりつつ、よーやく!!
 
レジストリを使ったアプリは先日コーディングできるようになりました( ´д`)
 
 
ここ1,2年で言語自体の使用経験はけっこう増えたかも。
 
プログラムの設計やアルゴリズム等はすでに C/C++ である程度のレベルまで来てると思ってるので、
基本的に言語自体の構文を覚えれば、新しい言語でも吸収が早いのかも。
 
 
さらに、数年前までは perl は遅い!って言うのでキライだった時があったけど、、今は好きかもしれない。
 
 
perl ってすっごい、ラクにコーディング出来るんですよね。
 
最近使ってないからちょっと忘れてるけど、、perl はスクリプト言語の中でも(・∀・)イイヨ!!

2008/02/24
Java から C/C++

 
Java から C/C++ へ移植するのと、C/C++ から Java へ移植するのどっちが手間
なのかちょっと疑問に思ってます。
 
 
私自身は下記のものには経験があるのですが、
 
   ・BREW( C )   →   S!アプリ( Java: MIPD2.0/JSCL )
 
   ・VC++6.0( C/C++ ) → Javaアプリ( Java: JDK1.40 )
 
・・と書いてみると、Java から C言語の経験はありませんでした。。
仕事でも、たぶんプライベートでも。
 
全部 C/C++ から Java への一方通行かな。
 
 
以前自作した iアプリ用のバーチャルマシンを C++( Windowsコード )に移植しようと思ってるの
ですが、Javaスタイルでのコーディングをけっこうした性か
 
我ながら移植がだるすぎる!!
 
 
例えばこんなコードを書いてたりすると、微妙に手間。
 
  void   function(  int[] array ){
  }
 
下記のように書いておけば、この場合は直す必要がありません。
 
  void   function(  int array[] ){
  }
 
これ、けっこう多いんです( ´д`)
 
我ながら。。ね
 
後、Java ってお便利クラスがありまくるので、それらで実装しているとさらにキツイと感じる。
例外コード系もあるので、それを対応するのも骨が折れる。
 
プラットフォームやコーディングに影響されるけど、たぶん Java  から  C/C++ の方が
コスト( 手間 )がかかるような気がする。
 
iアプリのコードなので、さすがに Windows( C++ ) と同等のソースはありえないけど、構文/字句解析
部分などの移植だけでも、コンパイルエラーの数に泣きたくなった( ´д⊂
 
これは優先度低めでやっていくとします。。。

2008/02/20
静的と動的、ちょっと迷う

 
今回は Windows ソフトでのリンク(結合)をどうするかについて考察してみます。
 
 
私は VC6.0 で開発してきた今までは dll リンクで作成してきたのですが、VC2003 に
してからちょっと迷ってます。
 
 
なぜならば、VC6.0 が使用している dll ならば、Windows98 以降の OS なら 99%
デフォルトで持ってるため、
 
     「MSVCXXX.dll が見つかりません」
 
というエラーも出ることは無いのです。
 
 
しかし VC2003 が使用する dll では Windows98/2000 ではデフォルトでは入ってないし、
XP も SP2( サービスパック )で入ってるという状況です。
 
 
・・と言いながらも、実際は他の有名ソフトがインストールしてくれてたり、WindowsUpdate で提供
されてる?のか Windows2000以降なら、弊害は無いのですが( ´д`)
 
 
ちなみに静的リンク( lib )の場合だと、VC2003 で作成したのも基本的に問題なく Windows98 で
動かせます。
 
簡単にまとめてみるとこんな感じでしょうか。
種類 利点 欠点




・ exe 起動時に MSVC系の DLL を基本必要としない。
 PC初心者には優しい。
・ 製作者の環境で予め結合している為、バグの発生も
 把握しやすくDLL で起きる問題は無い。
・ exe のサイズが大きく増える。
・メモリ空間を共有できない。アプリ毎に DLL で共有
 できた空間を使用する。




・exe のサイズを節約できる。
・メモリ空間を静的リンクよりも節約できる。
 (アプリの数に比例して効果が上がる )

・DLLが無ければ起動できない。
・PCの環境によって DLL のバージョンが違う場合が
 あるのでバグが起きたときは、様々な手配を必要
 とする。 (事を把握しておく )

 

 
 
後は、プログラム開発の場合で、他のライブラリを利用するときに動的か静的ではけっこう違いが
出てきます。
 
 
例えば、LGPL というライセンスのライブラリは、動的リンクで無い場合ソースの公開義務が発生します。
 
そして動的の場合は、静的リンクに比べ踏む手順が多い(※1)ので、人によってはめんどくさいと思います。
 
※1
Windows  で言うと、LoadLibrarry() / GetProcAddress() / FreeLibrary()
Unix/gcc で言うと、dlopen() / dlsym() / dlclose()
を解して、ライブラリ関数を使用する。 
 
 
と今回ちょっと記述してみたのですが、私自身の中ではすでに結論は出てたりします。
 
・MSVCXXX系
   ・VC2003 まで動的(MDオプション)
   ・VC2005 は・・・今は調査不足なのもあり、答えなし
 
・他のライブラリ   ( 動的 )
・自分のライブラリ( 静的 )
 
 
といった具合でしょうか。。人に配布するとなると色々と悩みますね( ´д`)
 
 
関連記事:

2008/02/19
カップヌードルのレッドカレーを食べてみた

 
日清のレッドカレーを食べてみました。
 
P1010246P1010247
 
どうやら過去にもあったものの復刻版?という噂があるのですが、私自身は初めてなので
かなり惹かれますた。
 
印象としては、けっこう辛そう。。
 
 
そして麺はこんな感じ
P1010248
 
P1010249
 
 
そして味の方は、ふっつうにー美味しかった!
 
辛さは正直ほとんど感じなかったけど、ちょっとだけ辛味もあるのかも。
 
まぁレッドカレーという名の割には辛くなかった。
 
日清で比較するなら、以前食べた "塩" より圧倒的にオススメですね( ´д`)
 
 

新自作ライブラリがほぼ完成(70%)した・・

 
実践テストはほぼ全くやってませんが、一通り完成(70%)しました。
 
 
人によっては・・・というか多くの人にとって、
 
「70%で完成なのか?」
 
という突っ込みもあるかと思いますが、私の場合ほぼ完成なのです。
 
 
そもそも "100%" になることは、これから数十年の月日が流れても決してないでしょう、、
 
 
 
そしてこのライブラリは自己満足の集大成ですが、ライブラリの権利を渡さなくて良い環境なら
仕事でも使えるかな。
 
その自己満足ライブラリは下記のようなルールの元作ってます。
 
-----------------------------------------------------------------
 
・マルチプラットフォーム( Linux/Windows )対応
    ( WindowsはVC専用  linuxは gcc 専用だけど・・ )
 
・64bit を意識( タイムとファイル )
 
・Uniode コンパイル対応(  VCのみ )
 
-----------------------------------------------------------------
 
そして実際どーいう時に使うかと言うと
 
・Windowsでのソフト開発( unicode対応が超ラク )
 
・自作サーバでの fcgi の開発
 
・Windows/Linuxのコンソールアプリを、ほぼ同一ソースで作れる
 
 
そしてなにより、C/C++言語で作ることでの開発速度をあげたかった。
 
 
例であげると、ちょっとした http 通信するアプリを作ろうと思って下記の言語から選択するとなると、
 
  ・C/C++ ( プラットフォーム共通の標準には無い )
  ・Java   ( あります )
  ・perl     ( 標準では無い?が、ライブラリとしてはいくつかある )
 
 
ここで C/C++ を選択肢から捨てちゃうのがほぼ大半だと思うんです。
 
 
それらの様々な不満を解消するために作ったのが、今回のライブラリと。
 
蛇足ですが、、、
 
「いったい誰に話してるのかい?」
 
と思った方。これは、日記の中の独り言です( ´д`)
 
 
これがあれば、http通信/メール送受信/基本的なソケットは Windows/Linux 共通のソースで
コーディングでき、スレッド/プロセスの作成、ロックオブジェクトの制御も同一のソースで可能。
 
さらに文字列(SJIS/Unicode)クラスを用意してるので、人的ミスによるバッファオーバフローの
発生率はほぼ無くなった。
 
namespace で包んでるので、他のライブラリと名前衝突することもなし。
 
 
色々と Java 言語を参考にしたけど、他人が使いやすいかはわかんないけどね・・
 
 
あーこの開発に何100時間かけたかわからない、、、たぶんここまでC/C++を好きな人間いるのか
と考えてもいいぐらいだろう・・

2008/02/13
Linux/gcc と VC の template ・・

 
gcc4.0 と VCでは template構文 の解釈がけっこう違いますね( ´д`)
 
今、新自作ライブラリを Windows/Linux とあわせて作成してるのですが、どーも一部の
template がエラーになってしまうのです。
 
 
具体的にはこーいう感じ。
 
 



 
template <typename Result>
class DelegateManager : public I_Function{
public:
     int val;
};

 
template <typename Result, typename type>
class DelegateR0 : public DelegateManager<Result>{
public:
     virtual void  run(){
            // 親クラスのメソッド/変数にアクセスできない・・(´・ω・‘)
     }
};










 
 
gcc 上ではクラスを継承するときに、テンプレートクラスを継承すると、親クラスには
アクセスできない様子。
 
まぁアクセス出来ないというより "コンパイルが通らない" って方か。
 
 
これは別の手段を用いて解決したのですが、C++言語同士でもコンパイラ間の移植の難しさを
改めて思いしりました(´・ω・‘)

2008/02/07
長崎ちゃんぽんのカップ麺( コンビニ版 )を食べた

 
毎度ながら、カップメンのレビューを書くのに、カテゴリとして "グルメ" を選択する自分は
どんだけカップ麺好きなんだって思ってしまいます( ´д`)
 
 
という事で、マルタイの長崎ちゃんぽんのカップ麺の絵柄が大変美味そうだったので買ってみました。
 
これね。 
P1010245
 
 
 
どうやら「長崎ちゃんぽん」のカップ麺と言ってもたくさん種類があるらしく、今回買ったのは再発売された
ものらしい。
 
他にはエースコックからも出てたり、マルタイからも別のタイプがある様子。
 
 
 
じゃあサクっといきます。
 
 
 
 
かやくは3つほど。
P1010244
 
 
 
そして麺のイメージ図
P1010243P1010242
 
 
 
感想。
 
 
美味しくなかった(´・ω・‘)
 
 
個人的には匂いですでにダメ。カップ麺独特?の匂いが強烈で、とても美味しそうには思えなく、
実際食べてみても・・前回食べた塩ラーメンよりはマシって感じ。
 
 
ネットサーフィンしてると、
 
 
「長崎ちゃんぽんは、カップ麺も美味しい」
 
 
というのをいくつも見ていただけに、非常に残念な気分。
 
たぶん自分が食べたのとは種類が違うんだろーなぁとは思うけど、これは期待してただけにキツかった。
 
 
ここ最近びみょーに風邪引き始めてるのが原因かなぁ( ´д`)

2008/02/05
ニュースやブログ系をひろってみる 2/5

 
 
毎度ながら手抜きですが、ちょっと気になる記事にコメント。
 
 
 
 
 
残業時間140時間って・・・1つき20日として計算して一日7時間残業している計算ですね。。
 
この数字は休日出勤(土日)もしないと到達しないから、ほぼ休みが無い状態がまるまる3カ月
という事になるのか。
 
う~ん、ゲーム/サーバー/ソフト/組み込みシステム、どのプログラマも地獄なんだろーなぁ。。。
 
 
けど、辞めれないんだよね。。
 
 
 
 
 
 
これ恐怖すぎるんですが・・
 
ノートPCで vista 使用の人は注意しましょう。。って私もですが( ´д⊂
 
 
 
 
 
 
おおお(゜Д゜ )
 
 
朝ごはん・・・通常生活ではまず食べませんが、
 
頭が良くなると聞くと食べたくなる( ´д`)
 
 
基本的に自分は頭が悪いと思ってるので、ちょっとでもかしこくなれるなら。。
 
 
 
 
 
 
 
実は私もフリーソフト作者をやってたりするので、「ネト●ン」にも掲載されたことあるのですが、
担当された人の印象は悪くなかったかも。
 
まぁ「事前にご連絡をお願いします。」と明記してるのに、「事後報告」なのはちょっと目に付きましたが
個人的には事後でも連絡してきたのは良かった。
 
それよりも、他の雑誌の編集者の方で "レスポンスが無い" 方が気になった。
 
 
たぶん、こっちから出した返事のメール、全部読んでないんだろーなぁ。
 
「・・の内容でご確認が取れましたら、再度ご連絡頂けますでしょうか?」
 
と書いてあるのに、連絡無し。
 
しかも、その雑誌の編集者だけ 2/2 で確率は100%。
 
 
それにしても編集者も大変なんですね。。
 
 
 

2008/02/02
電気代が異常な件

 
以前、一人暮らしで自宅サーバーを起動している人の電気代という記事があったのですが、
個人的にはそんな高くないような気がしてます(´・ω・‘)
 
 
私は自宅サーバを一日16時間~18時間ほど起動していますが、ご覧の通り。
P1010241
 
1万8千円・・・高すぎヽ(`Д´)ノ
 
 
なぜこーも電気代高いのだろうか。
 
思い当たる節は・・・無いんだが。エコの皆さんごめんなさい(´・ω・‘)