サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
idea.popcount.org
This article was first published on Cloudflare blog: When TCP sockets refuse to die Accompanying scripts While working on our Spectrum server, we noticed something weird: the TCP sockets which we thought should have been closed were lingering around. We realized we don't really understand when TCP sockets are supposed to time out! In our code, we wanted to make sure we don't hold connections to de
Previous articles in this series: The history of the Select(2) syscall Select(2) is fundamentally broken Epoll(2) is fundamentally broken In this post we'll discuss the second argument on why the epoll() is broken. The problem is best described in an LWN comment by Foom: And epoll certainly has a HUGE misdesign in it, that anyone who actually understood what a file descriptor is should've seen com
In previous articles we talked about: The history of the Select(2) syscall Select(2) being fundamentally broken This time we'll focus on Linux's select(2) successor - the epoll(2) I/O multiplexing syscall. Epoll is relatively young. It was created by Davide Libenzi in 2002. For comparison: Windows did IOCP in 1994 and FreeBSD's kqueue was introduced in July 2000. Unfortunately, even though epoll i
In a previous blog post we discussed a brief history of the select(2) syscall. The article concludes that some I/O multiplexing was necessary to do console emulation, games and non-trivial TCP/IP applications. The BSD designers chose the select multiplexing model and other Unixes followed. But is select the only multiplexing model? A good explanation can be found in the old revision of "The Design
Recently I've been thinking about the multiplexing in Linux, namely the epoll(7) syscall. I was curious if epoll is better or worse than the iocp or kqueue. I was wondering if there was a benefit in batching epoll_ctl calls. But let's step back for a while, before we start a serious discussion we need to get some context. Most importantly - is file descriptor multiplexing an aberration or a gentle
Few years ago Alexa started to publish a daily snapshot of top one million domains used on the internet. Using this data I wanted to analyse how the DNS assignments change over time. The plan was simple: Every day download the Alexa list of top domains. Every day resolve all the domains. Do something with the gathered data. Profit! The second point sounds boring, but in fact it poses an interestin
The stages are: The frontend, parsing original language and spiting out LLVM Intermediate Representation (IR) code1. The optimiser, mangling one IR into optimised equivalent IR. This stage does all the usual optimisations like constant propagation, dead code removal and so on. The backend, taking IR and producing machine code optimised for a specific CPU. The crucial part is IR. It's a common lang
Recently I've been experimenting with Linux's ptrace(2) syscall. Unfortunately, there isn't any kind of "official" documentation for it and the manual page is quite poor. There are some other attempts to document it, for example in the strace sources or in several introductory tutorials online, but nothing explains how ptrace works from the ground up. Ptrace was always treated by kernel developers
Few days ago Peter Bengtsson wrote an interesting blog post on SockJS: Real-timify Django with SockJS The article is quite brief, let me try to provide step-by-step instructions on how to start your first Django on SockJS project. Python servers First, it's important to understand that there are many HTTP (okay, WSGI) servers for Django. SockJS requires pretty deep integration with the web server,
このページを最初にブックマークしてみませんか?
『Idea of the day』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く