読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

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

MENU

std::function, std::bindは便利

C++でstd::function, std::bindを使ってみました。あんまりJavaScriptは詳しくないですが、 例えばJavaScriptではこんなことができます。 <html> <head> <script type="text/javascript"> </head></html>

C言語でのヘッダの書き方

C

よくよく考えてみると真面目にC言語でヘッダの書き方を解説している 書籍ってないなと感じました。 かなり重要な部分なのに、ちゃんと知らない人が多い(自分も含めて)ので、 メモ書きとして残しておきます。 ただし、自分でCを書くことはもうないと思いま…

C/C++で配列の長さの求め方

C++ C

C/C++で配列の長さの求め方です。 超基本中の基本なのですが、しばらくC/C++の配列を使っていないと アレレってことになってしまいます。 今日はそれでハマりました。 sizeofを使って配列の長さ(要素数)を求めたはずが、 なんでか落ちる…バッファオーバー…

Excelに使われているOpenXMLを手書きで書いてみる

Excel 2007以降で採用されたOpenXML形式についての記事です。 Excelは2007からバイナリ形式からXML形式に内部的に変わっていて、 XMLを記述すればエクセルでいい感じに表示できますよという内容です。 今回は紹介のため複雑なサンプルは書かず、単純なサンプ…

Apache HTTP ServerとApache Tomcatの連携する意味

Apache TomcatをつかっているとなぜだかApache HTTP Serverと併用しますよね。 恥ずかしながら、僕はここをなんとなく理解したようなしていないようなまま過ごしていました。 おかしいなと少し思いながら。 だってTomcatはWebサーバの機能を持っているから A…

ぷよぷよの問題(人材募集企画 2011年版 問題2)をC++解いてみました。

だいぶ前の問題なのですが、たまたま記事を見かけたので 書いてみました。 簡単に問題を説明すると、 あるぷよぷよの入力が与えられていてそれが19連鎖するそうです。 その連鎖の様子を出力しなさいという問題です。2時間以上かかると採用は難しいでしょうと…

PythonでNumpyとMatplotlibを利用する(Windows)

PytnonでnumpyとmatplotlibをWindows上で使う場合のメモです。 いや、全部書いちゃっているからむしろ Windows上でPythonを使うメモのほうが適切かもしれません。Visual Studioを利用してPythonを使っている方など参考にしていただければ。 Windows 64bitの…

割り算を考えてみる

アセンブラの勉強をしていて、CPUの話に興味をもって突っ込んだら、 割り算って苦労してるのね…ってことがわかりました。 なんかで聞いた話ではゲームボーイとかは割り算が使えなかったとか。 割り算にもいろいろな方式があって、いまSRT法っていうのが主流…

C++ オペレーターオーバーロード(演算子の多重定義) まとめ

C++で演算子の多重定義は使用頻度がそんなに多くはないものですが、 いざ書く時、あれれ、戻り値は参照にしていいの?とか 引数はconstつけるべきなの?参照渡しでいいの?とか いろいろ悩んでしまってもうこの際丸暗記してしまおう! っていうような作戦に…

Direct2D + WIC + Windows APIでアナログ時計

Direct2D + WIC + Windows APIでアナログ時計を作りました。 MSDNのサンプルとチュートリアルを見ながら、サンプルを改変してコードを書きました。 2014/11/20 更新 unordered_map使用時のバグ修正(実はmapのままでもまずい部分があったけど……)。 あとは無駄…

C++でstd::stringをどう返すべきか Part3

もはやタイトルから脱線しかかってきました。 C++11がらみのお話です。ただしRVO/NRVOはC++03でも使える…というか コンパイラ依存です。 とはいってもよほどマイナーかとても古いものを使っていなければ サポートされているというところでしょうか。 少なく…

JavaのWebアプリでのマルチスレッドについて

最初にお断りしますが、Struts 1.x系限定のお話です。 JavaでWebアプリでマルチスレッドやらスレッドセーフなどという言葉を初めて聞いたとき、 やべぇ、JavaのWebアプリって難しそう。 スレッドセーフを常に意識してコーディングして 必要なところはクリテ…

C++でstd::stringをどう返すべきか Part2

id:yohhoyさんから情報をいただいてPart2を書きます。 Part1はこれC++でstd::stringをどう返すべきか Part1 - Gobble up puddingものすごくありがたい情報をいただきました。 RVOについて(NRVOというのもある) これを無効化するオプションがありますよとの…

C++でstd::stringをどう返すべきか Part1

C++では関数からstd::stringを皆はどうやって返してんだろうっていう疑問がわきました。 フツーに考えてstd::stringをそのまま値で返す一択なのですが、 そこで問題になるのがコピーコスト…… っていうかそもそもコピーしてるの?とかいろいろ疑問が沸くわけ…

C#ではてなブログAtomPubを使って記事一覧を取得してみた

前回の投稿に続いて今度はプログラムからはてなブログの一覧取得です。C#ではてなブログAtomPubを使って記事を投稿してみた - Gobble up pudding今度はちょっと手を加えればできるので記事一覧を取得してみました。 なお、私はC#のAPIをあまり知らないのでGo…

C#ではてなブログAtomPubを使って記事を投稿してみた

プログラムからはてなブログの投稿をやってみました。言語は思い付きでC#を選びました。 昨日なかば寝ながら書いていておかしなところがたくさんあったので修正しました。 C#のLINQ to XMLなるもの、嘘でした。単なる普通のDOMでした…を使って はてなブログA…

bashの実行権を落としてCentOSが起動せず四苦八苦して復旧した記録

このところHOTな話題のbashの脆弱性で小手先の対策で 1. 全ユーザのデフォルトのシェルをtcshに 2. /bin/bashの実行権をなくすという方法を暫定的に採用しようことで 検証していたらCentOSが起動しなくなって泣きそうになった記録をダラダラと書きます。断片…

C++らしい入出力、数値・文字列相互変換まとめ

まとめるつもりはなかったのですが、 たまたま目にとまったメールで問題が書いてあって おお、なんかサンプルを書くには良さそうと思い、 CodeZineのメールマガジンに書いてあったサンプルを利用させていただきます。 よくあるTopCoderのようなあのレベルの…

CSVでダブルクォートで囲まれた場合のパース方法(C言語)

CSVでダブルクォートで囲まれた場合のパースって なんかうまい書き方あるんだろうかと、 一応自分でも考えながら調べてみると、 あるんですね。なかなかきれいな書き方が。 まぁ、こんなのは普通のプログラミング言語使っている場合は ライブラリ頼りで自分…

双方向リストの実装

やっぱりアルゴリズムとデータ構造の知識って重要だよねってことで プログラミングの基礎を勉強しなおしてます。 以前C言語でものすごく中途半端な単方向リストの実装を書きました。C言語で片方向リストの実装 - Gobble up puddingC言語で片方向リストの実装…

Visual Studio (VC++)でフィルタ?(フォルダ?)が消えた!!時の対処法

実をいうと、何も消えていなくて、単に表示のされ方の問題です。『ゲームプログラマになる前に覚えておきたい技術』という本付属のソースコードをVisual Studio 2013用に再コンパイルして、ソースを眺めていたら、あれれ?フォルダ構成と同じようにソースが…

スタック上に確保するクラスのインスタンス化の場合()丸カッコ有の場合エラーになるのはなんでなの?

C++でRAII(Resource Acquisition Is Initialization)とかしようとしたときに スタック上にクラスをインスタンス化することがあって { HogeClass hogeClass; hoge(); fuga(); } // ここで自動的にデストラクト とかやってかと思うんですけど、 他にも、 例が…

綺麗なおねえさんがLinuxを教えてくれるよ!

胸キュンおねーさまを発見したので紹介するよ!!!! 最初のはfindコマンドについてセクシーボイスでやさしく教えてくれてます(*´Д`)!Linux Tutorial: The Power of the Linux Find ... きらきらに目がいったり、そういうんじゃなくて○っぱいのほうに目がいっ…

string型にファイルを一気読みできるstreambuf_iteratorのおおまかな仕組み

以前の記事の C++でファイル読込み パターン別まとめ - Gobble up pudding で最後に書いた例のstreambuf_iteratorの仕組みですが、 おおまかにどうなっているのかわかりました! C++標準ライブラリのiteratorを継承して、 内部でファイルポインタを扱ってい…

クラス設計が難しいと改めて思い知る

クラス設計は難しい... 前回のエントリーで書いたテトリス Windows APIとC++でテトリス - Gobble up pudding のプログラムを書いて、オブジェクト指向というよりクラス設計は難しい、 本当に難しい!!ということを痛感しました。 絶対にコレ!っていう定石…

Windows APIとC++でテトリス

Windows APIとC++でテトリス作りました。 GDIでも結構いろいろ作れますね。 テトリスのブロックに画像ファイルは使っていません。 プログラムにBitmapとして描画させています。 C++でのマルチスレッドの扱い等を勉強したくて書きました。 全面的に下記サイト…

Visual C++でのDLLの一般的な作成方法(暗黙的リンク)

2016年02月07日更新 https://msdn.microsoft.com/library/81h27t8c(v=vs.110).aspx によるとメンバーに対してdllexportはだめらしいので追記。 また、main側サンプルコードが中途半端だったので、C++03以前で書きました。古い環境で開発せざるを得ないことも…

WIN32APIだけでノベルゲームエンジン

WIN32APIとC言語だけでここまでのものが作れるなんてってことで、今回はプログラムの紹介記事です。 なにかとここのプログラムでゲームプログラミングを勉強させていただいています。 WindowsでのめんどくさいVC++でのDLLの作成もしていますので、勉強になる…

ハイパー簡易暗号化プログラム

前回書いたエントリーの オーバーフローするとえらいこっちゃな話 - Gobble up puddingとか 関数内で宣言した配列変数をreturnしてはいけない - Gobble up puddingの 具体的なサンプルってことで書いただけです。 こんなの暗号化じゃねーってはなしですが、…

関数内で宣言した配列変数をreturnしてはいけない

C

C言語では関数内で宣言した配列変数を素直にreturnする方法がありません。 知らないとこんなコードを書きがちですが、 この書き方では関数内で積まれたスタックがリターン時に解放されてしまうので、 返したアドレスが無効になってしまって、たまたま動くこ…

SQL ServerにNorthwindとPubsサンプルデータベースを入れる。

SQL Server 2012 ExpressにNorthwindとPubsのサンプルデータベースを導入したときのメモ。 今は最新版はSQL Server 2014ですが、そちらでも可能だと思われます。 余談すぎますが、僕が初めて触ったメジャーなデータベースはSQL Serverでした。 SQL Server Ma…

CSS入門におすすめのサイト w3schools.com

CSS

w3schools.com CSS Tutorial CSSのオヌヌメサイトの紹介です。JavaScriptを始めようと思った僕がいきなりつまずきました。そう、CSSがわからない。どういうルールなのコレ?って感じで(´・ω・`)ショボーンです。 別にJavaScript使わなくてもブログを書いてい…

STL入門 第5回 ~map編~

今日はmapです。巷ではdictionaryとか言ったり、連想配列とか言われてるあれです。巷ってどこだー。くしゃみが止まりません(;´・ω・)過去のSTLの記事はこちら↓STL入門 第1回 ~algorithm編~ - Gobble up puddingSTL入門 第2回 ~vector編~ - Gobble up puddi…

STL入門 第4回 ~list編~ 2

過去のSTLの記事はこちら↓STL入門 第1回 ~algorithm編~ - Gobble up puddingSTL入門 第2回 ~vector編~ - Gobble up puddingSTL入門 第3回 ~list編~ - Gobble up puddingJavaScriptを勉強してる私です。しかしCSSがちょっとわかってないことに気付いた…

「char型へのポインタの配列」と「char型の配列へのポインタ」について

C言語で混乱しやすいのはポインタの表記ですね。 次の2つを見てみましょう。 char *foo[10]; char (*bar)[10]; このとき、fooとbarは意味が違います。 どちらかが 「char型へのポインタの要素数10の配列」 でもう一方が 「要素数10のchar型の配列へのポイン…

第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パ…

Windows上でLinuxを使おう CentOS 6.5 on VMware Player

たまたまここを見てしまった人。興味ないよという人! これをやればあなたの好きなMacのOSX的なOS(Pear OS ナシOS)も 気軽にインストールできますよ! ただし今回はRHELクローンのCentOSですが。 超細かく解説していきますので、これであなたもLinuxユーザに…

第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くらいっていうけど結構ここから険しい道の入口なんですけどね…。 他の言語に比べて気持ち悪いシンタックスが増えるし、 どういうわけか覚えにくい……なんでだろ。 そんな…