プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 このページをアンテナに追加 RSSフィード

 iTunes Music Store(Japan) なかのひと あわせて読みたいブログパーツ
|

0001 | 00 |
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2008 | 01 | 02 | 03 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 |
2010 | 03 | 04 | 06 | 07 | 09 | 10 | 11 |
2011 | 01 | 02 | 10 |
はてな一覧
アンテナに追加
私のアンテナ
私のダイアリー
私のアーカイブ
私のアイデア
私のブックマーク
私のグループ
私のキーワード
ニュース系、今まで続いているシリーズモノの読み物
dKingyo Utility Toolkit Projectのリリース情報
やっぱり暗号化は大人の味(笑)
プログラムのパッキング方法を調べよ
ココが厳しいよMinGW
ライブラリアン通信
ゲームプログラミングどうしよう
CRCについて
ビット演算練習
d金魚の今更Ajax
Windows Tips
VC6 Tips
Win32 WTL Tips
Ruby for C++ User
Ruby Tips
今日のRubyで嵌った事
正規表現PIECE
書きかけ
続く・・・

私のダイアリーの人気記事
新しくブックマークされた記事


あまり、役に立たなそうな個人的に調べた情報や妄想に耽った事、今 勉強している事ヒソヒソと公開していたりします。 | 登録してくれている方々 | d金魚にメール | 当サイトは640x480の画面解像度に対応しています。
日記へのリンク、アンリンクはフリーですが、selfタグのついている部分のコンテンツの引用はご遠慮願います。ご協力よろしくお願いします。


 

2011-10-25 私が企業を創るとしたら

[]私が企業を創るとしたら 私が企業を創るとしたらを含むブックマーク 私が企業を創るとしたらのブックマークコメント

 しばらく更新が途絶えていたがそれは3.11の影響であることはカンのイイ人なら分かっていたであろう。私の分散コンピューティング実験施設は黒水の洗礼を受け家は破壊され最近ようやく家の修理が終わったところである。そんな自然の驚異に身を晒された体験から強く起業願望が芽生えてきた。

 ただ、房二病的願望を箇条書きにして企業理念、責務、目的だけを忘れないように書いておきたいと思った。多くの被災者がそうであるように私も記憶力が鈍っている為だ。

*1:これはAMDアーキテクチャアレげな事を発端とする。

B002TOJHB8
アップル
購入: 14人 クリック: 606回
トラックバック - http://d.hatena.ne.jp/studiokingyo/20111025

2011-02-06 正しい激安鯖の置き方

[]正しい開発マシンの置き方 正しい開発マシンの置き方を含むブックマーク 正しい開発マシンの置き方のブックマークコメント

正しい開発マシンの置き方 正しい激安鯖の置き方は次の写真の通りである

只今、写真準備中

f:id:studiokingyo:20110206164351j:image




HPの鯖を保護しているスポンジは設置台替わりになり、かつ床に伝わる振動を軽減し、結果的に静穏化に貢献しているのがなんともニクいギミックである


なお、これだけのサーバーを購入してもMacBookAirの半分にも満たない値段だったりする事は学生プログラマなら雑学として知っておいても無駄ではないと思う。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20110206

2011-01-23 激安鯖部門は存続して欲しいNEC

[]NEC Express5800 GT110bのBIOS更新されているのか? NEC Express5800 GT110bのBIOSは更新されているのか?を含むブックマーク NEC Express5800 GT110bのBIOSは更新されているのか?のブックマークコメント

 NECのパソコンは魅力が無い。しかし、壊れにくさには定評がある。なぜなら周りのNEC製のパソコンは一台も根本的な部分で不具合が出ていないからだ。*1

 NECのパソコンの魅力の無さを挙げるとすれば

 パソコンに対する愚痴はそこまでだ。

 

 サーバーに関しての私の評価はまったく逆だ。自作PCユーザーに配慮されているPCケースであり、部品の選定であり、それで格安で販売しているからだ。

 私が学生時代NEC Express5800 110Gdというサーバーが私にとっての激安鯖の元祖存在*2であり、PC実験用に重宝していた。


 さて、そのシリーズの最新版であるNEC Express5800 GT110bだがどうにもPCとして使うには難がある。

 大体、サーバーをPCに改造するのはセカンドマシンとして使うのが前提なのだがせっかくのPCI-Express x16のポートに挿したグラフィックボードがCPU切替器を使用していると認識されないのだ。なお、GT110bの起動時にCPU切替器で画面をActiveにしている場合認識される。


 これは面倒だ。

GT110bのこの仕様が分かったとき本当にガックリときた。失望した。


 よって、GT110b専用のディスプレイを常につけておかなければならない。15型の液晶ディスプレイ中古で5000円以内で買えるとしても、そんな出費はサーバー1台に対して行いたくは無い。電気代やスペースの問題もある。

 この解決策はナンセンスだ。


 もう、GT110bBIOS更新を待つしかないのだ。


 ケースのデザインは横置きできなくなったがその代わりHDDが取り付けやすくなり、かつ静穏性は前代と比べるとものすごく良くなった。これは大変良い評価に値する。


 さて、もう良いだろう。私の言いたいことは次の通りだ。

GT110bBIOS更新すべき点

GT110c改善されるべき点


 話は変わるが、今、どこの激安鯖を贔屓にしているかといえばヒューレット・パッカード ML110シリーズである29800円でXeon付きってのは物凄く安いと思わないか?NECXeon付きとなると滅茶苦茶高くなる。


 今はXenで仮想サーバーを必要なだけ作って1台で色々運用できる時代になったのでIntel-VT対応したマルチコアかつ大容量メモリサーバーが個人ユースではなにかと便利なのである


 なお、激安鯖に関する情報

http://goo.gl/gfvtE

で随時更新である

*1:例外としては、HDDを過度な使い方をしていると壊れる事はあるが…

*2:確か真の元祖DELL期間限定インターネット通販用だった覚えがある

*3:恐らく無理だろう

トラックバック - http://d.hatena.ne.jp/studiokingyo/20110123

2010-11-29 第一回真の闇プログラマ認定プログラミングコンテスト開催告知

[][]第一回真の闇プログラマ認定プログラミングコンテスト開催告知 第一回真の闇プログラマ認定プログラミングコンテスト開催告知を含むブックマーク 第一回真の闇プログラマ認定プログラミングコンテスト開催告知のブックマークコメント

 本日、「第一回真の闇プログラマ認定プログラミングコンテスト(仮)」のレジュメをアップしました。ご都合がよろしければ、ぜひご参加くださいませ。

http://bit.ly/gYcbkk

トラックバック - http://d.hatena.ne.jp/studiokingyo/20101129

2010-11-20 携帯のレスポンスが遅くてイライラしている方にオススメの機種

[][]ケータイレスポンスが遅くてイライラしている方にオススメの機種 ケータイのレスポンスが遅くてイライラしている方にオススメの機種を含むブックマーク ケータイのレスポンスが遅くてイライラしている方にオススメの機種のブックマークコメント

 ガラケーの話題である。

 携帯電話ボタンを押しても画面遷移までの時間がかかってイライラする事はないだろうか?ボタンを押しても反応が悪いといった感覚だ。私の携帯にはそれが顕著でかなりイライラしていたのだが店員に聞いたところ、Snapdragon*1というモノ?を使ったケータイレスポンスが速くて良いそうである。ちなみに新規契約で0円のケータイなどには使われていないそうだ。

 機種を挙げるとすれば

あたりである。

 とにかく、レスポンスの速い携帯が欲しければケータイの店員さんにSnapdragonを使っているケータイを羅列していただけませんか?と頼む事だ。 −以上ー

トラックバック - http://d.hatena.ne.jp/studiokingyo/20101120

2010-10-20 コードコンテストプログラマーの分類

[]コードコンテストプログラマーの分類 コードコンテストプログラマーの分類を含むブックマーク コードコンテストプログラマーの分類のブックマークコメント

 コードコンテストプログラマーコーディング手法には様々なタイプがある。特に注目に値すべきコードの書き方から、そのプログラマーの考え方が分かってくるような気がしたので特にそういった印象が強かった点を以下に記しておく事にした。


1.モンキーコーダー猪突猛進型)

 問題文をあまり理解しないまま、「こんな感じだろう〜」といった具合で組んでいく。答えが合わないとモンキーデバッグに陥りやすい。一般的にプログラミング能力のみがある人にこういった傾向が感じられる。コードコンテストサイト初心者にもありがちである。要するに私である。


2.一発屋

 問題文を読んで、コードを組まずに頭の中で試行錯誤したり、紙に書いたりして問題を解く指針を決め、解ける確信を持ってからコーディングするタイプ。大体、1回書けばテストも通るのでそのまま提出になる。ある種の才能や能力を持った人達に多い気がする。例えば、コテコテ数学物理専攻の人とか。


3.チーター(別名、本屋リアルライブラリアン

 手元にアルゴリズム本が無いと何も出来ないコーダー。問題文とアルゴリズム本(アルゴリズム本に限った事ではないが…)を行ったり来たりしてテストコードを量産する。アルゴリズム名やアプローチの知識は多いが、何も資料が無い状態だとまともなコードすら書けない。要するに私であry――。


 私の周りにはコードコンテスト初心者しかおらずレッドコーダーレベルコーディング文化の様がよく分からないので他にどういったタイプの人がいるのかよく分からない。情報が入り次第随時このエントリーに追記していく予定だ。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20101020

2010-10-19 I am Monkey Debugger

[]モンキーデバッグって何? モンキーデバッグって何?を含むブックマーク モンキーデバッグって何?のブックマークコメント

 モンキーデバッグとは私がうろ覚えだった「モンキーテスト」の意味を取り違え、その他の概念と合わせて独自の解釈で作ってしまった俗語である。主に私とその界隈だけで通じる。メジャーな語句にさせる為にエントリーに書く事にした。

 意味としては次のような状態を指す。

 このような状態に対して次のようなアドバイスをする。

 プログラミングする上で一番厄介なのが、モンキーデバッグが必要になってくる状況である。コレにはまったらもう抜け出せない。一つの問題にもかかわらず3時間以上かかる事が多かったので、デバッグは止めて、ソースコードと関連する資料の見直しをしよう。大体はアプローチが悪い事が多い。

 以上、私がよくコードコンテストサイトで陥る初心者ありがちな状態の事でもある。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20101019

2010-10-13 CPPファイルとHファイルの編集を切り替えるVC6専用のマクロ

[][]VC6 Tips / CPPファイルとHファイルボタン一つで編集を切り替えられるVC6専用のマクロ VC6 Tips / CPPファイルとHファイルをボタン一つで編集を切り替えられるVC6専用のマクロを含むブックマーク VC6 Tips / CPPファイルとHファイルをボタン一つで編集を切り替えられるVC6専用のマクロのブックマークコメント

 ずっと前にも公開していました*1が、srcフォルダとincludeフォルダの行き来が面倒なので新しく作りました。VC6は不滅です!!!

http://www.dkut.flnet.org/dxlibwiki/?cpp_h_changer

トラックバック - http://d.hatena.ne.jp/studiokingyo/20101013

2010-09-07 base62エンコードの処理を作ってみた

[][]base62エンコードの処理を作ってみた base62エンコードの処理を作ってみたを含むブックマーク base62エンコードの処理を作ってみたのブックマークコメント

 今回のプログラムは珍しく、VC6ではコンパイルできません。*1g++あたりでコンパイルできるんじゃないかな?itoaをパクッてint to stringという事でitosという名前にしました。2進法から62進法まで対応する珍しい一品。私はこの手の処理に自信が無いのでバグがあるかも!?

http://ideone.com/H6ly2

//via http://hi.baidu.com/beyoniger/blog/item/1ef9dbcd3b24d8550fb345d0.html
//http://github.com/sinefunc/base62/blob/master/base62.rb to C++
#include <iostream>
#include <string>
#include <algorithm>
 
 
std::string itos(unsigned long long value,int base){
        
        std::string out;// check that the base if valid
        if (base < 2 || base > 62) { return out; }
        unsigned long long absQModB;
        unsigned long long q = value;
 
        
        const char *ascii_table="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        while(q){
                absQModB=q % base;
                //if (absQModB < 0)
                //      absQModB=-absQModB;
                out += ascii_table[     absQModB ];
                q /= base;
        }
        std::reverse( out.begin(), out.end() );
        return out;
}
 
int main(){
        return "lYGhA16ahyf"==itos(18446744073709551615ULL,62);
}

*1:どうしても行いたいのであればlong longの項を__int64やLONGLONGにすればコンパイルできるはずです。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20100907

2010-09-02 ライブラリアン通信 VOL.62

[][][]前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報 前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報を含むブックマーク 前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報のブックマークコメント

トラックバック - http://d.hatena.ne.jp/studiokingyo/20100902

2010-09-01 大きい構造体を高速にソートするテクニック

[][]サイズの大きい構造体を高速にソートするテクニックはwikiの方で更新していくことにした。 サイズの大きい構造体を高速にソートするテクニックはwikiの方で更新していくことにした。を含むブックマーク サイズの大きい構造体を高速にソートするテクニックはwikiの方で更新していくことにした。のブックマークコメント

 wikiの方でソートソースコード更新していくことにした。何故かstd::sortが一定の条件でAccess ViolationやStack Overflowになるのでどうにかしなければならない。ということでstable_sortにしてみたorz。

http://www.dkut.flnet.org/dxlibwiki/?cpp_programming_tips

[][]サイズの大きい構造体を高速にソートするテクニック サイズの大きい構造体を高速にソートするテクニックを含むブックマーク サイズの大きい構造体を高速にソートするテクニックのブックマークコメント

 誰もが思いつくと感じているが、一応実装を記す。メモリを多くするとideoneでSEGVったけど気にしない。メモリが壊れているかもしれないけれど眠いので今は調べない。私製のテストフレームワークを用いている部分はコメントアウトした。気にしないで欲しい。

http://ideone.com/z95Ye

 要するに構造体を丸ごとコピーしてソートするのではなくポインタ経由で比較データアクセスしてポインタ値のみをソートするという方法である。アルゴリズム教科書小ネタソート高速化課題として書かれていそうな題材である。

 このソースコード場合、ideoneではポインタ経由ソートのほうが約10倍高速である。



#include <iostream>
#include <algorithm>
#include <functional>
 
struct vbdata{
        int prio;
        char data[1024];
        vbdata() : prio(rand()){
 
        }
        ~vbdata(){}
        friend bool operator<(const vbdata &x,const vbdata &y){
                return x.prio < y.prio;
        }
        friend bool operator>(const vbdata &x,const vbdata &y){
                return x.prio > y.prio;
        }
};
 
 
template<class T>
struct pointer_less: public std::binary_function<T*,T*,bool>{
        bool operator()(const T *x,const T *y){
                return *x < *y;
        }
};
 
#include <boost/scoped_array.hpp>
#include <boost/timer.hpp>
 
void vbsort_test(size_t size){
        using namespace boost;
        using namespace std;
        //RANKING_OBJ_DEFINE;
        srand(0);
 
        {
                size_t i;
                scoped_array<vbdata> a(new vbdata[size]);
                scoped_array<vbdata *> b(new vbdata *[size]);
                for(i=0;i<size;i++){
                        b[i] = &a[i]; 
                }
                pointer_less<vbdata> l;
                //less<vbdata *> l;
                boost::timer t;
                //RANKING_TIMER_DEFINE("ptr sort");
                std::sort(&b[0],&b[size],l);
                /*for(i=0;i<size;i++){
                        vbdata& d=*(b[i]);
                        cout << d.prio << endl;
                }*/
                cout << t.elapsed() << endl;
        }
 
 
        srand(0);
 
        {
                scoped_array<vbdata> a(new vbdata[size]);
                boost::timer t;
                //RANKING_TIMER_DEFINE("def sort");
                std::sort(&a[0],&a[size]);
                /*for(size_t i=0;i<size;i++){
                        vbdata& d=a[i];
                        cout << d.prio << endl;
                }*/
                cout << t.elapsed() << endl;
        }
 
}
int main(){
 vbsort_test(1024*32);
}
トラックバック - http://d.hatena.ne.jp/studiokingyo/20100901

2010-07-26 STLのvector<POD>をPOD配列並の速度で使う方法

[][][]STLvector<POD>の実行速度を犠牲にしないで使う方法 STLのvector<POD>の実行速度を犠牲にしないで使う方法を含むブックマーク STLのvector<POD>の実行速度を犠牲にしないで使う方法のブックマークコメント

 昔、vectorは遅い!という事をこのブログに記したが、実際push_back()を使って事前に確保した領域を拡張しない限り遅くないのでネタとして*1ここにメモしておくことにした。

 要するにvector<POD>がPOD*2配列と張り合いたいのならばresize使って必要な領域を確保してoperator []でアクセスすること。そしてpush_back()は使うな!である

http://ideone.com/cRo9i

//正しいvectorを使った配列の使い方
//resize後 配列と同じように・・・

#include <iostream>
#include <boost/scoped_array.hpp>
#include <vector>
using namespace std;

const int gSize = 100;

int main(){
 typedef vector<int> vt;
 typedef boost::scoped_array<int> sa;
 sa a(new int[gSize]);
 vt v;
 
 v.resize(gSize);
 
 for(int i=0;i<gSize;i++){
  a[i] = rand();
  v[i] = a[i];
 }
 
 return 0;
} 

[][]vector<POD>のreserve() push_back()版 vector<POD>のreserve() push_back()版を含むブックマーク vector<POD>のreserve() push_back()版のブックマークコメント

http://ideone.com/wigUv

[][]結論:やっぱりpush_back()ってほんの少し遅いらしいよー 結論:やっぱりpush_back()ってほんの少し遅いらしいよーを含むブックマーク 結論:やっぱりpush_back()ってほんの少し遅いらしいよーのブックマークコメント

 そういえば、何故、resize operator[]が一番速い方法として取り上げたかをやっと思い出した。これからコードテストコード置き場は私のHDD内ではなくideoneが肩代わりしてくれるって事ですかね。 http://ideone.com/uGMtx > http://ideone.com/q9C0o 

[][]vector<POD>と張り合う為に頂戴した意見 vector<POD>と張り合う為に頂戴した意見を含むブックマーク vector<POD>と張り合う為に頂戴した意見のブックマークコメント

boost::scoped_array

boost::shared_array

boost::shared_ptr<T[]>

boost::array

C言語POD array[size];//sizeはint型変数

*1:前にもやった覚えがあるがhttp://d.hatena.ne.jp/studiokingyo/20040916

*2Plane Old Data : C言語でも使える型の事 int char double structなど

uskzuskz 2010/07/26 16:08 reserveしてpush_back

studiokingyostudiokingyo 2010/07/26 18:57 チェック早いですね。POD配列のインターフェースと同じという利点があるのですが、reserve版も用意しておきます。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20100726

2010-06-16 ライブラリアン通信 VOL.61

[][]メモリ管理mallocの説明集 メモリ管理、mallocの説明集を含むブックマーク メモリ管理、mallocの説明集のブックマークコメント

 これはmalloc大好きな私にとっての宝物。何故今まで見つけられなかったのだろうと思う。多分、見つけたけど忘れていたのだと思う。

http://www.ibm.com/developerworks/jp/linux/library/l-memory/

[][][]今月チェックしたライブラリおよび技術情報 今月チェックしたライブラリおよび技術情報を含むブックマーク 今月チェックしたライブラリおよび技術情報のブックマークコメント

トラックバック - http://d.hatena.ne.jp/studiokingyo/20100616

2010-06-14 このレーザープリンタは安すぎる。

[]こいつは安すぎる! こいつは安すぎる!を含むブックマーク こいつは安すぎる!のブックマークコメント

 http://amzn.to/bSk3xv 昔100万くらいしたものがこんな値段になるなんてビックリだ!だけど、プリンターは消耗品が高価なものだから一概にお得とは言えない事もあるので注意しよう。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20100614

2010-06-10 HP ProLiantが大量に出品されているよ

[][]HP ProLiantが大量に出品されているよー! HP ProLiantが大量に出品されているよー!を含むブックマーク HP ProLiantが大量に出品されているよー!のブックマークコメント

http://search.auctions.yahoo.co.jp/jp/search?p=HP+ProLiant+ML

お子様のプログラミング学習用に、Linuxの練習用に・・・一家に一台激安PC。音が出ないって所がミソね。動画や音楽のマルチメディアに気が奪われないためにね。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20100610
 
Program | Debug | dKingyo Utility Toolkit | library | D言語 | 御本とか | 備忘録 | テクニック | WayBack | 格言 | 英語 | 他力本願 | news | software |

デースケドガー