いろいろなソートアルゴリズム 大小関係が定められたたくさんのデータを、小さい順(昇順)あるいは大きい順(降順)に並べ替える作業をソート(整列)と言います。この処理は、さまざまなプログラムの中で頻繁に使われ、そのゆえ、古くからいろいろなアルゴリズムが考案されてきました。 並べ替えは、主にデータベースなどの大量のデータを処理する必要のあるプログラムで有用です。試験の点数の高い順番に並べ替えて、上位1000人を合格にするなどの場合は、点数による並べ替えが行われます。また、住所録のデータを住所毎にまとめて参照したい場合は、住所(文字列)による並べ替えが行われます。 このページでは、多くあるソートアルゴリズムのうち、以下の6通りのアルゴリズムについて説明し、Javaアプレットで実際の並べ替えの様子を見て、その特徴を理解することにします。 バブルソート バケットソート(ビンソート) 基数ソート ヒープ
テスト駆動開発(Test Driven Development:TDD)。最近この言葉を聞く機会が多いと思いますが、実際のプロジェクトでTDDを取り入れているというケースはあまり聞きません。本稿は、テスト駆動開発に興味はあるけれど、いまだ導入に踏み切れないという開発者のために、その効用や実際の運用方法について、具体例を交えながら述べたいと思います。前半はテスト駆動開発の意義と、導入に当たっての説得材料について検討します。後半では実際にテスト駆動開発を進めるに当たって具体的にやるべきことについて、事例を踏まえながら説明していきます。 テスト駆動開発(TDD)とは テスト駆動開発は一般にエクストリーム・プログラミング(XP)の1プラクティスとして紹介されることが多いと思います。しかし、テスト駆動開発自体は決してXPの開発手法に特化したものではなく、さまざまな開発手法とともに有効利用が可能なもの
[IDE] ST3250823A [1394] Apple Computer_ Inc. iPod IEEE 1394 SBP2 Device [SCSI] Maxtor 6 L250S0 SCSI Disk Device [USB] HTS54802 0M9AT00 USB Device [USB] IC25N040 ATMR04-0 USB Device はじめに この記事では、Setup API関数およびWMIを用いてハードディスクの型番を取得する方法について考察しています。ハードディスクの型番を取得すると、現在使用しているハードディスクの種類を判別できるため、そのハードディスクのパフォーマンスや評判をインターネットなどを通じて容易に知ることができます。 普段、意識することなく使用しているハードディスクですが、型番を知ることで多くの種類が存在することに気が付くのではないでし
※ JavaScriptを使ってデータを処理していますのでJavaScriptオフではご利用になれません ※ IE6で最適化されています。FireFox、NN、Operaでの動作も確認しています。 ※ 問題文が文字化けする場合はIEのメニューから [表示] → [エンコード] → 一番上の[自動選択] を選択 ※ 誤植、間違い、指摘等ありましたら下記メアドまで御一報下さい ※ リンクフリーです
日立システムアンドサービス 酒井 達明 Microsoft MVP for Solutions Architect(Jan 06 ~ Dec 06) 2006/03/08 Visual Studio 2005 Team Systemとは何か? Visual Studio 2005(以下、VS 2005)パッケージ版が正式にリリースされ、いよいよ.NETもバージョン2の時代が到来した。今回リリースされたVS 2005は、Windows Vistaで新たに提供されるWinFXへ向けたマイナー・アップデートと思われがちであるが、実際にはそれは大きな間違いだ。 というのもVS 2005のラインアップには、今回紹介するVisual Studio 2005 Team System(以下、VSTS)が含まれており、これこそが「大きな変革」を象徴しているのである。VSTSの登場により、これまで単なるソフト
This domain may be for sale!
ソフトウェア開発ではこれまで、設計の重要性が繰り返し提言されてきた。良い設計ができれば、仕様を満たして正しく動作するだけでなく、理解や変更がしやすく、さらに再利用しやすいシステムとなる。逆に、そのようなシステムが実現できているのなら、それは良い設計であったといえるだろう。 では、良い設計が実践できているかというと、できていないことの方が多いのではないだろうか。例えば以下のような状況を聞くことは決して少なくない。 良い設計が実践できていない例: 不具合を修正してリリースしたら、その影響によりほかの個所で不具合が発生し収束に時間がかかった ほぼ同じコードが複数個所に大量に存在するため、1つの目的の修正でも数多くの同じ修正が必要となった 修正した場所と本来関係ない個所で問題が発生してしまった 機能アップする場合、修正するより作り直す方が早かった それでは良い設計を実践し、このような状況に陥らない
デザインパターンを勉強していて、ふとデバッグにもパターンがあるよな。 と思って作ってみました。 これって、どこかに協力を仰ぎたいけど、誰に頼むんだ? (結果的に協力してもらいました。thanks XPMLの皆さん、lemonさん) 何かおもいついた方はこちらへメールか、掲示板へ プログラマ用セキュリティホールパターンってのが欲しいな 例えばSQL injectionとかいうセキュリティホール。 こんなの知らないと絶対やってしまう。 OSとかの設定ではなく、プログラマの設計において注意するセキュリティホールのパターンが欲しい。 集計などはやってもいいので、どこかで有志を募って集めてくれませんかね? ○デバッグパターンについて ・デバッグパターンとはプログラマから観測できる現象とそれに対する原因と対策をパターンとして登録したものです。中にはアンチパターンという、やってはいけないパターンも存在し
ソフトウェアにおいてバグはつきものです。1人のプログラマが一度に書けるバグのないコードは最大で数十ステップといわれています。当然、業務システムは数万から数十万ステップにもなるわけですから、バグは存在していて当然です。 そしてバグは、できるだけ早く見つけるに越したことはありません。早期に発見できたバグは、問題の追及が比較的楽になるからです。逆にかなり前から潜んでいたバグは、考慮すべきソースコードの範囲が広くなるために問題の追及が困難になってしまいます。 そこでXP(eXtreme Programming)などのアジャイル開発プロセスでは、常時結合(Continuous integration)というプラクティスが提唱されています。 これは、「最新のソースコードを常に自動テストし、常に動作するソースコードを入手できる状態にしておく」ことです。これにより開発の早い段階からバグを発見することができ
マルチスレッドプログラムのバグ 首藤 一幸 産業技術総合研究所 グリッド研究センター 注: このページの文章は JavaWorld 誌 2002年 1月号に掲載された以下の記事の元原稿です。 JavaWorld 誌編集部の了承の元に、本ウェブページに掲載しております。 首藤一幸, "マルチスレッドプログラムに対するデバッギングの心得", 月刊ジャバワールド 2002年 1月号, pp.64-73, IDGジャパン, 2001年 11月 もくじ 序文 1. はじめに 2. レース状態 3. ロック 4. Java言語のモニタ 5. デッドロック スレッドの異常終了によるデッドロック Threadクラスのstop()とsuspend()メソッド 6. 再現性の低さ 7. 予防が肝腎 8. デバッグ assertion機能 デッドロックの検査 9. 注意一秒ケガ一生 参考文献 序文 スレッドは
bash の解説なんて、ネット上には結構あったりするのだが、これをわざわざ公開しようというのは、次の理由による。 某ソフトハウスでのUNIX講座用に書いてしまったから。 ネット上にある bash 解説だと、表面的な構文解説程度であり、きっちりスクリプト言語として使い倒すレベルの解説はあまりない。まあ、プログラミング言語として凝ったサンプルもやってみようじゃないの、というノリで割とディープに解説する。 アクセスを増やすための人気取り(苦笑)。 まあ、そんな不純な目的による bash 解説である。とはいえ、日常的に使い慣れている bash であっても、「え、こんな使い方があったの!?」という発見もあることであろう。苦笑しながらでも読んでくれたまえ。だから、初歩的なリダイレクションなんかは解説しないからそのつもりで。 ちなみに参考書としたのはオライリー・ジャパン刊「入門 bash 第2版」である
XUL(XML-based User-interface Language, ズール)はXMLに基づいたGUI記述言語で、MozillaのGUIを作成するために作られました。外見はCSS(Cascading Style Sheet)によって調整し、動作はJavaScriptによって記述します。XPConnectという仕組みを使ってMozillaのコンポーネントにアクセスすることにより、ファイル操作やソケット通信なども行うことができます。つまり、ごく普通のアプリケーション(Mozillaのような)が作れるわけです。GIMPのGUIを記述するためのGTK+が独自に発展し、GNOMEにも使われているのと同様に、XULもMozilla以外のアプリケーションを作成するために使われていく可能性があります。 XULの最大の長所はクロスプラットフォームだということです。LinuxのGUIもMacintos
まもなく(2月3日から)Visual Studio 2005(以降、VS 2005)製品パッケージの店頭販売が開始される。それに当たり、どのエディションを買うべきか迷っている読者諸氏も多いのではないだろうか。VS 2005には次に挙げたような多数のエディションが用意されており、それぞれの推定小売価格も無償~75万円以上と幅広いので、さらに迷いは深まるだろう。 VS 2005 Express Edition(以降、VS 2005 Exp): → 無償でダウンロード提供中(無償提供期間は2006年12月14日までの1年間の予定)。パッケージ版は4800円。 VS 2005 Academic Edition: → 4800円。ただし学生向け。Standard Edition相当。 VS 2005 Standard Edition(以降、VS 2005 Std): → 2万9800円(アップグレー
Epeg で JPEG ファイルのサムネイルを高速に生成する Epegは JPEG ファイルのサムネイル (縮小画像) を高速に生成するライブラリです。JPEG に特化した手法でサムネイルの処理を行うため、内部的に画像をビットマップに伸張せず、高速かつ少ないメモリで処理できるのが特徴です。 インストール Epeg は Debian パッケージになっていないようなので、ソース (ダウンロード) からインストールしました Epeg は内部的に libjpeg を使っているため、Debian GNU/Linux では sudo apt-get install libjpeg62-dev で事前にインストールしておく必要があります。 Epeg そのものは ./configure && make && sudo make install でビルド・インストールできます。 サンプルコード Epeg の
1 安全なWebアプリ開発の鉄則2005 独立行政法人産業技術総合研究所 情報セキュリティ研究センター 高木 浩光 http://staff.aist.go.jp/takagi.hiromitsu/ Internet Week 2005 チュートリアル 2005年12月8日 配布資料 2 目次 • Webアプリの基本的な構成 – セッションIDによるセッション追跡 – セッションIDの配置 • セッション追跡に対する攻撃と防御 – セッションハイジャック – セッションライディング(CSRF:クロス サイトリクエストフォージェリ) – セッション固定化 • セッション追跡方式の欠陥 – 推測可能なセッション追跡パラメタ – 予測可能なセッションID – 稚拙な暗号の使用 • 権限確認の欠陥 – アクセス制御の欠如 – ユーザ識別の欠如 • 画面設計の問題 • 万が一に備えた適切な実装 •
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く