<ELLIOTTCABLE>
I am currently eating a pizza in which the crust is made of sausage.
<ELLIOTTCABLE>
I kid you not. No bread in this entire thing. A crust of baked-hard sausage, acting as a dish for red sauce, parmesan, *more* sausage, and pepperoni.
<joelteon>
i'm trying to make people not do stupid stuff with this tool
<joelteon>
which is good because nobody will ever use it
<ELLIOTTCABLE>
>> Purr
<purr>
ELLIOTTCABLE: function (profile) { Bot.call(this, profile); this.sandbox = new Sandbox (path.join(__dirname, "purr-utils.js")); this.factoids = new FactoidServer (path.join(__dirname, 'data', "purr-factoids.json")); this.loves = new JSONSaver (path.join(__dirname, 'data', "purr-loves.json")); this.what = new JS…}
<purr>
ELLIOTTCABLE: Okay, I'm done with that. <,<
<joelteon>
it's the project i'm working on
<joelteon>
do you see my problem
<ELLIOTTCABLE>
nope
<joelteon>
i don't know what the best way to solve this is
<ELLIOTTCABLE>
is it that you're not wearing pants?
<joelteon>
it can't be represented as a tree
<joelteon>
because `children' can have multiple `parents'
<joelteon>
so what i have to do
<joelteon>
is
<joelteon>
i guess i have to assign each image some kind of "scope"
<ELLIOTTCABLE>
image?
<joelteon>
docker images
<joelteon>
just pretend they're binaries
<joelteon>
and the way docker links work
<joelteon>
is you -link some-image:image
<joelteon>
so that you get environment variables inside the parent
<joelteon>
of the form $IMAGE_PORT_3317_TCP_ADDR
<joelteon>
which is the IP of the other running image
<joelteon>
so that's how you do container interop safely
<joelteon>
and what this project is
<joelteon>
is a link management system
<joelteon>
the first six lines are an example
<ELLIOTTCABLE>
… docker?
<joelteon>
myapp/web
<joelteon>
myapp/db => db # will be linked as DB_...
<ELLIOTTCABLE>
meh bbl
<joelteon>
myapp/redis => redis # will be linked as REDIS_...
<joelteon>
<joelteon>
myapp/nginx
<joelteon>
myapp/web => web
<joelteon>
myapp/web wants a database and a redis, myapp/nginx wants a web instance
<joelteon>
very simple
<joelteon>
but you have to consider the case when, for example, you might want to run multiple workers
<joelteon>
because you can't run two images with the same container name
<joelteon>
that way -links don't work
gozala has quit [Quit: Connection closed for inactivity]
devyn has joined #elliottcable
alexgordon has quit [Quit: Computer has gone to sleep.]
<devyn>
jesus, make the power outages stop
fwg has quit [Ping timeout: 252 seconds]
fwg has joined #elliottcable
brr has joined #elliottcable
* whitequark
giggles
<whitequark>
scrubs portrays insurance fraud committed by employees in positive light
eligrey has quit [Quit: Leaving]
gozala has joined #elliottcable
fwg has quit [Ping timeout: 252 seconds]
<devyn>
whitequark: what's the difference between .Lblah:, .blah:, and blah: in GNU AS?
<devyn>
just want to be sure
<devyn>
oh okay, I see, symbols can begin with [._A-Za-z]
<devyn>
and symbols that start with . are nothing special, except on ELF, λ is a local label
<devyn>
bleh . L
<devyn>
I should fix that
<whitequark>
yes
<whitequark>
$ is also valid...
<whitequark>
iirc
<devyn>
whitequark: lol I just spent half an hour debugging something and just now realized I was using dest,src instead of src,dest and that's why it wasn't working
<purr>
lol
<whitequark>
lol
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
<whitequark>
til you can botox your armpits
<devyn>
why
<whitequark>
stops sweating apparently
<whitequark>
I would actually consider that
<whitequark>
it's convenient
<whitequark>
also, good to have a line if you need an emergency disgust for someone
<joelteon>
i would do that
<joelteon>
i need to write a parser combinator for go
<joelteon>
doesn't look like they do anything useful with go
<joelteon>
god damn
<joelteon>
i tried to read the trifecta source to figure out how to do it in go. bad idea
<whitequark>
soooo now llvm gets its own readline
<whitequark>
sigh
<devyn>
whitequark: for what purpose?
<whitequark>
"
<whitequark>
- Includes a fallback for the case where the user doesn't have libedit
<whitequark>
installed.
<devyn>
yeah but where does it get used
<whitequark>
also I'm not sure, they say in the commit message that, quote
<whitequark>
But since the alternative is to implement our own line editor (which I don't think LLVM should be in the business of doing, at least for now)
<whitequark>
annnd then they commit a fucking lib/LineEditor/LineEditor.cpp
<whitequark>
I mean what
<devyn>
lol
<purr>
lol
* devyn
shrugs
<purr>
¯\(º_o)/¯
<whitequark>
that's used for clang-query and lldb
<devyn>
I'm trying to freaking clear the screen in asm via 0xB8000 and I can't get it to work
<devyn>
ES=B000h, DI=8000h, AX=0, ECX=(80 * 25)
<devyn>
rep stosw
<whitequark>
wouldn't you need like, one instruction for that?
<devyn>
what is wrong with that
<whitequark>
rep stosw?
<whitequark>
oh
<whitequark>
lol
<purr>
lol
<whitequark>
wrong DF?
<devyn>
oh. probably. :D
* devyn
checks
<devyn>
(qemu) qemu: fatal: Trying to execute code outside RAM or ROM at 0x00000000000a0000
<devyn>
beautiful
<whitequark>
huh
<devyn>
wrapped it in pusha,popa; doesn't happen anymore but still doesn't clear the screen...
<whitequark>
qemu -gdb tcp::1234
<whitequark>
you'll thank me later
<devyn>
already done that. the registers I get are generally obviously bogus...
<devyn>
even if I hlt at a specific spot
<devyn>
or set a breakpoint
* whitequark
shrugs
<purr>
¯\(º_o)/¯
<whitequark>
trace it
yorick has joined #elliottcable
<devyn>
whitequark: as soon as I movl 0, %eax, EAX=f000ff53
<devyn>
isn't that odd?
<devyn>
if I xorl %eax, %eax it gets zeroed though
<devyn>
oh
<devyn>
I know why
<devyn>
I think
<devyn>
lol
<purr>
lol
<whitequark>
why?
<whitequark>
wait
<whitequark>
0?
<whitequark>
not $0? ;)
<devyn>
yep
<devyn>
but now as complains about 'invalid instruction suffix'...
<whitequark>
just mov?
<devyn>
now operand type mismatch
<devyn>
at
<devyn>
mov $0xB000, %es
<whitequark>
oooh
<whitequark>
segment registers are tough fuckers
<devyn>
can you not mov directly into them?
<whitequark>
try push %ax, pop %es
<devyn>
okay, I figured that might be the case
<devyn>
I'll try it
<whitequark>
hm
<whitequark>
or mov %ax, %es
<whitequark>
no immediates.
<devyn>
I'd say that sounds like a strange rule, but in this crazy world it makes sense
<devyn>
well now I'm triple faulting
<whitequark>
probably conserving opcode space
<whitequark>
haha
<devyn>
o.o
<whitequark>
I was screwing with x86 the other day
<whitequark>
so I went out to the elevator and it had a tiny poster glued to it