概要 † このコンテンツは、C/C++言語でWindowsプログラミングをしていて、かつMFCやATLにある CString クラスを使っていない人くらいにしか実益はないかもしれません。 が、内容的に知っておいて損はないことなので書いておきます。 概要としては、 LPTSTR 型や TCHAR 型について知り、NT系(Unicode環境)と9x系(非Unicode環境)のどちらにも最適化できるソースコードを書こうというお話です。 TCHAR 型を見たことがなくても、 LPTSTR 型なら見たことがある人も結構いるでしょう。 初心〜中級のWindowsプログラマは、大抵は LPTSTR 型と LPSTR 型の違いを特に意識せずにコードを書いています。 しかし、この二つの型を混同するのは非常に危険なことです。 まずはこれらの型の定義を説明し、 TCHAR 型を用いることでUnicode対応プロ
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
【サンプル】 ******************************** ■■■■ ■ ■ ■ ■ ■ ■■■ ■■■ ■ ■ ■ ■ ■■■■ 〜基礎から ★ C++Programing〜 ******************************** 【注意】 このマガジンは、最大化してお読みください。 ******************************** 発行者 むーくん マガジンNO. 0 発行日 講読人数 マガジンID 0000050494 このマガジンは、まぐまぐから配信されています。 ******************************** 1.1 プログラミングとは何か? プログラミングとは、いろん
実践的なデバッグ方法論(デバッグの仕方、事例研究)も強く求められている。デバッガーというツール依存のTipsではなく、ソフトウェアのデバッグというプロセスそのものの形式化である。 人々は誰に教わるでもなく自分のデバッグのスタイルを持っている。自分なりな定石を獲得している。しかしそれを明示化して人に伝えようと試みる人は少ない。伝承がまったく不可能なような議論も少なくない。 わたしはオープンソースの時代こそデバッグの方法論を広く共有できるチャンスに満ちた時代だと考えている。いくつか事例を紹介しつつ解説する。 優れたプログラマは優れたデバッグ方法論を持つ。そのデバッグ方法論をぜひ共有化したい。そのためには情報公開が要である。 デバッグとはプログラムの不具合を修正するプロセスである。テストなどによって発見された何らかの不具合を期待する結果に修正する作業である。テストとデバッグの区別が十分ついていな
ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな
はじめに システム開発において例外処理は重要なポイントですが、あまりに軽視されているのが現状ではないでしょうか。本稿では、これまでの著者の開発経験の中から培った汎用的な手法を説明します。 この記事は「美しい設計」ではなく「現実的な設計」、現場に適用できる「できるだけ手間の少なく、汎用的な設計」を目指しています。 対象読者 J2EE開発者・アーキテクト。特に業務システムの開発現場の方が対象です。 必要な環境 概念の説明が中心ですので、開発環境は必要ありません。 エラーの分類 実装時に考慮すべきエラーは2つに大別できます。 想定内でトランザクションの実行開始前にチェックするエラー。主に入力エラー。 異常な状態としてトランザクションの続行が不可能なエラー(例外)。 前者については、例外を使うべきではありません。入力チェックエラーを表現するには、ステータスコードを使うべきです
週3日勤務。残り4日は英語ブログアジアジンやThe Japan Times等で活動しております。連絡先は「姓@gmail.com」です。 via del.icio.us/popular Javascript Gamerで、BrickslayerというJavascriptで作ったブロック崩しゲームの作り方が公開されている。 開発環境は Firefox + Firebug + お好みのエディタ。 Javascript本体は、prototype.jsベースで、スプライト表示、アニメーション処理、キーボード入力、当たり判定、(Flash経由で)効果音などについてそれぞれソースつきで解説されている。 また、ハイスコア記録のほうはPHPによるサーバ側のスクリプトがちゃんと用意されている。 まだアルファリリースということだけれど、ページ上ではブロック崩しゲームがちゃんと動いている。ソースを一括してダウン
はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li
Railsを触ったことがある人のうち、半数以上がScaffoldに触れてそこで終わっている。確かにScaffoldを使うことでそれっぽいデータ表示が難なくできてしまうのは凄い。だがそこで終わってしまってはRailsの魅力は伝わらない。 次のステップとして独自での作りこみもあるだろうが、ここではさらにActive Scaffoldを活用した例を紹介しよう。 今回紹介するオープンソース・ソフトウェアはPropmansheet、Ruby on RailsのActive Scaffoldを活用したアプリケーションだ。 Propmansheetはロンドン赤十字のためのソフトウェアで、一覧表示、編集、削除が可能になっている。ソースを見ると、ほぼ純粋にActive Scaffoldを使って構築されている。 とは言うものの、実際の所何に役立つソフトウェアなのかは分かっていない。ただ、Active Scaf
新しいソフトウェア構成管理(SCM: Software Configuration Management)ツールを自社内に展開するとき、実装担当者は、しばしば詳細な活動まで完璧に行おうとする一方、これまでのまずい大規模なやり方 を、知らず知らずに推し進めてしまいます。その結果として、大きな失敗を招いてしまいます。 ここでは、SCM展開における著者の経験に照らした、高度なSCM実践方法(ベストプラクティス)をご紹介します。 「道具は、それを使う人によって効果が変わる」とよく言われます。我々は、ソフトウェア構成管理(SCM)ツールの提供者、あるいはソフトウェア会社に対 するコンサルタントとして、SCMのベストプラクティスについての適切なアドバイスをしばしば求められます。すなわち、「どのようにSCMソフトウェアを 展開すれば最大の利益を得られるか」という内容のアドバイスです。このような要請に対し
CSSと言うのはデザイナー向けでありながら、技術者側でも色々触れることがあって管理が煩雑化しやすい。ふと見てみたら同じ定義が上と下、二つに分かれていたなんて事はないだろうか。 また、ライブラリの一つとしてCSSが使われていると、管理対象のファイルが複数になったりする。これを統合してしまうのがこのソフトウェアだ。 今回紹介するオープンソース・ソフトウェアはcssmerge、名称の通りCSSをマージするソフトウェアだ。 cssmergeはPerlで作られており、コンソールベースで動作する。そのため、デザイナーの方にとっては扱い勝手が悪いかも知れない。引数として、CSSファイルを指定すればいいだけだ。 結果はマージされたCSSの内容が出力される。それをファイルに書き込めば、マージされたCSSファイルが出来上がる。各マージ内容にはどちらのCSSから取ってきた情報なのかも書き込まれるので理解しやすい
Railsは使っている内に、もはやRails以外でプログラムをしたくなくなる位の魅力がある。MVCの仕組みといい、O/Rマッピングといい、Migrationといい…そこかしこに魅力が溢れている。 そんなRailsがさらに魅力的になるライブラリがこれだ。Rubyの壁をこえ、JavaScript上でDB操作が可能になる。 今回紹介するオープンソース・ソフトウェアはJester、RESTによるDB操作を行うJavaScriptライブラリだ。 単純に言うと、JesterはXMLベースでWebサーバにリクエストを行う。その結果をXMLベースで受け取り、JavaScriptのクラスにしてくれる。操作はRESTで行われ、データ取得系はGET、作成処理はPOST、更新処理がPUT、削除処理がDELETEとなっている。 操作だけを考えると、Railsに限ったものではない。他の言語でもインタフェースを用意すれ
Web開発の現場において、データの並べ替え機能の要望は良く出る話だ。開発がある程度終わった段階で言われたりするとショックを受ける事もある。検索条件をパラメータで引き継いで、ページ番号も…なんて考えただけでも嫌になるだろう。 そんな経験のある、またはこれから経験するであろう方にお勧めのソフトウェアがある。これさえ使えばソート処理は怖くない。 今回紹介するオープンソース・ソフトウェアはTable Sorter、JavaScriptのみで実現するソートライブラリだ。 この手のライブラリはこれまでいくつかあったが、iframeを使ったり、表示に特定の手法が必要だったりと、そのままでは使いづらいものが多かった。Table Sorterはそれらの完成版ともいえるかも知れない。 何せ、読み込むのはJavaScriptファイル一つだけ、さらに普通のテーブルタグに対して、ヘッダ部分はtheadタグとthタグ
※ 画面は公式サイトのサンプルより Webサービスでは色々な情報を入力する。会員登録の類は良くあるものだろう。丹念に入力し、送信ボタンを押してしばらく待つと、入力エラーの文字列。これではやる気がなくなってしまう。 JavaScriptでチェックできれば、その場ですぐにエラー判定ができ、分かりやすい。しかし、入力するパターンは様々にある。必須チェック以外、たとえば入力パターン等に対応しようと思うと開発は大変だ。そこでこれの出番だ。 今回紹介するオープンソース・ソフトウェアはfValidator、入力チェックを行うJavaScriptライブラリだ。 fValidatorは必須チェックに加え、パターン入力にも対応させることができる。たとえば、YYYY/MM/DD等の入力のみを可能にする事で、Microsoft Accessの入力フォームのように入力形式を強制できる。メールアドレスやURLのような
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く