--- 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 |