code logs -> 2016 -> Thu, 08 Sep 2016< code.20160907.log - code.20160909.log >
--- Log opened Thu Sep 08 00:00:33 2016
01:41 catadroid` [catadroid@Nightstar-mpf0aa.dab.02.net] has joined #code
01:43 catadroid [catadroid@Nightstar-qoo4jn.dab.02.net] has quit [Ping timeout: 121 seconds]
04:32
<&McMartin>
Today's pro-tip for iOS and Mac developers
04:32
<&McMartin>
Despite the fact that there is a whole API in ImageIO for resizing images for thumbnail purposes, do not use it
04:32
<&Derakon>
...do tell.
04:32
<&McMartin>
Prefer instead to render to an offscreen context and then turn that into an image
04:33
<&McMartin>
It turns out that if the system is heavily loaded, the thumbnail routine will happily give you arbitrarily small images
04:33
<&McMartin>
In this case, we were asking for a 540x540 thumbnail and getting handed a 96x96 one
04:33
<&McMartin>
WHich was then autoscaled back up when displayed because Convenience
04:33
<&Derakon>
Oh dear.
04:33
<&McMartin>
So the bug report is "everything is blurry as shit about half the time"
04:34
<&McMartin>
"Maybe the network is shitting itself halfway through a bunch of progressive JPEGs"
04:34
<&Derakon>
That is not a routine I would expect to degrade under heavy load.
04:34
<&McMartin>
This is not documented anywhere, in fact!
04:34
<&Derakon>
:psyduck:
04:34
<&McMartin>
It is the case that what you specify for it is a maximum pixel size
04:34
<&McMartin>
But the rest of that documentation implies that it is called maximum not because there is no minimum, but because as a thumbnailer it will not make images larger
04:35
<&McMartin>
And indeed if the max size is larger than the image the image is itself the thumbnail, which is 100% correct behavior
04:35
<&McMartin>
As for the rest... well, Surprises!
04:35
<&McMartin>
And this is why my hobby is relevant to my job. >_<
04:35
<&Derakon>
Haha.
04:35
<&Derakon>
Being skilled at debugging programs for which you lack the code is a useful ability, yes.
04:36
<&McMartin>
Next time on "McMartin gets angry in Cupertino's general direction", the entirety of CoreAudio.
04:36
<&McMartin>
But in their defense, such as it is, I don't think any of them know how any of that works either
04:36
<&Derakon>
Insert side rant about audio jacks.
04:36
<&McMartin>
I think they got handed incomprehensible codecs by Frauenhoffer and they just keep them in a vault and binary-translate them to new archictectures as needed
04:37
<&McMartin>
That's actually the bit where I get to be a greybeard though because while it's not particularly simple to get anything to happen
04:37
<&McMartin>
Each piece individually has a workable protocol thanks to some semblance of static typing.
04:38
<&McMartin>
This did mean that after I worked out the protocol from all that, I spent most of a day walking some of our very bright but somewhat junior other developers through it
04:38
<&McMartin>
They all had to draw their own diagrams to make sense of it, and none of them resembled any of the others
04:38
<&McMartin>
This API has existed since OS X 10.3
04:38
<&McMartin>
And large swathes of it are still basically documented as "No overview available"
04:38
<&Derakon>
Oh dear.
04:38
<&McMartin>
And the rest are glorified javadocs
04:39
<&Derakon>
So, what, everyone using it has magic recipes they follow?
04:39
<&McMartin>
I suspect this is also true of Apple themselves!
04:39
<&McMartin>
The whole point of it is to treat audio formats as black boxes though
04:39
<&McMartin>
So, like, there are probably twelve dudes that work directly for the Motion Picture Experts Group that understand the whole software stack
04:39
<&McMartin>
And they're the ones selling Apple these codecs
04:39
<&McMartin>
I just have to figure out how to format and present and fill various buffers
04:40
<&Derakon>
It turns out it's not turtles all the way down, it's spiders~
04:40
<&McMartin>
We've known that for awhile, right~
04:40
<&McMartin>
That said, it is nevertheless true that once I understood what was being asked of me it all came together nicely
04:40
<&Derakon>
This is good.
04:40
<&McMartin>
But these APIs are too old and too fundamental to be this obscure, and that's a real problem.
04:40
<&Derakon>
It is a badly-described problem, but not a poorly-specified or irrational one.
04:41
<&McMartin>
That said, that's also the case that this particular level of the software stack (the one that has "Core" in the front and is not CoreFoundation, not to be confused with Foundation) is probably the level that is The McMartin Playground.
04:42
<&McMartin>
Note that I solved the thumbnailing problem by reimplementing it with Core Graphics primitives, frex
04:42
<&Derakon>
"Render to an offscreen context, then draw/save that context's contents" is a reasonably common operation, at least.
04:49
<&McMartin>
Yep
04:49
<&McMartin>
And it's basically as fast, too
05:30 Derakon is now known as Derakon[AFK]
07:05 himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds]
07:13 Kindamoody[zZz] is now known as Kindamoody
07:14 * Vornicus vornballs
07:19 Kindamoody is now known as Kindamoody|afk
08:08 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
08:11 catadroid [catadroid@Nightstar-glrsmr.dab.02.net] has joined #code
08:13
<&McMartin>
New Bumbershoot post: https://bumbershootsoft.wordpress.com/2016/09/08/wrapping-up-our-apple-ii-advent ure/
08:15 catadroid` [catadroid@Nightstar-mpf0aa.dab.02.net] has quit [Ping timeout: 121 seconds]
08:18
<~Vornicus>
bumberwoot
08:20 * Vornicus eyes the whole bit about the ninth line
08:20
<~Vornicus>
bonkers.
08:20
<&McMartin>
The thing is, that probably saved them fifty bucks per unit. -_-
08:20
<~Vornicus>
That's even more bonkers
08:21
<&McMartin>
Silicon doesn't stop being painfully expensive until like '85, ANAICT
08:21
<&McMartin>
Part of the genius of the 2600 was that it had exactly three chips in it
08:39 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Connection closed]
08:52 celticminstrel [celticminst@Nightstar-ehtgrr.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
09:11 abudhabi [abudhabi@Nightstar-7nkq9k.de] has quit [Operation timed out]
09:47 abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code
09:47 mode/#code [+o abudhabi] by ChanServ
09:52 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
09:52 mode/#code [+o ion] by ChanServ
09:55 ion_ [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
09:59 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
09:59 mode/#code [+o himi] by ChanServ
10:32 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
12:23 wolfmoon [uid178473@Nightstar-6br85t.irccloud.com] has joined #code
12:53 Emmy [NSkiwiirc@Nightstar-41pbej.static.chello.nl] has joined #code
12:53 mode/#code [+o Emmy] by ChanServ
12:53
<@Emmy>
werk werk werk.
12:55
<@Emmy>
hmmmmh, derp.
12:55
< catadroid>
Derp derp derp
12:55
< catadroid>
?
12:55
<@Emmy>
I'm thinking, ""why is my screen so dull today?
12:56
<@Emmy>
turns out, it gets a lot better when i take off my sunglasses indoors.
12:56
<@Emmy>
whuddathunk.
13:09
<@TheWatcher>
That or you need to get your eyes augmented~
13:09
<@Tamber>
"didn't ask for that."
13:14
<@Emmy>
Rather not. I get blinded too easily as it is already. 's why i wear sunglasses so much. :P
13:31
<@Alek>
amen
14:26
<@abudhabi>
I hate touchpads.
14:26
<@abudhabi>
I really do.
14:39
<@Emmy>
amen brattah.
14:41 catadroid` [catadroid@Nightstar-qp1r7h.dab.02.net] has joined #code
14:43 catadroid [catadroid@Nightstar-glrsmr.dab.02.net] has quit [Ping timeout: 121 seconds]
15:04
<@Emmy>
WHOOPS. I just realized i came very close to accidentally creating an infinite 'Do While' Loop.
15:05
<@Emmy>
luckily in my first test run i just had a 'exit do' as soon as i got the first result, 'cause my first run i just wanted to test the contents of the loop, not the loop itself.
15:16 catadroid` is now known as catadroid
15:25
<@ToxicFrog>
Oops.
15:25
<@ToxicFrog>
That's what ^C is for!
15:25
<@ToxicFrog>
Unless you're writing a kernel module.
15:33 Derakon[AFK] is now known as Derakon
15:54 wolfmoon [uid178473@Nightstar-6br85t.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
16:00
<@Emmy>
time to go!
16:01 Emmy [NSkiwiirc@Nightstar-41pbej.static.chello.nl] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
16:28
< catadroid>
Beep boop
16:28
< catadroid>
Now I'm technically on the animation team
16:28
< catadroid>
Excitement
17:13
< catadroid>
Conclusion: what people mean when they say 'type' is very poorly defined
17:15
<@ErikMesoy>
Yes.
17:16
< catadroid>
Argh
17:17
< catadroid>
I don't care if the programmers can cope with manually managing memory or escaping characters
17:17
< catadroid>
If they don't *have* to and the code is still efficient, then making them do so is an awful inefficiency
17:17
<@Pi>
Just think of all those times when computer time was more expensive than programmer time.
17:25
< catadroid>
Yes, twenty years ago
17:25
< catadroid>
Thirty, forty years ago
17:25 [R] [rstamer@d66-222-241-75.abhsia.telus.net] has quit [Operation timed out]
17:27 [R] [rstamer@Nightstar-d7h8ki.org] has joined #code
17:27 mode/#code [+ao [R] [R]] by ChanServ
19:10 celticminstrel [celticminst@Nightstar-ehtgrr.dsl.bell.ca] has joined #code
19:10 mode/#code [+o celticminstrel] by ChanServ
20:06 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Connection reset by peer]
20:09 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
20:09 mode/#code [+o macdjord] by ChanServ
20:10 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
20:10 mode/#code [+qo Vornicus Vornicus] by ChanServ
20:23 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
20:27 mac [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
20:27 mode/#code [+o mac] by ChanServ
20:32 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
21:11 catadroid` [catadroid@Nightstar-oonbil.dab.02.net] has joined #code
21:15 catadroid [catadroid@Nightstar-qp1r7h.dab.02.net] has quit [Ping timeout: 121 seconds]
21:42 Kindamoody|afk is now known as Kindamoody
22:00 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
22:06 macdjord|slep [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
22:06 mode/#code [+o macdjord|slep] by ChanServ
22:08 mac [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
22:24 Kindamoody is now known as Kindamoody[zZz]
22:27 catadroid` [catadroid@Nightstar-oonbil.dab.02.net] has quit [Ping timeout: 121 seconds]
22:45 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
22:45 mode/#code [+o macdjord] by ChanServ
22:47 macdjord|slep [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
22:52
<@celticminstrel>
I wonder if anyone has tried making a prototype-like object hierarchy in a class-based language.
22:55 * celticminstrel 's specific interest is, of course, C++
22:56
< catalyst>
C++ doesn't really support that model with its normal synta
22:56
< catalyst>
syntax*
22:56
< catalyst>
But there's plenty of systems that make use of prototypal hierarchies in data that turns into, say, component systems
22:57
< catalyst>
it's not exactly idiomatic, though
22:58
< catalyst>
I suppose you could do it using operator[] and some sort of name->function mapping - so, like foo["methodName"](params) which would do the lookup for you
22:59
< catalyst>
hrms
22:59
< catalyst>
still, it's not really built for it, and I might be talking bullshit
22:59
< catalyst>
it's certainly one of those things that's worthwhile poking at to find the limits of the language
23:05
<@celticminstrel>
I see...
23:08
< catalyst>
(Assuming that you mean something like lua/javascript's prototypes where it does the hierarchical lookup thing based on a prototype value)
23:08 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
23:27 mac [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
23:27 mode/#code [+o mac] by ChanServ
23:30 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
23:35 catadroid [catadroid@Nightstar-tm5jdm.dab.02.net] has joined #code
23:35 catadroid [catadroid@Nightstar-tm5jdm.dab.02.net] has quit [The TLS connection was non-properly terminated.]
23:35 catadroid [catadroid@Nightstar-tm5jdm.dab.02.net] has joined #code
23:45 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
23:45 mode/#code [+o macdjord] by ChanServ
23:47 mac [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
23:55
<&McMartin>
"Prototype" is one of the original pack of design patterns
23:55
<&McMartin>
It's not exactly prototypal inheritance but it's close enough for what you'd probably want it for.
23:55
<&McMartin>
It's essentially relying on copy constructors really heavily, though.
23:56 himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has joined #code
23:56 mode/#code [+o himi] by ChanServ
--- Log closed Fri Sep 09 00:00:49 2016
code logs -> 2016 -> Thu, 08 Sep 2016< code.20160907.log - code.20160909.log >

[ Latest log file ]