2013年5月31日金曜日

WPFでTextBoxやRichTextBoxにファイルをドラッグ&ドロップするには

WPFのTextBoxってのは非常に優秀で何もしなくてもテキストのドラッグ&ドロップに対応しているんですね。解除用のフラグは見当たりませんでしたけど。。。
おかげでファイルのドラッグ&ドロップを実装する場合、テキストのドラッグ&ドロップイベント処理が邪魔をしてしまうので少しこつが必要です。

[コツ]

  1. DragEventArgs.Handled=false;でテキストのドラッグ&ドロップイベントハンドラーを機能しなくする。

このエントリーをはてなブックマークに追加

2013年5月3日金曜日

ARCを使わないObjective-Cのメモリ管理はこうすればリークも不正落ちも怖くない

Objective-Cはガベージコレクションを搭載していないので、メモリ管理が結構たいへんですがルールを決めてしまえばそんなに大変ではなくなるので楽してメモリ管理する方法をまとめてみました。

[前提条件]

  1. xcode4.5以上を使用する。

[ポイント概要]

  1. プロパティ記述時の属性(retain assign copy)を使い分ける
  2. alloc時にはautoreleaseを記述する
  3. 自クラス内のインスタンス変数へアクセスする時はプロパティを使用する
  4. retain、copy属性のプロパティはdealloc内でnilを代入する

[ポイント詳細]


ポイント1:プロパティの記述時の属性(retain assign copy)を使い分ける

ヘッダーファイルのクラス宣言内に記述するプロパティの属性を正しく使い分けます。

  1. object型はretainを指定する
  2. NSString型はcopyを指定する
  3. プリミティブ型はassignを指定する
  4. delegateはassignを指定する

※Objective-Cで使用できる主なプリミティブ型
short (signed short)
unsigned short
int (signed int)
unsigned int
float
double
char
BOOL

ポイント2:alloc時にはautoreleaseを記述する

オブジェクトをallocしたら必ずautoreleaseを記述します。


ポイント3:自クラス内のインスタンス変数へアクセスする時はプロパティを使用する

プロパティを使用しない場合、メモリリークや解放済みのオブジェクトへのアクセスが発生する可能性が高くなります。


ポイント4:retain、copy属性のプロパティはdeallocないでnilを代入する

retain、copy属性が指定されたプロパティはdeallocでnilを代入しないとメモリリークが発生してしまいます。


◎autoreleaseを記述しない方がいい場合

例外としてループ(for、while)内でオブジェクトを生成する場合はメモリ節約の観点からautoreleaseを使用しない方が良いでしょう。

このエントリーをはてなブックマークに追加

2013年5月1日水曜日

ラズベリーパイにGitをインストールする方法俺メモ

ラズベリーパイにGitをインストールする方法をメモっとく

[手順概要]

  1. piでログインする(sudoの権限があるユーザー)
  2. gettextをインストールする(Gitインストールにmsgfmtコマンドが必要なので)
  3. Gitをインストールする

[手順詳細]

1.piでログインする

 全ユーザーでGitを使用したいので「/usr/lib/git」へインストールします。
 その為にsudo権限のあるユーザーでログインする必要があります。

2.gettextをインストールする

   2.1.次のコマンドを順次実行すればok
      $cd /tmp/
      $wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.2.tar.gz
      $tar zxvf gettext-0.18.2.tar.gz 
      $./configure --prefix=/usr --disable-csharp
      $make
      $sudo make install
      ※gettext-0.18.2.tar.gzはインストールするバージョンによって変わります

3.Gitをインストールする

   3.1.次のコマンドを順次実行すればok
      $cd /tmp/
      $wget http://git-core.googlecode.com/files/git-1.8.2.1.tar.gz
      $tar xvfz git-1.8.2.1.tar.gz
      $cd git-1.8.2.1/
      $sudo mkdir -p /usr/lib/git
      $sudo ./configure --prefix=/usr/lib/git
      $sudo make all install
      $cd /usr/bin/
      $sudo ln -s /usr/lib/git/bin/git ./git
      ※git-1.8.2.1.tar.gzはインストールするバージョンによって変わります

このエントリーをはてなブックマークに追加

2013年4月26日金曜日

ラズベリーパイにLinux OSをインストールするのは以外と簡単

ラズベリーパイ本体のスクリーンショット

というわけでラズベリーパイを3つ購入したのでさっそく一台にLinuxをインストールしてみました。

[ラズベリーパイとは]

ズベリーパイは一言でいうなら名詞サイズのパソコンです。
ARMというCPUを搭載していて省電力で動作し発熱もほとんどないためCPUファン等は必要ありません。
ARMはスマホ、ニンテンドーDS、iPod等さまざまな携帯電子機器に搭載されています。
OSはLinux、アンドロイド、firefox OS、等いろいろインストール出来るようですが、CPUが非力であるためLinuxをインストールするのが一般的のようです。

[前提条件]

  1. MACを使用します。
  2. Linuxは「Raspbian」を使用します。

[用意するもの]

  1. ラズベリーパイ本体
  2. 電源用のマイクロUSB(ミニUSBじゃないYO)
  3. USBマウス(無くてもなんとかなります)
  4. USBキーボード
  5. HCMIかコンポジットビデオ端子(黄色いやつ)に接続出来るモニタ、テレビ等とケーブル
  6. SDカード(4G以上)
  7. SDカードリーダー

[インストール手順概要]

  1. Raspbianをダウンロードする
  2. SDにRspbianをコピーする
  3. ラズベリーパイにSDを差して起動する
  4. 初期設定

[インストール手順詳細]


1.Raspbianをダウンロードする

 1.1.ここからwheezy-raspbian.zipをダウンロードします。
wheezy-raspbian.zipダウンロードサイトのスクリーンショット

 1.2.ダウンロードしたzipファイルを解凍します。
   解凍したらxxxx-xx-xx-wheezy-raspbian.imgみたいなファイルがあるはずです。

2.SDにRspbianをコピーする

2.1.SDカードリーダーにSDを差す
 2.2.ターミナルを起動してxxxx-xx-xx-wheezy-raspbian.imgがあるフォルダへ移動する。
  $cd /Users/tanaka/Downloads 

 2.3.容量からSDカードのidを特定する
  $diskutil list
  コマンドで接続されているデバイスの情報が表示されるので、容量からSDカードを特定する。

 2.4.SDをアンマウント
  $diskutil unmountdisk /dev/disk1

 2.5.OSをSDに書き込む
  $sudo dd if=2013-02-09-wheezy-raspbian.img of=/dev/disk1 bs=1m

 2.6.しばし待たれよ

ラズベリーパイにRspbianをインストールする一連のコマンドを実行したスクリーンショット

3.ラズベリーパイにSDを差して起動する

 3.1.ラズベリーパイの裏面にSDカードスロットがあるのでそこに差します。
 3.2.電源ボタンはありません、マイクロUSBを接続すれば即起動します。
 3.3.初回起動時はconfig画面が起動します。
  configはここを見ながら設定しました。下記は設定した方が良さげです。
  • expand_rootfs
  • configure_keyboard
  • change_timezone
  • ssh
 3.4.再起動
  config画面で「TAB」を押して「FINISH」を選択してエンターキーを押すと再起動するか聞かれるので「YES」を選択してエンターキーを押します。
  再起動が完了したら下記アカウントでログインできます。
  • login:pi
  • password:raspberry



このエントリーをはてなブックマークに追加

2013年4月7日日曜日

XcodeのCommand Line Toolプロジェクトで実行時に引数を渡す方法


[手順]

  1. menuからEdit Schemeを選択する
  2. Runを選択する
  3. Argumentsを選択する
  4. +をクリックして引数を追加する

[手順画像]


引数を渡す手順のスクリーンショット


このエントリーをはてなブックマークに追加

XcodeでのC言語(Command Line Tool)開発時にリソースファイルを追加する方法

XcodeのCommand Line Toolプロジェクトを使ってC言語の勉強をしてみたのですが、iPhone開発とは違ってリソースを追加しても実行ファイルがあるディレクトリに勝手にコピーはしてくれないようです。
今回は、コピーされるようにする方法を紹介します

[手順]

  1. リソースファイル(画像ファイル、csvファイル、など)をプロジェクトに追加する。どこに追加してもかまいません。
  2. ソースツリーからプロジェクト情報(xcodeproj)を選択する。
  3. TARGETSを選択する。
  4. Build Phasesを選択する
  5. Add Build Phaseを選択する
  6. Add Copy Filesを選択する
  7. 追加されたCopy Filesの+ボタンをクリックしてリソースを追加する

[手順画像]


このエントリーをはてなブックマークに追加

2013年3月20日水曜日

fuelPHP環境でファビコンを表示する方法

fuelPHP環境でファビコンを表示する方法を紹介します。



このエントリーをはてなブックマークに追加