Objective-Cで定数の接頭辞がなぜ “k” なのか?

kNumberOfFiles, kUserKey, kDisplayTingeGreen のように定数名の接頭辞(prefix)がなぜ “k” なのか?
Objective-C が登場する以前の時代から継承されているMacOSプログラミングの慣習。
ドイツ語の”Koeffizient” (【日本語】係数, 【英語】cofficient) に由来する(らしい)。

ちなみ NSString や NSArray などの接頭辞 “NS” は MacOS X や iOS の前身となったオペレーティングシステム “NeXTSTEP”に由来する。CFDataRef や CFRelease などの接頭辞 “CF” は “Core Foundation” に由来する。

TCP/IP通信でACK応答が遅れる(遅い)

原因

Nagleアルゴリズムによるソケット内バッファの送信遅延(小パケットサイズの保留)

解決策

Windows Runtime Componentとして作成したnamespaceが呼出元から参照できない

課題

Windows ストア アプリのWindows Runtime Componentとして作成したnamespaceが呼出元から参照できない。

解決方法

プロジェクトの"Reference(参照)"にWindows Runtime Componentを追加する必要がある

補足

デフォルトでは".NET for Winows Store apps"と"Windows"の二つのnamespaceが登録されている。

ここに例えば"MyCppComponent"を追加する。

VBAでUTF-8のファイルを書き出す

目的

VBA(Excelマクロ)を使って、文字コードがUTF-8のテキストファイルを書き出す

サンプルコード

注意事項

上記のマクロで作成したテキストファイルの先頭にはBOM(Byte Order Mark)の3バイト(0xEF, 0xBB,0xBF)が挿入される。VisualStudioなど多くのMicrosoft製品が扱うUTF-8のテキストファイルはBOMが付加されるが、Unicodeの規格上はUTF-8のBOMは必須ではない(「BOMあり」と「BOMなし」が存在する)ため、注意すること。

次のように書き分けるときもある

  • UTF-8 : BOMあり
  • UTF-8N : BOMなし

Magic Mouse が反応しない

症状

  • Magic Mouse底面のLEDが2回点滅
  • Magic Mouseのバッテリー残量あり
  • Magic Mouseを上下左右に動かしても反応しない
  • Mac本体とのBluetooth接続が断たれている

解決策

Magic Mouseを1回クリックする

CFDataGetBytePtr(data)でEXC_BAD_ACCESS例外

症状

CFDataGetBytePtr(data)のアクセスでEXC_BAD_ACCESS例外が発生する。

※iOS5以前では問題は生じない。iOS6で初めて遭遇するトラブル。

回避策

可変長データとしてアクセスする。

回避コード例