Tag Archives: 仕事ツール

WIMAXが遅くなったと思ってたら原因が見つかった!

0
Filed under Mac
Tagged as , ,

1ヶ月位前から、なんだかWIMAXが異常に重いなー、と悩んでいました。

Wi-Fi WALKER WiMAX HWD13 [ホワイト]

Wi-Fi WALKER WiMAX HWD13 [ホワイト]

中古価格: ¥ 285 より

Amazon価格:¥ 2,750

カテゴリ:エレクトロニクス



仕事でメインで使っているので、これが遅いと非常に困る。というか、昨日まで困っていました!
Dropboxの同期が終わらないとか、致命的。。
契約してもうすぐ2年、ずーっとバリバリ使っていましたが、WIMAXなのでパケット制限とかあるわけでもないし、何?会社の近くのWIMAXアンテナとかなくなったのか?とか疑ってしまいました。
場所が悪いのか?(でも全く同じ場所でこれまで使えていたし)動かしてみても、8月になっても状況が変わらないので、auに行って(契約はauなので)聞いてみました。
しかし、
「パソコン側のWi-Fi設定を一度クリアして再設定してみてください」
「本体のリセットボタンを押して再設定してみてください」
「それがダメなら修理ですかねー」
という感じで、なんとなく、こちらとしても「それは違うんじゃないかなー」という回答しか得られなかったのです。
もう諦めかけていたのですが、今朝、解決しました!

結論:Wi-Fi WALKERの設定を変える

「11b/g/n」となっているWLAN設定を「11b/g」に切り替えると良いらしい、という情報を入手したのです!
「Wifiの通信速度が遅い | Apple サポートコミュニティ」
早速ブラウザからWi-Fi WALKERの設定画面にアクセスして設定してみます。
http://wi-fiwalker.home
特にパスワードとか要らないので、そのまま設定します。
WiFi Walker設定 11b/g
これで私の場合も改善しました!良かった!

原因?

ではなぜ、これまで遅くなかったのか?という疑問が出てきます。
そういえば、1ヶ月前といえば、今のMacBook Pro (Late 2013)に買い替えた時期です!
これに買い替えてから、という時期になるので、古いMacBook Pro (Mid 2009)では問題が発生しなかったのかもしれません。

APPLE MacBook Pro with Retina Display(13.3/2.4GHz Dual Core i5/8GB/256GB/Iris Graphics) ME865J/A

APPLE MacBook Pro with Retina Display(13.3/2.4GHz Dual Core i5/8GB/256GB/Iris Graphics) ME865J/A

中古価格: ¥ 66,880 より

カテゴリ:Personal Computers

発売日:2013-10-23


補足:通信速度メモ

いつものBNRスピードテストで測定してみた速度をメモしておきます。

・設定変更前(遅いとき)

—— BNRスピードテスト (ダウンロード速度) ——
1.NTTPC(WebARENA)1: 1.04Mbps (128.82KB/sec)
2.NTTPC(WebARENA)2: 110.18Kbps (13.74KB/sec)
推定転送速度: 1.04Mbps (128.82KB/sec)
————————————————–

2つ目の「2.NTTPC(WebARENA)2」が異常に違うのが問題のようですね。
この違いは回線の違いかな。確かに特定のサーバへのアクセスが遅いような感じでしたので。

・設定変更後(改良後)

—— BNRスピードテスト (ダウンロード速度) ——
1.NTTPC(WebARENA)1: 1.05Mbps (131.41KB/sec)
2.NTTPC(WebARENA)2: 886.56Kbps (109.93KB/sec)
推定転送速度: 1.05Mbps (131.41KB/sec)
————————————————–

2つ目の速度が改善されたのが一目でわかります!良かった!

lldbでiOSの例外を克服

0
Filed under Xcode
Tagged as , , , ,

プログラミングにおいて例外が発生したときの対応はとても重要です。
しかし、iOS開発で例外が発生したとき、なんとなく例外が発生したコードの付近を眺めて原因を予測していたりしませんか?
iOSがOSレベルで発生させる例外はきちんと原因表示ができるので、次の手順を覚えておくと、デバッグが容易に、そして確実になります!

例外を発生させるコード

さて、例外発生時の対応を学ぶためにはまずは例外を発生させるコードが必要になります。
いちいちコードを書くのも面倒、という人のために、プロジェクトをまとめてGitHubにアップしておきました。その名も「GenerateException」というプロジェクトです。

とてもシンプルに、ボタンを押したら例外が発生する仕組みになっています。

例外発生時に止める

Xcodeでは、ブレイクポイントの設定の中にすべての例外発生時に止める事ができるオプションがあります。まずはこれを設定しましょう。
Xcode左側のペインに、ブレイクポイントナビゲーターを表示させます。
そして、左下にある[+]ボタンを押して出てくるメニューから「Add Exception Breakpoint」を選びます。
lldbでiOSの例外を克服 Xcode
これで「All Exceptions」というブレイクポイントが追加され、準備は完了です。
lldbでiOSの例外を克服 Xcode

例外の出す情報を見る

プロジェクトをダウンロードし、ブレイクポイントの設定が完了したらあとはデバッグ実行してください。
起動した画面にあるボタン『Generate Exception』を押すと例外が発生し、下図のような状態で止まると思います。
lldbでiOSの例外を克服 Xcode
ただ、現在は例外が発生し、その元となるコードで止まっている状態ですので原因がわかりません。
ここで例外の原因を調べる方法は次のような手順となります。
1. 例外の発生しているスタックフレームを選択する(左側のスタックの一番上の”0 objc_exception_throw”というところ)
2. デバッグエリアのコンソールを開き、”(lldb)” に続いて “po $eax” とタイプし、Enterを押します。

(lldb) po $eax

3. これで今回発生した例外の原因が表示されます。
lldbでiOSの例外を克服 Xcode
以上!

lldbでスタックフレームを見る

One More Thing,
lldbにはいろいろ便利な機能があり、”po hogehoge”というのが有名かと思いますが、次のコマンドで現在のスタックフレームの変数を一覧することができるのを最近知り便利に使っています!
lldbでiOSの例外を克服 Xcode

(lldb) frame variable

Goを試してみた

0
Filed under プログラミング言語
Tagged as , ,

ちょっとした時間ができたので、前から気になっていたGo言語を試してみました。
まずは、インストール。
golang.jp – プログラミング言語Goの情報サイト
ここに、日本語情報があるけど若干が古いので、英語のオリジナルサイトの方を参考にしました。
The Go Programming Language
インストーラは下記ページからダウンロード出来ます。
Downloads – The Go Programming Language
Mac OS X用の「go1.3.darwin-amd64-osx10.8.pkg」をダウンロードしました。
ダウンロードしたファイルをダブルクリックするとインストーラが起動するのでそのままインストールできます。

go gopher(←Goのマスコットで go gopherというらしい)

バージョンを確認してみる

インストール後はターミナルで作業できるようになりますので、まずはバージョンを確認してみます。

$ which go
/usr/local/go/bin/go
$ go version
go version go1.3 darwin/amd64

最初のビルド

次に、適当なエディタ(私の場合Sublime Text)で下記のようなソースを書いてみました。実行は、go runでできます。

$ subl main.go
$ cat main.go
// main.go
package main
 
import "fmt"
 
func main(){
	fmt.Printf("hello, world\nGO言語!\n")
}
$ go run main.o
hello, world
GO言語!

文法もそんなに変なクセはなさそうなので、パッケージの内容を覚えれば大丈夫そうですね。

もうちょっと

ついでに、関数とループを試してみました。

// second.go
package main
import "fmt"
 
func myCalc( a int, b int ) int{
	return a+b
}
 
var myVar = 1200
 
func main(){
	fmt.Println("いろいろやってみる!")
	for i:=0; i<10; i++ {
		fmt.Println( "計算:", myCalc(myVar,i) )
	}
}

上記コードを実行すると次のようになります。

$ go run second.go 
いろいろやってみる!
計算: 1200
計算: 1201
計算: 1202
計算: 1203
計算: 1204
計算: 1205
計算: 1206
計算: 1207
計算: 1208
計算: 1209

ビルドしてみる

あと、goの特徴の一つがコンパイルできる言語でもある、ということも試したかったので、コンパイルしてみました。
go runの代わりに、go buildを行うだけで実行ファイルが生成されます。

$ ls	// ビルド前
main.go
 
$ go build main.go	// ビルド
 
$ ls	// ビルド後
main		main.go
 
$ main	// 実行
hello, world
GO言語!

とりあえず今日のところはここまで。

Cocoapodsでハマった時のyak shaving memo

0
Filed under 仕事ツール
Tagged as , , , , ,

Cocoapods (pod)って便利ですよね。
しかし、外部サービスに依存すると、そちら側のアップデートに対応する必要が出てきたりして困ることがあります。
特に、余り使っていないプロジェクトとかをたまに更新したりすると。。
ということで、ちょっとしたyak shavingメモ。

Cocoapodsを使う

  • Cocoapodsで外部ライブラリをインストール
$ pod intall
  • pod installがうまくいかないときのCocoapods再セットアップ
$ pod repo remove master
$ pos setup

Cocoapodsのバージョン確認とアップデート

  • Cocoapods自身のバージョン確認
$ pod --version
0.32.1
  • Cocoapods自身のアップデート
$ sudo gem update cocoapods

Ruby Gemsのバージョン確認とアップデート

  • Gems自身のバージョン確認
$ gem -v
2.2.1
  • Gems自身のアップデート
$ gem update --system