Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Programming

第4回 生成に関するパターン Prototype

Design Patterns 第4回 生成に関するパターン Prototype 前回のリンク 第1回 生成に関するパターン Builder - Gobble up pudding第2回 生成に関するパターン Factory - Gobble up pudding第3回 生成に関するパターン Abstract Factory - Gobble up pudding …

第3回 生成に関するパターン Abstract Factory

Design Patterns 第3回 生成に関するパターン Abstract Factory 前回のリンク 第1回 生成に関するパターン Builder - Gobble up pudding第2回 生成に関するパターン Factory - Gobble up pudding 生成に関するパターン Abstract Factory Abstract Factoryパ…

第2回 生成に関するパターン Factory

Design Patterns 第2回 生成に関するパターン Factory 前回のリンク 第1回 生成に関するパターン Builder - Gobble up pudding 生成に関するパターン Factory 単一の派生クラス群からインスタンスを生成するユーティリティクラス ファクトリーデザインパター…

第1回 生成に関するパターン Builder

Design Patterns 第1回 生成に関するパターン Builderデザインパターンの本を買いましたが、 コードが断片化して書かれているためか理解できず……。 そんなとき、海外のサイトでいいサンプルを見つけたので、 翻訳して、ソースコードをちょっと変えて載せてお…

Javaのファイル読込みの定型パターンは?

Javaを使い始めて日が浅い僕ですが、Javaのファイル読込みのエラー処理の仕方ってサイトを見るとみんな微妙に違うんですよね。 ぼくはこうするのがいいんじゃない?と思ってるんですが、世間のJavanese(Javaを使う人)はどうしてるんでしょ。ちなみにJavaづか…

C++の名前空間と前方宣言について

最初にざっくり説明すると、C++の名前空間はC#にある名前空間と同じ概念です。Javaでいうとpackageに近い概念です。 前方宣言(forward declaration)はC++特有のものだとおもわれます。 前方宣言について あるクラスで包含(コンポジション: Composition)をし…

STL入門 第3回 ~list編~

過去のSTLの記事はこちら↓STL入門 第1回 ~algorithm編~ - Gobble up puddingSTL入門 第2回 ~vector編~ - Gobble up pudding入門記事というよりただの自分の勉強記録になり下がってるのは仕様です。listはSTLコンテナでvectorに似ています。シーケンシャ…

STL入門 第2回 ~vector編~

第1回目はこちら↓STL入門 第1回 ~algorithm編~ - Gobble up puddingってかこっちのほうが第1回っぽいのは気にしないでください。STLにはコンテナというテンプレートクラスでできているオブジェクトの入れ物があります。 大きく分けて、シーケンスコンテナ(…

プログラムからBitmap画像を扱う(VC++) 1回目

今回使う画像です。使う画像は背景をキャプチャして切り取ってビットマップ(Bitmap)として保存したものです。ここからDLしたものを使わせていただきました。 デスクトップの背景 - Microsoft Windows 何回かに分けてビットマップ画像を扱う特集をやろうと思…

TopCoderはじめてみました SRM516 Div2 Easy NetworkXZeroOne

TopCoderっていう競技プログラミング的なものがあるんですが、 僕はアルゴリズムってか考える力が少し弱いと思ったので、気が向いたら今後もやろうと思います。 競技プログラミングと聞くとすごい敷居が高いように感じられますが(もちろん上級向けの問題は…

C#で日本語ソースコードを避ける方法 ~メニュー&データセット/データテーブル~

備忘録を兼ねて書きます。C#でFormを日本語で作っていると、 C#の自動生成コードがそのままで日本語になってしまうので、 それらを使う側のコードも日本語を使うことになり、 実害はないんだけれどもこれは精神衛生上よろしくない… なんて思いの方は多いかと…

C++11が便利すぎる 正規表現 ~regex編~

C++11になってから複雑怪奇さをより増した一方で、 実はめちゃくちゃ使いやすく便利になっていることに最近気づき始めました。 ここで紹介するコードはC++11に対応しているものでないと実行できません。 Visual Studioだと2013以降です。 g++だと -std=c++11…

C/C++で行数を数えるときの注意とwcコマンド

C/C++を使っているとファイルを読んで、メモリ上にデータを格納したいときに メモリをどのくらい確保する必要があるか調べるのに行数を数えることが多いかと思います。 だいたいは以下の様なコードを書かれたことが多いのではないのでしょうか? 私はよほど…

STL入門 第1回 ~algorithm編~

C++使うなら最低限STLくらいは知らないといけないだろうということで勉強中です。 STLくらいっていうけど結構ここから険しい道の入口なんですけどね…。 他の言語に比べて気持ち悪いシンタックスが増えるし、 どういうわけか覚えにくい……なんでだろ。 そんな…

Javaからメールを送信 ~迷惑メール業者を駆逐してやる~

サブタイトルは冗談です。 本当にこの手法を使ってものすごい勢いでメールボムを作ると法律に抵触します。ある程度細かく説明していますが、一定の知識がない人にはできないと思われるため、 まぁ小学生みたいのには悪用されないだろうと思い、 書きます(凄…

Javaを使ってBOM付きUTF-8でハマる

Javaのサーバアプリにクライアント側からPOSTで文字列でXMLを送りつけたらXMLの解析時にパースエラーになって1時間ほどハマった時の話。 結論を先に言いますと、BOM付きのまま文字列としてサーバに送信してしまったのでJAXBでコケた。ということです。対策と…

Direct2DとWindows Imaging Component(WIC)で透過PNGを表示

Direct2Dを使ってPNG画像を表示するいい方法はないか模索していたところ、 Windows Imaging Component(WIC)というのを見つけましたが、しばらくこれどうやって使うの? 状態が続いており、いろんなサイトを読んでみるも挫折…… と思ったところ神!!!といえ…

デフォルトで用意されているプロジェクトのコード修正 Visual Studio

Win32 プロジェクトのInitInstance内のインデントがおかしい……。 どのバージョンで同様のことがおこっているかわかりませんが Visual Studio 2013では 新規作成でのウィザードからWin32 プロジェクトを作ると自動で作られるひな形の BOOL InitInstance(HINST…

可変長引数(va_list, va_start, va_arg, va_end)を扱ってみた。

他の人のソースコードをみて、va_listを使っているのがあって、そういえば、自分では使ったことがなかったなと思い、可変長引数を受けとって処理するva_list, va_start, va_arg, va_endを使ってみました。 おおまかな使い方は行かな感じ。 void hoge(const c…

いまさらながら Apache Struts 1.3.10 + Eclipse 環境構築

いまさらながらStrutsの開発環境を構築しよう!っていうお話です。 さて、どうしよう……。Javaといえばeclipseですね。そうですね。 別にメモ帳で書いてもいいんだけどさ。いや、やだ。 以下、とりあえず動かすのに最低限の記述を。とっかかりって大事ですよ…

MSXML 6.0を使ってみた。

Microsoft謹製のMSXML 6.0っていうXMLパーサを使ってみましたよ。 っていうかこれマジモンのCOMじゃないすか。かかわりたくない。COM…。 BSTRとかVARIANTとか出てくるのでびみょーな感じです。回避方法あるのかもしれないですが。調べようと思ったけど英語の…

DirectX(DirectX 9)とWindows SDKについて

Windows8(Windows7も含む)DirectXを使おうとしてちょっとあれれってなったので記事を書きます。 DirectXで開発するためにはDirectX SDKが別途必要です。当然ランタイムだけではダメです。 しかし、Windows7以降はWindows SDKと統合されているので、Visual St…

Win32++を使ってみた

毎回自分でWIN32APIのひな形だったり めちゃくちゃ薄いラッパー書くのめんどくさいですよね。 …WIN32APIのひな形だけならVC++が自動で作ってくれるけどもC言語の構造化プログラム丸出しで あぁ…って感じのしか作れないから……。 かといってATLやMFC使うまでも…

Visual Studio Tools for Git

Visual Studio 2013にアップグレードして、 お、なんだこりゃ?と目に留まったのが、 チームエクスプローラーにあった Visual Studio Tools for Git これは無料版のExpressにも2013から標準装備だそうな。 なんかGit使えないやつはタヒね!!みたいなあれで…

libpngライブラリを使ってみた。

2013/12/29日時点の記事です。 libpngをVisual C++ 2012で使ってみました。 途中でCygwinを使って作業した関係で/と\の表記がぐちゃぐちゃになっていますが許してください。 libpng使い方 For Visual Studio 2012(VC++) 必要なもの Visual Studio 2012(他バ…

PyYAMLでロード時にUnicodeオブジェクトを返す方法

Python2系の話です。Cygwin環境を前提としています。 PyYAMLというのを使ってYAML形式のファイルを取り込みます。 まずはインストール方法 インストール http://pyyaml.org/wiki/PyYAML のZIP Packageをダウンロードして $ python setup.py installでインス…

【言語別】平均的なHello world!プログラム

Hello world!を画面に出力するのに平均的なHello worldのプログラムを書いてみました。 コーディング規約はその言語でメジャーなものに合わせて行数を計測しています。 僕が使ったことのある言語だけ短い順に並べています。 つまり下に行けばいくほど開発効…

コピーコンストラクタ&代入演算子のオーバーロード復習

基本に立ち返ってC++の復習です。 個人的にあんまり使わない機能のコピーコンストラクタ&代入演算子の使い方。 独習C++のサンプルをちょこっと変えてコードを書いてみました。 これらの機能の使い時はメンバにポインタが含まれていて、 参照先が同じ値(アド…

HTMLぶっこぬき Python3x

Python3xで指定URLから情報を読込むスクリプトを書いてみました。 Python2xと全然違うので焦ります。情報源があまりないですね。 英語を苦なく読めればハッピーなんでしょうけど…。 でもでもPython公式のドキュメントはかなり充実していますよね。 いまPytho…

文字セット(文字エンコーディング)について

用語の定義 文字エンコーディング 文字セットで定義された数値をどのように符号化するかの ルールを決めたもので、UTF-8, Shift-JIS, EUC-JPなどが 文字エンコーディングといわれるものです。 まちがって僕はこの文字エンコーディングのことを文字コードと呼…

自動領域確保1次元配列クラスを作ってみた。

要は劣悪std::vectorみたいなクラスです。 なんかまずいコードが混じってる気がする。 特にset用のoparator()()がまずい気がする…。 長さの管理が投げやりな感じでダメダメっぽい。 vectorみたく倍々でallocしてったほうがいい気がします。 コピーコンストラ…

C++で2次元配列(文字列)の動的確保

前回のC言語C言語で2次元配列(文字列)の動的確保 - Gobble up puddingで2次元配列(文字列)の動的確保の続きです。 C++のnewによる前回説明したパターンと同じやり方です。 mallocの代わりにnewを使います。mallocを使う場合はC++ではキャストが必要になり…

C言語で2次元配列(文字列)の動的確保

C++版はこちら C++で2次元配列(文字列)の動的確保 - Gobble up pudding文字列(char型)を扱っているときに、2次元配列で動的確保したい時があります。 int型など文字でないものは1次元配列で代用できるのですが、 例えば、住所など複数レコード格納したい…

C/C++でファイル一覧を再帰的に取得する方法

C/C++でファイル一覧を指定したディレクトリから再帰的に取得するソースです。 WindowsとLinuxで共用できるように書いてます。 bool traverse(const char* filepath, const int maxdepth, int curdepth); が今回のファイル一覧を再帰的に取得する処理です。 …

マージソートの実装

作業記録的なものです。ひどいコードなので、ネットにさらすのもためらわれますが、 とりあえず、マージソートを自力で実装してみました。 誰が書いてもこの程度のアルゴリズムじゃ同じよーな実装になりますね(;'∀') VC++だと、templateを使ったときにinclus…