「クローリングハック」という本を共著しました

クローリングハック あらゆるWebサイトをクロールするための実践テクニック

クローリングハック あらゆるWebサイトをクロールするための実践テクニック

前チームの上司である@takezoenさんや@chibochibo03さんや同僚といっしょに書いた「クローリングハック あらゆるWebサイトをクロールするための実践テクニック」という本が、明日14日に翔泳社さんから発売されます。

僕は3章の「文字化けと戦う」と他の章のコラムをちょこちょこ書いたりしました。

ありがたいことにamazonの「Webプログラミング」カテゴリの1位にもなったみたいです🙏 f:id:todokr:20170913185336p:plain

この本では、クローラーの仕組みやHTTPについてなどの基礎から、文字化けを防ぐテクニックやスクレイピングの肝、認証が必要なサイトやSPAのクローリング、大規模なサイトを効率的にクロールするテクニック、謎挙動サイトにどう対応するかなど、そこそこ以上の規模の実用的なクローラーを作る上でおさえておきたいポイントについて解説しています。

クローラーの開発に携わる方はもちろん、HTTPやHTMLなどWebの仕組みを深く知りたいWeb制作者の方にとっても役立つ内容になったのではないかなと思います。

また書籍をご購入いただいた方は翔泳社さんのサイトから応募していただくと、curlのオプションをまとめた「curlの極意」という特典PDF(12p)が受け取れますのでぜひどうぞ(^q^)

www.shoeisha.co.jp

8月の絵文字界隈

なかなか面白いトピックが多かったのでちょこっとまとめてみました。

Unicode11.0の絵文字プロポーザル

8/3にワーキングドラフトが公開されました。新たに64種類の絵文字が候補に挙がっています。

http://www.unicode.org/L2/L2017/17284-emoji-recs.pdf

注目はL2/17-082で提案された頭髪絵文字でしょうか。これは既存の絵文字と頭髪絵文字を組み合わせることで髪型を表現しようというものです。
赤毛や白髪、カールした髪型やツルツルピカピカな頭を表現するための文字が提案されています。

f:id:todokr:20170902180536p:plain

http://www.unicode.org/L2/L2017/17082-natural-hair-color.pdf

一部の絵文字については、固有のコードポイントを割り当てるのか、それとも合字やZWJとして表現するのかで議論が紛糾している印象です。
たとえばSMILING FACE WITH CAPEというスーパーマン的ヒーローを表す顔絵文字が提案されているのですが、「一般的に顔絵文字はEmotionを表すものだが、これはRoleを表すものなので単体の絵文字ではなくZWJで表すべきである」という意見などが挙がっています。

f:id:todokr:20170902180806p:plain

いわば絵文字セマンティクス的な概念が誕生しているような気がしてなかなか興味深いです。意味的には単体の絵文字にするべきではないような気もしますが、かといってZWJが理想的かというとそうでもなく、フォントへの依存を高めてしまうのでなかなかに悩ましい問題ではあります。

Android 8.0 Oreoのリリースと収録された絵文字

Android 8.0 OreoではUnicode Emoji 5.0がフルサポートされ、新たに69種類の絵文字が加わりました。

f:id:todokr:20170902174432j:plain

https://blog.emojipedia.org/android-8-0-emoji-changelog/?utm_campaign=Emoji%2BWrap&utm_medium=web&utm_source=Emoji_Wrap_16

f:id:todokr:20170902175015p:plain

Face Vomitingなどは気分を害した際に積極的に使っていきたい感じがあります。

ハッシュタグ10周年とhashflag

news.livedoor.com

Twitterハッシュタグが10周年です。
あまり知られていない気がするのですが、Twiiterでは特定のハッシュタグの末尾に自動的に(Twitterオリジナルの)絵文字が追加されます。

f:id:todokr:20170902175030p:plain

これはhashflagsと呼ばれるもので、一覧は下記で確認できます。

hashfla.gs

メールで絵文字を使うと「仕事ができない」とみなされるという傾向があるという調査結果

www.forbes.com

調査によれば、笑顔の写真付きメールを受け取った場合、受信者は相手の温かさと能力を高く評価する傾向があるものの、スマイル入りメールを受け取った場合は温かさを高く、能力を低く評価する傾向があるということです。
「職場で顔文字や絵文字を使用したい場合は、職場の文化をまず理解してください」はまあそのとおりだと思います。

Facebook Emojiにblack peopleの家族絵文字が追加

blog.emojipedia.org

Facebook Emojiに新しくblack peopleの家族を表現する絵文字が125種類追加されました。
ちなみにこの分野はMicrosoft Emojiが先行していて、昨年のWindows10には52,000種類の家族絵文字が追加されています。

実際にはコードポイントのレベルで絵文字が追加されているわけではなく、ZWJに対応するフォントが増えた形ですね。
このあたりの仕組みの話は去年のEmoji Advent Calendarで記事を書きました。

qiita.com

Adobeジェンダーレス絵文字

news.livedoor.com

デザイナーのポール・ハントさんはEmojiconでも登壇をしていました。
デザインからジェンダーを切り離すことがいかに難しいかを実感させられますが、それでも理想の状態を追い求める姿には胸を打たれるものがあります。
絵文字というのは社会学政治学とテクノロジーの交差点にあたる分野なのかも知れません。自分が絵文字を面白いと思う理由はそのあたりにあるのかなという気もしました。

9月もいろいろあったらまとめるかもしれません…

sbtからMaven Centralにライブラリをpublishする

毎回ググり直している気がするのでメモを…

初回のpublishはsbtのドキュメント通りにやれば問題ない(なかったと思う)です。

sbt Reference Manual — Using Sonatype

2回目以降の手順については以下。

1. sbtからpublishSignedタスクを実行する

$ sbt publishSigned

2. PGPパスフレーズを入力

Please enter PGP passphrase (or ENTER to abort)と聞かれるのでを入力。 パスフレーズは初回時に自分で設定しているはずなので頑張って思い出す。

3. SonatypeからCentral Repositoryにリリース

2が成功するとSonatype社のリポジトリにリリースがされる。
ここからMaven Centralに向けて再度リリースをする。

ここからの手順はこちらを参考に。 central.sonatype.org

まずはSonotypeのリポジトリにアクセスしてログイン。

Nexus Repository Manager

左側のメニューからStaging Repositoriesを選択し、先ほどリリースした自分のライブラリにチェックを入れる。
チェックを入れたら上のメニューのCloseをクリック。しばらく待って完了したらReleaseをクリックしてMaven Centralへリリースを行う。

f:id:todokr:20170728184748p:plain

絵文字URL短縮サービスをつくりました😎

f:id:todokr:20170710194311p:plain

Unicode Emojiを利用したURL短縮サービスを作ってみました。

何かしら絵文字を使ったサービスを作ってみたいなーとは以前から考えていたのですが、「絵文字の種類数を基数としたN進数でURLを短縮するのはどうだろう?」と思いついたのでやってみました。

バックエンドはScala + PlayをElastic Beanstalkで動かしています。短縮URLのリダイレクトにはS3のWebsite Redirect Location機能を使っています。 (今考えればAWS JavaScript SDK + Cognito + S3でサーバーレスにしてもよかったかも知れません…)

遊び半分で作ってみたものなのでずっとサービスとして提供し続けられるかは分かりませんが、ふとした折に使っていただけると幸いですw

Emoji URL Shortener

Scala Days 2017 Copenhagen 3日目

f:id:todokr:20170604040655p:plain

とうとう最終日です。

Keynote: Open source is just about the source, isn’t it?

最終日のキーノートはApache Mahoutのファウンダーである@mainecさんによるOSSについてのセッションです。

続きを読む

Scala Days 2017 Copenhagen 2日目

f:id:todokr:20170602131606p:plain

元気よく2日目に行ってまいりました。

Tools for Verified Scala

2日目のキーノートはEPFL内の研究室で開発されたstainlessというコード解析ツールについてです。

続きを読む

Scala Days 2017 Copenhagen 1日目

Scala Days 2017 Copenhagenの1日目に参加してきました。 f:id:todokr:20170601042032j:plain

初日はScalaの作者であるMartin Odersky先生による「What’s different in Dotty?」というキーノートです。

続きを読む