強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Macプログラミング

Macアプリをバイナリ差分でアップデートする

Windowsの場合には実行ファイルの差分データだけで実行ファイルの新しいバージョンにバージョンアップしてくれるパッチツールが有ったりしますがMacではその様なアプリを見かけません。しかし、以前から頭の中では「Macだとああやれば出来るんじゃない?」考…

Xcodeでコマンドラインアプリの作業ディレクトリを指定する方法

Xcodeを使ってMacでコマンドラインアプリを作成すると実行ファイルはプロジェクトフォルダとは異なるフォルダに作成されます。これはプロジェクトフォルダ以下に作成する様に変更する事も可能ですがその場合にもフォルダ階層がかなり深くなります。その為、…

「DiffMerge」で日本語テキストを正しく表示させる方法

DiffMergeはデフォルトの設定では日本語のファイルは文字化けして表示されてしまいます。こちらは設定で対応可能でした。 日本語を文字化けせずに表示する設定 アプリ起動後、 Cmd+, で環境設定を開きます。「Rulesets」の「Defualt Ruleset」の「Edit...」…

ソースコードの比較/マージツール「DiffMerge」

SourceGear | DiffMerge | overview http://sourcegear.com/diffmerge/index.html 以下の3つに対応したツール。 フォルダの内容を比較 ファイルの内容を比較 マージ 使用画面 起動時 アイコンは左から「フォルダの内容を比較」「ファイルの内容を比較」「マ…

ソースコードの比較/マージツール「KDiff3」

KDiff3 - Homepage http://kdiff3.sourceforge.net/ 使用画面 ファイル選択画面。 比較画面。 関連情報 マージツール一覧 MergeProgram - Mercurial http://mercurial.selenic.com/wiki/MergeProgram

ソースコードの比較/マージツール「P4Merge」

無料で使えるビジュアルなマージツール、Mac向けのものは中々見当たらないのですが「P4Merge」というアプリはマルチプラットフォーム対応でMac環境にも対応しているみたいです。 Perforce Visual Merge and Diff Tools http://www.perforce.com/perforce/pro…

ゲームパッド(ジョイスティック)関連の処理を行うObjective-Cのサンプルプログラム

こちらのページの最後にまとまっています。 Technical Note TN2187: New HID Manager APIs for Mac OS X version 10.5 http://developer.apple.com/library/mac/#technotes/tn2007/tn2187.html 特に HID_Config_Save がお勧めです。ゲームパッドは表面に塗装…

シェルスクリプトを簡単にMacの実行ファイルにする方法

手順 1. 「アプリケーション」フォルダから Automator.app を見つけそれを起動。 2. 起動後に以下の様なパネルが表示されるので「アプリケーション」を選択。 3. 左上の検索欄に「スクリプト」と入力し、絞り込みを行う。 4. 右側の領域にshiftキーを押しな…

フォントの表示名、ファミリーフォント名、フォント名の取得方法

この様なプログラムで確認出来ます。 NSFont* f = [NSFont fontWithName:@"Arial Italic" size:70]; NSLog(@"displayName = %@", [f displayName]); NSLog(@"familyName = %@", [f familyName]); NSLog(@"fontName = %@", [f fontName]); フォントファミリー…

IBActionがcontrolキーで繋げれない原因

たまにMacのプログラムを書いているとIBでIBActionをcontrolキーを押しながら繋げようとしても繋げられなくてあたふた。iPhoneの場合は - (IBAction)test; な感じにsenderを省略した宣言でも繋げる事が出来るけどMacの場合はこんな感じに - (IBAction)test:(…

自分のマシンで使用可能なフォント一覧をシンプルに取得する方法

以下の一文をターミナルに入力するだけOKみたいです。 ruby -rosx/cocoa -e "puts OSX::NSFontManager.sharedFontManager.availableFonts" 【情報元】 Available fonts / default font / fixed width font question http://www.libgosu.org/cgi-bin/mwf/topi…

アプリにフォントを同梱する方法

こちらに丁度自分が求めていた感じの質問と回答が有りました。 objective c - Embed font in a mac bundle - Stack Overflow http://stackoverflow.com/questions/2444717/embed-font-in-a-mac-bundle .plistファイルに ATSApplicationFontsPath を追加すれ…

Snow Leopardでlibjpeg.dylibを使ったビルドがエラーに成る時の対処法

Leopardの環境で問題なくビルド出来ていたプログラムをSnow Leopard環境でビルドした所、以下の様なワーニング出て、このライブラリに関連する関数が見つからずにエラーが発生しました。 ld: warning: in /opt/local/lib/libjpeg.dylib, file was built for …

Cocoa環境のゲームエンジン「Galaxy Engine」

iPhoneやMacのCocoa環境向けのゲームエンジン。 galaxyengine - Project Hosting on Google Code http://code.google.com/p/galaxyengine/ 特徴 Objファイルの読み込み LOD 頂点ベースの3Dアニメーション ピクセル単位のライティング、法線マッピング、変位…

Google製のOAuth認証用のライブラリ

Official Google Mac Blog: OAuth Sign-in Controllers for iOS and Mac OS X Applications http://googlemac.blogspot.com/2010/09/oauth-sign-in-controllers-for-ios-and.html gtm-oauth - Project Hosting on Google Code http://code.google.com/p/gtm-…

MacBookやMacBook Airなどのピンチやスワイプのマルチタッチのプログラム方法

MacBookやMacBook Airのトラックパッドでのピンチやスワイプを取得する方法の解説です。こちらは以下のバージョンの自作メタセコイアビューアに「こんな機能はどう?」と提案を貰ったときに合わせて教えて貰ったサイト(こちら)を元に色々と調べて実装しまし…

Macでlibjpeg.libやlibpng.libを使ったアプリのコンパイル

とあるライブラリをいじっていたら libjpeg.lib や libpng.lib を使用している部分でエラー発生。/opt の下を探ってみたところ、すんなり発見(おそらく今まで色々とMacPortsでインストールしたときにインストールされたと思われる)。以下の組み合わせで使用…

Google Toolbox for Macの正規表現を使ってみた

Google Toolbox for Macの正規表現を使ってみました。前回と同様、ウィンドウにボタンを配置し、アクションに以下の様なプログラムを設定しました。 #import "AppController.h" #import "GoogleToolboxForMac/GTMRegex.h" @implementation AppController - (…

Google Toolbox for Macを使ってみた

ちょっと出遅れた感がありますが噂の「Google Toolbox for Mac」を触ってみました。「Google Toolbox for Mac」についてはこちら GoogleからMacデベロッパへの贈り物「Google Toolbox for Mac」 | パソコン | マイコミジャーナル http://journal.mycom.co.jp…

MacのXcodeでBoostを使う

MacにC++の高速ライブラリBoostをインストールした - 強火で進め http://d.hatena.ne.jp/nakamura001/20081225/1230195789 こちらでインストールの解説をしましたが実際に使うときも色々と設定を行わないと上手く行かないところがあったのでそちらについても…

MacにC++の高速ライブラリBoostをインストールした

C++の凄腕ハッカーたちが作り上げたBoostライブラリ、以前から名前だけは聞いたことがあったのですが最近、Boostに正規表現のライブラリが有ると聞いて俄然やる気がでてMacにインストールすることにしました。公式サイトはこちら Boost C++ Libraries http:/…

テクスチャでアルファ(透過)を使用する

OpenGLのテクスチャでアルファ(透過)処理を行う方法を解説します。※ソースコードはこちらです。こちらを表示しながら読み進めて下さい。まず画像として奥に描画(背景)する為にこちらの画像back.png - 「背景用(アルファ無し)画像」 手前にアルファ付きで描画…

Macで「はちゅね」を動かしてみた

色々な環境で「はちゅね」を動かしていながら一番標準的なMacで動かすって事をしていないなぁ。と思い出し、iPhoneのプログラムをMacに移植という何か変なことしてみた。さすがOpenGL、ちょっと修正しただけで完成しました。初代Air使ってますが問題ない速度…

MacでCやC++のリファレンス(ヘルプ)がほしいとき

MacでちょっとCやC++の関数を調べたいな?ってときに意外なことにXcodeにはリファレンスが付いてなかったりするんですよね。まぁ、ターミナル上で man printf とか打てば出るにはでますが、 GUI派なんでターミナル立ち上げるのメンドクサイしw 英語だし って…

ほぼ日、MacのGUI - 終了

とりあえず簡単なGUIは一通り解説したので「ほぼ日」でのGUI解説は終了。その他のGUIについての解説は時間を見つけて時々、更新する予定。

ほぼ日、MacのGUI - Combo Box(コンボボックス)

コンボボックスのサンプルです。NSComboBoxクラスを主に使います。主なメソッドは以下となります。 メソッド 説明 - (void)insertItemWithObjectValue:(id)anObject atIndex:(NSInteger)index index で指定した位置に anObject で指定したオブジェクトを挿入…

ほぼ日、MacのGUI - Pop Up(ポップアップリストからの選択)

ポップアップリストからの選択を行うサンプルです。NSPopUpButtonクラスを主に使います。主にInterfaceBuilderでの作業になります。LibraryウィンドウのLibrary → Cocoa → Applicationに有る「Menu Item」などを追加して必要なリストを作成します。Itemを削…

乱数を使う

Cocoa環境で乱数を使う場合は ScreenSaver フレームワークを使う様です。ScreenSaver.framework をプロジェクトに追加した後、以下のように使用します。 #import <ScreenSaver/ScreenSaver.h> @implementation button - (IBAction)pushButton:(id)sender; { int i; for (i = 0; i < 10; </screensaver/screensaver.h>…

ほぼ日、MacのGUI - Color Well(色の選択)

色を選択するサンプルです。選択した色に文字の色が変更されます。 NSColorWellクラスを主に使います。InterfaceBuilderで配置するだけでほとんど完成です。クリックしたときに表示される色選択の部分の処理を書く必要はありません。 選択されたときに発生す…

JSCocoaを使えばエディタだけで開発ができるみたい

最近のMacではBridgeという技術を使ってPython経由やRuby経由でObjective-Cを使う事ができるみたいですが最近、JSCocoaっていうJavaScript経由で使用可能な実装も有るみたいです。これをちょっといじってみました。メインページはこちらの様です。 JSCocoa —…