インフラエンジニア5年目くらいまでで読んでよかった本・ドキュメント

たぶんこれは、もうちょっと読んでもらおうと思ったら「未経験からインフラエンジニア3年目、読んでよかった本」みたいなタイトルであるべきで、しかし致命的なことに俺はそういうフレッシュなことを書くにはちょっと年を取りすぎてしまってるんですよね(ため息)。 まあでも、時分用のメモとしてはとりあえず書き残しておくのも悪くないなと思って書いておきます。(注:今が5年目ではない)

続きを読む

rtweetパッケージでTwitter APIからデータを取るのが超お手軽になってた

Twitter APIからデータを取得するにはrtweetパッケージを使おう、という話は前に書きましたが、Twitter APIを使うにはトークン取得のために各自でTwitterアプリを登録する必要があり、やや面倒でした。 例えば2017年9月のこの記事ではその登録の仕方を詳しく説明しています。

しかし、そのちょっとあとにrtweet作者とHadleyがこんなやりとりをしてるのを目にしました*1。なんか自分でアプリ登録しなくてもrtweetパッケージのアプリを使えそうな雰囲気...?

*1:なぜTwitterアプリを各自で登録しないといけないかというと、APIへのリクエストのrate limitがあり、rtweetパッケージ全体で同じアプリIDを使ってしまうとそこに引っかかりやすいのでは?という説明でした。が、それは勘違いで、アプリIDが同じだろうが違おうが制限はユーザごとにかかるものでした。ということでパッケージに埋め込むことになったようです。

続きを読む

usethis::use_dev_version()が、おれの道を教えてくれる。(あるいは、CRANにリリースした後にやるべきこと)

よくきたな。おれはyutannihilationだ。 この記事を読んでいるということは、おまえはパルプRパケージ作者であり、すでに闇と向き合いCRANデビューを果たしていることだろう。

続きを読む

メモ:.Primitive()でメソッドディスパッチされる仕組み is どこ...

この現象を解き明かしたい。

文字列は足せない。

"a" + "a"
#> Error in "a" + "a": non-numeric argument to binary operator

character用のメソッドを作ってもディスパッチしてくれない。

`+.character` <- paste0

"a" + "a"
#> Error in "a" + "a": non-numeric argument to binary operator

のに、なぜかcharacter以外のクラスのメソッドにするといける。

x <- structure("a", class = c("foo", "character"))

`+.foo` <- paste0

x + x
#> [1] "aa"

あと、これでもいけた。implicit classじゃだめってことか?

`+.character` <- paste0
x <- structure("a", class = "character")
x + x
#> [1] "aa"
続きを読む