2018年5月21日
2018年5月12日
TED: メモ
アメリカの黒人差別は何となくは理解できるのだが、正直なところアメリカにいても実感がわかなかった。このTED動画で、初めて痛烈に理解できた。親が子供に生きて帰ってきてもらうために、遊び方や、行動の仕方について、何より白人とは違うと、教えないといけない事実は強烈だhttps://t.co/rYAL4ecXJ3
— 大須賀 覚 (@SatoruO) 2018年5月10日
2018年5月8日
ツイートメモ
「なぜソニーは凋落したか。それは今のソニーは『ソニーに入りたくて入社した人』ばかりだから。面白いことをしたい人たちが集まったのが昔のソニーだった」。これは聞くに値する金言だ。大新聞、名門雑誌、有名テレビ局、いろいろ見たが、いまや「そこに入りたくて入った人たち」が多数を占める。
— OGAWA Kandai (@grossherzigkeit) 2018年5月7日
エッチ絵のエッチ度はFav数/Rt数が強力な特徴量になってるのを発見しました。
— ☔️⚡️ (@nardtree) 2018年5月8日
この比率が高いとFFに人格が疑われるからFavだけする心理が働くようです。
やっぱりTCPだとスループットあんまり出ないから時代はUDT
— メテオ (@meteor_saan) 2018年5月11日
ちなみにSRTでUDTを使ってる話はここに少し書いています https://t.co/GIuGA3GSYK
— メテオ (@meteor_saan) 2018年5月11日
pixivが昔使用していたB-28型機サーバー。
— pixiv (@pixiv) 2016年8月7日
1台平均5万円。1ラック当たり20台。
営業担当の女性社員までもが“自作”するというお手製サーバ群でした。#なんでもない写真を平成明朝体w9で特撮っぽくする遊び pic.twitter.com/XMCGaGmhYv
#中の人トリビア
— pixiv (@pixiv) 2016年5月24日
pixivは現在でも最新鋭のベニヤ板サーバーで開発されている pic.twitter.com/jPbdXqUyW4
pixivってネットワークはおろか電源すら冗長無しなのか……1Uを積層してるのもなんか無駄臭い。トラブル多発してる原因って、この冗長性皆無なサーバーのせいじゃ無いよねw QT @pixiv 写真はpixivを支えているサーバーです。 pic.twitter.com/iNMnshZY
— インバース (@Inverse_jp) 2012年12月1日
自分ならこれだけ積層するならブレード入れる。エンクロージャ2台にして、仮想化してサービスはVMで提供。HAで冗長化すれば障害にも耐えられる。拡張性も確保できる。 QT @pixiv 写真はpixivを支えているサーバーです。 pic.twitter.com/iNMnshZY
— インバース (@Inverse_jp) 2012年12月1日
@Inverse_jp システムでデータの分散確保で冗長性を確保して、後は安価なHDD付1Uで対処、コストを下げた構成じゃないのかな。KVSを利用してるような感じで。ブレードと仮想化はコストかかるからWEBサービスだけに特化してたら割にあわないと思うなぁ
— Nobuaki NASU (@nobunasu) 2012年12月1日
@Inverse_jp だって基幹向け業務じゃないじゃん、pixivって(笑) そういうところはコスト命だから、町医者的な感覚でシステム構成取らないと事業にならないし(^^;) あれはmixiとかGoogle的アプローチですから、そこにときめく人にはいいと思うなぁ(^^)
— Nobuaki NASU (@nobunasu) 2012年12月1日
@Inverse_jp いんや?ぼくもブレードフル実装とSANを組んでの共有でやるシステムをいじくってるけど、KVS系というかHadoop系というか、「ノードは故障するもの」という前提の仕組みだとブレードのような小回りのきかないものより1Uの方がよいと思うよ。適材適所かなぁ。
— Nobuaki NASU (@nobunasu) 2012年12月1日
後輩が「日本の経済は土方が回してる」と言う為「東京五輪か?」と聞くと「コンビニバイトしてた時、一度の買い物で3千円位買ってって、釣り銭くれたり、募金するんす。逆にリーマンは携帯の無料クーポン出したり、数百円しか使わないんす」私も土方経験があるが、確かに金払いの良い先輩が多かった
— 佐原ディーン (@saharabingo) 2018年5月12日
コンビニで早朝バイトしてたとき、毎朝職人系のおっちゃんたちがいっせいに来ていろいろたくさん買っていってくれるのだが、いっせいにレジに並ぶので、どうしてもレジが混んでしまう。
— こいこ (@koikono1nichi) 2018年5月12日
だからおっちゃんたちは、商品を一個一個バーコードを上に向けて「ピッ」しやすいように並べて置いてくれる(^^)
さっき渡辺澄夫先生のHP見てて真実をみつけた.
— しえら(富江) (@sierrarries) 2018年5月14日
「この世の中で数学ほど厳しい学問はありません。 数学は、あなたが楽しく学べる範囲にとどめてください。数学に人生をかけている数学者のかた以外の人にとって健康と幸せは数学よりも大切です。」https://t.co/MxZmlc0cc0
朝起きた時に,今日も一日数学をやるぞと思ってるようでは,とてもものにならない.数学を考えながら,いつのまにか眠り,朝,目が覚めたときは既に数学の世界に入っていなければならない.どの位,数学に浸っているかが,勝負の分かれ目だ.数学は自分の命を削ってやるようなものなのだ.(佐藤幹夫)
— 数学の歩みbot (@Auf_Jugendtraum) 2018年5月5日
機械学習の実務で最も大切な能力は、ロジスティック回帰・ランダムフォレスト・xgboostのどれかでサクッとビジネスパフォーマンスをン十%アップさせることが可能なビジネス課題を嗅ぎ付ける嗅覚です
— TJO (@TJO_datasci) 2018年5月16日
ツイッターの構造
— アーニャ@着て暮らす (@cicada3301_kig) 2018年5月18日
・任意の分野に対して、自分より秀でた人が必ず存在する
・任意の個人に対して、自分のほうが秀でた分野が必ず存在する
当たり前だけど、この事実を認識すると立ち振る舞いが安定する
LinkedInで見かけたやつ。
— みやた二進いちろう (@s_miyatani) 2018年5月20日
CFOがCEOに聞いた『社員教育に投資しても辞めたら意味ないだろ』
CEO『教育しないでおいたのが辞めなかったらどうなる』
経営者に言って聞かせたい。https://t.co/G2bHtp2UuE
2018年5月2日
nginx メモ
worker process はこのあたりから?
for (n = 1; n < ccf->worker_processes; n++) {
nginx/src/os/unix/ngx_process_cycle.c
74: void ngx_master_process_cycle(ngx_cycle_t *cycle) {
-> worker process を起動している.
141:
if (delay) {
if (ngx_sigalrm) {
sigio = 0;
delay *= 2;
ngx_sigalrm = 0;
}
itv.it_interval.tv_sec = 0;
itv.it_interval.tv_usec = 0;
itv.it_value.tv_sec = delay / 1000;
itv.it_value.tv_usec = (delay % 1000 ) * 1000;
if (setitimer(ITIMER_REAL, &itv, NULL) == -1) {
-> 実行間隔の調整
728: static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data) {
-> worker process cycle というくらいだから,かなりメインのサイクルだんだろう.たぶん.
750: ngx_process_events_and_timers(cycle);
-> 他の箇所は,終了処理や,再読み込み処理?.実際の処理とウェイトを行っているのは,名前の通りこの関数だと推測される.
nginx/src/event/ngx_event.c
194: void ngx_process_events_and_timers(ngx_cycle_t *cycle) {
-> 上記の実体.
ngx_inet.c
1131: if (getaddrinfo((char *) host, NULL, &hints, &res) != 0) {
1239: freeaddrinfo(res);
nginx/src/os/unix/ngx_udp_recv.c
23: n = recv(c->fd, buf, size, 0);
nginx/src/core/ngx_connection.c
542: if (bind(s, ls[i].sockaddr, ls[i].socklen) == -1) {
595: if (listen(s, ls[i].backlog) == -1) {
798: if (listen(ls[i].fd, ls[i].backlog) == -1) {
nginx/src/event/modules/ngx_select_module.c
370: if (getsockopt(s, SOL_SOCKET, SO_TYPE, &n, &len) == -1) {
388: if (getsockopt(s, SOL_SOCKET, SO_TYPE, &n, &len) == -1) {
nginx/src/os/unix/ngx_process_cycle.c
210: if (ngx_close_socket(ls[n].fd) == -1) {
-> nginx/src/os/unix/ngx_socket.h
19: #define ngx_socket socket
33: #define ngx_nonblocking(s) fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK)
36: #define ngx_blocking(s) fcntl(s, F_SETFL, fcntl(s, F_GETFL) & ~O_NONBLOCK)
60: #define ngx_close_socket close
nginx/src/event/ngx_event_timer.c
54: void ngx_event_expire_timers(void) {
-> 無限ループしているところ (for(;;) {}) 回りでよく見かける.wait time を調節していると思われる.