--- Log opened Fri Jan 29 00:00:27 2016 |
--- Day changed Fri Jan 29 2016 |
00:00 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
00:00 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:11 | | * catalyst wonders how long it would take an average programmer to implement a standard library type |
00:28 | <@gnolam> | https://twitter.com/NachoSoto/status/659959849266970624 |
00:31 | <~Vornicus> | catalyst: you mean, like... Vector<T> or something? |
00:33 | <&McMartin> | I'm pretty sure the answer for C++ would be "an infinite amount of time" because the standard's requirements are pretty arcane |
00:33 | <&McMartin> | Java, it's more feasible |
00:48 | | Derakon[AFK] is now known as Derakon |
00:53 | < catalyst> | they aren't really |
00:53 | < catalyst> | but I can't say things like that with any kind of objectivity |
01:15 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
01:43 | <&Derakon> | It takes like fifteen minutes to implement a templated linked list. |
01:44 | <&Derakon> | Whether that's adequate to your needs compared to std::list, I don't know. |
01:46 | <&McMartin> | std::list also requires things like proper implementation of interaction with standard iterators, custom allocators, and (as of C++11) emplacement of elements and initializer lists |
01:47 | <&McMartin> | (I was taking the question as "capable of implementing everything in std::list so that anyone could use your implementation as a drop-in", not "implement a doubly-linked list") |
01:48 | <&McMartin> | (The latter is "anyone who's taken a datastructures course", ISTR Bjarne Stroustroup estimating the former as under 100 people in the world) |
01:48 | < catalyst> | I was thinking 'that implements all standard features to the required specifications' |
01:49 | < catalyst> | under 100 people? |
01:49 | <&McMartin> | That dot, right |
01:49 | < catalyst> | dot? |
01:50 | | * catalyst is possibly in the 0.001% or something stupid like that? |
01:50 | <&McMartin> | The talk you gave me - the one with the three nested circles of "people using C++", "People who need to use all the standard library stuff in C++" and "people who actually can implement all the standard library" thing" |
01:50 | < catalyst> | gah, sorry, I've been self-focusing too much |
01:50 | < catalyst> | oh, I forgot that part |
01:50 | <&McMartin> | I recall the latter being a case where the number was small enough he started actually ticking off names |
01:50 | <&McMartin> | Though that might have been "the people writing libc++", which is indeed like six people |
01:51 | <&McMartin> | libstdc++ has a larger team, and boost has a larger team still |
01:52 | < catalyst> | I am confident that I could implement std::list to the letter of the standard in a usable, optimal manner on any recent general computing platform, in a matter of days |
01:53 | < catalyst> | Why can't I internalise that? |
01:54 | | * Vornicus wonders how well written the standard is. |
01:54 | <~Vornicus> | ...knowing standards, probably godawful |
01:55 | < catalyst> | Honestly, once you grok the style and the way it explicitly and implicitly defines things, succinctly and fairly well grammared |
01:55 | < catalyst> | It has jokes in it. |
01:55 | < catalyst> | the C++ standard is actually reasonable to read if you know the sorts of things it is describing, but I would go language knowledge -> standard not the other way |
01:57 | <~Vornicus> | yeah no |
01:57 | < catalyst> | the C++14 standard: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf |
01:58 | < catalyst> | iunno |
01:58 | < catalyst> | I like reading things that are incredibly well specified, they seem calming |
01:58 | <&McMartin> | It's hard to tell from close in, yeah |
01:59 | <~Vornicus> | loadin' loadin' loadin', get that standard loadin' |
01:59 | <~Vornicus> | I've never met a standard that you can learn the thing it standardizes from |
01:59 | < catalyst> | that's not what they're for, though |
01:59 | < catalyst> | they're lists of abstractions from bottom up |
01:59 | < catalyst> | humans generalise from top down |
02:00 | <~Vornicus> | oh my god this thing is longer than lord of the rings |
02:00 | < catalyst> | the best way to teach someone is to show very concrete examples then abstract them, if you try giving the abstraction in general terms first then it does not work |
02:00 | < catalyst> | if you arrange it that way, then they have to keep switching back and forth as well, which impedes learning |
02:01 | < catalyst> | This is actually The Problem With Teaching Monads |
02:01 | < catalyst> | the people writing those articles are trying to teach the abstraction, not the use case |
02:01 | < catalyst> | hence no-one learns anything |
02:01 | < catalyst> | I should try writing some general C++ tutorial articles |
02:01 | < catalyst> | I think I'd be okay at it |
02:02 | < catalyst> | Or, at least, improve quickly |
02:02 | < catalyst> | oh, it's 2am |
02:02 | < catalyst> | I should go lie in bed |
02:02 | < catalyst> | and make sure I get up tomorrow |
02:03 | <~Vornicus> | people I would like to learn C++ from: catalyst |
02:03 | < catalyst> | being truthful? |
02:03 | < catalyst> | sorry, I am not internalising anything even the sincerity of other folk right now |
02:04 | < catalyst> | I ought to go sleep |
02:04 | <~Vornicus> | Yes. |
02:04 | < catalyst> | (err, yes to which?) |
02:04 | <~Vornicus> | to being truthful |
02:05 | <~Vornicus> | Even just hearing you rant and talk with McM I've learned an awful lot |
02:05 | | * catalyst nods |
02:05 | < catalyst> | I actively try not to come across as arrogant or preachy with this stuff either, which I see a lot of people do |
02:08 | < catalyst> | the number one way to turn me off learning something is to imply that you're superior for knowing it |
02:08 | < catalyst> | except that if I want to know that I'm good at it I maybe don't do that so well |
02:08 | < catalyst> | the whole 'I'm the humblest person in the world!' thing |
02:12 | | gnolam_ [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code |
02:13 | < catalyst> | These tutorials were written in 2007. Are they still relevant? |
02:13 | < catalyst> | Yes, absolutely. C++ doesnât change very often, and these tutorials have been largely kept up to date. |
02:13 | < catalyst> | #^ hah |
02:13 | <~Vornicus> | lulz. |
02:14 | <~Vornicus> | C++11 basically is an entirely different language, from what I can tell |
02:14 | | gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has quit [Ping timeout: 121 seconds] |
02:15 | < catalyst> | Yes, for the better - which requires a different manner of teaching |
02:15 | < catalyst> | essentially a lot of the syntactic features supersede C++98 in the same way C++98 superceded C |
02:15 | < catalyst> | teaching it the old way is detrimental to learning |
02:17 | < catalyst> | okay, I'm going to dgo lie down on my bed at least |
02:20 | | catadroid [catalyst@Nightstar-2j2.qom.132.82.IP] has joined #code |
02:20 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Connection reset by peer] |
02:50 | | Turaiel[Offline] is now known as Turaiel |
02:55 | <&Derakon> | I note that "go lie down" means "IRC from my phone instead of my computer", apparently. |
03:16 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
03:23 | | Turaiel is now known as Turaiel[Offline] |
03:35 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
03:42 | <&McMartin> | All right, that's another thing that's finished. |
03:43 | <&McMartin> | https://hkn.eecs.berkeley.edu/~mcmartin/retro/galaxy_2_1.nes |
03:43 | <&McMartin> | Graphical overhaul, event loop overhaul, translation to a different assembler |
03:43 | <&McMartin> | Debating whether to keep the flashy bits in the title. |
03:50 | <&Derakon> | Man, who designed this spaceship? It only has room for 10 seconds' worth of fuel? |
04:12 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [[NS] Quit: Page closed] |
05:09 | | Derakon is now known as Derakon[AFK] |
05:38 | | catadroid` [catalyst@Nightstar-gi5.0vd.132.82.IP] has joined #code |
05:41 | | catadroid [catalyst@Nightstar-2j2.qom.132.82.IP] has quit [Ping timeout: 121 seconds] |
05:45 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
05:47 | | himi [fow035@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
05:54 | | celticminstrel [celticminst@Nightstar-uce74q.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
07:01 | | Kindamoody[zZz] is now known as Kindamoody |
07:32 | | catadroid [catalyst@Nightstar-gi5.0vd.132.82.IP] has joined #code |
07:32 | | catadroid` [catalyst@Nightstar-gi5.0vd.132.82.IP] has quit [Connection closed] |
07:54 | | Emmy-zZz is now known as Emmy-Werk |
08:22 | | gnolam_ is now known as gnolam |
08:22 | | mode/#code [+o gnolam] by ChanServ |
08:45 | | Kindamoody is now known as Kindamoody|afk |
08:49 | | Emmy [NSwebIRC@Nightstar-41pbej.static.chello.nl] has joined #code |
08:55 | < abudhabi> | Hm. What do you lot use for random, meaningless short text? Stuff like when adding a temporary debug message that's just supposed to mark a place recognizably, or a fill for a non-essential text field, etc. |
08:56 | < abudhabi> | I've noticed that me and my boss use different customary 'garbage text' in these situations. |
08:58 | <&McMartin> | Lorem ipsum has a few variations |
08:59 | < Emmy> | assuming it's less than a whole sentence, i just use something like "Here be bullshit abound" "random bull" "This place is filled with random rambling" that kind of shit |
08:59 | < Emmy> | alternatively, an accurate description/summary of what actually is supposed to be there |
09:00 | < abudhabi> | I only use lipsum if I care about long text presentation in that place. It's too much of a bother to google and copy and paste, when mashing the keyboard will work. |
09:05 | < Emmy> | fair point |
09:06 | < Emmy> | long text presentation might be necessary sometimes |
09:06 | < abudhabi> | Not trying to make a point. I'm just curious what people use. |
09:07 | < Emmy> | btw, does any of you know the nickserv command to change passwords? i kinda accidentally'd, and nickserv's help function is whack now |
09:09 | < Emmy> | Real helpful, this: [09:53] <Emmy> help [09:53] -Nightstar- Nightstar commands: [09:53] -Nightstar- HELP Displays this list and give information about commands |
09:09 | < Emmy> | nad that's it |
09:09 | < Emmy> | *and |
09:12 | < abudhabi> | /msg nickserv help |
09:12 | < abudhabi> | This gives me the whole list. |
09:13 | < abudhabi> | resetpass <nickname> <email> |
09:14 | < Emmy> | huh. weird. |
09:14 | < Emmy> | for me it only gives those two lines |
09:14 | < Emmy> | must be the nightstar client itself? |
09:15 | < Emmy> | 0.o wait, no direct method to change your password? |
09:15 | < Emmy> | i mean when you know your password, not when you lost it |
09:16 | < Emmy> | Aaaaawww yisss. |
09:16 | < Emmy> | mothafuckin teaaa. |
09:16 | < Emmy> | bliss |
09:20 | < abudhabi> | Actually, there is. |
09:20 | < abudhabi> | set <password> <new-password> |
09:21 | < abudhabi> | But either should work., |
09:22 | < Emmy> | TYVM |
09:24 | | Emmy [NSwebIRC@Nightstar-41pbej.static.chello.nl] has left #code [""] |
09:24 | | Emmy [NSwebIRC@Nightstar-41pbej.static.chello.nl] has joined #code |
09:25 | < Emmy> | whoops. |
09:25 | < Emmy> | wrong button |
09:25 | < Emmy> | anyway, no bingo. |
09:26 | < catadroid> | :o |
09:35 | < Emmy> | hmmmmh, anyone knowledgeable in SQL here? |
09:44 | | * gnolam points to the "Ask, then hang about till someone appears who can help" in the topic. |
09:45 | | * Emmy nods |
09:45 | < Emmy> | am hanging out |
09:45 | | * Emmy points to the AFK-ing Emmy-Werk at home |
09:46 | < Emmy> | but i was wondering if there's anyone for that right now. :P |
09:52 | <@gnolam> | (If you just ask the question you want to ask, anyone with knowledge and the free time will probably respond. If you ask for someone knowledgeable in [X], people who know enough to answer you but don't consider themselves experts will probably wait for someone else to respond.) |
09:52 | <@gnolam> | (Plus, the whole self-assessment thingy. The Dunning-Kruger effect cuts both ways.) |
09:53 | <@TheWatcher> | (plus, in explaining the problem, you may see the solution yourself) |
09:53 | <@gnolam> | (That too. Rubber duck debugging is a thing.) |
09:54 | | * Emmy nodnods |
09:54 | < Emmy> | i suppsoe you're correct. |
09:54 | < Emmy> | it's why i converse with my computer. |
09:54 | < Emmy> | hmmmh, right |
09:55 | < Emmy> | ...crap. what was i about to ask again? |
09:55 | < Emmy> | Oh right. |
09:56 | < Emmy> | though i suppose it's not just SQL but also Access (and therefore, VBA) |
09:56 | < Emmy> | I'm wondering if it's possible to (re-)sort the results of a query /without/ requerying. |
09:56 | < Emmy> | this is going to be a big database, and i'd hate to have to requery it again just for a simple resort. |
09:57 | < Emmy> | resort of the list of results, i mean. |
09:57 | < abudhabi> | If you have a tabular GUI, then you should be able to use whatever's built-in for sorting the table. |
09:58 | | * Emmy IS the one building the gui, for the most part. |
09:58 | < abudhabi> | If you have the results in a model, like a List<YourObjectHere>, then you can sort that programmatically. |
09:58 | <@TheWatcher> | Rule of thumb: databases engines are usually better optimised for that sort of thing than your code will be. A properly set up database will have indexes and other metadata that allows it to optimise sorting - the overheads of you doing the sort may well be higher than just asking the database engine to do it for you. |
09:58 | < Emmy> | A VB(A) listbox. |
09:59 | < Emmy> | meaning there might be the option, but i'll have to build it in myself. |
09:59 | <@TheWatcher> | Whether this si true of Access, I dunno. |
10:00 | < abudhabi> | Then you should use whatever facilities VBA gives you. |
10:00 | < abudhabi> | https://msdn.microsoft.com/en-us/library/b0zbh7b6%28v=vs.110%29.aspx ? |
10:00 | < Emmy> | TheWatcher: with one database to access to resort, or to use everyone's own resources on the computer... |
10:01 | < Emmy> | *their |
10:01 | <@TheWatcher> | Yeah, but a decent RDBMS will cache queries and results anyway |
10:01 | < Emmy> | hmmmh, fair enough |
10:01 | <@TheWatcher> | (again: Access isn't a decent RDBMS, so yeah) |
10:01 | < Emmy> | but this IS a microsoft product we're talking about, so 'decent' remains to be seen |
10:02 | < Emmy> | no offense to their msdn site, which is teh awsum. |
10:02 | < Emmy> | anyway, breaktime |
10:33 | < Emmy> | back |
11:05 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
11:05 | | mode/#code [+o Crossfire] by ChanServ |
11:13 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
11:21 | < Emmy> | Seariously. lots of help sites can take an example in MSDN |
11:50 | | Emmy [NSwebIRC@Nightstar-41pbej.static.chello.nl] has quit [[NS] Quit: homeward bound!] |
12:09 | | catadroid` [catalyst@Nightstar-puf00f.dab.02.net] has joined #code |
12:11 | | catadroid [catalyst@Nightstar-gi5.0vd.132.82.IP] has quit [Ping timeout: 121 seconds] |
12:11 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
12:44 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving] |
12:51 | | catadroid` is now known as catadroid |
13:54 | | gizmore [kvirc@Nightstar-9jvkv0.dip0.t-ipconnect.de] has joined #code |
14:06 | | natanial [NSwebIRC@Nightstar-f3k.t3q.245.162.IP] has joined #code |
14:12 | | natanial [NSwebIRC@Nightstar-f3k.t3q.245.162.IP] has quit [[NS] Quit: Page closed] |
14:44 | | Emmy-Werk is now known as Emmy |
15:13 | | catadroid [catalyst@Nightstar-puf00f.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
15:14 | | catadroid [catalyst@Nightstar-puf00f.dab.02.net] has joined #code |
15:22 | | catadroid [catalyst@Nightstar-puf00f.dab.02.net] has quit [Connection closed] |
15:27 | | celticminstrel [celticminst@Nightstar-uce74q.dsl.bell.ca] has joined #code |
15:27 | | mode/#code [+o celticminstrel] by ChanServ |
15:36 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
15:41 | | catadroid` [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
15:42 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [Connection closed] |
15:42 | | catadroid` [catalyst@Nightstar-ls9442.dab.02.net] has quit [Connection closed] |
15:42 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
15:43 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
15:43 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [A TLS packet with unexpected length was received.] |
15:43 | | mode/#code [+o Crossfire] by ChanServ |
15:43 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
15:46 | <&ToxicFrog> | Your "what the hell is this" for the day: man 3 malloc_info |
15:47 | <&ToxicFrog> | Your "what the hell is this" for the day: man 3 malloc_info/buffer 41 |
15:57 | < abudhabi> | I don't have the second one. |
16:03 | <&jeroud> | ToxicFrog: I have a friend who recently used that in anger. |
16:03 | <&jeroud> | He's building profiling tools. |
16:09 | | Derakon[AFK] is now known as Derakon |
16:09 | < [R]> | What's the "/buffer 41" supposed to do? |
16:09 | < [R]> | Also why is a libc call generating XML straight to a FILE pointer? |
16:10 | | Derakon [chriswei@Nightstar-5mvs4e.ca.comcast.net] has quit [Connection closed] |
16:13 | | Derakon [chriswei@Nightstar-5mvs4e.ca.comcast.net] has joined #code |
16:13 | | mode/#code [+ao Derakon Derakon] by ChanServ |
16:16 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [Ping timeout: 121 seconds] |
16:16 | <&ToxicFrog> | [R]: that was a typo. "/buffer 41" is a command to my IRC client. |
16:16 | <&ToxicFrog> | As for "why god why", a co-worker of mine did the research: |
16:16 | <&ToxicFrog> | "I researched this several months ago, and it seems to have been a unilateral addition by Ulrich Drepper, from when he was the iron dictator of glibc. XML-for-everything was briefly popular for GNU tools at about that time - brief enough to date the additions, like a layer of iridium in the rocks," |
16:17 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
16:17 | <&ToxicFrog> | The stated rationale is "with changes to glibc/malloc over time, the information that needs to be returned might change, but if it returned a struct we could never change it without recompiling everything that depends on it" |
16:17 | <&ToxicFrog> | Which is manifestly false, but apparently code review isn't a thing, or wasn't. |
16:21 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [Ping timeout: 121 seconds] |
16:21 | | * Derakon :gonk:s at some code in a pull request for, thankfully, a project he is not himself making direct use of. |
16:21 | <&Derakon> | Rather than add a dependency to a JSON library, they opted to manually parse the JSON themselves. |
16:26 | < [R]> | Nice |
16:26 | < [R]> | https://nakedsecurity.sophos.com/2016/01/28/police-destroy-evidence-with-10-fail ed-passcode-attempts-on-iphone/?utm_source=feedburner&utm_medium=feed&utm_campai gn=Feed:+nakedsecurity+Naked+Security+-+Sophos |
16:31 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
16:41 | <&jerith> | catadroid: Thanks for that C++ explanation last night. |
16:42 | <&jerith> | I finally got the chance to read your pastes properly. :-) |
16:42 | < catadroid> | No worries, did it make sense? |
16:43 | <&jerith> | It did, once I discovered that `class` and `struct` are interchangeable except for access permissions or whatever. :-) |
16:43 | <&jerith> | I'm curious about your reasons for choosing one rather than the other. |
16:45 | < catadroid> | Oh, struct implies lack of encapsulation, class implies methods |
16:46 | < catadroid> | So if something is a struct I also tend to assume it is internal to a system since its data is likely public |
16:47 | < catadroid> | But yeah, they are ultimately the same thing |
16:49 | <&ToxicFrog> | jerith: IIRC, in C++ "struct" is eqv to "class" in every respect except that all members are public. |
16:50 | | gizmore [kvirc@Nightstar-9jvkv0.dip0.t-ipconnect.de] has quit [[NS] Quit: KVIrc 4.3.2 Aria http://www.kvirc.net/] |
16:51 | | * catadroid nods |
17:39 | | * Derakon checks his issues list, cackles madly as he realizes that all of the release blockers have been resolved. |
17:39 | <&Derakon> | We still have 16 issues open which I'm basically entirely responsible for, but none of them are release blockers! |
17:40 | | Emmy is now known as Emmy-zZz |
17:40 | | Emmy-zZz is now known as Emmy-Noms |
17:59 | <@celticminstrel> | Sounds like fun! |
18:10 | <@gnolam> | Release blockers - like beta blockers, but more advanced.~ |
18:44 | | Derakon_ [chriswei@Nightstar-5mvs4e.ca.comcast.net] has joined #code |
18:45 | | Derakon [chriswei@Nightstar-5mvs4e.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
18:47 | | Derakon_ [chriswei@Nightstar-5mvs4e.ca.comcast.net] has quit [[NS] Quit: Leaving] |
18:48 | | Derakon [chriswei@Nightstar-5mvs4e.ca.comcast.net] has joined #code |
18:48 | | mode/#code [+ao Derakon Derakon] by ChanServ |
18:51 | | Emmy-Noms is now known as Emmy |
19:05 | <@gnolam> | Well, that only took... two days. >_< |
19:06 | <@gnolam> | Not counting the work lost trying to finagle the standard widgets to do what I wanted. |
19:10 | <&jeroud> | gnolam: Still less than my efforts to write and test a puppet module. |
19:11 | <&jeroud> | I probably have two to three times as much code in the tests as in the module. |
19:15 | <&ToxicFrog> | So I finished Email Hates the Living, and it was good, but at the end he puts up a slide for "SMTP: for when UUCP just isn't awful enough" |
19:15 | <&ToxicFrog> | But then decides there isn't enough time and takes questions instead. |
19:15 | <&ToxicFrog> | Was that latter talk ever presenteD? |
19:15 | <&McMartin> | I kind of want to do a UUCP build for Windows, just for the irony |
19:17 | <&ToxicFrog> | I have fond memories of uucp, but it was my dad who had to admin it, so~ |
19:24 | <&jerith> | A frind of mine used UUCP in Modern Times. |
19:24 | <&jerith> | *friend |
19:25 | <&jerith> | Turns out when you're delivering "the internet" to connectionless rural schools by riding a motorcycle with a USB hard drive on it around the countryside, UUCP works prety well. |
19:25 | <&McMartin> | I had somehow gotten the impression that UUCP basically required you to manually route your packets in the name of the address |
19:26 | <&jerith> | This was UUCP from one disk to another in the same machine. |
19:27 | <&McMartin> | "UUCP implementations exist for several non-Unix-like operating systems, including Microsoft's MS-DOS, IBM's OS/2, Digital's VAX/VMS, Commodore's AmigaOS, classic Mac OS, and even CP/M." |
19:36 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [Connection closed] |
19:36 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
20:00 | <&ToxicFrog> | jerith: for that use case, doesn't rsync completely supersede it? |
20:01 | <&ToxicFrog> | McMartin: it can use other routings, but yes, back in the day you used bang paths |
20:04 | <&ToxicFrog> | e.g. my email address in the 80s was ...!hcr!ancilla!ben |
20:06 | <&ToxicFrog> | Being "route to hcr's public server however is convenient to you, and from there it will be routed to ancilla and then to my mailbox with the next uucp run" |
20:06 | <@gnolam> | jerith: there's one upside, and that is that it could have taken even longer. Those old game programming skills are paying off again. |
20:20 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [Ping timeout: 121 seconds] |
20:31 | <&jerith> | ToxicFrog: I'm unfamiliar with the details, but I suspect it was easier to get bidirectional mail delivery working like that. |
20:33 | <&jerith> | I may alse be thinking of the next version which had wifi on the motorcycle and the school, so transferring data became "park, have a cup of tea with the teachers, move on". |
20:33 | <&ToxicFrog> | jerith: oh, if this is for email and news and stuff it absolutely makes sense, I was thinking static webpages |
20:34 | <&ToxicFrog> | Then you plug it in and run uucp and it shlorps off all the data on the drive destined for the computer and copies onto the drive all the data destined for another computer |
20:34 | <&jerith> | There was also a wikipedia database update, etc. |
20:34 | <&ToxicFrog> | Presuming that the bang paths all look something like ...!motorcycle!destination_system!user |
20:39 | <&jerith> | There were definitely "user@school.godsverlatensvallei.org.za" email addresses in there. |
20:39 | <&jerith> | So probably some clever MTAs. |
20:40 | <&McMartin> | Hee, !motorcycle |
20:42 | <@gnolam> | I hee'd at "godsverlatensvallei.org.za" :) |
20:43 | <&Derakon> | "Godless valey"? |
20:43 | <&Derakon> | Er, valley. |
20:43 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
20:45 | <@gnolam> | "Godforsaken", I believe. |
20:45 | <&Derakon> | Ahh. |
20:47 | | catadroid` [catalyst@Nightstar-ls9442.dab.02.net] has joined #code |
20:47 | | catadroid [catalyst@Nightstar-ls9442.dab.02.net] has quit [Connection closed] |
20:48 | <&jerith> | Forsaken or forgotten. |
20:51 | | catadroid` [catalyst@Nightstar-ls9442.dab.02.net] has quit [[NS] Quit: Bye] |
20:55 | | Meatyhandbag [sebastianfe@Nightstar-foo.i9h.224.136.IP] has joined #code |
21:05 | | Kindamoody|afk is now known as Kindamoody |
21:21 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
21:21 | | mode/#code [+o himi] by ChanServ |
21:51 | | Meatyhandbag [sebastianfe@Nightstar-foo.i9h.224.136.IP] has quit [Client exited] |
22:37 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
22:43 | | Kindamoody is now known as Kindamoody[zZz] |
22:48 | <&McMartin> | catalyst: Finally got to take a look at the type erasure stuff |
22:48 | <&McMartin> | Good stuff |
22:48 | < catalyst> | I'm glad it made sense |
22:48 | < catalyst> | I wrote it stressed out of my mind |
22:48 | <&McMartin> | Only thing I can really add to it is "in addition to saving space on template instantiation, it lets you jam the Inners into the same collection" |
22:48 | <&McMartin> | "Since C++ collections have to be homogeneous" |
22:48 | <&McMartin> | Well, also |
22:48 | | * catalyst nods |
22:48 | <&McMartin> | "Argh. Type erasure means something different in Java." |
22:49 | <&McMartin> | "Well. It's the same thing. If you're standing in one specific location with one eye closed and your head tilted like so" |
22:49 | <&McMartin> | See also: promises and futures -_- |
22:49 | < catalyst> | Sadly no matter how much I always want to be with you, it still has terrible cache coherency |
22:50 | <&McMartin> | ? |
22:50 | <&McMartin> | I'm suddenly not tracking |
22:50 | < catalyst> | https://www.youtube.com/watch?v=lWqJTKdznaM |
22:51 | <&McMartin> | Heh. Unavailable in the US but that was enough >_> |
22:51 | <&McMartin> | Hmmm |
22:51 | < catalyst> | :D |
22:52 | <&McMartin> | So, I'm seeing some notion of bit of boost::asio getting standardized. Do you happen to know offhand if that means they'll have a mode for futures that are basically "here, take ownership of this future, and when it transitions out of pending state do this callback"? |
22:52 | <&McMartin> | Or something in that neighborhood; it seems like all operations that get the value out of a future are presently potentially blocking |
22:52 | < catalyst> | https://www.youtube.com/watch?v=yOtb508xQuM |
22:53 | <&McMartin> | Just from the name, yep, that would track |
22:53 | < catalyst> | Which I literally just watched the other day - though that's a usage rather than a standard proposal |
22:53 | < catalyst> | (though it may become one based on the audience partitipation) |
22:53 | | * McMartin nods |
22:53 | <&McMartin> | Yeah |
22:53 | <&McMartin> | I mean, with boost::asio, getting something like that was maybe 50 lines of code? |
22:53 | < catalyst> | I honestly don't know |
22:53 | <&McMartin> | But I could see it dropping to, like, 15 |
22:54 | < catalyst> | I don't do much async stuff, honestly |
22:54 | <&McMartin> | Oh, so, I'm on firmer ground here |
22:54 | <&McMartin> | Setting up an async mode that worked like Java's CompletableFuture, C#'s TaskCompletionSource, or JS's version of promises and futures was the second thing I did at this job |
22:54 | <&McMartin> | It's a very thin wrapper around boost::asio |
22:54 | <&McMartin> | But it's one I feel like I shouldn't have had to write >_> |
22:55 | <&McMartin> | Ah, I see he references a proposal for Then as well, which is v. close to JS's model |
23:00 | <&McMartin> | And yeah, I'm finally getting my feet enough in async to start having opinions about it |
23:00 | <&McMartin> | But I'm not yet really good enough to actually have them be good. |
23:01 | <&McMartin> | But I have a fully-fleshed-out collection of prejudices now! :D |
23:01 | <&McMartin> | I 100% agree with this guy as to what's wrong with future<T> |
23:05 | <&McMartin> | Oh hey, N4015, That Thing I Won't Shut Up About :D |
23:05 | <&McMartin> | I guess "expected" is their name for Result<T, E> |
23:07 | <&McMartin> | Yeah, this is That Thing I Want |
23:07 | <&McMartin> | I have a custom build of this for our project, more or less, but this is more, hm |
23:08 | <&McMartin> | More in the style of the standard :D |
23:08 | <&McMartin> | As opposed to "someone tried to shoehorn a C# API in here" |
23:09 | < catalyst> | :) |
23:10 | | * catalyst is some combination of Scott Meyers and John Carmack, feels this is a reasonable place to be |
23:13 | <&McMartin> | OTOH, I also have to decide how stealable this is, because this is part of an FFI, and FFIs much prefer things that look like Java/C# >_> |
23:13 | <&McMartin> | Er, "this" being "my little system" |
23:14 | < catalyst> | :) |
23:15 | <&McMartin> | 20 minutes in and still not seeing anything that makes this talk improved by invoking monads in the title >_> |
23:15 | < catalyst> | Yeah, that's what I thought as well |
23:15 | | * catalyst shrugs |
23:15 | < catalyst> | I mean, it is one |
23:16 | <&McMartin> | I hope they at least mean the same thing the Haskellers do. |
23:16 | | * McMartin mutters darkly at the word "functor" |
23:16 | <&McMartin> | I don't believe any two languages that mean something by "functor" mean the same thing |
23:17 | < catalyst> | They are a fancy word for 'thing that lets you trick the optimiser into thinking two identical calls are not' |
23:17 | < catalyst> | Amoung other uses |
23:17 | <&McMartin> | Which, "monad" or "functor" |
23:17 | < catalyst> | Monads, at least the 'IO Monad' |
23:17 | <&McMartin> | I'm used to functor in C++ meaning "function-like object", pre std::function |
23:17 | <&McMartin> | Ah, right |
23:18 | < catalyst> | which I also discovered is entirely a compiler construct |
23:18 | < catalyst> | Fun fact - lambdas are best described as functors |
23:18 | <&McMartin> | Well, the IO monad is of the unit type |
23:18 | <&McMartin> | Yep |
23:18 | <&McMartin> | I learned the spells for implementing all object systems in terms of all others |
23:18 | < catalyst> | :D |
23:18 | <&McMartin> | And closure -> callable object is one of the simplest transforms |
23:19 | | * catalyst nods |
23:19 | <&McMartin> | For whatever reason, lambdas/closures are actually more "natural" to me than objects. |
23:20 | < catalyst> | OOP objects are actually a conflation of two concepts that suffer from being conflated - data layout and induction into concepts |
23:20 | < catalyst> | executable concepts, that is |
23:20 | | * McMartin nods |
23:21 | < catalyst> | which has actually been bugging me for longer than I can remember without having a name, and I immediately understand that when I grokked what Rust was up to |
23:21 | <&McMartin> | I should do a writeup on polymorphism that moves you from Smalltalk through Haskell/Rust. |
23:21 | < catalyst> | I'd be very interested in that |
23:21 | <&McMartin> | Well, it's not near the top of my list, but it is *on* the list. |
23:22 | <&McMartin> | I need to write up the work I've been doing on Macross and what it represents and why that matters |
23:22 | <&McMartin> | And I need to write up the sprite-timing stuff for the VIC-II chip, which I have a nicely-built experiment for |
23:23 | <&McMartin> | Then it would be next, alongside the "hack together more silly retro stuff", but those are more parallel operations |
23:23 | <&McMartin> | Different kinds of brainmeats |
23:24 | < catalyst> | I look forward to having some of my brain processing back for doing actual creative projects |
23:24 | < catalyst> | instead of solving implementation puzzles |
23:25 | | * McMartin nods |
23:25 | <&McMartin> | Right now the implementation puzzles are the hobby work for me >_> |
23:25 | < catalyst> | :) |
23:28 | <&McMartin> | (The one that's #4 on that list is basically "despite different but predictable levels of memory contention, write a certain graphics register at the same cycle on each scanline in a display" |
23:28 | <&McMartin> | ) |
23:51 | < catalyst> | :D |
--- Log closed Sat Jan 30 00:00:38 2016 |