「snowflake」を含む日記 RSS

はてなキーワード: snowflakeとは

2019-09-01

エンジニアって結局英語どれくらいできればいいの?

先日TOEIC980点を取った。

ただ正直まだまだ全然文を読めている気がしないし、読んでて難しいなと思うし、知らない単語なんて毎日のように見かけるし、洋書を読むのはかなり骨が折れる、あるいは挫折する。一応通読したものはあるけど数えるほどしかない。

ここまで達するのにそれなりに苦労した気がするけど、ふと周りを見渡すと英語で苦労したという話は全然聞かない。自分は会話も無理で、やっとこさなんとか読めるようになり始めたぐらいの感覚なのに、周りはそんな苦労なんかしたことないけど英語できるよって人が多い感じがしている。優雅雰囲気で「英語読めます」って雰囲気出しやがって。殺すぞ。

英語公式ドキュメントくらい誰でも読めるでしょ」とかすぐ言うし、しれっと「これ読んだらこう書いてあったよ」と言って英文提供してきたりする。かなりうざい。結局読むけど。

一方で、そういう人がzealとかinterpolateとかorcaとかitineraryとかembarkとかloomとかgnawとか、そういう初歩的な単語は知らなかったりして、不思議だなと思ってる。こういう人たちが英文をどうやって読んでるのか全然からない。読めてるふりしてるだけだろって勝手にキレてる。

英語ドキュメントはそれがなんであれ読むのが難しい。技術文書のどこが簡単なんだ。一個でも読み間違えたらアウツの文が簡単とかふざけんなって思う。日本語ときと読むスピードが圧倒的に違う。まず英語が目に入るだけで「うっ」となるのは昔から変わっていない。それが一応耐えれるようになっただけで、日本語を読むときの辛さと違う。ときどき読み間違えて、ほんとうにつらい。これはもう慣れしかないんだろうか。ときどき意味不明表現とか見かけるし、新語の隠された意味とか知らんがな。snowflakeとか、おしゃれでもなんでもないし。

コンピュータは好きだけど、英語が敵すぎて毎日つらい。英語さえなければもっと楽しく生きていけたのにと思ってしまう。実際最近英語を捨てて日本語だけで勉強したら捗ることこの上ない。「こんだけかよ」とか「すごく簡単だな…」などと思い、今まで英語に阻まれてきた「わからない感」が消え去った。英語は死んでほしい。別に英語やりたくないのに英語やらないといけないの死ぬほどうざい。

しかくそムカつくのは英語勉強したのにあんまり役に立ってない。結構高度なことでも和訳とかあって、人の努力嘲笑う感じのものが多く世にある。それなりに英語できて得になったこともないわけではないけど、その分コンピュータ方面に費やしてた方がよかった。でもコンピュータ方面も突き詰めようとするとすぐ英語出てくるしこれはよかった。まあでもそれだけ。

英語わかんなくてもコード読めばだいたいわかるよ」とかそういうのは求めてない。うるせえな。英語諦めた勢の人の話は聞きたくない。どうでもいい。

結局エンジニア英語がどのくらいできればいいのか、そこまでどうやって到達すればいいのか、どのくらいやればいいのか、ただただイラついている。

大変だけどこれやれば確実に大丈夫っていうのがほしい。教えてえらい人。

追記

誰も「技術文書が読めない」とは言ってないだろ。日本語ときのようにスラスラ技術文書が読めないだけだわ。俺より英語できないのにクソバイスしてくんなよ。お前より読めるわ。死ね

2019-04-03

件のツイートタイムスタンプ

2016年7月13日19:41に下記のツイートがされている。

明治大正昭和平成令和

違和感いね

https://twitter.com/syaaaan_/status/753177564164653056

これがトリックだと仮定すると、すぐに思いつくのは、投稿日時をあとから書き換えるハックだと思う。

ところで、ツイッターURLタイムスタンプ情報を含む。

いくつかの解説記事によると、id は以下のような 64 ビット整数であるようです。

+--------------------+--------------------+-------------------+

timestamp (42 bit) worker-id (10 bit) sequence (12 bit)

+--------------------+--------------------+-------------------+

それぞれの意味は以下の通り。細かいことは snowflakeソースコード*2を見て確かめました。

sequence: 同じミリ秒枠内での衝突を回避するためのシーケンス番号(ミリ秒ごとに 0 リセット

worker-id: この id を発行したサーバ固有の番号 *3

timestamp: System.currentTimeMillis() - 1288834974657L の値。(2010-11-04 10:42:54 頃からの経過ミリ秒

上位ビットが timestamp なので、この番号はおおよそ時間順に増えていきます

https://mametter.hatenablog.com/entry/20160920/p1

ということでツイートURLが示す時刻を計算してみる。

1.タイムスタンプ関係ない下位ビット無視

753177564164653056÷2^22 = 179571524659 (ms)

2.ミリ秒を日に換算

179571524659 (s) = 2078.374128 (day)

3.2010/11/4 10:42:54 の 2078.374128日後を計算する。

エクセルだと、日付は1日が1なので、単に足し算すれば良い。)

結果は、……なんと2016/7/13 19:41になった!

ということで、ツイートURLタイムスタンプは一致していた。びっくりだ。

もし、ツイートタイムスタンプを後から改ざんすることで前述のツイート作成したとすると、タイムスタンプと同時にURL改ざんする必要がある。

(もしくは、タイムスタンプ改ざんするとURLも書き換わる仕様になっている必要がある。)

そんなことは可能なのだろうか。

識者によるトリック解説を待ちたい。

2018-12-16

ふと今聞いている音楽リリース年を見て唖然とした・・・

je t'aime★je t'aime 2003年・・・15年も前

Let Me Be With You  2002年・・・16年も前

snowflake like a chiffon 2003年・・・15年も前

この15年間何をしていたんだろう

2012-01-12

snowflakeの実際

人によっては今更だけれど某/.の記事で知ったので、ちょいと調べてみた。

コード

https://github.com/twitter/snowflake/blob/master/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L22

https://github.com/twitter/snowflake/blob/master/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L89

このあたりの定数と式がコアな部分かな。

計算機

53bit超えの精度で計算出来ない事が意外と多い。google計算してくれなかったりするのでWolfram|Alphaを使う。

サンプル

同じ人のもの、別の人のもの、別の地域もの、を集めてみた。

twitter.com/#!/quolc/status/156410708081377280
twitter.com/#!/quolc/status/156409454324232194
twitter.com/#!/quolc/status/156407150216884224
twitter.com/#!/quolc/status/155965255229509632
twitter.com/#!/quolc/status/155964655032991744
twitter.com/#!/quolc/status/155964103226167296
twitter.com/#!/quolc/status/155953308895412224
twitter.com/#!/t_n_tommy/status/157348397970493440
twitter.com/#!/t_n_tommy/status/157133936789692416
twitter.com/#!/t_n_tommy/status/157132545325142016
twitter.com/#!/SoVeryAwkward/status/157247986714423296
twitter.com/#!/SoVeryAwkward/status/157232924117315586
twitter.com/#!/SoVeryAwkward/status/157215634772594690
twitter.com/#!/ddlovato/status/157314029247938560
twitter.com/#!/ddlovato/status/157308852327563264
twitter.com/#!/ddlovato/status/157274729412165632

結果

結果はめんどいので貼らない。最初のだけURL貼っておく。

sequence

http://www.wolframalpha.com/input/?i=156410708081377280+%25+%28+2+%5E+12+%29

いくつか2だが、あとは0。探すと奇数のもあって1だったりするから、1がないのはたまたまかな?

sequenceのカウンタ部分は以下だが、これが回ることがあるのはさすがtwitter

https://github.com/twitter/snowflake/blob/master/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L71

workerId

http://www.wolframalpha.com/input/?i=%28+156410708081377280+%3E%3E12+%29%25%28+2+%5E+5+%29

若干動く感じ。概ね0-4かな?

datacenterId

http://www.wolframalpha.com/input/?i=%28+156410708081377280+%3E%3E17+%29%25%28+2+%5E+5+%29

これは全部1。地域差があるのかと思ったけど同じだった。

バルス

あとtogetterから例のバルスを回収してみた。

twitter.com/#!/koizuka/status/145146329490927622
twitter.com/#!/musuka__bot/status/145146343462154244
twitter.com/#!/Royal_Host/status/145146355013267458
twitter.com/#!/SNOOPYbot/status/145146357689225220

sequenceはさすがに回り気味だが、意外にもworkerId、datacenterIdは相変わらずっぽい。

まあ、25千tpsらしいので、キューで均されてsequence*workerが5*5くらいあれば回せるという事なのかな?

日時

ちなみに日時の計算はこんな感じ。確かにその通り。

http://www.wolframalpha.com/input/?i=DateList%5BInt%28%28%28+156410708081377280+%3E%3E22%29%2B1288834974657%29%2F1000%29%2BAbsoluteTime%5B%7B1970%2C1%2C1%2C9%7D%5D%5D

まとめ

日時はソース通り、datacenterIdは1、workerIdは0-4、sequenceは、平時なら概ね0、回っても2まで。

今の所それが自然っぽい。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん