Programming

C/C++

C/C++プログラミング入門 – プログラミングで必要なもの

『C/C++プログラミング入門 – C/C++とは』ではC言語およびC++のプログラミング入門にあたってのそれぞれの概要を説明したが、この項目では実際にC言語およびC++でプログラミングをはじめるにあたって必要なツール類を説明したい。
C/C++

C/C++プログラミング入門 – C/C++とは

『Javaプログラミング入門 – Javaとは』とは別途、本記事からC及びC++プログラミング入門についても、行ってみたい。C及びC++はObjective-Cと並んで私が主に使っている言語の一つで、主に組み込み系のアプリやスマートフォン/...
HTML/Markdown

Markdown文書の書き方 (その1)

前回の記事では自分がMarkdownを使うようになってからのMarkdownの印象や簡単な説明を書いていたが、今回はMarkdown文書の書き方を説明してみたい。Markdownを覚えておけばWordPressなどで記事を書いたりする際や、...
C/C++

C++でgetter/setterをマクロで宣言・定義してしまう

ここではC++を使って開発を行っている方向けにsetterとgetterを簡単に記述するマクロを伝授したい。特にクラスでメンバー変数の値を取得したりセットしたりするような方にとってはかなり重宝するだろう。なお、この方法はcocos2d-xで...
C/C++

cocos2d-x環境構築(Win/Mac両対応)

2Dゲーム環境ではそれなりに使われているcocos2d-xであるが、これの大きな特徴は基本的に単一のソースコードで複数のプラットフォームに対応したアプリを開発できるという大きなメリットを持っている。使用する言語は基本的にはC++、あとはLu...
Android

Androidフィーチャーフォンは何のためにあるのか?

auから販売されたAQUOS K SHF31が鏑矢となって、auとドコモの二社がAndroidを搭載したフィーチャーフォンを発表するという事態となっている。いわゆる「ガラホ」と呼ばれるものである ((「ガラスマ」と混同しないように要注意。)...
C/C++

paizaオンラインハッカソン Vol.5に参加してみた (ミッションMINAMI)

paizaオンラインハッカソン Vol.5に参加してみた。今回は前回の記事『paizaオンラインハッカソン Vol.5に参加してみた』に続いて、ミッションMINAMIのコードを書いてみた。詳細については、これから述べたい。 ミッションMIN...
C/C++

paizaオンラインハッカソン Vol.5に参加してみた

せっかくなので、paizaオンラインハッカソン Vol.5に参加してみた。どう見ても某ラノベをパクったタイトルなのはさておき、今回はC++で書いてみた。私が実際に書いたコードと簡単な解説を以下に記述してみたい。
Opinion

基本的に1行80文字を意識する必要はない

今日でも往々にプログラムを書くときに1行は80文字以内にすべきかどうかが論争になっているが、個人的には今日のプログラムを書くにあたっては、基本的には1行は80文字以内になるようにする必要はないと考えている。というのも、1行は80文字以内とい...
Opinion

forループで変数名としてiがよく使われるのはどうしてか

プログラミングの学習書のみならず実際のソースコードでも往々にして変数名としてiやj, k, l, m, nがよく使われている。例えば以下のコードだ。 for (int i = 0; i < 10; i++) { printf("loop c...
C/C++

ラムダ計算を使う

関数(メソッド)として定義するような処理を、あたかも変数のように定義できたり、引数として渡したりできるような機能を使っているだろうか?C++11以降ではラムダ式が、最近のバージョンのObjective-C ((正確にはLLVM Clangで...
C/C++

ブーリアンを引数とする変数にポインタをそのまま渡してはいけない

これは当方が実際にやって気づいたことであるが、ブーリアンを引数とする関数にポインタをそのまま渡してしまうと意図せぬ動作になってしまう。特にポインタがNULLかどうかを判定して挙動を振り分けようとする際にはバグの原因となる。 例えば以下のよう...
IT/Computer

Windows版Java SE 8.0 update 20で致命バグ

数日前に米オラクルよりJava SE 8.0 update 20がリリースされたが、WindowsユーザーでJavaアプリで日本語などを使っている場合はアップデートすると致命的なバグを踏んでしまうため、絶対にアップデートしてはならない。 と...
Diary

極端に長いコードはなぜダメなのか

諸事情で実装ファイルだけで1ファイル10,000行近くにも達するような長いコードを触ったのだが、正直なところ触るのも躊躇うようなコードだった。業務の関係上、改修しなければならないのだが、通常はそれに達するまでに何らかの対策を取るのが好ましい...
C/C++

#defineを使うのは代替手段が無い場合のみに抑えたい

C言語及びその派生のC++、Objective-Cでよく使われているマクロとして、#defineがある。これは、特定の文字を別の文字に置き換えるというマクロで、C言語を中心に多重インクルードの防止や定数、インライン展開する関数などにマクロが...
Diary

しょうもない見落としが相当数バグの原因のような

試験的にプログラムを作った際にちゃんと動いたのを確認し、それを汎用性を高めるなどの改良版に差し替えたり、あるいは修正を加えたら今度はバグるという事態に遭遇した。その時の原因は本来一つだけのはずのタイマーが複数存在してそれが悪さをしていたから...
Diary

CocoaPodsとそれベースのSBJsonをインストールする

iOS及びOS Xでしばしばお世話になるSBJson Frameworkだが、いつの間にか4.x系となり、しかもこれまでとはうってかわってCocoaPodsというパッケージ管理システムベースとなっていた。 これまではソースコードをダウンロー...
Mac

iOSとOS Xはどちらかができればもう片方もそれほど難しくはないのか

iOSのアプリの開発とOS Xのアプリ開発のどちらか片方ができれば、GUI絡みの部分を除けばだいたいのことはもう片方でも比較的容易にアプリ開発ができるようになる。というのは、OS XではCocoa、iOSではタッチパネルに特化したCocoa...
Objective-C

SwiftとObjective-Cの書き方の違い(クラス・メソッド定義などを中心に)

iOS 8/OS X Yosemiteの発表およびそれに対応したXcode 6およびSwiftの発表により、OS X/iOSアプリの開発には従来のObjective-C/C/C++などに加えてSwiftが加わるようになった。さて、Swift...
iOS

今後のiOS/OS Xアプリ開発の方向性

一つ前の記事「新プログラミング言語「Swift」所感」では試験的にSwiftを触ったことによる当方の視点による所感を述べた。ここではそれをふまえて、今後のiOS/OS X向けのアプリ開発にあたっての今後の方向性はどうなるのかについて個人なり...