code logs -> 2017 -> Sat, 08 Apr 2017< code.20170407.log - code.20170409.log >
--- Log opened Sat Apr 08 00:00:45 2017
00:06 Kindamoody is now known as Kindamoody[zZz]
00:45 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [[NS] Quit: Leaving]
01:58 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [The TLS connection was non-properly terminated.]
02:01 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
02:01 mode/#code [+o himi] by ChanServ
03:09 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
04:38 Derakon is now known as Derakon[AFK]
05:36 macdjord [macdjord@Nightstar-ahbhn1.cable.rogers.com] has joined #code
05:36 mode/#code [+o macdjord] by ChanServ
05:38
<@abudhabi>
How do I press page up on an android virtual keyboard?
05:44
<@abudhabi>
Nevermind. Found the irrsi command.
06:06
<~Vornicus>
maaaathcooooode
06:29 * Vornicus cannot maaaaathcoooode because he must caaaaaatsnuuuugleeeee
06:31
<~Vornicus>
strong argument for knowing the keyboard shortcuts for everything I guess: I cannot reach the mouse.
07:00 Jessikat [Jessikat@Nightstar-7da5lb.dab.02.net] has joined #code
07:51 macdjord is now known as macdjord|slep
07:58 Kindamoody[zZz] is now known as Kindamoody
08:02 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
08:05 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
08:05 mode/#code [+o Alek] by ChanServ
08:56 Kindamoody is now known as Kindamoody|afk
09:44 Jessikat` [Jessikat@Nightstar-bbl4bs.dab.02.net] has joined #code
09:46 Jessikat [Jessikat@Nightstar-7da5lb.dab.02.net] has quit [Ping timeout: 121 seconds]
10:04 Jessikat` is now known as Jessikat
10:32 Jessikat [Jessikat@Nightstar-bbl4bs.dab.02.net] has quit [[NS] Quit: Bye]
11:16 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
13:18
<~Vornicus>
at least mathcode is easy to test.
13:47 Kindamoody|afk is now known as Kindamoody
14:59
<@abudhabi>
Due recent expeniece with JIRA, I've come to see the utility of project management software.
15:00
<@abudhabi>
Is there any software like that intended for solitary development?
15:00
<&McMartin>
I don't think there's anything stopping you from using it, or Trac, or Bugzilla, alone
15:01
<@abudhabi>
I guess not.
15:03
<@abudhabi>
Derakon[AFK]: What did you use? I recall you developed a commercial game of some sort.
15:04 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
15:09
<&McMartin>
I think you have a circuit crossed
15:09
<@abudhabi>
It wasn't Derakon who made that procedural platformer alone?
15:22
<&McMartin>
That wasn't commercial, though.
15:23
<@abudhabi>
Oh. I thought he made money on it. Seemed like a self-employment, from how he told about it.
15:26 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
15:31 Derakon[AFK] is now known as Derakon
15:32
<&Derakon>
It was something I worked on between jobs, basically.
15:32
<&Derakon>
I decided to delay looking for a new job and instead work on a game.
15:32
<&Derakon>
But I never got it to the point where I could sell it.
15:32
<@abudhabi>
I see.
15:34
<&Derakon>
In hindsight I was much more interested in the puzzle of how to procedurally generated a platforming game world than I was in making a game.
15:53 gnolam [lenin@Nightstar-09nsce.cust.bahnhof.se] has joined #code
15:53 mode/#code [+o gnolam] by ChanServ
17:48
<@gnolam>
https://aphyr.com/posts/341-hexing-the-technical-interview
17:56 Ky|o-Ren [cmnd@Nightstar-7i6ec2.dyn.optonline.net] has joined #code
18:00
<&McMartin>
Mad the rounds yesterday
18:00
<&McMartin>
I note in passing that this is basically my old Ph.D. thesis.
18:04
< RchrdB>
I assume aphyr's previous bewitching-the-interview post was probably even more fun for you?
18:04
< RchrdB>
since it started with Church encodings of cons cells and went all kinds of fun places from there
18:14
<&McMartin>
Oh no, this one was much more fun.
18:15
<&McMartin>
I spent most of the early aughts being better at hacking JVM bytecode than writing Java
18:15
<&McMartin>
One of the first tricks this does once it hits the classfile level is rewind the standard to the way it existed in the early aughts
18:15
<&McMartin>
Because in fact it is far easier to dynamically generate classes that way unless you have far more sophisticated tools handy
18:15
<&McMartin>
Which I did not at the time, but which I am given to understand Clojure uses internally~
18:16
<&McMartin>
This does, however, manage to avoid that corner of the JVM in which a decision was made that was so boneheaded that there is a footnote apologizing for it in the spec.
18:16
<&McMartin>
I do not know if the Great Reworking that arrived in Java 1.5 fixed that.
18:20
<@ErikMesoy>
Gnahh. Browser is slow for a bit, so I idly figure I'll try speedtest, then speedtest fails silently, so I Inspect Element, and the console informs me that a page as simple as speedtest.net has *six errors, two warnings*, and then I figure I'm just having one of those days described in the login:logout column about how the internet is like a surgeon discovering that your liver has gills.
18:20
< RchrdB>
*snerk* what
18:20
< RchrdB>
Apologetic footnote?
18:21
<&McMartin>
OK, so, the non dumb thing, remembering that the JVM starts in the early-mid 1990s, when people still unironically used Amigas as actual personal workstations
18:22
<&McMartin>
Was that all registers and stack values are 32 bits wide, and thus longs and doubles take up two units of stack, or two local variables in your call frame.
18:22
<&McMartin>
(The high dword of each gets assigned a special type that may not be legally accessed by any instruction individually)
18:22
<&McMartin>
However, they also take up two entries in the constant pool, consuming an index with a high_long or high_double value that may not be accessed.
18:23
<&McMartin>
As you can see from this example though, this is completely dumb because constant pool entries are usually strings, which is to say, they are of variable length and can easily fit a long or double in.
18:23
<&McMartin>
My printed copy of the JVM spec includes a footnote at that part that says "In retrospect this was a poor choice"
18:25
< RchrdB>
ah okay that's... not as horrible as I was expecting
18:25
< RchrdB>
dumb but I guess I can see how it got that way
18:26
<&McMartin>
It's unmistakably an error and always was, but someone was figuring the constant pool would look like a register file early on and didn't revisit it in time, I think.
18:28 JustBob [justbob@Nightstar.Customer.Dissatisfaction.Administrator] has quit [Ping timeout: 121 seconds]
18:28
< RchrdB>
The thought process that would've led to it is kind of understandable
18:33
<&McMartin>
Yeah. And with the stack entries and register frames, it's flatly not an error: the JVM is a 32-bit VM, that's how 64-bit values roll.
18:34
<&McMartin>
There is, however, one small error in that article.
18:34
<&McMartin>
It is entirely possible to express forbidden concepts in the JVM assembler. However, the point that the interviewer objects is not illegal in the first place
18:35
<&McMartin>
The requirement of the verifier is that along all paths to a program point (as defined by the standard dataflow analysis used for use-before-def or liveness checking), only variables with a consistent type are accessed.
18:35
<&McMartin>
Write instructions are thus always legal because they change the type of that location from there on.
18:36
<&McMartin>
What is illegal is if two conflicting write instructions both lead to the same read instruction, or if the read instruction does not match the writes.
18:37
<&McMartin>
If memory serves, there were two objections to this setup that had become solidified by the 1.4 era (from which this class hails) and which were addressed in 1.5
18:37
<&McMartin>
First, it made loading slower than they'd like
18:38
<&McMartin>
Second, it turns out standard dataflow wasn't good enough to behave appropriately in the face of how exceptions got compiled without making assumptions that were OK on the surface but got less OK the closer you dug into them... and by then they'd had nearly a decade to dig into it
18:38
<&McMartin>
So 1.5 replaced it with "bring your own explicit type annotations, turning dataflow into simple typechecking"
18:38
<&McMartin>
This does also make Java the first industrially-deployed instance of Proof-Carrying Code I'm aware of.
18:53
< RchrdB>
<McMartin> What is illegal is if two conflicting write instructions both lead to the same read instruction, or if the read instruction does not match the writes.
18:53
< RchrdB>
^ this sounds very similar, suspiciously similar, to the language about effective types of memory locations in the C11 standard.
18:54
< RchrdB>
I thought anything with a bytecode verifier technically counted as proof-carrying code?
18:55
< RchrdB>
like the definition of "PCC" is that the code carries with it proof of some (any) relevant invariant
18:55
< RchrdB>
and that e.g. constant stack usage counts?
18:56
<&McMartin>
Hmm.
18:56
< RchrdB>
Might be wrong about that.
18:56
<&McMartin>
Pre-1.5 JVM is, imo, a "typed assembly language", which I think of as a broader class
18:56
<&McMartin>
But I can see the argument for it being a narrower one!
18:57
<&McMartin>
And speaking of which, now that you mention it, the stack height has to be invariant in the JVM spec too
18:57
<&McMartin>
Looking at the full set of requirements, it's very clear that Sun's intent was for the JVM to be a stack machine that could be trivially transformed into a register machine as long as you had enough registers.
19:16 Ky|o-Ren [cmnd@Nightstar-7i6ec2.dyn.optonline.net] has quit [[NS] Quit: - nbs-irc 2.39 - www.nbs-irc.net -]
20:28 Kindamoody [Kindamoody@Nightstar-0lgkcs.tbcn.telia.com] has quit [[NS] Quit: Rebooting.]
20:33 Kindamoody|autojoin [Kindamoody@Nightstar-0lgkcs.tbcn.telia.com] has joined #code
20:33 mode/#code [+o Kindamoody|autojoin] by ChanServ
21:08 JustBob [justbob@ServerAdministrator.Nightstar.Net] has joined #code
21:08 mode/#code [+o JustBob] by ChanServ
21:33 Kindamoody|autojoin is now known as Kindamoody
21:42 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
21:53
<@ErikMesoy>
Little Bobby Tables is growing up! https://www.sec.cs.tu-bs.de/pubs/2017-asiaccs.pdf
21:53
<@ErikMesoy>
"... an attacker may finish each iteration over a list of guessed passwords with a set of malicious markers, i.e., specially crafted login names that correspond to anti-virus signatures. If the attacked host is running a virus scanner configured to delete or quarantine viruses, any file containing such a malicious marker is deleted or at least moved to a different location."
21:54
<@ErikMesoy>
"This not only makes manual investigation of the attack hard but may also inhibit the functionality of tools analyzing log files to stop password guessing, such asfail2ban[26]."
21:58
< RchrdB>
bwahaha
21:59
< RchrdB>
oh that's why people in my twitter feed have been mentioning stuff like putting the EICAR test vector in their email signature
21:59
<&McMartin>
To start nuking people's mailspools?
22:00
< RchrdB>
yeah that kind of prank is why they were doing it
22:00
< RchrdB>
I mean I'm guessing that the publication of this paper that ErikMesoy just linked
22:00
< RchrdB>
is the impetus for why people have been recently mentioning pranks like that.
23:15 Kindamoody is now known as Kindamoody[zZz]
23:35
<@himi>
People still use single-file mail spools?
23:57
<&[R]>
Exchange is apparently popular
23:57
<&[R]>
Despite their mail format having braindead implimentation problems.
23:58
<&[R]>
(Though better than UNIX-style single-file mail spools, where you can send a specially formatted email message to fake extra messages.)
23:58
< RchrdB>
Well, mbox files?
23:58
< RchrdB>
but the paper is talking about doing more serious things like putting virus signatures into your enemies' apache logs so that their AV tools will delete the apache logs and then ~no more forensics~
--- Log closed Sun Apr 09 00:00:46 2017
code logs -> 2017 -> Sat, 08 Apr 2017< code.20170407.log - code.20170409.log >

[ Latest log file ]