2,767 reputation
1116
bio website
location London, United Kingdom
age 44
visits member for 4 years, 7 months
seen 2 days ago
Quite boring, really. Have faffed about with computers since the mid-80s, have worked as a network engineer, unix sysadmin and (occasionally) developer.

Dec
28
comment Most Efficient Cache Replacement Algorithm
@barrem23 If you're doing distributed programming, there's also the "distance between the cache and the back-end storage being cached" to consider. It doesn't matter, much, if you have an SSD or spinning rust as your large, stable, storage if the storage is 15 ms away, you will always incur a minimum 30 ms round-trip anyway.
Dec
26
comment Why it is `(cons 1 (cons 2 (cons 3 nil)))` and not `(cons 3 (cons 2 (cons 1 nil)))` for [1,2,3]?
@dokkat In that case, you are appending to something by allocating a new cell and populating its predecessor-field with a pointer to the existing list. That is, on the whole, not very useful, since you usually want to traverse a list from its head and you have just turned "find next element" into an O(size-of-RAM) time operation (so, constant, but with a rather scary multiplier). Unless you are proposing double-linked lists, of course...
Nov
29
answered What's wrong with circular references?
Nov
29
comment What's wrong with circular references?
Only a problem for ref-counting garbage collectors and they have all sorts of interesting problems (like being unable to deal with a double-linked list or a tree with parent-pointers as well as child-pointers).
Nov
17
answered Why “mainstream language” is so opposed to “built on a small core of orthogonal features”?
Oct
12
awarded  Yearling
Oct
10
answered What process do typical (the majority) of high level language compilers use when changing a source-code's variable name to a machine code name?
Oct
10
comment Python decorators and Lisp macros
@delnan Well, I wouldn't go quite so far as to say "impossible", but you'd definitely have to work at it.
Oct
9
answered Python decorators and Lisp macros
Sep
23
answered What is the history of why bytes are eight bits?
Aug
29
comment What are CPU registers?
@MasonWheeler A good choice on your part.
Aug
29
comment What are CPU registers?
And in modern CPUs, this kinda breaks down, as well, due to the registers being merely temporary mappings to an in-core bank of Really Fast Memory, changing depending on the instruction stream and how closely it is following the predicted instruction stream.
Aug
23
comment What do other languages offer when it comes to infrastructure technology that could indicate its advantage over C in the future?
At the moment, yes, although I can see Go becoming self-hosting in some sort of future.
Aug
22
comment What do other languages offer when it comes to infrastructure technology that could indicate its advantage over C in the future?
There is the "unsafe" package that does allow unsafe access to "raw metal" (or, at least as raw as you get with C).
Aug
3
comment How to use my proprietary framework on a new job without making it open-source?
@asyncio Actually, no, it isn't obvious without the licence saying so. I would, personally, hire a lawyer to write a licence that did what I wanted, then hire a second to confirm.
Jul
8
answered When to start thinking about scalability?
May
30
answered Should I “Fight” to use development environment I want to use and how?
May
30
comment The rationale behind Falsy values
@MasonWheeler At least Common Lisp gives you a chance to provide static type information, if you want (and some compilers are pretty good at type inference).
May
24
comment What's the difference between a stream and a queue?
There's actually a data structure called "stream", with (effectively) a list of data to consume, with a producer function at its tail, callable if you need more elements.
May
2
answered How should I assess answers to the programming assignment I use for hiring