日々の記録。

プログラミングのメモや感じた事などを記録。

プログラミング

Kent beckのテスト駆動開発を読んで

読んだ本 著者: Kent beck タイトル: テスト駆動開発 第2版 読んだ動機 色々なアジャイルの本(例えばアジャイルサムライやエクストリームプログラミング)で「自動テスト」が出てくるので、改めてKent beckの原典を読んでみようと思った。 TDDについての情…

コンピュータプログラミング小史とこれから

独断と偏見に基づく個人の考察でプログラミング小史と、現状のWebプログラミングについての不満と課題についてです。 長文なので先に言いたかったことを書くと 「Railsって、クライアントサイドも自由に扱えない限りDRYにはなり得ないよね」 ってことです。 …

その3 "Hello world!!"を表示してみよう!! 中編

その2 "Hello world!"を表示してみよう 前編 前回はHello worldを表示した画面を作成しましたが、今回は作成した画面を表示してみましょう。 今回やること AppDelegate.mのソースファイルの編集して画面を表示する AppDelegateって? 画面を表示するためには…

その2 "Hello world!"を表示してみよう 前編

その1 夏休みにMacでメトロノームアプリを作ってみよう!!へ戻る 今回は、画面を作成して"Hello world!!"という文字列を表示してみたいと思います。 まずは実行!! MetrnomeAppプロジェクトを作成すると、次のような画面が表示されます。 まずはとにかく実…

その1 夏休みにMacでメトロノームアプリを作ってみよう!! 

前口上 MacさえあればiOS(iPhone,iPad)のアプリケーションを無料で、開発し、シミュレータ上で動かす事ができます(iPhone/iPad本体に開発したアプリケーションをインストールするためには、有料の開発者用アカウントを作成する必要があります。ここではシミ…

iOS CoreAudioを使う上で参考になったサイト

iPadでバーチャルピアノ的なものを(今更ながら)試作しようとしたら、「CoreAudioのドキュメントは分かりづらい、取っつきづらい」など、散々な目に遭ったので、参考になったサイトをメモしておきます。 前口上 開発当初は、サウンドフォントのような音源が…

rails modelの属性設定メソッドをオーバーライドしてみる

モデルのある属性を変更した際に、別の属性も併せて変更したかったので、モデルの属性を設定するメソッドを定義してみました。 例 やりたいこと。 Todoクラスに、0〜100の範囲の進捗状況という属性があって、0からの変化時に開始日を設定、 100に変化したと…

iOS アプリがバックグランドに遷移する際の処理方法

について勉強中です。 ドキュメントより学んだ2つの方法と、1つのアイディアを紹介します。 方法1 UIApplicationDelegateのメソッドで処理する メリット: 一カ所で処理できる。 デメリット: 処理対象のオブジェクトをUIApplicationDelegateが知る必要にな…

iOS7 UITableViewCellAccessoryDetailDisclosureButton

iOS7では、なぜかUITableViewのUITableViewCellAccessoryDetailDisclosureButtonの表示が変更されています。 iOS6までは、次のよう>がボタンで表示されます。 一方iOS7では、次のようにiボタンと>が両方表示されます。 iOS7から新しくUITableViewCellAccesso…

C#のusingが、Java7でtry-with-resource statementとして実現

C#には、ファイルやDBのリソースのクローズを必ず行うためにusingステートメントという便利な機能があります。 void foo() { using (TextWriter w = File.CreateText("test.txt")) { w.WriteLine("ごにょごにょ"); } } 上記の例では、TextWriterオブジェク…

C++講座 その5 サイズとバイトオーダー

サイズ 32bit CPUでWindows系の環境では各型は次のようなサイズになっている。 型名 サイズ(byte) char 1 short 2 int 4 long 4 float 4?(後日確認) double 8 「一般的な」としたのは、これらのサイズはCPUやOSの環境に依存するため。64bit環境では上…

Ruby blockが与えられているか確認する

def aaa yield if block_given? end

Ruby 定義されているメソッド一覧の取得

Object.methods # クラスメソッド(publicのみ) Object.private_methods # クラスメソッド(privateのみ) Object.instance_methods # インスタンスメソッド(publicのみ) Object.private_instance_methods # インスタンスメソッド(privateのみ) Class.metho…

C++講座 その4 整数型と浮動小数点

整数型 C言語と同様にintが整数型.よく利用するshortやlongという型はshort int, long intの省略形。 整数リテラル 3 -5 12352 0x53 といった値が整数リテラル。上記の値はintとして扱われる。 サイズを意識しなくて良い場合、整数値にはint型を利用した方が…

C++講座 その3 文字型

char型はcharacter型の略なので、キャラ型と読むのが正解だと思う。たまに50歳代のおっさんとかがチャーとか言っているけど、ちょっと悲しくなってしまう。 以上は余談。 char型は1文字を格納する型。一般的にサイズは1byte。主にASCIIを格納するために利…

ruby Stringにインデント用メソッドを追加

コード自動生成スクリプトを書いていてほしくなったので作成してみた。ただし文字列の追加にindentメソッドを利用する必要があるのでちょっと気持ち悪い(できれば<<とかで追加したい)。しかもこのメソッド、作成しただけでまだ未使用なので使い勝手も未知…

C++講座 その2 論理型 bool型

論理型(bool, boolean型)はtrue(真)かfalse(偽)を表現する。 例えばC言語では、 if ( 3 ) { /* 必ずこっちの処理が行われる */ } else { /* */ } のように、0以外が真で0が偽となっていた。if文の結果が真の場合、if文ブロックの処理が行われ、偽の場合else…

C++講座 その1

最近、会社の若手に対してC++の講義を行っていて、今後も再利用できるようにここに残しておきたいと思う。 講義書は、個人所有の「プログラミング言語C++第3版」。アマゾンの評価では翻訳は悪いらしいけど、C++の原典なのでこれを利用する。 この講義の目的…

rails モデルの属性名を変更する

Userクラスのpasswordをpassword_digestに変更したい 修正前のUserクラス rails g scaffold user name:string password:string このpasswordをpassword_digestに変更する 修正方法 1. 修正用のmigrationを生成する rails g migration RenamePasswordToUser p…

rails とあるモデルにpasswordを追加する例

0. 前提 動作環境 os x: 10.8.4 ruby: 1.9.3 rails: 3.2.13 1. とあるモデルとしてuserを生成する ポイントは、password_digestを生成すること rails g scaffold user name:string, password_digest:string 2. Userクラスの編集 ポイントは、 1. has_secure_…

ruby で 英数字記号を用いたランダムパスワードの生成 2

以前作成したパスワード生成スクリプトに、記号の有無、種類を引数で指定できるようにしたので掲載 # coding: utf-8 #英数記号を含むパスワードを生成する. #記号を利用しない場合は、symbols_strにnilか""を設定する。 def password_gen(length=8, symbols_…

C++が破綻しているなぁと感じる一例

const intは定数として利用できるけど、容易にそれを破壊(?)できてしまうところとか。 int main() { const int x = 10; int* p = const_cast<int*>(&x); *p = 1; int y[x]; // x は 10となる。 (osx gccとwin vc2010で確認) cout << x << "," << *p << endl; //</int*>…

cQueryという C/C++言語の構文解析木をjQuery風にアクセスするライブラリがあったら

ツールを作るときに楽になるかもしれない? 既に存在するのかもしれない? 例 user.hにある構造体に対して「yaml形式の文字列を作成する関数」を作成してみる。 コードイメージ.(ruby) cQuery('user.h').structs.each do | struct_obj | puts struct_obj.gen…

yaml←→iniファイル自動生成、クラス自動生成

yamlを利用したINIファイル用ソースの自動コード生成の例 久しぶりにC++を使う必要性がありそうなため、 rails等にかぶれて作成中のもの。 その1 yaml→iniファイル, ini→yamlファイル code_gen yaml2ini < test.yml > test.ini code_gen ini2yaml < test.ini…

ruby で 英数字記号を用いたランダムパスワードの生成

英数字記号が必ず入るランダムパスワードの生成 def password_gen(length=8) numbers = [*0..9] alpha_bigs = [*'A'..'Z'] alpha_smalls = [*'a'..'z'] symbols = "! # $ % & @ + * ?".split(/\s+/) codes = [numbers, alpha_bigs, alpha_smalls, symbols].s…

iOSのアプリによくある設定用のテーブルをデータ化する その2

iOSのアプリによくある設定用のテーブルをデータ化する の続きです。 iPhoneで良く見かける、こんな感じの画面をデータ化してみた。 最終的には、リソースファイルなどで定義できるようにすることが目標だけど、現時点では次の ように、ソースコード上でデー…

iOSのアプリによくある設定用のテーブルをデータ化する

設定用の単調なテーブルビューを作っていると、「データ化したいなぁ」という欲求がわいてくる。 とりあえずjson形式でデータを考えてみた。 [ { "name":"playmode" "type": { "name":"select" "values":["normal", "album", "part"] } "value":"normal" }, …

デバッガを多用し、ログを利用しない開発者

エラーログ、状態変化ログ、操作ログ、必要に応じて出力すること。 最近、他社が開発したアプリケーションと、自社アプリケーションの接続試験を行った。その試験では問題があると、他社の担当者がすぐVS2010を立ち上げ(開発はC#だった)、デバッガにより原…