Xperia Z4が防水の理由

SOL22

2013年5月末にauから発売されたXperia

発売直後に機種変したからまる2年使ってきたわけだが、ルート化しなくても困ることも殆ど無くなかなか優秀なやつ。

ところが会社で充電の度にmicroUSBのカバーを外したりを繰り返していたら、防水パッキンがイカレてしまい防水機能はどこか彼方へ飛んでいくことに。

パッキンだけ買おうかとも思ったけど、水没したときは(水没してないけど既に水没マーク赤くなってたし)そこまでと諦め、お風呂で使えないくらいなので別に問題なく使えてきました。

強いて言うなら

最近無線ルータをバッファローからAtermに変えたんだけど、5GHz帯でSSIDをステルスモードにすると認識しないので、ちょいイラしたくらいかな。

SOV31

S.O. ・・・

Vだと・・・( ゚д゚)ポカーン

なんだろうこのモヤッと感。
ソニーモバイルコミュニケーションズからソニーに変わったからなのかな?

まぁ2年も使ったし変えてみるか-とau Online Shopでポチッと。

到着

平日に来ても受け取れませんw
土曜に受取り~

手にした瞬間「おっ結構、薄いなー、デカイなー」でしたが、2秒後・・

スベる!

これヤバイ。
膝にちょい載せできないくらい、背面もツルッツル!

月曜に落とす気がしてならない・・・
ということでケースとか用意してない人はストラップ必須だわ。

とか思いながら、取り敢えず充電して、カメラちょっといじってると、

熱い!熱い!w

からの

発熱のためカメラ強制終了・・・ヾ(゚Д゚ )ォィォィ

多分、5分もカメラ起動してない。

( ゚д゚)ハッ!この為の防水か!

つまり、イザとなったら水で冷やせとな・・・・
水冷式とかやるじゃん糞ニーがぁあああ!

なんだろう。
低バッテリーからの充電(急速?)とカメラがめっちゃ熱くなる。

充電完了すると全然冷や冷やです。

違う!俺が今回書こうとしたのは、防水とかじゃなくて、Xperiaの自作テーマなんだよぉおおお!!

次回。

数年ぶりのマジ走り

f:id:izana1018:20150509213108j:plain

お・・遅い!www

そしてスネ釣りそうだった(´・ω・`)
でも、ちょっと気持ちいいので続けよう。

肥えた

とか、久しぶりに会った友達に言われたからじゃないんだから!
1ヶ月後くらいに健康診断あるからじゃないんだからねっ!!

ところで

232 カロリー・・・だと・!?

「キロ」カロリーだよね!?

ちなみにサイクリング「74キロ」

f:id:izana1018:20150509215331j:plain

74キロ走って「783 キロカロリー」

なんというか、割にあわない気がしてならない。
ある意味、自転車偉大だわ

f:id:izana1018:20150509222234j:plain

YAGBE

ブックマークって、みんなどうやって管理してるんだ?

取り敢えず自分はメインでGoogle ブックマーク使用。

Googleブックマークの便利なところ

  • URLにタグ付けできる
    よくある機能。
    URLにタグ付け管理できるので、まあ便利。
    ただし、タグ付けまくると、あとで整理が面倒で、後悔。

  • Googleとの親和性が高い
    Googleマップで付けたスターもGoogleブックマークに登録される。

  • ググった履歴が全て見れる
    「あー先週、検索して見つけたサイトって何で検索したんだっけーー!?」
    とかでも、GoogleブックマークのWEB履歴から探しだすこともできる。

    厳密にはGoogleブックマークじゃないのかな?
    あと、誰かに見られたら死亡するw

  • ChromeFirefox拡張機能が便利
    個人的にタイトルにもある YAGBE が一番使いやすい。
    chrome.google.com

    少し前まで、エラーが出るようになっていたけど、最近また使えるようになったのかな?

スマホAndroid)との連携

一番使い勝手が良いのが、GBookmark - Google Play の Android アプリ

スマホ(GBookmark)⇔Googleブックマーク⇔Chrome(YAGBE)の相互同期もできるところがよいです。

Format-Tableで右揃えとか三項演算子的なこと

chromeのプロセス一覧見てみよ~(ドヤ顔

f:id:izana1018:20150219001153p:plain

な・ん・だ・と!?

すっからかんだと!?
てか、なんだこの空行は!?

右にスクロールしてみる

f:id:izana1018:20150219001159p:plain

出てきた~!

画面のプロパティを見てみると・・・

f:id:izana1018:20150219001203p:plain

そうです。
画面バッファーのサイズを広げてました。

Format-Tableコマンドレット

まぁ右スクロールすれば出てくるからいいけど、見難い!

ということでFormat-Table(以下ft)-AutoSizeをカマしてみる

PS C:\Users> gps chrome | ft -a id,name

  Id Name
  -- ----
1304 chrome
1328 chrome
1744 chrome
1868 chrome
2776 chrome
3252 chrome
4392 chrome
5172 chrome
5224 chrome
5372 chrome
5648 chrome
6204 chrome
6284 chrome
6556 chrome
6844 chrome
6992 chrome
7096 chrome
7156 chrome
8304 chrome
9408 chrome
PS C:\Users>

いい感じに自動的に幅を調整してくれます。

右揃えや中央揃え

このft、色々と出来ちゃいます。

いろいろな表示サンプル

PS C:\Windows\system32> gps chrome |
  ft -a Id,
        Name,
        VirtualMemorySize64,
        # 仮想メモリをMB変換して小数点第二位で表示
        @{n="VM[MB]";
          e={"{0:N2}" -F ($_.VirtualMemorySize64/1MB)}},
        # 仮想メモリピーク値をMB変換して小数点第二位で右揃え
        @{n="PeakVM[MB]";
          e={"{0:N2}" -F ($_.PeakVirtualMemorySize64/1MB)};
          a="r"},
        # 仮想メモリが1GB以上の行にY、それ以外Nでセンタリング
        @{n="Over 1GB#if";
          e={if($_.VirtualMemorySize64 -ge 1GB){"Y"}else{"N"}};
          a="c"},
        @{n="Over 1GB#map";
          e={@{$true="Y";$false="N"}[$_.VirtualMemorySize64 -ge 1GB]};
          a="l"},
        @{n="Over 1GB#array";
          e={@("Y","N")[-not( $_.VirtualMemorySize64 -ge 1GB)]};
          a="r"}


   Id Name   VirtualMemorySize64 VM[MB]   PeakVM[MB] Over 1GB#if Over 1GB#map Over 1GB#array
   -- ----   ------------------- ------   ---------- ----------- ------------ --------------
 1124 chrome           865202176 825.12       829.12      N      N                         N
 1424 chrome          1181487104 1,126.75   1,143.75      Y      Y                         Y
 2116 chrome           957128704 912.79       916.79      N      N                         N
 4788 chrome           913203200 870.90       871.90      N      N                         N
 4912 chrome           950034432 906.02       916.02      N      N                         N
 8496 chrome           995819520 949.69       955.96      N      N                         N
 8588 chrome           311062528 296.65       307.28      N      N                         N
 8712 chrome          1492869120 1,423.71   1,466.71      Y      Y                         Y
 8756 chrome           897290240 855.72       858.72      N      N                         N
 8792 chrome           776208384 740.25       745.25      N      N                         N
 8800 chrome           801337344 764.21       771.22      N      N                         N
 8808 chrome           862097408 822.16       862.30      N      N                         N
 8820 chrome           774639616 738.75       743.75      N      N                         N
 8832 chrome           778833920 742.75       748.75      N      N                         N
 8840 chrome           770445312 734.75       741.75      N      N                         N
 8848 chrome           775159808 739.25       746.25      N      N                         N
 8856 chrome           770445312 734.75       741.75      N      N                         N
 8864 chrome           771493888 735.75       743.75      N      N                         N
 8872 chrome           769658880 734.00       739.00      N      N                         N
 8912 chrome           998236160 951.99       979.99      N      N                         N
 9660 chrome          1066119168 1,016.73   1,025.73      N      N                         N
 9664 chrome           914006016 871.66       876.66      N      N                         N
10192 chrome          1044418560 996.04     1,012.54      N      N                         N


三項演算子VBでいうIIF)的な何か

前述のサンプル。
実は三項演算子的なことしてます。

お気づき?

列「Over 1GB#map」と「Over 1GB#array」は条件が真と偽で表示内容を変えてます。

仕組みは単純。

@{$true="Y";$false="N"}[$_.VirtualMemorySize64 -ge 1GB]

$trueは"Y"、$falseは"N"という連想配列を作って、真偽値を使って連想配列から値をゲットしているだけ。

VBで書くならこんな感じでしょうか

Dim map As New Hashmap()
map.add(true, "Y")
map.add(false, "N")
# map.item(true)

@("Y","N")[-not( $_.VirtualMemorySize64 -ge 1GB)]

こっちはbool値をint型に変換して(暗黙的でよろしくはないが)、インデックスとして利用。

さよならNexus7(2012)

そしてありがとう

初めてのタブレット。Nexus7。

手の小さめな自分には大きさがちょうどいい感じで、なかなか使い勝手もよい子でした

重すぎ

lollipopにしたからか、ここ最近は重すぎてイライラすることが多くなった。

それに、尿漏れ(尿液晶)も酷くなってきて、ちょっと無理させるとすぐお漏らししちゃう残念な状態に

もうアカン

という事で、引退してもらうことにしました( ノД`)…

そしてXperia Z3 Tablet Compact購入

良いぞ良いぞ

大きさもNexus7と同じくらいだし、もうサクサク!

てか、軽い!

なかなか良い買い物をした気がする。

twitterにログインできなくなった

ある日突然

Twitter for Androidへログイン認証のリクエストを送信しました。
通知をスワイプまたはタップしてTwitterアプリを開いた後、チェックマークボタンをタップしてログイン認証のリクエストを確認してください。

Or get a verification code texted to your phone.

保存したバックアップコードを使用してログインできます。

ヘルプが必要な場合は、Twitterサポートまでお問い合わせください。

ここから先に進めなくなった

何もやってないのに!

と、叫びたかったが心当たりありましたわ。

ただ、心当たり多すぎてもう訳わからん状態(泣)

ログイン認証できないし、バックアップコードも無効とかホント悲しい。
何度もログインにチャレンジしては失敗。

もう悲しいというより虚しかったよ。

パスワードリセットすると確かにリセットされるんだけど、その先にログイン認証の壁が立ちはだかる。

最後の手段

twitterのサポートに泣きつい・・問合せてみた。

何度かやりとりはあったものの あっさり解決!

ありがとう、サポートさん!

ちなみに

だらだらとやりとりしてたけど流れは↓感じ

  • 1/25 サポートに泣きつく
  • 1/25 twitter:もう一回ヘルプ見るがよろし。それでダメなら詳細送りたまえ
  • 1/28 もう一度、泣きつきまくる
  • 2/4 twitter:取り敢えずログインだけして、連絡よこすがよい
  • 2/5 ログインじまじだ〜〜〜(号泣
  • 2/5 twitter:ログイン認証無効にしてやったよ☆(ゝω・)vキャピ
  • 2/5 ふおぉおおお!

う〜ん、別アカウント作って、ログイン認証ONにしたのが原因かな〜

コンパイラーのバグ

ふと思い出した

10年ほど前にSolaris9で開発していた頃のことをだらだらと。
(もうそんなに経ったか・・・)

C++コンパイラのバグ(?)で悩まされた。

うろ覚えだけど、こんな感じのreturn漏れのコード(適当

int hogera(int b, int c) {
  int a = b + c;
  if (a = 0) {
     return 0;
  }
  // return nil
}

通常

上記はreturn漏れのコンパイラ警告だかエラーになるはずが、何故か問題なくコンパイルできてしまった。
結局、リリース後に発覚して大騒ぎだった記憶。

その時はSun(現Oracle)のサポートに連絡し、調べてもらって結論が「バグ」だったような。

と言っても

Success is a Journey, not a Destination: 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #2/3を読むと、必ずしもバグだけでなく、あれは最適化の影響だったのではと今では思ったり。

リリースをするときは必ず、Releaseモードでビルドするしね。

それ以来

どうしても解消しないバグの要因の一つとしてコンパイラも疑う癖がついてしまった。

Oracle9i/11gでも

バグっぽいものを見つけた。

SQL単体で実行すると正しい結果が返ってくるのに、PL/SQLにすると何故かうまく実行できない。

他にも、特定のSELECT文を実行直後に別のSELECT文を実行すると、結果が異なるなど。。。

結局Oracleサポートに入ってなかったので、バグ報告は上げてない(笑

大抵

しょぼいミスが原因。

だからできるだけシンプル、できるだけコンパクトにして、バグが混入しにくいコードを書くように心がけている。

1関数50行を目標にしてはいるけど、トリッキーなコードを使わないコンパクトって、なかなか難しいよね。