2014年3月13日木曜日

[Android] 画面回転を固定する

AndroidManifest で Activity ごとに設定できる。
<activity> </activity> の間で android:screenOrientation を指定。
  • "portrait"
    • Portrait(縦向き)で固定
  • "landscape"
    • Landscape(横向き)で固定
  • "unspecified"
    • デバイス設定に依存。これがデフォルト値

2014年3月12日水曜日

[Python] Seleniumでブラウザ作業を効率化!

「エクセルの表を見ながら、ウェブサイト上の該当するチェックボックスをひたすらポチる」みたいな作業が最近あって、Seleniumを久々に使ったのでメモ。

Selenium は簡単に言うと、ブラウザでの作業を自動化するときに使うライブラリです。たぶん色んな言語用のものがあるのだけど、Python版しか使ったこと無いので今回はそれで。
作業自動化の方法とかは色々ありますが、これのいいところは、
  1. HTML Elementsを直接いじるので、直感的に分かりやすい
  2. ログインが必要なページとかでもセッションとか気にせず使える
  3. なんか勝手にブラウザが動いて楽しい
公式のDocumentが大変にわかりやすいのでまずはこれを見ましょう。

Selenium with Python
http://selenium-python.readthedocs.org/

インストール後は使い方も簡単で、よく使いそうなものをまとめました。

ブラウザの起動

webdriverに対して欲しいブラウザを呼んでやればOK。例えばFirefoxなら

browser = webdriver.Firefox()

Chromeも対応してます。

elementの取得

主に2種類。find_element_by系とfind_elements_by系です。
find_elements_by系だと該当するelementsを全て取得してくれるので、これで複数のelementsを一気に取得して、forで回して使う感じです。
例えば、'abc' っていうclassの要素を一挙取得する時はこんな感じ。

abc_elements = driver.find_elements_by_class('abc')

もっと細かく指定するときはfind_elements_by_xpathを使うとXPathが使えるので、例えば「'abc'っていうclassを持つformの中の一番最初のinput = "//form[@class='abc']/input[1]"」とか指定できます。
取得したelementに対してさらにfind_element_by_xpathをすると、相対パスを辿れるのも便利です。例えば一個前なら element.find_element_by_xpath('../') という感じ。

動作系

フォーム入力とか、クリックとか、ページ遷移とか。

element.send_keys('text') # formへの入力
element.click() # buttonのクリックや、チェックボックスのチェック(toggle
driver.get('http://www.google.com') # ページ遷移
driver.back() # ブラウザの「戻る」
driver.forward() # ブラウザの「次へ」

あとは、DOM要素の変化を待って何か次の動作を起こす Wait系 があります(割愛)。

実装自体は超簡単で、正直手間取るところはxpathの指定くらいです。
というか、自動化対象のサイト構造を把握する必要があるので、自分のサイトじゃない場合はそこが一番時間かかります。最初に挙げたDocumentには、xpathの取得におすすめのツールがいくつか紹介されてるのですが、あんまり試してないのでこれはまた試したら感想載せます。


2014年3月9日日曜日

圧力鍋の焦げと格闘した話

こんにちは。この間カレーを作っていて鍋を盛大に焦げ付かせてしまいました。 

いろいろ調べた結果、「重曹を使えば魔法のように落ちるよ♪」という情報がたくさんありましたが、ぶっちゃけそんな簡単じゃなかったです。

一週間こつこつがんばって元に戻したのですが、結局トライしたことは下記の3つ。
  1. ペットボトルの蓋でこする
  2. 重曹を溶かした水を沸騰させる
  3. 爪とかスプーンとかでひたすら擦る
最初、焦げの比較的簡単に剥がれる部分をペットボトルキャップで取ります。結構疲れるけど、焦げついた食べ物とかはこれで落とします。
次に重曹を溶かした水を沸騰させる。水200gに重曹大さじ1杯とのことですが、もう適当に重曹たくさん放り込みました。焦げが剥がれて浮いてきます。


沸騰後さめるまでほうっておくと焦げの大部分が剥がれやすくなっているので、これを再びペットボトルキャップで削り取ります。これでかなり綺麗になって、こんな感じ。


それでも多少残ってるので、最後は爪とかでこすります。スプーンとか使ってもいいのですが、鍋に傷がつくといけないのでスプーンを何か他のもの(キッチンペーパーとか)にくるんで使うとよいでしょう。

最終的には、こんなに綺麗になりました!


これからは焦げ付かせないように気をつけます。。