taiki-t's diary

きぎょうにっき, React Native, Rails そして雑多な記録: The world is waiting for you to give it a meaning.

一括ダウンロードがないページで無理やり全部ダウンロードするchrome console スニペット

プロローグ

一括ダウンロードしたいけど一括ダウンロードボタンがない時がある。 ログインが必要ない画面だったらwgetなりで引っ張ってくればいいんだけど、管理画面とかだとちょっとしたそういうのがめんどくさい。 chrome consoleからやればページさえ開けていれば一括ではないけれど自動化できるのでそうすることにした。

コード

const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))
const links = $$("任意のセレクター, a要素を選択")
for (const link of links) { link.click(); await sleep(3000); console.log(link) }

sleepは状況に合わせて適当に時間を。for...ofを使ったのは、forEachとかmap内では非同期処理ができなかったから。

papertrailのlogダウンロードならこんな感じ

const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))
const links = $$("#archives-list > ul > li > span > a")
for (const link of links) { link.click(); await sleep(3000); console.log(link) }

セレクターもchrome consoleで簡単にとってこれる

f:id:taiki-t:20180521200939p:plain

余談

最近暑くね

曲作り

はい

soundcloud.com

手書きで楽譜をかけるアプリをiPadに入れたので記念に作ってみたやつ タッチノーテーションてやつ。音はLogic Xのピアノに差し替えてある。

React Native (iOS)で電話番号のリンク

Androidはまた別ぽいけどiOSだけ対応でざっくりやるならこんな感じ

<View>
  <Text
    style={{textDecorationLine: 'underline' }}
    onPress={() => {
      // <actural phone number>は実際の番号で置き換える
      const url = 'tel:<actural phone number>'
      Linking.openURL(url).catch(err => console.error('An error occurred', err));
    }}
  >
    電話をかける
  </Text>
</View>

Linkingコンポーネント使ってtel:nnnuuuummmm形式のurlひらけば良い

メモ: GitHubにpush/pullする時に毎回SSH key使うためにパスワード入れないといけない問題

極たまに設定が必要な状況になって毎回調べてる気がするのでメモ これ:

Generating a new SSH key and adding it to the ssh-agent - User Documentation

読書メモ: Learn You Some Erlang for Great Good!: Introduction

はじめに

個人の話

並列処理という言葉自体がもつ魅力、そしてたまに聞く噂話が積み重なって、とうとうErlangへの好奇心を抑えきれなくなった。2017年も最後の日にしてErlangについて学び始めた。2018年も最初の日にしてLearn You Some Erlang for Great Good!を読み始めたのでその記録を残そうと思う。

Learn You Some Erlang for Great Good!について

邦訳では「すごいErlangゆかいに学ぼう! 」という題で出版されている。

すごいErlangゆかいに学ぼう!

すごいErlangゆかいに学ぼう!

英語版はIntroduction | Learn You Some Erlang for Great Good!で読める。今回はこれを読んでいく。

読書メモ

(メモだから主観も含まれるし翻訳じゃないよ)


http://learnyousomeerlang.com/introduction#about-this-tutorial

So what's Erlang?
  • Erlang関数型言語。しかし現実の問題に即して実用的なアプローチを取る。すなわち、参照透過性やデータのimmutabilityといった関数型言語の原則は適宜破られる。
  • 同時に多数のタスクを処理するために、ErlangErlangアクターモデルを採用している。アクターはそれぞれVM上の独立したプロセス (注: 他資料によるとOSのプロセスとは異なる)
  • プログラマーは、互いにメッセージの受け渡しをしない限り他のコードとは情報を共有しないアクターを書くことが求められる。
  • Erlangは言語レベルでアクターモデルを使うように設計されているが、それだけではない。Erlangは全体として開発環境であり、compiler, debugger, profiler, test framework), the Open Telecom Platform (OTP) Framework, a web server, a parser generator, and the mnesia database, a key-value storage systemといったものを含む
  • 他、Erlangの一般的な方針として "Let it crash" がある
Don't drink too much Kool-Aid
  • Erlangのプロセスはとても軽量だが、使えるからといって使わなければならないということではない
  • アクター間のメッセージ交換にもコストはある。タスクを分割しすぎれば当然システムは遅くなる
  • 何でもかんでもいつでも並列処理すれば早くなるってもんじゃない。ただ並列処理をすれば早くなる時というのはある
  • 物事には適材適所というものがある。Erlangも例外ではなく銀の弾丸ではない

曲作り

少し前に作った半端のやつ 息抜きの間にやるのでだいたい半端。 悲しい気分だったんだと思う

soundcloud.com

サムネイルで自分の顔アップになんのきついな‥w

曲作り ゲームの町っぽいの

昔作ってあったやつ 昔のゲームの町っぽいやつ作りたいなーと思って作った。 最後のところ、和音全部入れてるけど1個抜かしてもいいんじゃないかなーって思ってる。どうだろう。

www.youtube.com