swimming pig

当てもなくもがく一人の人間の日記

効率的な仕事をするためのTipsはだいたい揃っていると思う

いろんな自己啓発本、とくに「ハーバード大教授が書いた!」「論文による実証結果に基づく!」「米ベストセラー!」といった煽り文句のついたおしゃれで白基調で紀伊国屋のカウンター前に平積みにされている系は結構読んだ。

これらを全部実践すれば生産性爆上げ年収2000万ワークライフバランス充実男になれるはずだ。

  • ジャンクを食うな。精製されたもの食うな
  • 野菜、果物、豆食え

  • できるだけ飲むな
  • 飲み会にはできるだけ参加するな

コーヒー、レッドブル

  • あんまり飲むな

睡眠

  • ぜったいによく寝ろ
  • 飲み会とか行くな
  • 早寝早起きしろ

運動

  • しろ
  • 朝走れ

仕事

  • 朝集中できるからできるだけ会議入れずに作業しろ
  • 自分にとって意味のないくだらない仕事は拒否しろ
  • やりたいこと、カネになることに集中しろ
  • 雑用は人に押し付けろ
  • メールを見るな、SNSするな、スマホを近くにおくな
  • タスクを細分化しろ
  • 時間を区切って仕事しろ
  • 疲れたら早めに帰れ

mtg

  • 意味のないmtgは拒否
  • 時間は短く、立ってやれ
  • 事前にアジェンダと方向性を用意(官僚かよ)

やる気ないとき

  • タスクを細分化しろ
  • 未来を考えろ

ただのつまらんいやなやつじゃん。。 あと、探索と活用でいうととにかく活用にふれっていう話が多くてそれって長期報酬低めじゃねっていう

研究分析のパイプラインを考える(振り返り1回め)

delma.hatenablog.com

書いてから2週間経ったので振り返り。

新ルール(仮)

  • とっかかりはrmdかjupyter。
  • 検索可能性が上がるようにproject毎にまとめる。
  • projectごとにレポジトリを作る
  • 作業のおおまかな計画的なやつはreadmeを更新していく。タスク管理はgithubのissueを使う
  • rmdもjupyterもファイル名に日付をいれる。"[prjname]_20190201.{Rmd|ipynb}"
  • 日付ごとに作り直す。
  • esa, google suit, overleafは用途に応じてメモからつくる
  • 社内向けや時間がない場合はjupyterはcolaboratoryに変換してシェア。rmdはpdfにする

振り返り

  • rmd or jupyterというのはできてきた気がする。
  • 新プロジェクトをどこに設置するのかはまだ悩ましい。とりあえず全部repositoryつくってしまうのは勇気がいる。
  • 名前付けは、20190201_prjnameにしている(ソートしやすい)
  • 日付ごとに作り直すのは結構面倒だが、まあやったほうがいいかな

見えてきた課題

  • SQLをどうするか。できるかぎりjupyter rmd化か。
  • ちょっとした作業をどうするか。sandboxつくるか。
  • サーバーの立て方とかtipsのメモはどうする。ここに書くか、mdにしてローカルに保存
  • イデアは?ここにはかけないのでgooglekeepに。
  • 議事メモは?mdにしてローカルに保存でいいか
  • もらった資料は?わかりやすい名前つけてローカルに保存か。

放っておくとごみみたいなインプットしかしない自分にとってアウトプットのためにインプットする機会は貴重だ。世のブロガーがよくいうアウトプットせよというのはこういうことなのか。

スクレイピングスクリプトのよくあるエラーについて

自分が遭遇するウェブクローリング・スクレイピングのエラーはたいてい、StaleElementReferenceExceptionWebDriverException: Message: unknown error: Element is not clickable at pointあたりだ。 スクロールしないと取得できない要素だったり、画面外の要素を取得できなかったりということが理由と考えられる。 基本の対処法は2つ。 1つめは、スクロール。 driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")をいれることで、要素の出現を促す。 画面外と指摘される場合は、その要素が出現する箇所までスクロールする。

button = driver.find_element_by_tag_name('button')
for i in range(50):
    driver.execute_script("window.scrollTo(0, {})".format(i*100))
        try:
            button.click()
            break
        except WebDriverException:
            pass

2つめは、リトライ。 時間をあけて何回か挑戦する。

# 初期設定
failed = True
try_cnt = 0
# クリックできるまで、10回までトライする。
while failed and try_cnt < 10:
          if try_cnt >= 10:
             break
          try_cnt += 1
          try:
                s.click()
                failed = False
          except WebDriverException:
                time.sleep(1)

番外編として、クリックする前にマウスオーバーする。 有効な場合もある。

s = driver.find_element_by_tag_name('span')
hover = ActionChains(driver).move_to_element(s)
hover.perform()

初心者のためのgit

gitはよくわからないが、自分が日常これだけ覚えてれば大丈夫というもの github flowによっている(つもり)

新たにファイルを作ったとき

とにかくまずブランチを切る

git pull # 最初にローカルの状態をレポジトリと同じにする
git branch -b hogehoge

つぎにadd

git add hoge.file

コミットする

git commit -m "I made hoge"

プッシュする

git push origin hogehoge

githubでプルリクエストを作りレビューを受けてマージ

ブランチを削除する

git checkout master # マスターブランチに戻る
git branch -D hogehoge