djb
みんなそろそろ D.J. Bernstein が世界史上最高のプログラマだというのを思い出すべきだと思うんだ。
まず、客観的な事実だけを見てみよう。 djb は2つの重要なシステムソフトウェアを書いた。 メールサーバと DNS サーバだ。 どちらも何百万というドメインで使われている。 ありとあらゆる複雑な仕事をこなし、とてつもない高負荷でも問題ないし、どんな異常事態にも対応する。 これらは、Bernstein が最初にリリースしたときとまったく同じものが動いてるのだ。
djb
みんなそろそろ D.J. Bernstein が世界史上最高のプログラマだというのを思い出すべきだと思うんだ。
まず、客観的な事実だけを見てみよう。 djb は2つの重要なシステムソフトウェアを書いた。 メールサーバと DNS サーバだ。 どちらも何百万というドメインで使われている。 ありとあらゆる複雑な仕事をこなし、とてつもない高負荷でも問題ないし、どんな異常事態にも対応する。 これらは、Bernstein が最初にリリースしたときとまったく同じものが動いてるのだ。
| var page = require('webpage').create(); | |
| page.open('http://www.website.com/', function (status) { | |
| if (status === 'success') { | |
| captureAjaxResponsesToConsole(); | |
| } | |
| }); | |
| function captureAjaxResponsesToConsole() { | |
| // logs ajax response contents to console so sublime's onConsoleMessage can use the contents |
| ip_conntrack: table full, dropping packet. | |
| この一行のログに悩まされた方は多いのではないでしょうか。 | |
| 自分もその一人です。 | |
| 多くのブログには echo '500000' > /proc/sys/net/ipv4/netfilter/ip_conntrack_max で解決。みたいなことが書いてあると思います。 | |
| では、この数字について根拠はなんでしょうか。そもそも何のためにconntrack tableというものがあるのか考えたことはありますか? | |
| 闇雲に最大値をあげることにたいして抵抗がある方もいると思います。 | |
| このテキストは、転職後2日目にGWとして使っているLinux NAT BOXが爆発したことを起因とした、netfilterのチューニングについてまとめようと思います。 |
| // ==UserScript== | |
| // @id iitc-plugin-ingressdualmap-exporter@OllieTerrance | |
| // @name IITC plugin: Ingress Dual Map Exporter | |
| // @category Keys | |
| // @version 0.0.0.1 | |
| // @namespace https://github.com/jonatkins/ingress-intel-total-conversion | |
| // @description Exports portals currently in view as a CSV list for use with Ingress Dual Map. | |
| // @include https://www.ingress.com/intel* | |
| // @include http://www.ingress.com/intel* | |
| // @match https://www.ingress.com/intel* |
| # filter by request host header | |
| varnishlog -q 'ReqHeader ~ "Host: example.com"' | |
| # filter by request url | |
| varnishlog -q 'ReqURL ~ "^/some/path/"' | |
| # filter by client ip (behind reverse proxy) | |
| varnishlog -q 'ReqHeader ~ "X-Real-IP: .*123.123.123.123"' | |
| # filter by request host header and show request url and referrer header |
以下転載:
| -- www.lua: Hammerspoon snippet that takes a snapshot and uploads it to imagebin every time you hit "www". | |
| -- | |
| -- Requirements: | |
| -- * ffmpeg | |
| -- * imagebin API key | |
| -- | |
| -- This script is directly inspired by: http://portal.nifty.com/kiji/170321199097_1.htm | |
| -- | |
| -- License: BSD-2-Clause (c) Akinori MUSHA | |
| do |
この記事はWebスクレイピング Advent Calendar 2017の17日目の記事です。puppeteerでクローリングします。
SPAみたいなちょっと凝ったWebサイトをクローリングするときは一昔前はSelenium + PhantomJSあたりが鉄板でしたが、今後はSelenium + Headless ChromeもしくはPuppeteer + Headless Chromeが主流となっていく見通しです。 (HeadlessとはGUIアプリケーションのGUIを介さないモードのことです。)
前者についてはWeb上に情報も多いですが、Puppeteerでクローリングする話をそんなに見ない気がするのでクローリングの歴史を踏まえてやってみます。