iosへのGoogleAppsアカウントの追加方法

久しぶりに新しいカレンダーを作成した所、
iosへカレンダーが同期されなくて(カレンダーが存在しないように見える)
いまさら困ったのでメモ。

アカウントの再設定やら、CalDAVなどは必要なかった。

  1. アカウントの設定
    Exchangeを選択。「次へ」を選択するとサーバの入力項目が現れるので「m.google.com」を入力
     
  2. ios デバイスから 「m.google.com」 へアクセスする
  3. 「Googla Appsをご利用の場合」へをタップしてドメインを入力する。

  4. 日本語の状態では「sync」が出てこないので
  5.  左下の「言語を変更」を選択し、「English(US)」へ変更する

  6.  言語が変わると「Sync」が表示されるようになるのでタップ
  7. 「Sign in with your Google Apps Account」をタップ
  8. 「iPad」をタップ
  9. 同期するカレンダー一覧が表示されるのでチェックを入れて「Save」でおしまいです。

無線ネットワークの認証が必要です と キーリングのロック解除

久しぶりにメモメモ
毎回要求されていたので解除方法

ブラウザを立ち上げると毎回「キーリングのロック解除」を求められる場合

アプリケーション > アクセサリ > パスワードと暗号鍵で 「パスワード:デフォルト」を選択して右クリックからパスワードの変更

新しいパスワードを空のままでOKします

「無線ネットワークの認証が必要です」の場合

「すべてのユーザに利用可能」 にチェックを入れると毎回要求されることは無くなります

XBeeの設定で詰まったところなど

XCTUを使ったXbeeの設定など
※XBeeはZigbee規格で作られた製品です。

すでに沢山のサイトで解説されていますが、苦戦したのでメモメモ
あまり触れられてない所など

デバイスの存在を意識せずに自動的にネットワークを構築してくれる優れもので、シリアル通信を簡単に無線化してくれます。
しかもお値段が安いっ!
他のモジュールは6000~7000円するところが1700円で買えます

買った場所
スイッチサイエンス
XBee ZB / チップアンテナ型 2個
XBeeエクスプローラUSBドングル
ドングルのほうが高いとな…

回路
ループバックのみ。

X-CTU
①最新バージョン(5.2.7.5)で問題なく動きました。
X-CTUの使い方は他サイト参照

②X-CTUは癖のあるソフトです。

③ファームの種類
ファームの種類ですが、今回はXBee ZB(XB24-Z7CIT-004)を買ったので XB24-ZBでうまくいきました。
※シリーズの違いでも変わってくるみたいです
Function Setは
・ZIGBEE COORDINATOR AT
・ZIGBEE END DEVICE AT
の二種類を片方ずつに書き込みます。COORDINATORが親機でEND DEVICEが子機です
三台目からはEND DEVICEになります

④設定内容
③の通りにFunction Setを設定してあれば設定内容は弄らなくても動きます
設定をデフォルトへ戻すにはShow Defaultsで戻ります。
きちんと設定したければ、設定項目ごとに表示される下枠の説明で意味がよく分かります。

⑤読み込めない!書き込めない!
最初はファームが問題なく書き込めて、テンションが上がってたんですが、設定を弄っているうちにファームの書き換えにミスったのか通信できなくなって青ざめました。

どうやらXBeeは通信中はX-CTUを受け付けないようで、リセット直後なら通信できるようです。
なのでリセットボタンを押してくれのメッセージが出ますが
ドングルにはリセットボタンは付いていないのでタイミングよくXBeeをドングルに差し込みます。
↓のInfoダイアログが出たら数秒(長い分には問題ないみたい)待ってから

サクッと挿します。

⑥通信はできたけど遅い。リアルタイムじゃない
Destination Address High
Destination Address Low
がブロードキャストの設定になっているとパフォーマンスが落ちるみたいです。
XBeeの裏にあるアドレスを指定するか、0x0000000000000000でリアルタイムに動きました
※ 0x000000000000FFFFでブロードキャスト
※ 0x0000000000000000で親(COORDINATOR)を指定

⑦はじめの数バイトが送信できてない
デバイスがSleepモードになっていると通信開始時のデータがうまく送信されないようです。
初期設定では周期Sleepになっているので
SleepMode で NO SLEEPに設定。

⑧なぜかSleepModeのNO SLEEP設定がうまく行かず。



この問題については[参考サイト]参考
PIN HIBERNATEで NO SLEEP代用

参考サイト
XBeeで無線通信!
xbeeを使ってすぐに壊した
いまさらXBee

なんか適当だけどままぁいいかっ

 

extern “C” について

なぜ extern “C” を使うのか。
メモメモ。。

C++とCではラベルの命名規則が違うようです。

Cで
test(){};
をコンパイルするとアセンブリでは _test: ラベルが生成されます

C++で
test(){};
をコンパイルするとアセンブリでは __Z4testv: ラベルが生成されます

C++からtest関数を呼ぼうとすると__Z4testv:を探します。
すると、当然にラベルが存在しないのでリンカエラーが発生します。

そこで extern “C” を使うと、C++からtest関数を呼ぼうとすると_test:を探します。
すると、ラベルが存在するので問題なくリンク出来ます。

サンプル
test.h

/* C Header */
#ifndef TEST_H_
#define TEST_H_

#ifdef __cplusplus
extern "C" {
#endif

void test();

#ifdef __cplusplus
}
#endif

#endif /* TEST_H_ */

test.c

/* C Source */
#include "test.h"

void test()
{

}

testp.cpp

/* C++ Source */
#include "test.h"

void aaa()
{

}

int main()
{

	aaa();

	test();

	return 0;
}

test.s

	.text
	.align 2
.globl _test
	.def	_test;	.scl	2;	.type	32;	.endef
_test:
	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	ret

■ extern “C” あり
testp.s

	.text
	.align 2
.globl __Z3aaav
	.def	__Z3aaav;	.scl	2;	.type	32;	.endef
__Z3aaav:
	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	ret
	.def	___main;	.scl	2;	.type	32;	.endef
	.align 2
.globl _main
	.def	_main;	.scl	2;	.type	32;	.endef
_main:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	andl	$-16, %esp
	movl	$0, %eax
	addl	$15, %eax
	addl	$15, %eax
	shrl	$4, %eax
	sall	$4, %eax
	movl	%eax, -4(%ebp)
	movl	-4(%ebp), %eax
	call	__alloca
	call	___main
	call	__Z3aaav
	call	_test
	movl	$0, %eax
	leave
	ret
	.def	_test;	.scl	3;	.type	32;	.endef

■ extern “C” なし
testp.s

	.text
	.align 2
.globl __Z3aaav
	.def	__Z3aaav;	.scl	2;	.type	32;	.endef
__Z3aaav:
	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	ret
	.def	___main;	.scl	2;	.type	32;	.endef
	.align 2
.globl _main
	.def	_main;	.scl	2;	.type	32;	.endef
_main:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	andl	$-16, %esp
	movl	$0, %eax
	addl	$15, %eax
	addl	$15, %eax
	shrl	$4, %eax
	sall	$4, %eax
	movl	%eax, -4(%ebp)
	movl	-4(%ebp), %eax
	call	__alloca
	call	___main
	call	__Z3aaav
	call	__Z4testv
	movl	$0, %eax
	leave
	ret
	.def	__Z4testv;	.scl	3;	.type	32;	.endef

C++では同じ関数名が利用できるので命名規則が複雑になってるようです。

ちなみに
extern “c” じゃなくて
extenn “C” ということに注意!

polipoのバイナリ

現時点で最新のpolipoバイナリを置いときます
2008年に1.0.4.0が公開されて少しずつ変更が加えられているみたいです

31 January 2010: Polipo 1.0.4.1:
polipo.zip 2011/03/25時点

下のサイトではpolipoの設定ファイルの書き方が紹介されています
Polipoの設定とチューニング

公式のconfigファイルのマニュアル(google翻訳)
The Polipo Manual

Torプロジェクトにpolipoが含まれていたので、そこのconfigファイルをテンプレートとして置いておきます
polipo_conf.zip

起動の仕方

polipo.exe -c polipo.conf

ブラウザからも設定が変更できるようです

http://localhost:8123/polipo/