code logs -> 2016 -> Tue, 13 Dec 2016< code.20161212.log - code.20161214.log >
--- Log opened Tue Dec 13 00:00:33 2016
00:28 * jerith has now caught up with http://adventofcode.com/2016
00:28
<&jerith>
Day 11 is the hardest so far.
00:29
<&jerith>
Day 12 was quite nice. :-)
00:29
<&McMartin>
Day 12 has a very funny optimization.
00:29
<&jerith>
I haven't bothered optimising it.
00:30
<&McMartin>
hfr na njx fpevcg gb ghea gur vachg vagb npghny nffrzoyl ynathntr, nffrzoyr naq eha gung
00:30
<&jerith>
I might do that when it's not 02h30 on a work night.
00:30
<&McMartin>
I applied the optimization above by hand and found that it made part two run instantaneously instead of "over the course of several minutes"
00:31 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Ping timeout: 121 seconds]
00:31
<&jerith>
My naive "implement exactly as specified" takes a handful of seconds.
00:31
<&jerith>
What language are you using?
00:31
<&McMartin>
Python
00:32
<&jerith>
That would be why.
00:32
<&jerith>
I'm using OCaml, which is rather faster.
00:32
<&jerith>
Although you can get a major performance boost by spelling the executable "pypy" rather than "python".~
00:33 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
00:33
<&jerith>
The only one that's actually slow for me is the Gigantic Pile Of MD5s.
00:34
<&McMartin>
Which was completely trivial in Python, it turned out~
00:34
<&McMartin>
That also said, I found I had to drastically prune searchspace in day 11
00:35
<&McMartin>
I was optimizing data representation on the side when the answer came out.
00:35
<&jerith>
It's pretty trivial in OCaml too. I'm glad they didn't use sha1 or something, because md5 is the only message digest implemented in OCaml's stdlib.
00:36
<&jerith>
Although I could pull in a third-party lib if necessary.
00:36
<&jerith>
So far I've avoided that for everything except command line args and input parsing.
00:36
<&McMartin>
Right
00:37
<&McMartin>
Last year I noticed that 90% of my programmer time was going into input parsing
00:37
<&McMartin>
Which is why I've been doing most everything in Python this year, at least for initial cut.
00:37
<&jerith>
(I use "cmdliner" for the former and "angstrom" for the altter.)
00:37
<&jerith>
*latter
00:38
<&jerith>
(The name "angstrom" is a pun on "attoparsec", the Haskell library is started life as a port of.)
00:38
<&McMartin>
Itself presumably a tiny version of Parsec, which IIRC I have actually used
00:39
<&jerith>
Quite. I haven't used any Haskell libraries personally. My Haskell never got past the "why is my code all inside out?" stage.
00:40
<&jerith>
I also didn't do adventofcode last year, unless I've somehow managed to completely forget its existence.
00:40
<&jerith>
I'm doing it this year because a friend of mine was stuck on the decompression thing on Friday and asked for help on IRC.
00:42
<&jerith>
At which point I gave him a couple of suggestions, looked at a couple of the problems, and promptly spent the entire weekend churning through the first ten and a half.
00:43 * McMartin nods
00:43
<&McMartin>
Since the new questions post at 2100 my time, I've been able to get in early with answers often.
00:43
<&McMartin>
This is a major part of why I am currently #13 on the leaderboard. :)
00:44
<&jerith>
I didn't notice you there when I looked at it recently.
00:44
<&McMartin>
Optimizing for programmer speed is an interesting challenge I'm not used to dealing with it.
00:44
<&McMartin>
I actually was #1 on day 7.
00:45 * catalyst actually wrote some code this evening \o/
00:46
<&jerith>
I'm glad I don't care about the score. I have zero points.
00:46
<&jerith>
You can tell day 11 is the hardest by looking at the stats page.
00:47
<&jerith>
It's the only one with fewer stars than something above it on the list. :-)
00:47
<&McMartin>
yyyup
00:48
<&McMartin>
11-2 in particular requires a combination of brute force and raw cunning
00:49
<&jerith>
11-2 required only a very minor modification to my solution for 11-1.
00:49
<&jerith>
That modification being "actually finish the implementation".
00:50
<&McMartin>
Heh
00:50
<&jerith>
Because it turns out my implementation only needed backtracking for downward steps in 11-1, but it also needed to backtrack upward steps in 11-2.
00:51
<&McMartin>
... how are you getting away with a DFS when the charge is to find the fastest route?
00:51
<&McMartin>
Discussions afterwards indicated that genpx puvc naq trarengbe cnvef nf cnvef bs sybbef, jvgu gur ryrzragf gurzfryirf nofgenpgrq njnl, naq sybbef bayl vzcyvrq vafgrnq bs orvat cneg bs gur zbqryrq qngn fgehpgher sped up a BFS-based solution by a factor of 5000
00:52
<&jerith>
Possibly by accident.
00:52
<&McMartin>
Could be
00:52
<&McMartin>
All of the things I tried on 11-2 to prune the search space strategically ultimately produced incorrect answers
00:52
<&jerith>
Details -> PM.
00:58
<&jerith>
(PM because I don't feel like rot13ing quite so much conversation.)
01:00 Derakon[AFK] is now known as Derakon
01:03
<&McMartin>
https://github.com/mvdan/interfacer/
01:03
<&McMartin>
Go has needed this for some time
01:06 abudhabi [abudhabi@Nightstar-7nkq9k.de] has quit [Operation timed out]
01:06 abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code
01:06 mode/#code [+o abudhabi] by ChanServ
01:11
<&jerith>
I can't get past the fact that someone thought implicit signature-based interfaces were a good idea in the 21st century.
01:11
<&jerith>
Despite https://golang.org/pkg/os/#Signal being in the standard library.
01:12
<&McMartin>
The part you're missing is that Go is what you get when you teleport somebody into the 21st century from the early 1980s
01:14
<&jerith>
Yeah.
01:14
<&jerith>
But then let's not try to pretend it's a "modern" "safe" language.
01:14
< catadroid>
Which is basically the genesis of the language
01:15
<&jerith>
When actual modern safe languages have existed for years.
01:16
<&jerith>
But those have scary type systems and they look funny.
01:16
<&jerith>
(Except rust, which has a scary type system without looking funny, but that's still pretty new.)
01:17
< catadroid>
Rust feels like a great solution to the wrong problem to me
01:17
<&jerith>
I don't really know very much about it, except the people I've heard talk about trying to use it all agreed that it wasn't really ready yet.
01:19
<&McMartin>
I pretty much agree with that assessment
01:19
<&McMartin>
Though if you're in a space where you *can* use it, you're good to go
01:20
<&jeroud>
I still think the path to high performance low level code is a smart compiler and a helpful type system.
01:21
< catadroid>
I think the path to high performance, low level code is a language that lets you express what you want and does so in a way that translates well to the underlying machine
01:22
< catadroid>
The type system can help with that, but only if it is the right type system
01:22 * himi notes that Mozilla /is/ writing a whole new browser engine in Rust
01:22
<&jeroud>
I don't have a bunch of theory to back that up, but I can point at "here's all the assembler we're not writing by hand anymore".
01:23
<&jeroud>
catadroid: Yeah. Most type systems are the wrong type systems, though.
01:24
<&McMartin>
Right, my take on Go is that it is not in the Rust space
01:24
< catadroid>
Go is really not
01:25
< catadroid>
Go is closer to JVM/.NET than it is to C imo
01:25
<&McMartin>
Go is Python without the Global Interpreter Lock designed by someone whose last two languages were Pascal and JavaScript
01:25
<@himi>
. . . that sounds quite hideous
01:25
<&McMartin>
It's really sad to see various aspects of Go at that level of play
01:25
< catadroid>
Go does genuinely offer something new and valid, though
01:25
<&McMartin>
Rob Pike was the primary designer
01:26
<&McMartin>
Channels are fun but I think I first encountered concepts like that from Clojure :)
01:26
< catadroid>
Channels and ease of concurrency are really nice
01:26
< catadroid>
Clojure did get them from Go
01:26
< catadroid>
But I suspect Erlang but the jump on all of them way before
01:26
< catadroid>
The more I learn about it
01:26
<&jeroud>
catadroid: CSP has been around for ages.
01:26
<&Derakon>
My biggest takeaway from Go is that the language style guide prefers terseness of variable names at the expense of clarity and that's objectively dumb.
01:26
<&Derakon>
This is not a very helpful perspective re: language features though.
01:27
<&McMartin>
See "teleported in from the early 1980s"
01:27
< catadroid>
It feels like a very good Google systems language
01:27
< catadroid>
Which is fine, because that's what it's designed to be
01:27
<&McMartin>
Go was similar to Rust only in that both are post-OOP languages
01:27
<&McMartin>
The difference is that Go removed inheritance and replaced it with *nothing*
01:27
<&jeroud>
Erlang's stuff is different, and I like Erlang except for the syntax.
01:30
<&[R]>
-*- himi notes that Mozilla /is/ writing a whole new browser engine in Rust <-- Mozilla's rewritting their browser again?
01:30
<&[R]>
Didn't they learn from last time?
01:31
<&[R]>
Or are they blindly following Edge's lead? Because MS leading? Drugs are a hell of a drug.
01:31
<@himi>
[R] this is a new engine targeted at embedded environments (at least for now)
01:31
<&jeroud>
I'll buy that Go makes concurrency easier when I can get the docker daemon to do more than one thing at a time.~
01:32
<@himi>
Not rewriting the whole Mozilla codebase
01:33
<&jerith>
(I'm still bitter at being unable to get the information I need to safely unmount volumes without deadlocking docker.)
01:35
<@himi>
I also suspect there's feedback between their support for Rust the language and the browser engine project - they want to support a new and interesting language, as well as give the language developers a large real world project to test the language on, and have a project that Rust people can point at and say "see, it's good for real-world stuff"
01:36
<@himi>
Having a language that sits in the same space as C but protects against a lot of the security issues that C is prone to would be A Good Thing(tm) - the problem is getting there
01:36
<&jerith>
I do like the pace at which Rust is moving.
01:36
<&jerith>
It's slow, but it's sensible.
01:37
<&[R]>
Gamelibs for it yet?
01:37
<&[R]>
Like allero?
01:37
<&jerith>
Dunno.
01:38
<&jerith>
All my "play with cool languages" time recently (of which there's been very little) has been spent on OCaml.
01:38
<&jerith>
Which isn't a new language, but it's definitely a cool one.
01:39
<@himi>
Rust has some limited game-type libraries, but it's still pretty early on having that kind of broad support
01:39
<&jerith>
And after spending so much of my life in the dynamically typed world, a static type system that helps rather than hinders is really nice.
01:40
<@himi>
That said, it can link directly with C
01:40
< catalyst>
A better C++ is certainly a place there's a lot of space for
01:40
< catalyst>
but I do think that C++ is fundamentally solving the wrong problems
01:40
< catalyst>
It's created a huge language surface that's always available
01:41
<@himi>
(and can also be hooked into Python both ways, meaning you can do a bunch of stuff in Python and then do the relevant bits in Rust, or vice-versa)
01:41
<@himi>
jerith: what's the OCaml world like these days?
01:41
< catalyst>
And its ideas on mutability are fundamentally tied to single threaded execution
01:41
<&jerith>
himi: I'm fairly new to it.
01:41
< catalyst>
And always will be
01:41
< catalyst>
I feel like Rust has carried a lot of that with it, still
01:41
< catalyst>
(From what I've managed to use it for)
01:42
<&jerith>
I get the impression the community has grown significantly over the last five or so years.
01:42
<@himi>
catalyst: what do you mean?
01:42
<&jerith>
And there's been a bunch of new work on the core language.
01:42
< catalyst>
himi: which part?
01:42
<@himi>
The mutability comments
01:43
<&jerith>
One of the things I really like about the functional world is the mutability is not the default.
01:43
< catalyst>
Ah, the way that concurrency seems to be going to me is towards languages that promote very limited and controlled mutability - and specifically mutability of identity rather than internal state. It's far easier to reason about a double buffered large data structure that has significant amounts shared than it is a constantly changing structure
01:44
< catalyst>
(This is also a long term trend in game systems design, which I'm intimately familiar with)
01:44
< catalyst>
Rust still lives in a world where objects are fundamentally internally mutable, even if it vastly discourages that aspect of code
01:45
< catalyst>
I'm very in favour of structural sharing and building immutable structures with as few mutable aspects as you can get away with
01:45
< catalyst>
It's also the way web architecture has been heading for a while, too
01:47
< catalyst>
C grew up in a world with tiny amounts of memory and an assumption of a single thread of execution - those assumptions have been brought forward into all of its descendants, and I feel like Erlang/Go/clojure.async/Elixir/many other examples are showing that we can afford to think differently about concurrency
01:47
<@himi>
Rust /is/ intended to be a systems level language - having to go outside the language to directly manipulate system memory kind of defeats the porpoise
01:47
< catalyst>
Manipulating memory in the language is great - building systems that tend towards not mutating parts of existing data are more manageable in my experience
01:48
< catalyst>
C++ is a much, much better language if you code it like it's a Lisp
01:48
< catalyst>
(From a *lot* of personal experience building performance game intensive systems)
01:48
< catalyst>
performance intensive game systems*
01:48
< catalyst>
...I should attempt sleep
01:49
<@himi>
Rust definitely pushes you towards immutability by default . . .
01:50 * ToxicFrog invites catalyst to join him in bed >.>
01:51
< catalyst>
Rust pushes you towards immutability, but it is also aimed squarely at (and encourages to some degree) coding practises that have proven difficult to scale
01:51
< catalyst>
It feels a lot like C++, but with the correct defaults
01:51
< catalyst>
And it brings with it a lot of the ideas in OOP which are looking like losing prospects long term
01:52
<@himi>
Without distracting you from slep, can you elaborate on that aspect?
01:52
< catalyst>
I'm certain there's a place for Rust, but it also feels like a language that's not quite grasped the concurrency nettle yet
01:52
< catalyst>
Honestly, I'd need to go refresh myself on the language to properly elaborate on it for you
01:52
< catalyst>
But I can do, in some detail
01:53
< catalyst>
(Who knows? It may be in the past year or so I'll see some of those aspects differently, or they may have changed in that time)
01:53
<@himi>
Only if it's convenient
01:54 * himi is at a point where he's still trying to find a good project to do in Rust, but has been finding it really nice so far
01:54
< catalyst>
Basically, the frustration people have with the borrow checker seems to stem entirely from attempting to treat values as partially mutable and wanting to from lots of different angles
01:54
< catalyst>
Whereas a much neater and agreed upon approach in languages like Rust is to build composite values up from immutable parts and rebuild new values with structural sharing when things change
01:55
< catalyst>
C and C++ encourage you to mutate in place, Lisps, Go, anything with a garbage collector (btw I think garbage collectors are a colossal hack, but that's another story) tend to encourage you to build new things and discard the old ones when they become irrelevant
01:56
< catalyst>
Mutating things in place is what causes so many headaches when you have more than one thread of execution
01:56
< catalyst>
You sidestep a *lot* of concurrency issues by just not mutating things once they exist
01:56
< catalyst>
Wait
01:56
< catalyst>
Whereas a much neater and agreed upon approach in languages like *Clojure*
01:57
< catalyst>
(See, I told you I was tired)
01:58
<@himi>
You don't think the ownership model in Rust combined with default immutability works around a lot of that?
01:58
<@himi>
Or is that what you mean with the comments about the single-threaded model?
01:59
< catalyst>
Rust just feels like it pushes me to code in a C/C++ like fashion and less in a Clojure/Scheme like fashion
02:00
< catalyst>
It never lets you escape the low level aspects, even if it would be advantageous to in many cases
02:00
< catalyst>
C++ suffers intensely from this
02:01
< catalyst>
You often find programmers twiddling with template code in the corner going 'look at how clever I am!' when what they've achieved in 500 LoC could be done in a single list comprehension in Python, for example
02:01
<@himi>
That I can agree with
02:01
< catalyst>
Rust feels like it encourages people to solve the language rather than the problem they set out to in a similar way
02:01
< catalyst>
Just from different angles
02:02
< catalyst>
I think it's a significant problem in languages that are trying to abstract away from the machine without successfully abstracting away from the machine (because the machine is always available in the language syntax)
02:02
<@himi>
Admittedly, the language developers do seem to be trying to move things into the language where it improves usability
02:02
< catalyst>
Rust is very much a better C++, don't get me wrong
02:02
< catalyst>
C++ itself is a mighty language, capable of high performance and great things
02:03
< catalyst>
I just feel like both are tethered very strongly to their C heritage
02:03 * Vornotron should actually do the advent of code thing
02:04
<@himi>
Interesting that you say Rust has a C heritage - I've seen it more often described as an ML . . . descendant? Derivative is much too strong. Cousin, maybe?
02:04
<&ToxicFrog>
I'm having fun with it in clojure
02:04
<@himi>
Vorn: linkie?
02:04
<&ToxicFrog>
adventofcode.com
02:05
< catalyst>
himi: It feels much more like C than ML to me
02:05
< catalyst>
Well, C++
02:07
<@himi>
It probably depends on your prior viewpoint as much as anything
02:08
< catalyst>
Perhaps, but I've spent a lot of this year thinking in Lisp and with a functional bias
02:09
< catalyst>
But, I should really at least go lie down :)
02:09
<@himi>
ML is very different to Lisp, though
02:09
<@himi>
Yeah, sorry - I was enjoying the discussion
02:09
<@himi>
Didn't mean to keep you up too long
02:09
< catalyst>
Nah, it isn't really you that's keeping me up
02:10
< catalyst>
My brain's doing strange things right now
02:10
<@himi>
Too many parentheses ;-P
02:13
< catalyst>
Nothing to do with code
02:14
< catalyst>
Though I'm rather glad I managed to write some this evening :)
02:18
<@himi>
Of course, after all this discussion of Rust, I'm currently working on some Python code
02:19
< catalyst>
Heh, and mine was C++, go figure
02:20 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
02:20
<&McMartin>
Rust has struck me as an attempt to merge C and Haskell.
02:20
<@himi>
McMartin: how so?
02:21
<@himi>
I could see it as a Functional C, certainly, but why Haskell specifically?
02:21
<&McMartin>
On the C side I'm also adding in the ownership discipline that is common amongst C programmers for keeping the heap pristine
02:21
<&McMartin>
Why Haskell Specifically: Traits are clearly inspired by typeclasses
02:22
<&McMartin>
They don't go all the way, and this produces infelicities and annoyances that people have trouble articulating because they keep doing it in category theory terms
02:22
<@himi>
Ah, yeah
02:22
<&McMartin>
e.g. "Rust doesn't support higher-kinded traits" instead of "I can't implement a trait on Vec<T>, only Vec<u8> and Vec<char> and Vec<Argh> independently"
02:23
<&McMartin>
Sorting out how to deal with these things in ways that keep things sane is a major part of why Rust isn't quite ready for prime time
02:23
<&McMartin>
But I've dipped into their discussions and they while they may be mad, they're not idiots and they might not even be mad
02:23
<@himi>
I believe this is something being worked on (higher-kinded types/traits), but is hard to do in a way that works within Rust
02:23
<&McMartin>
Right
02:24
<&McMartin>
They're also trying to unify this with something that will serve to cover the rest of the OOP space
02:24
<&McMartin>
Because unlike Gophers, Rustaceans are actually aware that this is a gap in expressivity. =P
02:25
< catadroid>
People who identify as single language users feel like they're doing it wrong to me ^^
02:26
<&McMartin>
preach
02:26
<@himi>
There's definitely a lot of Haskell influence in the type system discussions - possibly because Haskell has been working on this stuff longer and harder than anyone else . . .
02:26
<&McMartin>
Heh. I would say that is backwards.
02:26
<&McMartin>
Haskell has that work in it not because Haskell sorts care about it for its own sake...
02:27
<&McMartin>
... but because Haskell came about so that FP researchers had a common notation to discuss things
02:27
<@himi>
Yes
02:27
<@himi>
Which is kind of what I meant
02:27
<&McMartin>
Well, I think of them pre-Haskell as mostly using ML
02:27
<&McMartin>
Which wasn't that - ML started out as a handy way to configure a theorem prover, IIRC.
02:27
<&McMartin>
And then it grew legs
02:28
<&McMartin>
And then people used it for their sample code
02:29 * himi nods
02:34
<@himi>
But I think it's reasonable to say that the Haskell community has thought deeper about that whole area of type systems than anyone else, and since it's been in the context of an actual compilable programming language it's been well grounded in practicality
02:35
<@himi>
Which means it's the go-to place for ideas about how to do stuff like what Rust wants
02:43
< catadroid>
I'm not sure I would call Haskell grounded in practicality
02:44
< catadroid>
It's had some truly good ideas though
02:52
<@himi>
It's a hell of a lot more practical than academic papers on category theory
02:59
< catadroid>
Honestly, a low bar ^^
03:28 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code
03:39 * McMartin invokes a Class Four Warding charm, begins adding reinterpret_cast<>()s to his code
03:40 * Vornotron finds a convenient vault to hide in.
03:56 * Reiv would join Vorn in the vault, but has seen too many movies about the man who hides in the locked basement with an abomination.
04:12 * ToxicFrog attempts to solve 7-1, gets the wrong answer, realizes that he misread the question, glares at it, and goes to bed.
04:30 * Vornotron blows through 1 and 2 and 3A, eyes 3b, which is silly bullshit.
04:52 catadroid` [catalyst@Nightstar-jm9jgp.dab.02.net] has joined #code
04:53 Derakon is now known as Derakon[AFK]
04:54 catadroid [catalyst@Nightstar-lud.tcr.132.82.IP] has quit [Ping timeout: 121 seconds]
05:00 ion_ [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
05:00 mode/#code [+o ion_] by ChanServ
05:00 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [[NS] Quit: s/byte/bye]
05:02 ion_ is now known as ion
05:12 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
05:13 * McMartin rips through Advent Problem 13.
05:38 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed]
05:42 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [Connection reset by peer]
05:50 celticminstrel [celticminst@Nightstar-h4m24u.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:37 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
06:37 mode/#code [+o ion] by ChanServ
06:44 Vornotron [Vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out]
07:41 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:41 mode/#code [+qo Vornicus Vornicus] by ChanServ
07:41 Kindamoody[zZz] is now known as Kindamoody
07:58
< catadroid`>
...C++, you're still awful at unicode
08:15 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
08:17 Kindamoody is now known as Kindamoody|afk
08:23
<@abudhabi>
Wordpress plugin complains that the PHP version is too low. The techs insist that it's updated.
08:23
<@abudhabi>
How do I 'clear cache' or something so that Wordpress will use the current version of PHP?
08:23
<@abudhabi>
Do I need to restart apache or something?
08:28 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
08:28 mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ
08:32 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds]
08:36 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
08:36 mode/#code [+o Alek] by ChanServ
09:27 catadroid` [catalyst@Nightstar-jm9jgp.dab.02.net] has quit [[NS] Quit: Bye]
09:46 Derakon_ [chriswei@Nightstar-5mvs4e.ca.comcast.net] has joined #code
09:48 Derakon[AFK] [chriswei@Nightstar-5mvs4e.ca.comcast.net] has quit [Ping timeout: 121 seconds]
09:51 catadroid [catalyst@Nightstar-jm9jgp.dab.02.net] has joined #code
09:52 catadroid [catalyst@Nightstar-jm9jgp.dab.02.net] has quit [[NS] Quit: Bye]
10:39 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
10:39 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
10:39 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
10:40 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
10:40 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
11:50 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
11:50 mode/#code [+o gnolam] by ChanServ
11:53 catadroid [catalyst@Nightstar-va5jcb.dab.02.net] has joined #code
13:37 celticminstrel [celticminst@Nightstar-h4m24u.dsl.bell.ca] has joined #code
13:37 mode/#code [+o celticminstrel] by ChanServ
14:03 catadroid [catalyst@Nightstar-va5jcb.dab.02.net] has quit [[NS] Quit: Bye]
15:02
<~Vornicus>
make sure apache is restarted, but at the same time you should be able to add a <?phpinfo()?> pageoid to see what php is being run
16:48 gnolam_ [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
16:50 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has quit [NickServ (RECOVER command used by gnolam_)]
16:50 gnolam_ is now known as gnolam
16:50 mode/#code [+o gnolam] by ChanServ
17:25 * Vornicus gets to AoC 5, determines these people to be Silly.
17:28
<@abudhabi>
Age of Charts?
17:29
<~Vornicus>
advent of code, thing we were poking at last night. #5 is "do bazillions of md5 hashes
17:40
<&ToxicFrog>
That's the one I mentioned that was something like ~40 lines in clojure and more like three in bash.
17:41
<&ToxicFrog>
(ok, 5-2 is harder in bash, but 5-1 is trivial)
17:54
<~Vornicus>
5-1 is 10 lines in python, 5-2 is 14.
17:55
<~Vornicus>
they take about 30s and 70s, respectively.
18:11 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds]
18:15 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
18:15 mode/#code [+o Alek] by ChanServ
18:23
<~Vornicus>
6-b is +2-1 characters away from 6-a
18:37 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
18:39 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code
18:42
<&ToxicFrog>
Yeah, 6-1 and 6-2 were one word apart for me
18:43
<&[R]>
https://science.slashdot.org/story/16/12/13/1635251/why-china-cant-lure-tech-tal ent <-- I wonder if they'll realize that
18:43
<&ToxicFrog>
Most of the length of the clojure solution to 5-* is that it doesn't have a wrapper for the java crypto libraries
18:43
<&ToxicFrog>
So you have to call them directly, and they are, like all Java libraries, absurdly cumbersome and overengineered.
18:44
<&ToxicFrog>
The actual Bit What Does The Things is 6 lines long.
19:11 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds]
19:12 Kindamoody|afk is now known as Kindamoody
19:14 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
19:14 mode/#code [+o Alek] by ChanServ
20:17 * Vornicus writes a 50-character regex to solve 7-A
20:18
<@celticminstrel>
o.o
20:20 * Vornicus now eyes 7-B.
20:21
<~Vornicus>
that one is ...harder.
21:01
<&jerith>
Vornicus: I'm interested in what you'll do with 11.
21:02
<~Vornicus>
7b I think I can still regex though lord it will be terrible. whole bunch of [^\[\]] in there
21:03
<&jerith>
How does your regex handle the variable number of chunks?
21:07
<~Vornicus>
what, the bit where there's a lot of different hypernets?
21:07
<~Vornicus>
I have a plan! It's not going to be pretty but it's a plan. Right now though I have to clean my house because D&D is happening in two hours
21:15 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed]
21:19 starkruzr [quassel@Nightstar-7qsccf.fios.verizon.net] has quit [Connection closed]
21:20 starkruzr [quassel@Nightstar-7qsccf.fios.verizon.net] has joined #code
21:20 mode/#code [+ao starkruzr starkruzr] by ChanServ
21:50
<&jerith>
That's day 13 done.
21:54 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
21:56
<&jerith>
Do we have a private AoC leaderboard?
21:56
<&jerith>
If not, the invite code for the one I just created is 148552-220e29ae.
21:58
<&jerith>
I have no idea how that works, but I'm pretty sure McMartin will be at the top.~
21:58
<&jerith>
Vornicus, ToxicFrog, anyone else playing along: ^^^
21:59
<~Vornicus>
mcm is in the top 20 globally~
21:59
<&jerith>
Yes, which is why I'm pretty sure he'll be at the top here.~
22:01
<&jerith>
My excuse for not being on the global leaderboard is that the new problem drops at 7am local time.
22:02
<~Vornicus>
shows up at midnight here
22:03
<&jerith>
I have run out of AoC. :-(
22:03
<&jerith>
I guess I'm not writing any more OCaml until tomorrow.
22:06
<~Vornicus>
project euler fixed that by cycling the time of day it dropped
22:08
<&jerith>
My drive for this kind of thing is completionism, not competition.
22:08
<&jerith>
If I'm bored while waiting for the next problem I'll start on last year's.
22:25
<&McMartin>
The private leaderboards work differently
22:25
<&McMartin>
And yeah, the leaderboards are dumb; the only reason I'm ranked is because the problem drops right after I finish dinner
22:26
<&jerith>
I don't think the leaderboards are dumb.
22:26
<&McMartin>
The private leaderboards are strictly on star count
22:27
<&McMartin>
IIRC
22:27
<&jerith>
I think they're a bit biased to particular timezones, but they serve a purpose.
22:28
<&jerith>
McMartin: Not anymore. They have a "local" mode which does the same points-based-on-finishing-order as the main leaderboard, but the number of points is based on the number of participants in that leaderboard.
22:29
<&jerith>
And a "global" mode which uses global rankings and breaks ties with the local order or something.
22:29
<&jerith>
The "stars" mode is what you describe and it's still there.
22:30
<&jerith>
Anyway, I set up this private leaderboard to see who's done what rather than to compete.
22:32
<&McMartin>
Aha
22:33
<&jerith>
Would you like to join? :-)
22:33
<&McMartin>
Sure, but it will have to wait about, oh, six hours
22:34
<&jerith>
You don't have an AoC login from the place you're IRCing from?~
22:35
<&McMartin>
No, as it happens
22:49
<&ToxicFrog>
"points based on finishing order"?
22:49
<&McMartin>
So, since the problems drop at 9 PM Pacific
22:49
<&McMartin>
And because I am working in Python
22:49
<&McMartin>
I am usually one of the 50 first finishers
22:50
<&McMartin>
So if you're one of the first 100 finishers you get points on a leaderboard
22:51
<&ToxicFrog>
Aah
22:51
<&ToxicFrog>
"points based on how many people finished before you", not "points based on what order you solved the problems in"
22:51
<&McMartin>
Right.
22:51
<&McMartin>
I was actually the first solver for 7B.
23:12 Kindamoody is now known as Kindamoody[zZz]
23:18 * ToxicFrog unlocks 7-2
23:36
<&ToxicFrog>
That wasn't so bad, although it helps if you remember to put the ABAs and the BABs in different sets~
23:37
<@Reiv>
no babes for ABBA, huh?
23:39
<&ToxicFrog>
ABBA is problem 7-1 :P
23:40
<@Reiv>
ahahaha
23:44 himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has joined #code
23:44 mode/#code [+o himi] by ChanServ
--- Log closed Wed Dec 14 00:00:34 2016
code logs -> 2016 -> Tue, 13 Dec 2016< code.20161212.log - code.20161214.log >

[ Latest log file ]