STAP STAP

STAP = (動詞)スタップする、カシャカシャする(造語)
 

スポンサーサイト 

No. : --/--/--(--) --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

リストから重複する値を取り除く 

No.320 : 2008/12/31(Wed) 02:51:32
List で保持しているデータに重複がある場合、それを取り除いて重複を無くすサンプルです。
色々な方法があるようですが、Dictionary クラスを用いたこのやり方はシンプルだと思います。
Dictionary クラスがハッシュテーブルであるから実現できるのですね。


public static void RemoveDuplicateKey<T>(List list)
{
var dic = new Dictionary<T, int>();
foreach (T temp in list)
{
dic[temp] = 1;
}
list.Clear();
foreach (T key in dic.Keys)
{
list.Add(key);
}
}


var はC#3.0 からの新機能・型推論ですね。
並び順は変わっちゃうかもしれません。
スポンサーサイト

画像には必ず WIDTH 属性と HEIGHT 属性をつけましょう 

No.319 : 2008/12/27(Sat) 00:30:44
HTML において、画像を表示するためのタグとして IMG タグがあります。
このタグには WIDTH 属性と HEIGHT 属性があり、それぞれ読み込む画像の高さと幅を示します。
この属性は無くてもブラウザ(その描画エンジン)が画像を読み込んだ後に勝手に調節してくれるので問題ありません。
…と思いきや、WIDTH 属性と HEIGHT 属性が無いと困る場合があります。
それは画像を読み込んでいる最中です。
当たり前ですが、ブラウザは画像を読み込むまで高さと幅を知りません。そのためブラウザは画像を描画するためのスペースをどれだけ取ればいいのかもわかりません。読み込んでから初めてスペースをとるのです。
例えば、なぜか回線が糞重いとしましょう。早く光にしたいです、はい。
たとえブロードバンド回線だとしても読み込みには時間がかかります。
その間に記事に目を通すことがよくあります。たとえば個人のブログやニュースサイトなど。
そのときに WIDTH や HEIGHT が指定されていないとどうなるでしょう。
正解は「縦方向にどんどんと伸びていく」です。
画像を読み込んでる間に記事を読もうとしても記事がどんどんとしたに行ってしまって読めません。
「ふむふむ(スクロール)ふむふむ…(スクロール)ふむ…(スクロール)……あ゙ーーーー!!!11」
となるわけです。俺だけですかそうですか。
なので皆さん、IMG タグには必ず WIDTH 属性と HEIGHT 属性をつけましょう。
あと ALT 属性もあると尚良しです。
ちょっとしたことでサイトの利便性・可読性が上がります。

 

No.318 : 2008/12/25(Thu) 22:15:32
以前「Microsoft が全世界の学生にMS謹製ソフトの無償提供を行う」というニュースを耳にして超うらやましかったんですが、長野高専にも来ました。
ダウンロードできるソフトウェアは

・VisualStudio 2003 Professional Edition 日本語版
・VisualStudio 2008 Professional Edition 日本語版
・Expression Studio (Expression Web, Expression Blend, Expression Media, Expression Design) 日本語版
・Windows Server 2008 Standard Edition 日本語版
・SQL Server 2008 Developer Edition 日本語版
・XNA Game Studio 2.0 英語版

らしい。なにこれ超有りがたいんですけど。
でも色々と制限があって

・ドリームスパークで取得したソフトウェア製品は個人利用のみ
・ドリームスパークを通じて製品を取得した学生は、その学生が所有するデバイスに1コピーをインストールすることができ、所属する教育機関で履修する授業の学習や非商用の研究、デザイン、開発、テスト、デモンストレーションにソフトウェアを利用することが可能
・ドリームスパークを通じて取得した製品の商用利用は不可。その他、学内でのITインフラストラクチャ利用なども付加
・CAL(クライアントアクセスライセンス)も無し

最後の CAL ってのがよくわからなかったからググってみるとどうも Windows Server へアクセスするときに色々と必要になるものらしいね。マンドクセ)('・A・`)(

あと、どの範囲で使えるのかも気になる。「非商用の開発」ってのだけを抜き出すとフリーソフトを作って配布するのはOKなのかな?たとえばそれをカンパウェアにした場合は?DVDなどの媒体に記録して配布する場合は商用利用?などなど。
そしていつまで使えるの?卒業しても使える?(ダウンロードとインストール自体はかなり速い段階でできなくなりそう)

また、ダウンロードも1回のみ、アクティベーションも1回のみ、とかなりシビアな制限が付いてます(らしいです)。既にこれらの制限のせいで躓いている人がいて「ダウンロードに失敗したからやり直そうとしたら『ダウンロード回数が制限値に達しました』と言われてダウンロードできなくなった」「OSがクラッシュしたので再インストールしようとしたら認証できなかった」などの問題が発生しているようです。

うーん、正直よくわからんなぁ。
Windows Server 2008 は嬉しいけどパソコンが古いとドライバとか無さそうだし、CAL もあるし、VisualStudio も俺くらいのレベルだったら ExpressEdition で十分だからなー。
でも単体テスト機能は嬉しいかも。

マーシャリングではまる 

No.317 : 2008/12/20(Sat) 17:11:29
今 Sinku.dll を C# から使おうと努力してるんですが…
Sinku.dll はネイティブで書かれた DLL ですから、マネージド環境から使おうと思ったら
一工夫いるわけです。
まぁ C# のシの字くらいまでしか分かってない俺が挑戦したわけですが、マーシャリングで
はまりましたorz

Sinku.dll には FILE_INFO という構造体があって、その中に動画情報が格納されます。
FILE_INFO 構造体は

typedef struct {
char name[STR_MAX_LENGTH]; //IN : ファイル名
int type; //IN/OUT : ファイル種別
char container[32]; //OUT : コンテナ名(ある場合のみ)
char error[STR_MAX_LENGTH]; //OUT : エラー(ある場合のみ)
char video[VA_MAX_STREAM_COUNT][STR_MAX_LENGTH]; //OUT : 映像の詳細
int video_count; //OUT : 映像の詳細の数
char audio[VA_MAX_STREAM_COUNT][STR_MAX_LENGTH]; //OUT : 音声の詳細
int audio_count; //OUT : 音声の詳細の数
char extra[EX_MAX_STREAM_COUNT][STR_MAX_LENGTH]; //OUT : 付属情報
int extra_count; //OUT : 付属情報の数
double playtime; //OUT : 再生時間(秒)
unsigned __int64 size; //OUT : ファイルサイズ
} FILE_INFO;


こうなっています。
マーシャリングではまったのが 3 つある二次元配列。
ここには最大 10 個のビデオとオーディオのストリームに関する情報が格納されます。
extra は MPEG2-TS かなんかに使うみたいで、最大 5 個です。
これをどうやってもクリアできない。

char の一次元配列(要するに文字列)は

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Name;

などとすればOKです(STR_MAX_LENGH は Sinku.h に書いてありますが 512 です)。
でも二次元配列はさっぱり。
ArraySubType に Unmanaged.LPTstr とか色々入れてみましたが、Type なんちゃら Exception でそんなの使えないぞゴルァとか深刻そうな Exception 等が発生してお手上げ状態。
あきらめて以下のようにしました。

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Video1;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Video2;
・・・
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Video10;

強引な力技です。配置さえあってりゃいいんですよ!HSP で構造体を扱うときもそうでした。

まぁコンテナ名や長さの取得はできましたが上に書いた Video や Audio の値は「C空VIDEO」や「C空LAME」などという謎文字列になってしまったので・・・謎です。

まぁ今回は PlayTime が取得できれば良しなのであきらめます。
最後に、「続きを読む」に俺が書いたクソコードを提示しておきます。
C# は深いなぁ。どなたか分かる方いらっしゃいましたら教えてください。


黒羽さんに Sinku.dll を .NET で書き直してもらうのが一番早(ry
▼... Read more ≫

Vector のソフト登録が不便 

No.316 : 2008/12/16(Tue) 18:53:26
1個前の日記の続きみたいな感じです。
今回はネットではなく、Vector へのソフト登録がちょっと不便だという話です。

Vector は知ってのとおり、日本中のソフトウェア製作者が開発したソフトを公開できる
日本最大のダウンロードサイトです。Vector は窓の杜とは違い、作者登録をした作者が
自由に(もちろん利用規約を遵守していること)ソフトを公開できます。

そのソフト登録の仕方ですが、今の Vector では

1)テンプレートに従って申請のためのテキストを作成する
2)所定の場所にアーカイブしたソフトを置く(メール添付は別)
3)Vector 宛てにメールを送る
4)3日後くらいに登録される

という手順を踏んでいます。
この中で面倒くさいのが「1」と「3」のタッグです。
Vector のソフト登録作業は基本的に自動ではなく手動です。
それは Vector の中の人だけではなく、ソフト作者も同様です。
メールには申請のためのテンプレート(テキストファイル)に従って必要な情報を記入したものを貼り付けます。
それ以外は基本的に自由です。挨拶をしようが署名をつけようがテンプレートだけだろうが。
なのでメールを出すとき、「こんな書式でいいのかな」とか「『お世話になっております』とかで始めたほうがいいのかな」と色々な心配をしてしまいます。

なぜ Vector にはソフト登録フォーム的なものが無いのでしょうか。
作者情報の変更のページはあるのに、ソフト登録のページが存在しないのは不思議です。
それにフォームから投稿させたほうが書式が統一されて楽になるはずです。
初期投資以外特にデメリットとなるようなことはないと思うのですが…

FC2ID やニコニコ動画のマイページのように「作者ページ」を作り、パスワードの変更や自己紹介の変更、ソフト情報の登録が自動でできるようになると本当に便利なんですが…

もちろん、ウイルスチェックなどの審査があるので即時反映ではなくても全然OKです。
要は「申請を楽にしたい」ということなのです。

不便 

No.315 : 2008/12/14(Sun) 21:28:28
寮回線(バックボーンはSINET)は

1) 重い
2) 特定のページが見れない(Microsoft とか)
3) サブドメインとかに記号が含まれてるとプロキシがエラー(何故)
4) ありがたいことにプロキシ情報を吐いてくれるのでプロキシ規制されてるページにアクセスできない
 (ねがさぷminiの代理公開版にアクセスできないのは致命傷)
5) AM0時~AM5時の間は使えない。切れる(おかげでレポートが進まなくなる)
6) ロードバランサでもあるのかリモートホストが頻繁に変わる

等の致命的な問題を抱えてるので、非常に不便である。
特に
(1) … ニコニコ(^o^)できない
(2) … Microsoft ダウンロードセンターにアクセスできない
(3) … http://abc_desc~~.xxx.xxx/ といったところにアクセスできない、
(4) … ねがさぷminiの代理公開版にアクセスできない
(5) … いざというときにネットが使えず、悶々とする
(6) … FC2 はリモホチェックしてんのか操作がうまくてきない
は、非常に不便である。
昔は AM 2時まで使えたり、めっちゃ速かったり、プロキシ情報吐かなかったり、リモホが変わらなかったりしたのだが…

fujix がんばって。

*

メモ

try{
Console.WriteLine("Try");
}
catch(Exception){
Console.WriteLine("Catch");
}
finally{
Console.WriteLine("Finally");
}
Console.WriteLine("Return");


・Try → Finally → Return の順番。

try 中で return すると

・Try → Finally の順番。

try 中で例外が発生すると

・Try → Catch → Finally → Return の順番。

try 中で例外は発生して、catch 中で return すると

・Try → Catch → Finally の順番。


ややこしいなぁ。

テストおわった~ 

No.314 : 2008/12/09(Tue) 18:03:17
テストおわった~
今日帰ってきた分

・ファームウェア 78点
・確率統計 92点

ファームはまさかのプログラム駄目で10点落とした/(^o^)\
まんまとやられました。っていうかそれくらいの動作も予測できない俺が馬鹿だったんですけどね。
ちなみに「8ビットの値を前後入れ替える」という問題でした。
うまくいえないのでプログラムでどうぞ。


unsigned char bitswap(unsigned char in){
    int i = 0;
    unsigned char out = 0x00;

    for(i = 0; i < 8; i++){
        out <<= 1;
        out |= in & 0x01;
        in >>= 1;
    }
    return out;
}

プログラム言語は世界共通語です。

*

豊作の神様!『狼と香辛料』より「ホロ」をご紹介しちゃうお! - ミカタンブログ
「一度買ったら最後」という言葉は誰が残したものだろう。
その言葉を信じて耐えてきたあの頃の俺はもうどこにもいない。

*

FC2トラックバックテーマ 第630回「猫舌ですか?」
http://blog.fc2.com/trackbacks/blog-entry-627.html#trackback

トラックバックしてみる。
俺は猫舌です。お茶が熱いままだと飲めません。中華丼は出てきてから5分後に食べ始めます。
淹れたてのコーヒーには氷を入れます。あつあつがおいしい?熱すぎて味なんかわかりません(´・ω・`)
よく食べられるよなぁあんなに熱いものを。信じられない。
いまだかつて本当に「あつあつ」の料理を食ったことがない俺でした。


*

ホームページリニューアルするよー!
| HOME |

calendar

S M T W T F S
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
11« 2008/12 »01

Profile

エイチム

Author:エイチム
programmingに
興味を示す高専生

Diary

Recent Comments

Archives

Category

Link

このブログをリンクに追加する

RSS


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。