Gobble up pudding

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

MENU

2014-01-01から1年間の記事一覧

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

追記 (2018年7月3日) この記事はすさまじく古いです。 現在Windows環境でならAnaconda(+Jupyter notebook)を使うかPythonの標準パッケージマネージャーのpipを使うほうが賢明です。PytnonでnumpyとmatplotlibをWindows上で使う場合のメモです。 いや、全部書…

割り算を考えてみる

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

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

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

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

Direct2D + WIC + Windows APIでアナログ時計を作りました。 MSDNのサンプルとチュートリアルを見ながら、サンプルを改変してコードを書きました。 以前作成したアナログ時計 今回作成したアナログ時計(ポップアップウィンドウ使用) ずいぶんゴージャスにな…

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

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

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

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

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

Part1はこれ ものすごくありがたい情報をいただきました。 RVOについて(NRVOというのもある) これを無効化するオプションがありますよとのこと。 id:yohhoyさんのアドバイスが gccであれば-fno-elide-constructorsオプションを指定すると、 RVOが無効化さ…

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

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

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

前回の投稿に続いて今度はプログラムからはてなブログの一覧取得です。 今度はちょっと手を加えればできるので記事一覧を取得してみました。 なお、私はC#のAPIをあまり知らないのでGoogle大先生に聞いて コピペつぎはぎプログラミングになっています。 C#は…

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言語で単方向リストの実装 - Gobble up pudding この続きです。 この実装もArrayDequeやLinkedListが備えているメソッドを実装しきれてません…

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

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

スタック上に確保するクラスのインスタンス化のやり方について

スタック上に確保するクラスのインスタンス化の場合()丸カッコ有の場合エラーになるのはなんでなの?という話。 C++でRAII(Resource Acquisition Is Initialization)とかしようとしたときに スタック上にクラスをインスタンス化することがあって { HogeClass…

綺麗なおねえさんが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++でテトリス作りました。全ソースコードを載せていたわけではないので、いくつか質問があったのもありGitHubにすべてのソースコードを置きました。 なお、Windows APIのWndProc周りをクラス化しているので記事のと少しソースコードが変わって…

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の作成もしていますので、勉強になる…

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

前回書いたエントリーの 関数内で宣言した配列変数をreturnしてはいけない - Gobble up puddingの 具体的なサンプルってことで書いただけです。 こんなの暗号化じゃねーってはなしですが、まぁ許してください(´・ω・`) 家族に見られちゃまずいあんなファイル…

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

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の記事はこちら↓ 定義 namespace std { template < class Key, class T, class Compare = less<Key>, class Allocator = </key>…

STL入門 第4回 ~list編~ 2

過去のSTLの記事はこちら↓ JavaScriptを勉強してる私です。しかしCSSがちょっとわかってないことに気付いたグフフ。 ちくしょー、暗記系かよ~と嘆いております。 気を取り直して、C++のSTLのlist再びです。 今回はlist::splice()の紹介です。 次の形式があ…

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

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

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

Design Patterns 第4回 生成に関するパターン Prototype 前回のリンク 生成に関するパターン Prototype Prototypeパターンは生成されるオブジェクトの型が、新しいオブジェクトの複製として生成されるプロトタイプのインスタンスによって決定されるソフトウ…