--- Log opened Thu Feb 22 00:00:16 2018 |
00:36 | | celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has joined #code |
00:36 | | mode/#code [+o celticminstrel] by ChanServ |
00:49 | | Derakon[AFK] is now known as Derakon |
01:10 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] |
02:00 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code |
02:00 | | mode/#code [+o Reiv] by ChanServ |
02:29 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] |
02:46 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code |
02:46 | | mode/#code [+o Reiv] by ChanServ |
02:47 | | mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code |
02:47 | | mode/#code [+o mac] by ChanServ |
02:50 | | macdjord|slep [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code |
02:50 | | mode/#code [+o macdjord|slep] by ChanServ |
02:50 | | macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
02:52 | | mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
03:01 | | Jessikat [Jessikat@Nightstar-i6l6k1.dab.02.net] has quit [Ping timeout: 121 seconds] |
03:02 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [Ping timeout: 121 seconds] |
03:07 | | macdjord|slep is now known as macdjord |
03:23 | | Jessikat [Jessikat@Nightstar-i6l6k1.dab.02.net] has joined #code |
05:05 | <&McMartin> | Success! https://www.dropbox.com/s/cvkzp4nqo34e78w/smd_hello.png?dl=0 |
05:12 | | Jessikat` [Jessikat@Nightstar-l41vtp.dab.02.net] has joined #code |
05:15 | | Jessikat [Jessikat@Nightstar-i6l6k1.dab.02.net] has quit [Ping timeout: 121 seconds] |
05:28 | | Attilla [sid13723@Nightstar-0bi4dv.irccloud.com] has quit [Connection closed] |
05:30 | | Attilla [sid13723@Nightstar-0bi4dv.irccloud.com] has joined #code |
05:30 | | mode/#code [+o Attilla] by ChanServ |
05:36 | | celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:42 | | mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code |
05:42 | | mode/#code [+o mac] by ChanServ |
05:45 | | macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
06:26 | | Pinkhair [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code |
06:29 | | Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
06:44 | | Vornlicious [Vorn@Nightstar-6if25i.sub-174-211-8.myvzw.com] has joined #code |
06:46 | | Vornotron [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds] |
06:48 | | Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds] |
06:48 | | Vornlicious [Vorn@Nightstar-6if25i.sub-174-211-8.myvzw.com] has quit [Ping timeout: 121 seconds] |
06:51 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has joined #code |
08:25 | | Jessikat` is now known as Jessikat |
08:26 | | Vornotron [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code |
08:26 | | mode/#code [+qo Vornotron Vornotron] by ChanServ |
08:33 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has quit [Ping timeout: 121 seconds] |
08:44 | | Kindamoody[zZz] is now known as Kindamoody|afk |
08:45 | | Degi [Degi@Nightstar-a3omhh.dyn.telefonica.de] has joined #code |
08:52 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has joined #code |
08:57 | | * TheWatcher readsup |
08:58 | <@TheWatcher> | Whitespace sensitivity can burn in the pits of hell |
09:20 | | Vornucopia [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code |
09:21 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has quit [Ping timeout: 121 seconds] |
09:21 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection closed] |
09:21 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has joined #code |
09:22 | | Vornotron [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Connection closed] |
09:23 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
09:23 | | mode/#code [+o Syloq] by ChanServ |
09:40 | < Jessikat> | TheWatcher: if only |
10:28 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
10:42 | | Kindamoody|afk is now known as Kindamoody |
11:42 | | Jessikat` [Jessikat@Nightstar-qk08hf.dab.02.net] has joined #code |
11:45 | | Jessikat [Jessikat@Nightstar-l41vtp.dab.02.net] has quit [Ping timeout: 121 seconds] |
12:34 | <&[R]> | So, I was kind of wondering what autoconf does to convert the .in files with all the @variable@ stuff into the proper files. Since it uses m4 for other things, I thought it was that. |
12:34 | <&[R]> | Apparently it's just a really long sed invocation. |
12:36 | <&[R]> | And given I've played around with m4... I wonder what it even uses m4 for |
13:56 | | Jessikat` is now known as Jessikat |
14:12 | | Degi [Degi@Nightstar-a3omhh.dyn.telefonica.de] has quit [Connection closed] |
14:13 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
14:18 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code |
14:18 | | mode/#code [+ao McMartin McMartin] by ChanServ |
15:37 | | Kizor [moryok@Nightstar-e0a4sm.utu.fi] has quit [Connection closed] |
15:52 | | Kizor [moryok@Nightstar-e0a4sm.utu.fi] has joined #code |
15:54 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has quit [Ping timeout: 121 seconds] |
15:58 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has joined #code |
16:41 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
16:44 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
16:44 | | mode/#code [+o Alek] by ChanServ |
18:12 | | Jessikat` [Jessikat@Nightstar-98n.159.132.82.IP] has joined #code |
18:15 | | Jessikat [Jessikat@Nightstar-qk08hf.dab.02.net] has quit [Ping timeout: 121 seconds] |
18:59 | | Jessikat` is now known as Jessikat |
20:04 | <@gnolam> | https://twitter.com/hervepiton/status/905755879609438208 |
20:10 | <@TheWatcher> | ... |
20:12 | <@TheWatcher> | Thanks. Now I feel old /as well/ as ill |
20:13 | | * Tamber hands TW a biro, some sticky tape, and a casette tape |
20:13 | <@TheWatcher> | Heee |
20:14 | <@Tamber> | At least you only feel old, and not ancient. :) |
20:14 | <&McMartin> | The sad thing is that they could have had two icons for it! |
20:15 | <&McMartin> | You'd make that rectangle in the upper left a slightly different color. |
20:16 | <@gnolam> | ... aww. Nobody on the internet seems to have GIFified the floppy scene from Deutschland '83. |
20:17 | | Degi [Degi@Nightstar-a3omhh.dyn.telefonica.de] has joined #code |
20:18 | <&McMartin> | That said, at the time those images were created, floppies had been gone for less than ten years. |
20:19 | <@gnolam> | (D'83 has a wonderfully deadpan scene with a group of Stasi agents trying to read a 5 1/4" floppy with stolen NATO secrets... with their 8" floppy computer.) |
20:21 | | * McMartin was digging through old floppies last year for data recovery purposes and found early releases of stuff he's since put on Github. |
20:21 | <@gnolam> | (Found a still image at least: http://i.imgur.com/6gmJGtA.jpg ) |
20:40 | <&McMartin> | Today in Apple rocking it like a proper technology company |
20:40 | <&McMartin> | https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreAnimation_guide/Art/layer_coords_bounds_2x.png |
20:41 | <&McMartin> | Standards are *great* |
20:41 | < Mahal> | I'm not sure I understand waht I'm looking at |
20:42 | <&McMartin> | It's from an explanation of a single, notionally source-compatible API |
20:42 | <&McMartin> | Where you write a library once and can compile it on iOS and macOS and it all just works |
20:42 | <&McMartin> | Or, well, it would, but there's an unfortunate difference, which this chart from their docs displays |
20:42 | <&McMartin> | Which is that if it's truly the same source code, one of them will be upside-down |
20:42 | <&McMartin> | Because the location of the origin, and the positive Y direction, are different. |
20:47 | <@gnolam> | ... |
20:49 | < Jessikat> | Nice |
20:54 | | * TheWatcher golfclaps |
20:55 | <@TheWatcher> | Nicely done, apple, nicely don. |
20:55 | | * McMartin has Opinions about coordinate systems and the one on the macOS side is never correct |
20:55 | <&McMartin> | If y-positive is up, the origin should be the center of the view. |
20:56 | <&McMartin> | ... barring camera/modelview transformations, but those should start from a system where the origin is the center of the view |
20:58 | < Jessikat> | IIRC the justification for origin being top left and positive Y being down on windows is that's how text progresses in English |
20:58 | | * Jessikat doesn't have enough rendering knowledge to care yet |
20:58 | <&McMartin> | Top left means positive Y down and I would suggest not text as the reason for that but "the path of a CRT's electron beam" |
20:59 | < Jessikat> | Though I assume they're all wrong |
20:59 | < Jessikat> | Oh, that would make sense |
20:59 | <&McMartin> | That's the order the signal come out if you're sending a composite video signal. |
20:59 | < Jessikat> | XD |
20:59 | <&McMartin> | I mean, there is the question "why is that how a CRT works" and English text tradition may have influenced that! |
20:59 | <&McMartin> | But the Atari 2600 VCS certainly does that because it's handholding the video signal from microsecond to microsecond. |
21:00 | <&McMartin> | So yes, my opinions on this do have brief defenses |
21:01 | < Jessikat> | :) |
21:01 | <&McMartin> | If you're representing a raster display of some kind, top-left origin, y positive, because that's traditionally how rasters were displayed so play along with the half century of tradition kthx |
21:01 | <&McMartin> | If you're representing a vector display of some kind, center origin, down is y negative, because that produces the traditional right-handed coordinate system in 3D and also means you don't have to do two extra matrix multiplications when performing a rotate-and-translate transform. |
21:05 | | Vorntastic [Vorn@Nightstar-1q4c8c.sub-174-210-2.myvzw.com] has quit [[NS] Quit: Bye] |
21:05 | | Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code |
21:09 | <&ToxicFrog> | Why not bottom left origin, -y down, a la postscript? |
21:09 | <&McMartin> | Well, that's what macOS is doing |
21:10 | <&McMartin> | And my objection is basically "more work to get something out" |
21:10 | <&ToxicFrog> | IIRC the MacOS rendering stack is a distant descendant of Display Postscript, so that makes sense |
21:10 | <&McMartin> | postscript is a special case because despite the fact that people do write it, it's not intended to actually be written by humans |
21:10 | <&McMartin> | Humans *are* intended to subclass NSView::paint |
21:10 | | * Vornucopia has written postscript! |
21:10 | <&McMartin> | And use gl-like transforms to place their stuff |
21:11 | <&McMartin> | which means you have to do a bunch of work to, say, center an unscaled element, and that's silly for a UI |
21:11 | <&McMartin> | (See also Cairo, which is similar but with the raster-style coordinates, and making Cairo do the same thing an OpenGL context would do was *much uglier* because of the multiple extra transforms and computations involved.) |
21:12 | <&McMartin> | (While for OpenGL it was basically "multiply each vertex position by these dimensional scale factors") |
21:15 | | Vornucopia [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds] |
21:23 | <@TheWatcher> | Vorntastic: "it's not intended to actually be written by humans", so you don't really count ;) |
21:23 | <&ToxicFrog> | I have not only written it, I wrote most of an IRC client in it~ |
21:24 | <@TheWatcher> | ... |
21:24 | <@TheWatcher> | madness |
21:24 | <&ToxicFrog> | ("most" because I needed to connect it to the tty and netcat with fifos to get keyboard input and do networking respectively) |
21:35 | <&McMartin> | More joys from this API I'm studying |
21:35 | <&McMartin> | "Each view defines a layerContentsRedrawPolicy method that returns the redraw policy for the view’s layer." |
21:35 | <&McMartin> | "NSViewLayerContentsRedrawDuringViewResize: This is the default view policy." |
21:36 | | * TheWatcher twitch |
21:36 | <&McMartin> | "NSViewLayerContentsRedrawOnSetNeedsDisplay: This is the recommended policy." |
21:36 | <@TheWatcher> | ... why is the recommended not the default? Legacy? |
21:36 | <&McMartin> | "This policy most closely represents the standard behavior for [library objects in this framework]. However, it is not the default policy and must be set explicitly." |
21:37 | <&McMartin> | I'm not actually sure |
21:37 | <&McMartin> | Apple doesn't really *do* legacy. |
21:37 | <&McMartin> | Also, anyone complaining about Microsoft's function name verbosity needs to spend a week writing system-level iOS code. |
21:37 | <@TheWatcher> | And do you need to have a NSViewLayerContentsRedrawOnSetNeedsDisplayFactory to generate NSViewLayerContentsRedrawOnSetNeedsDisplays to set as the policy? |
21:38 | <&McMartin> | No, because Objective-C's object model looks more like Python's than Java's, and more like Smalltalk's than either's. |
21:38 | <&McMartin> | So factory classes are not a thing. The idiomatic design is to have a global-namespace function that returns an interface type. |
21:39 | <&McMartin> | Or for an abstract superclass to return alternate classes from its own constructor, because this is in fact allowed. |
21:40 | <&McMartin> | (But constructors - as opposed to initializers - are basically global functions as it is, because this split is an artifact of languages more object-obsessed than ObjC.) |
21:40 | <&McMartin> | (Which is honestly kind of wacky for a language decended mostly from Smalltalk for its OO aspects.) |
21:41 | <&McMartin> | Also in a very limited defense of Apple here |
21:42 | <&McMartin> | A whole lot of the verbosity is because C and languages that are too like it (including, very much, ObjC) need to use ever-more-absurd prefixes to replace the lack of namespaces at the language level. |
22:13 | < Jessikat> | Huh. I just had a thing click in my brain about composition vs subclassing |
22:16 | <&McMartin> | do tell |
22:20 | < Jessikat> | It requires diagrams |
22:21 | < Jessikat> | I've written it down, ask again in a couple days |
22:21 | <&McMartin> | Ah. IRC perhaps not the best medium for it then |
22:28 | < Jessikat> | But basically, if I draw these diagrams based on encapsulation, then composition looks clean, inheritance looks messy but manageable in small doses, and multiple inheritance is a complete mess that I can't even work out how to draw |
22:29 | < Jessikat> | Oh wait! I have a mechanism to show you |
22:29 | < Jessikat> | Duh |
22:29 | < Jessikat> | One min |
22:35 | | Degi [Degi@Nightstar-a3omhh.dyn.telefonica.de] has quit [Connection closed] |
22:37 | <@ErikMesoy> | https://jimrandomh.tumblr.com/post/170911109518/levels-of-tech-debt "Extreme tech debt: Starcraft hasn’t been updated in 8 years, the source code and debug symbols are lost, and the community has extended the API using a buffer overflow in the map format. You must maintain compatibility with their extensions." |
22:39 | < Jessikat> | https://www.dropbox.com/s/1fqa6dluvcers86/20180222_223654.jpg?dl=0 |
22:39 | < Jessikat> | ErikMesoy :D |
22:40 | < Jessikat> | McMartin ^^^^ those diagrams, indicating context available at each level and direction of API context |
22:40 | | * McMartin nods |
22:41 | < Jessikat> | The last one is a bit messy because there's a dividing line between the two superclasses that I drew the API arrow over |
22:41 | <&McMartin> | I'm not positive, but I think that multiple inheritance case is the virtual-inheritance one in C++ |
22:42 | <&McMartin> | (Unless that's baz extending foo and bar) |
22:42 | <&McMartin> | Life gets exciting when foo and bar both themselves extend fnord. |
22:42 | < Jessikat> | class baz : public foo, public bar |
22:42 | < Jessikat> | Yes |
22:42 | <&McMartin> | Because then you have to decide whether baz has two fnords inside it or just one. |
22:42 | < Jessikat> | Even more exciting* |
22:42 | <&McMartin> | virtual inheritance is the single-fnord case |
22:43 | < Jessikat> | I was watching a talk on virtual pointer math when you have virtual inheritance |
22:43 | < Jessikat> | ...you do things like store the offset of the parent class as part of the vptr |
22:43 | < Jessikat> | (I've never yet had to use virtual inheritance and dammit I never will) |
22:44 | < Jessikat> | Anyway this is all part of my thesis that composition is the one true way to write software |
22:45 | < Jessikat> | (obviously there are benefits to bringing the inner API up through classes sometimes, but honestly making it the general case is so bad) |
22:48 | < Jessikat> | But just look at the complexity going on there :| |
22:49 | <&McMartin> | Oh god, yes |
22:49 | <&McMartin> | One of the arguments against multiple inheritance, in my book, is "static_cast<> will change the bit pattern" |
22:50 | <&McMartin> | do not want |
22:50 | <&McMartin> | I have a generic singleton template in my (paper) library from the C++98 days |
22:50 | <&McMartin> | It has to create some ptr_diff_t values from (T *)1 in order to ensure it correctly alters pointer values on casts |
22:53 | < Jessikat> | XD |
22:53 | < Jessikat> | Burn it |
22:53 | < Jessikat> | C++ has made some wrong turns and this is one of them |
22:56 | <&McMartin> | Can't burn it, that book also has the really nice quick specification for plasma fractals |
22:57 | < Jessikat> | Blech |
22:57 | < Jessikat> | Oh well |
23:16 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds] |
23:26 | | Jessikat [Jessikat@Nightstar-98n.159.132.82.IP] has quit [[NS] Quit: Bye] |
23:45 | | Jessikat [Jessikat@Nightstar-98n.159.132.82.IP] has joined #code |
--- Log closed Fri Feb 23 00:00:16 2018 |