code logs -> 2017 -> Mon, 27 Mar 2017< code.20170326.log - code.20170328.log >
--- Log opened Mon Mar 27 00:00:47 2017
00:14 Kindamoody is now known as Kindamoody[zZz]
00:16
<&McMartin>
His talk's endpoint is kind of amusing, as someone who in fact writes 16-bit ring-0 asm as a hobby.
00:16
<&McMartin>
That final core kernel ends up looking a whole lot more like an expanded DOS.
00:17
<&McMartin>
... which in turn means you can probably jam it into a single UEFI module and hand it the keys to the whole system.
00:19
< RchrdB>
which bit are you talking about? the punchline of B&DoJS where he talks about Linux+V8 running without any need for hardware memory protection because the V8 sandbox doesn't have holes?
00:19
<&McMartin>
Right. In that architecture, "Linux" is providing nothing more than a set of interrupts for I/O.
00:20
<&McMartin>
Which are no longer even interrupts
00:20
< RchrdB>
I had two quibbles with the details of that. One is that, dammit Gary, making two different changes that affect performance will not necessarily result in a new performance number that is the product of the relative speedups!
00:20
<&McMartin>
(Well, OK, the asynchronous I/O parts are.)
00:21
< RchrdB>
the other quibble is that it seems really unlikely that a perfect sandbox will ever exist, but I could probably be proven wrong
00:22
<&McMartin>
Well, I mean, hardware protection doesn't save you there either
00:22
<&McMartin>
cf Heartbleed.
00:22
< RchrdB>
I think you mean Rowhammer, not Heartbleed.
00:22
<&McMartin>
Actually, no, I mean any of the thousands of bugs in between them, come to think of it.
00:23
< RchrdB>
Heartbleed was "OpenSSL accidentally discloses memory contents".
00:23
<&McMartin>
Yeah, I'd forgotten and thought it was the network kernel component doing the accidental disclosue
00:23
<&McMartin>
Leaking data through the hardware protection interface to the detriment of system stability is a broad class of bug though.
00:23
<&McMartin>
So "The kernel won't be a perfect firewall" isn't much of an argument, overall
00:24
<&McMartin>
The part where this does get relevant is when facing the question "so, how important is it, actually, to have a multiuser machine that has multiple processes running at once"
00:24
< RchrdB>
Rowhammer is "you can change the values of memory contents in pages that you aren't actually allowed to access according to your page tables, by triggering defects in your RAM, just by issuing reads and writes to memory in a pattern that causes rows to get reloaded a lot and make some capacitors get discharged to below the threshold voltage in between DRAM refresh cycles"
00:24
<&McMartin>
Right.
00:25
<&McMartin>
Rowhammer is more fundamental than I was going for there
00:25
<&McMartin>
Your objection here seems to be "V8 will have bugs", and my reply is "so will kernels"
00:25
< RchrdB>
Oh right but there are degrees
00:25
<&McMartin>
Indeed, and I see two countervailing forces pulling in opposite directions
00:25
<&McMartin>
That if you synthesize them do kind of give you his endpoint.
00:26
< RchrdB>
the attack surface of V8 is, I think, bigger than the attack surface of a hypervisor
00:26
<&McMartin>
Force 1 is to push for smaller and smaller kernels
00:26
< RchrdB>
(hypervisor slash kernel)
00:26
<&McMartin>
We've basically given up on microkernels in practice but hypervisors as the new meta-really-small-kernel is gaining in popularity and is itself a very old idea indeed going back to the mainframe era
00:27
< RchrdB>
IMHO hypervisors count as microkernels but with new branding.
00:27
<&McMartin>
I disagree because I cast them as VM/CMS with new branding :D
00:27
<&McMartin>
And once you have *that*, that enables wider use of the thing that's showing up from the thread of thought that asks "what should an IoT device *actually* look like, because it's sure as Hell not a stock and unpatchable Linux image YOU IDIOTS RARRRRGH"
00:27
< RchrdB>
AFAIK lots of embedded applications are using microkernels for realsies too.
00:28
<&McMartin>
BSD is kind of considered one, I think.
00:28
< RchrdB>
like actual honest-to-betsie L4
00:28
< RchrdB>
Hm? FreeBSD, OpenBSD, NetBSD all have monolithic kernels.
00:28
<&McMartin>
Past a certain point you are handwaving, like asking how many instructions you can have before you stop being "RISC" - it's the wrong question.
00:28
<&McMartin>
Hm. What am I thinking of
00:29
< RchrdB>
Were you thinking of OS X? OS X started out as a fork of a microkernel called Mach but it isn't a microkernel any more.
00:29
<&McMartin>
Probably.
00:29
<&McMartin>
MachO needs to find a series of fires to die in
00:29
< RchrdB>
I mean OS X's kernel started out as a fork of Mach
00:30
<&McMartin>
Mach itself was argued to be monolithic too, it seems.
00:30
< RchrdB>
mmmmmmmmeh
00:30
<&McMartin>
Anyway
00:31
< RchrdB>
This conversation will be more productive if we ban asking "is it a microkernel?" and switch to asking "how large is the trusted code base?"
00:31
<&McMartin>
I can imagine a system that says "I have a hardware abstraction layer and I only run code that I JIT myself from a bytecode that does not permit arbitrary pointer arithmetic or self-modifying code"
00:31
<&McMartin>
"And therefore I never leave Ring 0 because I don't have to"
00:31
<&McMartin>
I can *imagine* it
00:31
< RchrdB>
Do you know MirageOS?
00:31
<&McMartin>
But, well, that's DOS with execution prevention.
00:31
< RchrdB>
*about
00:32
<&McMartin>
If I do it's not swapped in.
00:32
< RchrdB>
okay so there's a cute idea called a unikernel
00:32
<&McMartin>
... OK, looking that up
00:32
<&McMartin>
Yes, this is exactly the architecture I am envisioning
00:33
<&McMartin>
This is also what I think IoT devices should probably be doing instead of being fuckin' IoT devices.
00:33
< RchrdB>
<hypothetical scenario> I write a webapp. I build and ship a VM image containing Linux, nginx, my web app. </hypothetical scenario>
00:33
< RchrdB>
Now in this scenario, all of (linux, nginx, my app) are actually the same trust domain.
00:33
<&McMartin>
Yep
00:34
<&McMartin>
Also: I am very familiar with Exokernel, as it happens.
00:34
<&McMartin>
Engler was *also* on my thesis committee =P
00:34
< RchrdB>
In this scenario, if any piece of that software gets broken, it's the same to me as if any other piece of it gets broken
00:34
< RchrdB>
so I may as well run all of it as root
00:34
< RchrdB>
maybe I might as well run it all in ring 0 too
00:35
<&McMartin>
Yep
00:35
< RchrdB>
and so hell, maybe I'll just solve this problem instead by shipping a single binary that runs in ring 0 (atop a hypervisor in practice) which contains the virtio drivers and TCP stack as libraries
00:35
<&McMartin>
I heartily endorse this approach to software development and deployment.
00:36
< RchrdB>
MirageOS is a toolkit for writing unikernels in OCaML. Some of the practical issues that you'd have with "oh god are you really suggesting I put all this C++ code in ring 0?" are alleviated by it being ML instead of C++.
00:36
<&McMartin>
The rest being "what else are you protecting from this code?"
00:36
<&McMartin>
"... nothing, right? Right. Well then."
00:37
< RchrdB>
I had a go at reading some of the exokernels literature and, um
00:37
<&McMartin>
What you've really done here is reinvent software-on-cartridge for PCs, just without the actual cartridge part
00:37
<&McMartin>
And without the single-tasking nature because you've got a hypervisor covering the rest.
00:37
< RchrdB>
it was cool but I think the unikernel + library-OS approach has less complexity
00:37
<&McMartin>
Yes
00:37
< RchrdB>
I mean unikernel + hypervisor
00:38
<&McMartin>
Yep
00:38
< RchrdB>
because the exokernel paper I saw had a horrendously complicated ABI for stuff like... userland programs to pass bytecode to the hardware multiplexor so that it could work out which pages of disk mattered and stuff like that
00:38
< RchrdB>
"hardware multiplexor" being the exokernel's... kernel
00:39
<&McMartin>
Yeah, I think the only one I really took seriously was the introductory paper which was called something like Destroy All Operating System Abstractions
00:39
<&McMartin>
The rest is, well, a post-apocalyptic wasteland after you destroyed everything you used~
00:39
< RchrdB>
it seemed to me that there were lots of places where you couldn't plausibly build a secure exokernel system because the ABI was too complicated and too hairy to implement without accidentally leaving bugs in.
00:39
< RchrdB>
two more things you might like
00:40
<&McMartin>
Graphene seems like the sort of middleground between Unikernel and Full OS that's more relevant to the talk's endpoint.
00:40
< RchrdB>
NetBSD has a thing called "rump kernels" where they've got the NetBSD kernel carved up so that you can easily pick code out of it and run it as an ordinary binary in some process on some other operating system (or maybe even on no operating system)
00:42
< RchrdB>
and there's a concept called a "library OS" where, uh, your program gets presented with a raw hardware interface *but* there's a library containing all the device drivers to hand
00:42
<&McMartin>
I've been frantically wikiwalking and bouncing through papers and repos during this conversation
00:42
< RchrdB>
sorry
00:42
<&McMartin>
And "library OS" seems very tightly bound to or close to the "unikernel" concept
00:42
<&McMartin>
(Graphene seems to call itself one, for one)
00:42
< RchrdB>
Yes. A library OS is one of the components of a unikernel.
00:43
< RchrdB>
You write your program and link it with a library-OS and the artefact you've built is a unikernel.
00:43
< RchrdB>
You can write your program without bothering with the library-OS too, and you'd still get a unikernel, but to do that you'd have to write the network driver and TCP stack yourself.
00:48
< RchrdB>
McMartin, okay now just to make your day worse, I'm going to suggest that possibly the optimal thing for performance and maintainability is to not do so much of this, because kernel-bypass networking is actually just about as fast as putting your webserver or whatever into ring 0. https://github.com/lukego/blog/issues/13
00:49
<&McMartin>
Heh
00:49
<&McMartin>
So, does doing that make you more or less like Basically DOS~
00:50
< RchrdB>
"kernel-bypass networking" is where you run your program on an ordinary OS like Linux, Windows or BSD. The OS is configured to *not* load a driver for the computer's NIC. Instead, the kernel memory-maps the MMIO pages for your NIC into your program's address space and your program drives the NIC directly again.
00:50
<&McMartin>
The core thesis here - that a modern OS kernel is too large for the tasks we put on them - stays strong
00:50
<&McMartin>
... I'm down with that, though that's turning you less into a DOS machine and more into a Commodore 64. :D
00:50
< RchrdB>
and there exists a concept called "kernel-bypass storage" where you do that except with the hard disk controller
00:50
< RchrdB>
etc
00:51
<&McMartin>
Do modern x86 chips permit use of IN/OUT instructions in ring 3?
00:51
< RchrdB>
except that kernel-bypass storage doesn't get as much attention because until very recently storage devices weren't fast enough for this kind of approach to be interesting
00:51
<&McMartin>
I would also imagine that if the answer to my question above is "no", then there is also the minor issue of "also you literally cannot talk to the hardware outside of the kernel most of the time"
00:52
< RchrdB>
No. You don't use IN/OUT though. Instead you use memory-mapped IO.
00:52
<&McMartin>
OK, next question
00:52
< RchrdB>
so there's a range of physical addresses that don't actually correspond to RAM in your DIMMs, instead those addresses correspond to registers and buffers on your PCI(e) cards
00:52
<&McMartin>
Right, I'm quite familiar with MMIO
00:52
< RchrdB>
and the OS is convinced to let you have those specific addresses mapped in and marked writable by your process
00:53
< RchrdB>
aha
00:53
<&McMartin>
I've just never seen it available on PCs beyond commanding the VGA's video buffers.
00:53
< RchrdB>
so the point of this is that, it's the library-OS approach to networking again! and that's great for throughput! but now it's with an otherwise ordinary linux process
00:53
<&McMartin>
Everything on ISA and - the last I had checked - the basics of PCI as well - were all done purely through the I/O ports.
00:53
< RchrdB>
so gdb still works
00:53
<&McMartin>
Yep.
00:54
< RchrdB>
offhand I'm not sure
00:54
<&McMartin>
I know nothing of PCIe other than that I thought it was vaguely compatible
00:54
< RchrdB>
I think maybe Snabb does some stuff with MMIO and some stuff by asking the kernel to touch I/O ports on its behalf
00:54
<&McMartin>
And of course once you wander out of the x86 ghetto MMIO is usually the only game in town
00:54
<&McMartin>
So if you're on an ARM system, AFAIK you are 100% golden
00:55
< RchrdB>
but the things that it has to ask the kernel to touch I/O ports for aren't done lots of times on a per-packet basis
00:55 * McMartin nods.
00:55
<&McMartin>
The DOS soundcode I was messing with earlier this year... whole lot of I/O port work.
00:55
< RchrdB>
I'm not sure if everything is MMIO now though
00:55
< RchrdB>
I honestly thought the IN and OUT instructions on x86 didn't have any meaning outside ISA anyway?
00:55
<&McMartin>
It's part of the chip, not the arch.
00:56
<&McMartin>
Z80 has them too, which means it must go back at least to the 8008.
00:56
< RchrdB>
like there is a fixed limit of exactly 256 I/O ports because *jazz hands* that's the instruction encoding
00:56
<&McMartin>
... I can state with absolute certainty that this isn't true
00:56
<&McMartin>
Because the default sound blaster port was 0x220.
00:56
< RchrdB>
hm
00:56
<&McMartin>
And the Adlib ports were above that too.
00:56
<&McMartin>
65536 ports because that's your register width. =P
00:57
<&McMartin>
"Because that's your register width" is an entirely reasonable restriction~
00:57
<&McMartin>
But even then
00:57
< RchrdB>
are AL and AH 16 bits or 8 bits?
00:57
<&McMartin>
I ran some realmode code on a 2012 i7 running FreeDOS
00:57
<&McMartin>
8. make AL the low byte and AH the high byte and you have AX.
00:57
< RchrdB>
gotcha
00:58
< RchrdB>
I'm looking at http://x86.renejeschke.de/html/file_module_x86_id_222.html
00:58
<&McMartin>
There is no equivalent to AH for the top 16 bits of EAX or the top 32 of RAX.
00:58
< RchrdB>
which claims that the OUT instruction accepts either an 8-bit immediate OR an 8-bit register as the destination port number
00:58
<&McMartin>
Ah, no, you have misread.
00:58
<&McMartin>
This is using the Intel syntax, not the AT&T syntax.
00:58
<&McMartin>
Destination is on the left.
00:58
< RchrdB>
aha!
00:58
<&McMartin>
OUT DX, AL writes 8 bits to the 16-bit port named in DX.
00:59
< RchrdB>
hang on are you sure
00:59
< RchrdB>
"Output byte in AL to I/O port address imm8."
00:59
< RchrdB>
that's an imm8?
00:59
<&McMartin>
Yep
00:59
<&McMartin>
Immediate has to be 8-bit
00:59
<&McMartin>
No 16-bit immediate mode for this instruction.
00:59
< RchrdB>
and "Output byte in AL to I/O port address in DX."
00:59
< RchrdB>
but DX is 16 bits
01:00
<&McMartin>
Correct.
01:00
< RchrdB>
right so there are 65535 ports.
01:00
< RchrdB>
*65536
01:00
<&McMartin>
Note that if you output more than one byte, the port increases as you go
01:00
< RchrdB>
I guess just only the bottom 256 of them can be addressed with an immediate? :)
01:00
<&McMartin>
Again correct.
01:00
< RchrdB>
Does it wrap if you use the imm8 form?
01:00
<&McMartin>
Likewise, if you're going to barrelshift, the only immediate value permissible is 1.
01:01
<&McMartin>
I have never attempted this and am not sure what lives at port 0xff.
01:01
< RchrdB>
Does "OUT 255 AX" write AH to port 255 and AL to port 256
01:01
< RchrdB>
or does "OUT 255 AX" write AH to port 255 and AL to port 0? :D
01:01
< RchrdB>
(if I got AH and AL the wrong way around, well, shit)
01:01
<&McMartin>
I know what you're asking. I'm saying I have never attempted this because randomly poking I/O ports is a bad idea.
01:01
<&McMartin>
You did get them wrong; x86 is little-endian so AL comes first
01:02
< RchrdB>
demmit
01:02
<&McMartin>
In practice you didn't do this because everything you cared about was serialized
01:02
<&McMartin>
And thus expected two bytes to the *same* port.
01:02
<&McMartin>
https://github.com/michaelcmartin/bumbershoot/blob/master/dos/sound/fmscale.asm
01:02
<&McMartin>
See for instance my writeAdlib function on line 63
01:03
<&McMartin>
"Write card register number, wait 5 microsec, write new value"
01:04
< RchrdB>
"Read 6status 6 times" is how you implemented "wait 5 microsec"? :)
01:04
<&McMartin>
That is the recommended technique, and that *is* a quirk of the ISA bus.
01:05
<&McMartin>
In that the speed of the ISA bus never increased after the release of the Adlib.
01:05
<&McMartin>
So IN/OUT end up throttling down the speed of your system to match.
01:05
<&McMartin>
To, uh, 12 MHz-equivalent, IIRC.
01:06
<&McMartin>
All Adlib-compatible soundcards that post-date ISA also had logic that did not require any waits.
01:06
< RchrdB>
Yes. Your ISA peripherals would break if you tried clocking it higher. :)
01:07
<&McMartin>
It turns out that the PC's programmable interval timers were not quite consistently manufactured enough to handle the timing here.
01:07
< RchrdB>
wat
01:07
< RchrdB>
but reading the ISA bus was?
01:07
<&McMartin>
Yep.
01:07
< RchrdB>
huh
01:07
<&McMartin>
Specifically, the way you'd do this without reading the ISA bus was spinlocking on reading the PIT's internal registers.
01:08
<&McMartin>
That was only ever really intended for wacky corner case debug mode stuff and thus was both incompletely specified in the first place and generally not robust enough to be spinlock hammered even at 40MHz, much less 2GHz
01:09
<&McMartin>
And that's even before we get to the part where it was probably on the ISA itself so by the *time you set up the damned timer it's been 5 microseconds*
01:09
< RchrdB>
heh
01:10
<&McMartin>
Setting up a Sound Blaster apparently requires a 200-300 microsecond wait in there to make sure the reset signal fully sticks
01:10
<&McMartin>
Best practices there was to use the BIOS tick and overshoot by a factor of two thousand or so~
01:12
< RchrdB>
or turn on the reset signal, load some other assets for a bit which should probably take a couple seconds by itself anyway, then check to see if the wait time period already elapsed and if not spin?
01:12
<&McMartin>
That doesn't seem to have been as common, TBH
01:13
<&McMartin>
They'd just have it hitch for a quarter second while it did the reset, set up some dummy DMAs, and checked to see if the IRQ came in where it expected, etc.
01:14
< RchrdB>
I guess in those days nobody *really* cared if the game took ten seconds to load or eight, it was a miracle that anything ran at all in the first place ;P
01:14
<&McMartin>
Takes a bit longer, but if it fucks up, you don't make the video mode flip out or whatever.
01:14 Jessikat` [Jessikat@Nightstar-q5khu9.dab.02.net] has joined #code
01:14
<&McMartin>
I don't care about the difference between 10 and 9.75 now.
01:15
<&McMartin>
That said, DOS games were pretty zippy to start up if they were not doing full probes on startup, and really, even if they were.
01:15
<&McMartin>
It's almost certainly going to be under 5, and probably under 2.
01:17 Jessikat [Jessikat@Nightstar-hpgbve.dab.02.net] has quit [Ping timeout: 121 seconds]
01:20
< RchrdB>
Okay fair. :P
01:20 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Connection closed]
01:20
< RchrdB>
It's still disappointing to find oneself staring at a bar labelled "loading" when one would like to be playing terrible videogames though.
01:21
< RchrdB>
http://wiki.osdev.org/PCI is surprisingly fun reading
01:21
< RchrdB>
there's a lot there so I haven't read all of it yet
01:21
<&McMartin>
Oh, I'm not counting that part
01:22
<&McMartin>
But even there
01:22
<&McMartin>
The last DOS game I played was TIE Fighter
01:22
<&McMartin>
Apart from the (unavoidable, because no persistent OS config) joystick calibration, there is *no* Obvious Loading Garbage going on.
01:22
<&McMartin>
It cuts to the LucasArts intro basically immediately.
01:22
< RchrdB>
anyway it sounds like the deal with PCI drivers in userspace is that yes you need to ask the kernel to fire some IN and OUT instructions at ports 0xCF8 and 0xCFC to read or write PCI registers for you
01:23
< RchrdB>
and it *sounds* like (though I'm not 100% certain) something like snabb switch would be doing that, eh, at most once every few packets to schedule a DMA transfer
01:23
< RchrdB>
buuuut
01:23
<&McMartin>
Ah yes, DMA
01:23
<&McMartin>
Hmmmm.
01:24
< RchrdB>
also there's an optional mechanism that PCIe added where the PCI registers are memory-mapped too
01:24
< RchrdB>
and uh
01:24
<&McMartin>
If you're mostly doing DMA then making sure that the hardware Gets Your Actual Buffer's Physram would be pretty sweet
01:24
< RchrdB>
you don't need kernel-bypass networking on NICs that aren't fast enough to need PCIe :)
01:24
<&McMartin>
And then PCIe gets All The Toys.
01:24
<&McMartin>
Yep.
01:24
< RchrdB>
yes
01:25
< RchrdB>
If you want a slightly fun afternoon reading about why nginx and lighttpd's designs are somewhat enticing, read "the c10k problem"
01:25
<&McMartin>
Yeah, I'm a much simpler soul than that
01:25
<&McMartin>
I prefer MMIO because I first programmed graphics and sound with POKE commands in C64 BASIC.
01:25 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
01:25 mode/#code [+o Alek] by ChanServ
01:26
< RchrdB>
If you want a fun, scary afternoon reading about why Snabb switch and stuff like it are enticing, read "the c10M problem"
01:26
< RchrdB>
"stuff like it" including Intel DPDK and a few other things whose names I've forgotten
01:28
< RchrdB>
mm
01:28
< RchrdB>
No argument that MMIO is a conceptually very clean model
01:29
<@himi>
Oh hey, Snabb looks like something to keep an eye on
01:29
<&McMartin>
... until you have to worry about bus contention, anyway.
01:29
< RchrdB>
and you can do cute things like grant a process the ability to muck directly with an actual real piece of physical hardware just by giving it access to some MMIO addresses. I'm sure that can't POSSIBLY go wrong.
01:29
<&McMartin>
MMIO means Shit Has Gotten Real (Mode), yes~
01:30
< Jessikat`>
16 bits of pain
01:31
< RchrdB>
himi, fwiw, I might be very wrong but I get the impression that, Snabb is kind of about the specific problem of writing applications in userspace on Linux that talk various layer-2 and layer-3 protocols at wire speed
01:31
< RchrdB>
possibly including switching
01:31
<@himi>
That appears to be the case, from the doco I just spent about 60 seconds reading
01:32
< RchrdB>
and that for applications that don't look so much like switching, you might want to look at Intel DPDK and/or PF_RING instead
01:32
<@himi>
I currently work on OpenStack, so its potential for SDN is what interests me
01:32
< RchrdB>
not totally sure about that though
01:32
<@himi>
DPDK is . . . . really hard to get into
01:32
< RchrdB>
oh bummer
01:33
< RchrdB>
okay maybe Snabb is more interesting then :)
01:33
<@himi>
It's far more "enterprisey" than I like to see in my code
01:33
<@himi>
Yeah, DPDK is targeted at enterprises developing stuff, whereas it looks like Snabb is far more "hey, have a hack at it and see what it's like"
01:34
< RchrdB>
Y'know what would be a terrible abuse of technology - getting a FreeBSD rump kernel and using it to drive a NIC and TCP stack in userland on Linux *just* so that you can use kqueue() for network sockets instead of epoll().
01:34
<@himi>
They're explicitly referencing 50-100Gb switching with Snabb, so performance doesn't appear to be an issue
01:34
<@himi>
. . . if you're running your TCP stack in userland why would you worry about that kind of thing?
01:35
<@himi>
I mean, sure, you get an extant TCP stack with nice features, but there are plenty of extant userland TCP stacks out there that have nice reatures
01:35
< RchrdB>
well the silly point is running a TCP stack in userland instead of using the TCP stack in your kernel but *only* because the TCP stack in your kernel has a shitty API
01:36
< RchrdB>
whereas kqueue is nicer :)
01:36
<@himi>
That's just silly
01:36
< RchrdB>
I did prefix this idea with âY'know what would be a terrible abuse of technologyâ.
01:36
<@himi>
A userland TCP stack has different behavioural requirements than a kernel TCP stack
01:36
<@himi>
Very true
01:37
< RchrdB>
btw, if anyone would like a https://lobste.rs/ invite, hit me up?
01:37
<@himi>
Oh, that's a lovely starting sentence for an article: Today (2013), $1200 will buy you a computer with 8 cores, 64 gigabytes of RAM, 10-gbps Ethernet, and a solid state drive. Such systems should be able to handle
01:37
< RchrdB>
it's meant to be roughly "like HN but nicer"
01:40
< RchrdB>
hey you still can :)
01:40
< RchrdB>
albeit if you do, you got ripped off? :)
01:41
< sshine>
RchrdB, you can invite me, too. need an email or what?
01:41
<@himi>
I was thinking more about the fact that my 200 node cluster, purchased in 2014, is surprisingly similar: 16 cores, 128GB, SSDs
01:42
<@himi>
The big difference being the Mellanox 56GB NICs
01:42
< RchrdB>
sshine, yes, invites are by email address. Please PM me or whatever.
01:42
<@himi>
Also, definitely not $1200 per machine
01:43
< sshine>
RchrdB, how do you perceive it as better than hacker news? I normally use hckrnews.com and I see that lobste.rs looks much like news.ycombinator.com, so you must mean that the content is better. maybe less talk on venture capital?
01:46
< RchrdB>
Smaller community. On the current front page, articles 0, 2-9, 12, 14-16, 18-25 are all pretty much purely technical.
01:47
< RchrdB>
The rest are related to technology, policy and regulation around technology, how to cope with being a human being who does things with technology, etc.
01:50
< RchrdB>
Glancing at news.ycombinator.com right now I see actual garbage, various bits of general interest fluff, various bits of general interest science.
01:50
< RchrdB>
surprisingly fewer than usual articles about VC
01:53
< RchrdB>
Also lobste.rs is much less welcoming to, um, right-wing extremists. Left-wingnuts don't really pop up there either.
01:53 Turaiel[Offline] is now known as Turaiel
01:56 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
02:01
< RchrdB>
slep nao <3
02:06
< sshine>
RchrdB, sleep well! and thanks for the invite. :)
02:06
< sshine>
Jessikat, oohh, .in-addr.arpa addresses are so cool! when do people ever have those any more?
02:07
< Jessikat>
d.. bwah?
02:07 * Jessikat shrugs
02:07
< Jessikat>
my housemate set up the 'net, I guess he's responsible for that
02:07
< Jessikat>
it's the kind of thing he'd do xD
02:09
< sshine>
hmm, according to wikipedia, as far as I understand, all IPv4 addresses that don't reverse resolve to a domain can just resolve to <the-ip>.in-addr.arpa. I learned something new today.
02:09
< sshine>
I suppose the reason they're not common is that you'd have to set up reverse DNS for an IP and specifically not choose a domain.
02:10
< sshine>
or rather, a normal domain.
02:10 * sshine wants to see if his theory is right by setting his VPS rDNS to that as well. :-P
02:29 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
02:29 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
02:29 mode/#code [+qo Vornicus Vornicus] by ChanServ
03:01 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
03:34 Jessikat` is now known as Jessikat
04:57 Turaiel is now known as Turaiel[Offline]
04:59 Derakon is now known as Derakon[AFK]
05:25 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds]
05:28 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
05:28 mode/#code [+o Alek] by ChanServ
05:47 Jessikat [Jessikat@Nightstar-q5khu9.dab.02.net] has quit [[NS] Quit: Bye]
05:50 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds]
05:55 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
05:55 mode/#code [+o Alek] by ChanServ
07:33 celticminstrel is now known as celmin|Zzzzzz
09:00 Kindamoody[zZz] is now known as Kindamoody|afk
09:06
<@Pi>
Oh, hey, RchrdB!
09:15
<@abudhabi>
You sound like shadowfax, Pi.
09:15
<@Pi>
Shadowfax?
09:17
<@abudhabi>
Was a bot in another channel.
09:17
<@abudhabi>
Turing'd people sometimes.
09:18
<@Pi>
Ah, okay. :)
09:23
<@abudhabi>
http://zoo.nightstar.net/viewtopic.php?p=299866#p299866
10:33
<@TheWatcher>
Seriously, Twitter? Seriously?
10:34 * TheWatcher stabs their API coders in the head
10:35
<@TheWatcher>
Related: I fucking hate DST
10:37
<~Vornicus>
do they, like, not use gmt
10:38 * abudhabi intends to go on a strict static-time regimen in the near future.
10:39
<@abudhabi>
No changing the damn alarm clocks. No changing session times. Let other people change, if they wish.
10:40
<@TheWatcher>
Vornicus: I present a sample date from the JSON reply to the user_timeline endpoint: "created_at":"Mon Mar 27 05:00:20 +0000 2017"
10:40
<@TheWatcher>
Except that was created at 05:00:20 +0100.
10:40
<~Vornicus>
Okay, so, terrible alr...
10:40
<~Vornicus>
What. The. Fuck.
10:42
<@TheWatcher>
I mean, I can work with it, it just... seriously?
11:20
< RchrdB>
Hello Pi. :)
12:14 Jessikat [Jessikat@Nightstar-o6dt1g.dab.02.net] has joined #code
12:24 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
12:51 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
12:58 Jessikat` [Jessikat@Nightstar-o6dt1g.dab.02.net] has joined #code
13:00 Jessikat [Jessikat@Nightstar-o6dt1g.dab.02.net] has quit [Ping timeout: 121 seconds]
13:42 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Ping timeout: 121 seconds]
13:53 * TheWatcher grumbles at users
13:53
<@TheWatcher>
I really wish people'd actually check shit before bitching at me about problems that only exist in their sodding heads
14:14 Jessikat [Jessikat@Nightstar-ksmccf.dab.02.net] has joined #code
14:17 Jessikat` [Jessikat@Nightstar-o6dt1g.dab.02.net] has quit [Ping timeout: 121 seconds]
14:25
< Jessikat>
Heh
14:25
< Jessikat>
I recognise this
14:35 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
15:41 mac is now known as macdjord|wurk
16:11 celmin|Zzzzzz is now known as celticminstrel
18:27 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
18:27 mode/#code [+qo Vornicus Vornicus] by ChanServ
20:26 Kindamoody|afk is now known as Kindamoody
20:44 Jessikat` [Jessikat@Nightstar-5e2u9b.dab.02.net] has joined #code
20:48 Jessikat [Jessikat@Nightstar-ksmccf.dab.02.net] has quit [Ping timeout: 121 seconds]
20:48 Jessikat` is now known as Jessikat
21:05 celticminstrel [celticminst@Nightstar-oil0hh.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.]
21:06 celticminstrel [celticminst@Nightstar-oil0hh.dsl.bell.ca] has joined #code
21:06 mode/#code [+o celticminstrel] by ChanServ
21:10 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
21:11 Turaiel[Offline] is now known as Turaiel
21:20 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
21:20 mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ
21:32 ion_ [Owner@Nightstar-gmbj85.vs.shawcable.net] has joined #code
22:42 Kindamoody is now known as Kindamoody|afk
23:15 Jessikat` [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
--- Log closed Tue Mar 28 00:00:48 2017
code logs -> 2017 -> Mon, 27 Mar 2017< code.20170326.log - code.20170328.log >

[ Latest log file ]