2014年8月12日火曜日

bitnamiで落としたWindows版Open Atriumが正常に起動しない

bitnamiで「bitnami-openatrium-2.19-1-windows-installer.exe」を落としてインストールしたが、
起動後にAtriumを開くとエラーメッセージが。。

下記のサイトに対処法が載っていた。
http://stackoverflow.com/questions/4632779/drupal-7-is-unable-to-install-modules/4633270#

tmpフォルダの設定が誤っている模様。無理やりログインして下記のページに辿り着いて、値を修正すれば解消した。

http://****/openatrium/admin/config/media/file-system
Home » Administration » Configuration » Media » File system

にて
Temporary directoryの値を
/tmp
↓
sites/default/files\tmp
に書き換え。

Excellent Analyticsでログインできない

Google側で不審なアプリからのアクセスだと認識されてブロックされていた。

アカウントのセキュリティ>最近のアクティビティ(https://security.google.com/settings/security/activity)で確認可能。

許可したらログインできた。


「安全性の低いアプリ」を有効にする必要がある、ということらしい。
https://www.google.com/settings/security/lesssecureapps

2014年8月11日月曜日

IP電話で固定費0の家電(イエデン)を実現

こちらのサイトを参考に同じ環境で揃えさせていただいた。
途中、罠にはまったところが二箇所。
  1. 電話線を挿す口が逆
  2. マンションの回線なのでプライベートIPが付与されており、NAT超え出来ない
1.の方は、直感的には外側のほうが1番のポートだと思い込んでいたけど逆。
参考にさせて頂いたサイトに載っていた画像のとおりにつなぐべきだった。。。

2.の方は、STUNとやらを使うことで解決。
どうやらインターネット側から我が家のHT702へたどりつけるようにするために、インターネット上に公開されている仲介サーバ(STUN)を使う必要があるらしい。
STUNサーバは、自前で用意するのは大変なので、無料で公開されているサーバーを使わせていただくことにした。
無料のSTUNサーバは、googleで適当に見繕った。

で、HT702側は下記の三箇所を設定し、リブートすればオッケー。
FXS PORT1で
①NAT TraversalをSTUNに。
advanced settingの
② STUN server isにgoogleで調べたサーバー名を、
③ Use STUN to detect network connectivityをyesに。

なお、参考元サイトのコメント欄にある様な、
  • 先にスマホでアクティベーションしているとダメ、とか
  • 着信してもすぐ切れる、とか
  • 携帯にかけるときだけ国番号が必要、とか
はなかった。

ただし、一度試しにSTUNをやめてNAT keep aliveにしてみた時は、受発信ともにつながるが、音声が一切聞こえずすぐ切れる、という感じだった。

2014年8月7日木曜日

アメリカに行くならモバイルルータ(Wifi)よりもSIMフリーAndroid端末がおトク!?

アメリカ(ハワイ)にnexus7(2013 lte)持って行ったら大活躍した。

もしモバイルルータをレンタルしようと思ったら一日千円近くかかるのでもったいないと思い、SIMフリー端末代でテザリングすることにした。
カーナビ代わりにも使えるので、カーナビもレンタルすると一日10ドルぐらいすること考えると二度おいしい。

現地でのSIMカード調達は、t-mobile一択じゃないか?と思う。
  • Verizonに行ったらSIMカード単体では売っていないらしい。。。
  • at&tには行ってないけど、goPhoneと言うプランでSIMカード単体でも売っているがテザリングが出来ないと言う情報を目にしたので避けた。

t-mobileでは、SIMカード自体が$10、3GBまでのlteが30日間有効なプランで$30の合計$40だった。

t-mobileのお店の人にAndroid端末を見せ、プリペイドSIMカードプリーズ。で行けると思う。
言語設定を英語に変更したうえでお店の人に渡せば、あとはやってくれる。

途中で、プランをどうするか、4ケタの暗証番号、誕生日等を聞かれた。
あ、SIMカードトレーを取り出す器具(pinと呼んでいた)を持っているかも聞かれた。

Android (nexus7) でwifiに繋がらない、SSIDが見つからない場合の対処方法

原因は、無線LANのチャンネルにnexus7(android 4.4.3)が対応していないためっぽい。

無線LAN側のチャンネルが12か13だとSSIDが検出されず、WPSでも接続できない模様。

チャンネルを11に固定したところ問題なく接続できるようになった。

良かった。。。

2014年7月1日火曜日

Google Chromeで横幅があまり縮められない場合の対処法

Google Chromeを使ってレスポンシブWebデザインの確認をしようとしていると、ブラウザの横幅が思ったより縮まらなくて困ることがある。

●原因
・オムニバー(URL入力欄)の右側に並んでいる拡張機能のボタンが多い。
 (オムニバーはある一定以下の横幅に縮められないようになっている)

●対策
案1:不要な拡張機能を削除する
案2:オムニバーと拡張の間を右にドラッグし、表示される拡張ボタン数を減らす

2014年5月23日金曜日

Selenium webdriver: chromeで全画面をキャプチャする方法

見えている範囲だけをキャプチャすることはできたので、多少強引だが
  1. Javascriptを使って見えてる範囲の高さと画面全体の高さを取得
  2. スクロールしながらキャプチャ
  3. 最後の一枚のみ重複ができるのでImageMagickを使ってカット
  4. ImageMagickを使って全ての画像を結合
という流れで全体のキャプチャを実現出来た。
以下rubyの場合。
def chrome_capture(webdriver, fname_prefix)
  #1. Javascriptで画面のサイズを取得
  inner_h = webdriver.execute_script("return window.innerHeight").to_i
  scroll_h = webdriver.execute_script("return document.documentElement.scrollHeight").to_i

  repeat = (scroll_h.to_f/inner_h.to_f).ceil
  dupl_h = inner_h - (scroll_h % inner_h)

  tmp_fnames = []
  tmp_basename = fname_prefix

  #2. スクロールしながらキャプチャ
  repeat.times{|i|
    tmp_fnames << tmp_fname = tmp_basename + sprintf("%06d",i) + ".png"
    webdriver.save_screenshot(tmp_fname)
    sleep (0.3)
    webdriver.execute_script("window.scrollBy(0,#{inner_h})");
    sleep (0.3)
  }

  if tmp_fnames.length > 1
    #一時ファイルが2つ以上の場合
    #3. 最後の一枚のみ重複ができるのでImageMagickを使ってカット
    if dupl_h > 0
      `convert -chop 0x#{dupl_h} #{tmp_fnames.last} #{tmp_fnames.last}`
    end
    #4. ImageMagickを使って全ての画像を結合
    `convert -append #{tmp_fnames.join(' ')} #{tmp_basename}.png`
    File.unlink *tmp_fnames
  else
    #1つの場合は一時ファイルをリネームするだけ
    File.rename(tmp_fnames[0],"#{tmp_basename}.png")
  end

end

ちなみにMacのSafari、Chromeでも同様の方法でいけるが、Retinaの場合は重複カットする際のピクセル数を2倍(正確には、JavascriptのdevicePixelRatioで取得可能な値倍)にする必要があるため要注意。