code logs -> 2013 -> Fri, 06 Sep 2013< code.20130905.log - code.20130907.log >
--- Log opened Fri Sep 06 00:00:46 2013
00:03
<&ToxicFrog>
(defn test_foo [] true)
00:04
<@Tarinaky>
Well, that's unittesting done. Off to the pub!
00:12 celticminstrel is now known as celmin|away
00:13 Moltare [Moltareish@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
00:17
<@TheWatcher>
"Your browser must be caching the old content" - I'd laugh, if I hadn't run into that several times before.
00:20
< Thalass>
So apparently google has been gradually migrating as many parts of the android OS as it can to its play store service. Allegedly to reduce fragmentation by bypassing the usual OEM/Carrier/Google tug of war for rolling updates out.
00:20
<&McMartin>
This is apparently only true for stuff like Hangout and Maps, though, not anything outside of Google's own set of core apps
00:21
<@Reiv>
Thalass: This is accurate, yes
00:21
<@Reiv>
And I understand their intention is that this will continue to be a Thing going forward, because tbh they sort of screwed up the initial design model (But had no way to know it'd be screwed up at the time)
00:22
<@Reiv>
McMartin: My understanding is that they're bringing more and more of the hooks into Play, so that other devs will be able to hook into the major features too
00:22
<@Reiv>
API stuff, etc
00:22
<@Tarinaky>
Oh man. I need to find a way to save this image I've found until the first year group project happens.
00:22
<@Tarinaky>
http://i.imgur.com/1Hheq.gif
00:23
<&McMartin>
Reiv: Yeah, but that's stuff like the Maps API, not stuff like GUI elements, AIUI
00:23
<@Reiv>
Yeah, I remain curious to see just how far they go with it
00:23
<@TheWatcher>
Tarinaky: even more appropriate, given that it's Hacker!
00:24
< Thalass>
Sorry. had to get breakfast for the brats
00:24
<@Reiv>
(I remain astonished how much of the stuff is still Gingerbread - I mean, I get older hardware might not be easily updatable, but... are they selling *new* gingerbread phones too to keep that proportion so high?)
00:24
< Thalass>
I'm not sure if this change is good, or horribly bad.
00:24
<@Reiv>
It's good.
00:25
<@Reiv>
It's "Google expected people to keep the updates going. They didn't. So, OK, Google is going to update the phones *for* you."
00:25 * Tarinaky figures his best bet is to save it to his desktop as "Laughing at first years.gif"
00:26
< Thalass>
Google Now was enough to trigger tib-hat-itis with me. Google Play Services can, ars technica says, grant itself more permissions, and updates silently, so the user has no clue what it's doing.
00:27
<@Reiv>
Thalass: This is because Google Play is now your OS For Reals
00:27
< Thalass>
However besides the tinhatness, it does seem like it'll solve the problem lazy carriers and OEMs have created.
00:28
<@Reiv>
Think linux-ish. You have several layers of OS.
00:28
<@Reiv>
The 'OS' for your phone is being, in a sense, microkernel'd by Google, with everything else sitting in Google Services.
00:28
< Thalass>
effectively, yeah. Android kernel and hardware layers, then google play on top
00:28
<@Reiv>
Because unlike the OS proper, Google Services can be /actually fucking updated/
00:28
< Thalass>
On the plus side, there is a galaxy note build of Ubuntu Touch which is very interesting. :P
00:29
<@Reiv>
You dislike having Google Services able to update itself without being asked?
00:29
<@Reiv>
Or is this concern that Big Brother will sneak in on the side?
00:29
< Thalass>
Well to be fair, my note is running Android 4.3 at the moment, thanks to Cyanogenmod. Virgin/Samsung have it still on 4.1.2 iirc.
00:29
< Thalass>
The latter, Reiv.
00:30
<@Tarinaky>
Smartphones are still too expensive. There must be an even more impoverished country out there they can be manufactured in by children or something :/
00:30
< Thalass>
haha
00:30
< RichyB>
That depends if you want current-generation performance, Tarinaky.
00:31 Turaiel[Offline] [Brandon@Nightstar-949d7402.resnet.mtu.edu] has quit [Ping timeout: 121 seconds]
00:31
< RichyB>
Things like the ZTE Open are trying to push smartphones down into the top end of the feature-phone price range.
00:31
<@Reiv>
Thalass: Yeah, hate to say it, but that's coming Anyway(tm)
00:31
< Thalass>
bleh.
00:31
<@Reiv>
Go watch the saga around Lavabit a bit and you'll see that they don't need Google Services to spy on you
00:32
<@Reiv>
They'll just do it to your email account without asking.
00:32
< Thalass>
Though since the hardware layer is still Android rather than GPlay, security updates may still be a problem.
00:32
<@Reiv>
I think this is why they're trying to put most stuff into GPlay
00:32
<@Tarinaky>
RichyB: I've honestly not seen any alternative to da latest thing. They're all still over $100. Which sucks because I always forget to recharge my phone so it'll be dead within 2 years :/
00:32
<@Reiv>
The more of the API framework etc that's in it, the better the security you can obtain.
00:32 Derakon_ is now known as Derakon
00:33 mode/#code [+ao Derakon Derakon] by ChanServ
00:33
<@Reiv>
... oh, you want sub-$100 smartphones?
00:33
<@Tarinaky>
It's an unreasonable thing to want.
00:33
<@Reiv>
Good luck with that. Touchscreens, processors, and Basic Features have something of a lower bound.
00:33
<@Tarinaky>
Doesn't stop me wanting it.
00:33
<@Reiv>
That's why they still sell, like, three brands of feature phones. :p
00:34 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: ]
00:34
<@Reiv>
(Frankly, if you want a sub-$100 smartphone, why do you want a smartphone? Something that cheap wouldn't do much of the 'smartphone' part short of look the part.)
00:34
< RichyB>
Tarinaky, I have hope for the FFOS project which is now shipping on phones which can profitably retail at about ~$90USD and looks like it might even try to continue supporting that spec of hardware while miniaturisation pushes it down towards more like $50 USD
00:34
< Thalass>
My phone was ~$600 if bought outright. Though i'm told it's cheaper than a carrier payment plan.
00:34
<@Tarinaky>
My main complaint with non-smartphones is they're really glitchy and badly made.
00:35
< RichyB>
Are there any dumb-phone companies that only produce, like, two or three different models?
00:35
<@Tarinaky>
I could happy live without the features if it was more reliable.
00:35
< RichyB>
It seems like dumb-phone shittiness is mostly just due to companies pointlessly spreading out their engineering resources over hundreds of barely distinguishable variations, none of which subsequently get any polish or QA.
00:36
< Thalass>
Get yourself a nokia 3310 or something. Good old fashioned nokia. Before Microsoft. :(
00:36
<@Tarinaky>
Thalass: My 3310 broke after 10 years of service. Near as I can tell they literally don't make them any more.
00:37
< Thalass>
Ebay!
00:37
< RichyB>
I had a chance to play with a Blackberry the other week and holy shit, the UI on those things is impressively smooth given just how much less powerful the hardware is than their competitors. :)
00:37
< Thalass>
$25! (I may sometimes suffer a bout of nostalgia and think about buying one)
00:37
<@Tarinaky>
I have bad experiences buying second hand consumer electronics. They tend to smell of pet-shit :/
00:37
< Thalass>
eeew
00:38 Turaiel[Offline] [Brandon@Nightstar-949d7402.resnet.mtu.edu] has joined #code
00:38
< jeroud>
RichyB: Blackberries are truly horrible.
00:38
<@Tarinaky>
Or be covered with the accumilated grime of smoke and poor children handling it.
00:38
< RichyB>
jeroud, yes, but the tiny sliding animations were really smooth!
00:38
<@Tarinaky>
Meh.
00:38 Turaiel[Offline] is now known as Turaiel
00:38
<@Reiv>
RichyB: Yeah, the Blackberry OS was pretty solid
00:38
< Thalass>
(though i know nothing ever lives up to the nostalgia. Also why i haven't bought another n900)
00:38
<@Reiv>
... but they were still pants-on-head fools for not just grabbing Android and going feature-add.
00:38
< RichyB>
jeroud, and yes, I too have seen all the same equally-smooth animations on ~100MHz P1 machines running Windows 95 with the slid-y Start Menu pop-ups. :)
00:38
<&ToxicFrog>
Reiv: hahahahahahahahahahahahahahahahaaaaaaaaaaaa in what universe
00:39
<@Reiv>
(Hell, I'd *love* an Android phone with Blackberry-style encryptions on the core apps)
00:39
< jeroud>
Reiv: My Young Lady's crashes regularly.
00:39
< RichyB>
It's only impressive because I'm used to Android's absolutely lackadaisical approach to UI latency.
00:39
<&ToxicFrog>
The blackberry os was clunky an unreliable if you were a user and a complete screaming bleeding-from-the-eyes skullfucking nightmare if you were a developer
00:39
<&ToxicFrog>
To be kind
00:39
<@Reiv>
ToxicFrog: Are you referring to the touchscreen version or the original?
00:39
< RichyB>
ToxicFrog, BB10 is just QNX, isn't it?
00:40
<&ToxicFrog>
The original.
00:40
<&ToxicFrog>
The QNX version is "is", not "was"
00:40
<@Reiv>
Oh, yeah, no
00:40
<&ToxicFrog>
And I have no experience with it from either direction
00:40
<@Reiv>
That was half the reason their company got so caught out - the software couldn't exactly keep up due to Code Rot.
00:40
< RichyB>
The QNX one is the only one that I've ever interacted with.
00:41 You're now known as TheWatcher[T-2]
00:45
< xybre>
Wait QNX still exists?
00:47 You're now known as TheWatcher[zZzZ]
00:48
<@TheWatcher[zZzZ]>
I remember the days when people were convinced that QNX would be the base for the new Amiga OS
00:51
< RichyB>
xybre, sure. Hell, I think it even has viable commercial competitors.
00:52
< xybre>
hey had a developer edition for download a few years ago.. never could get them to actually provide it to me.
00:54
< RichyB>
I think that those things stick around forever because there's a steady market in companies that want to have actual operating systems underneath their realtime applications, and none of the widely-deployed OSes actually provide that.
00:55
< RichyB>
Windows isn't an RTOS at all, Linux isn't normally though it's supposed to be possible to patch it to approximate one, none of the BSDs are.
00:55
<@Reiv>
RTOS?
00:56
< RichyB>
Real-time OS.
00:58
< RichyB>
An OS that's designed to always give you predictable latency, ideally with no jitter.
01:00
< RichyB>
e.g. Linux or Windows can't really guarantee you that they won't take your application out for lunch for a few hundred microseconds while they process some backlogged work like compacting a free-list in the kernel or something.
01:03
<&McMartin>
Hell, Linux and Windows generally won't guarantee that you won't have to spend entire milliseconds processing somebody else's I/O.
01:08 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds]
01:10
< xybre>
Linux supposedly has a RTOS Kernel as a build option
01:13 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code
01:13 mode/#code [+o Orthia] by ChanServ
01:16
< RichyB>
xybre, yes, and that work is very cool and exciting.
01:16
< RichyB>
Even with all of the RT build options enabled, it is considered a soft RTOS rather than a hard one.
01:17
<&McMartin>
I forget what soft RTOS means.
01:17
< xybre>
Ahh okay.
01:17
<&McMartin>
I tend to think of RT as meaning intrinsically hard
01:17
< RichyB>
No, that's hard RT.
01:17
<@Reiv>
Didn't we have that explanation above?
01:18
<&McMartin>
Hard RT is "the OS guarantees you never miss deadlines"
01:18
< RichyB>
Hard RT - all deadlines must be met. Soft RT - most deadlines must be met.
01:18
<@Reiv>
Soft is "N% complete within X to be acceptable", Hard is "100% must complete within X to be acceptable"
01:18
<&McMartin>
Ah
01:18
< RichyB>
Yes.
01:18
<&McMartin>
How high does N have to be that standard schedulers fail it?
01:18
<&McMartin>
Or, I guess, how small does X have to be
01:18
<&McMartin>
I'm used to X being 13ms~
01:18
< RichyB>
Not 16.6ms?
01:19
<@Reiv>
I think the soft one also has limits on how far lagged the breaches are, IIRC?
01:19
< xybre>
Is that why Android has that nasty history of UI lag?
01:19
<@Namegduf>
Any strict "all cases" limit is hard RT.
01:19
<@Reiv>
Like, 99% within 100ns is not OK if the 1% is 14ms
01:19
<@Namegduf>
For soft it is.
01:19
<@Reiv>
I had understood that soft tends to be, uh
01:19
<&McMartin>
Richy: There's some reason it's not exactly that but I don't remember what it is >_>
01:19
<@Namegduf>
Typical examples are cases like audio where the lagged stuff can be just discarded.
01:19
< RichyB>
xybre, no; Android's UI lag is almost all in user-space, not in kernel-space.
01:20
<@Namegduf>
"hard RT" means there's a hard deadline. It doesn't mean it's a hard, *near* deadline.
01:20
<@Reiv>
Ah, yeah
01:20
< xybre>
So thats more easily fixable, in theory
01:20
<&McMartin>
Speaking of Android, anyone here done work with native code on Android?
01:20
< RichyB>
Well, maybe.
01:20
<@Reiv>
Soft usually has the thing where if it exceeds, it's discarded, not 'system hangs until complete'.
01:20
< RichyB>
Wikipedia gives a more nuanced definition than the one I did, BTW
01:21
<&McMartin>
RichyB: But yeah, I was going for "I'm used to 'I need to hit 60 FPS smoothly'"
01:21
< RichyB>
It splits it further into "firm RT" and "soft RT"
01:21
<&McMartin>
Is that independent from hard/soft?
01:21
<&McMartin>
Or is it soft/firm/hard?
01:21
< RichyB>
No, it's graduations of softness.
01:21
< RichyB>
soft/firm/hard
01:21
<&McMartin>
Ah
01:22
<&McMartin>
Hee
01:22
<@Namegduf>
I tend to think of there as being "real RT" which is where you need to design everything from interrupts through scheduling through compiled code length and maximum execution time with most pessimum cache and branch prediction behaviour to hit hard deadlines- even generous deadlines are *hard* to do that with- and "everything else" which is all fuzzy.
01:23
<&McMartin>
I suppose 8-bit console development counts as round-robin scheduling with an N of 1~
01:23
< RichyB>
They define "soft" as "the usefulness of answers falls smoothly past the deadline that they were supposed to be available by."
01:23
<&McMartin>
Whcih article are you reading here?
01:23
<@Namegduf>
"everything else" is also a lot easier. Once you don't need to be sure you can just take Linux and hack it up for something close enough.
01:24
<&McMartin>
I'm not finding this discussion on the Real-time OS page
01:24
< RichyB>
http://en.wikipedia.org/wiki/Real-time_computing#Criteria_for_real-time_computin g
01:24
< RichyB>
they define "firm" as "late answers are useless, you need to hit N% of your deadlines"
01:25
< RichyB>
and "hard" as "late answers are useless, hit 100% of the deadlines or the system is useless".
01:25
<@Namegduf>
Or, if safety-critical, outright dangerous.
01:25
<&McMartin>
Yeah.
01:25
<&McMartin>
"Missing a deadline is a total system failure"
01:25
<&McMartin>
"Early video game systems such as the Atari 2600 and Cinematronics vector graphics had hard real-time requirements because of the nature of the graphics and timing hardware."
01:25
<&McMartin>
So I have, in fact, some code published on Github that qualifies as hard realtime~
01:26
< RichyB>
I think that under certain jurisdictions, payroll software counts as hard-realtime.
01:26
<&McMartin>
https://github.com/michaelcmartin/Ophis/blob/master/examples/hi_stella/hi_stella .oph
01:26
< RichyB>
The deadlines are, like, 30 days long, but if you ever miss one by even a millisecond, your company is officially disbanded on the spot. ;)
01:26
<@Namegduf>
Believable, although the deadlines are so very long that they aren't written like it.
01:26
<&McMartin>
RichyB: Sssorta. I noticed in the "Real-time operating system" article they also added "and deadlines involve timepans of tenth of a second or less"
01:27
<&McMartin>
*timespans
01:27
<@Namegduf>
Eh. I don't think that's true.
01:27
<@Namegduf>
Of the order of seconds you can still have very safety-critical stuff which needs writing in a way similar to other hard realtime stuff.
01:28
<@Reiv>
I daresay there could be an arguement for 'fixedtime computing' as well as 'realtime computing' but it's simply a matter of degrees
01:28
<&McMartin>
Incidentally, note that the Atari 2600's sprite placement API is "write to this register, and the sprite will be moved to where the CRT's electron gun is currently pointed"
01:28
<@Reiv>
Because 'realtime computing' that takes a month between cycles does not sound very real time, does it.
01:29
<@Namegduf>
I think if you took an existing RT system and slowed it down by that much it should still be RT just because it has all the properties of RT you actually care about.
01:29
<@Namegduf>
Required design mechanisms, etc.
01:29
< xybre>
McMartin: thats kind of terrifying/awesome
01:29
<@Namegduf>
When your cycles are not a month between each, but your deadlines are, I think there's a decent case for that.
01:30
<@Namegduf>
Payroll software might meet the "total system failure if deadline exceeded" thing, but in practice they don't bugger with proving the OS scheduler won't stall them.
01:30
<@Namegduf>
In *theory*, a system could stall them so bad- maybe if it was thrashing horribly- they didn't complete in time. But it's improbable enough that it's not engineered to prove against it.
01:31
<&McMartin>
xybre: This does lock it in, but a side effect of that is that Atari 2600 sprites are as tall as you want them to be, because you process every scanline "by hand"
01:31
<&McMartin>
There are only *width* restrictions, because "one scanline" is all the Television Interface Adapter knows about.
01:31
<@Tarinaky>
Sounds like a bit of a degenerate case.
01:31
< xybre>
McMartin: what do you mean "as tall as you want them to be"? OTher systems had sprite height limits?
01:31
< RichyB>
Namegduf, what you have to worry about instead is your lead-time to bring up a replacement computer and load backups into it if the machine breaks. :)
01:31
<&McMartin>
(Also, once place, a sprite's X position is locked in place and can be nudged)
01:31
<@Namegduf>
RichyB: Pretty much, yeah.
01:32
<&McMartin>
xybre: Yeah, almost all systems have height limits. NES was 8x8 for sprites and tiles, C64 was 8x8 for tiles and 24x21 for sprites.
01:32
<&McMartin>
And then during the early era of 3D, you had practical limits of 256x256 for sprites on an 800x600 screen, etc
01:32
< xybre>
Hmm. You could do arbitrary draws, but they would be srupid slow because they wouldn't have hardware support?
01:33
<&McMartin>
Depended on the system.
01:33
<&McMartin>
For PCs, yeah, more or less, unless you were in a 3D mode in which case you actually might *not* be able to do them.
01:33
<&McMartin>
The C64 had a non-sprite-y bitmapped display, but the NES did not. With the NES (and the GBA after it, in most modes) you actually *couldn't* light arbitrary pixels
01:34
<&McMartin>
You had a set of N tiles and you laid the tiles out to build the background
01:34
<&McMartin>
(On the C64 and similar PCs, those tiles were generally called "characters" because this was how text mode worked)
01:34
<&McMartin>
The IBM PC is sort of a weird case because it's never had hardware sprite support, but it had decent-quality bitmap displays from the start
01:35
<&McMartin>
The C64 and NES had hardware registers that you could write to and the chip would just draw those objects in their proper places on the screen, every frame, with no further intervention from the main program/developer except to do things like update the location
01:36
<&McMartin>
(The '64 had 8 24x21 sprites; those dimensions were picked I think because you can fit the bitmap in 64 bytes and that tiles nicely. The NES gave you 64 8x8 sprites, so you could do more little things but usually had to group the sprites in chunks to get anything that was a decent-looking size.)
01:37
< xybre>
Ah right, because the tiles were like a hardware font that was restructure by the instructions in the game
01:37
< xybre>
So they had to draw everything in the fixed grid
01:38
<&McMartin>
Yeah.
01:38
<&McMartin>
But then you could pan that grid at the pixel level for smooth scrolling
02:02 Derakon is now known as Derakon[AFK]
02:12 celmin|away is now known as celticminstrel
02:29 Vorntastic [Vorn@Nightstar-b8287ec3.sub-70-211-15.myvzw.com] has joined #code
02:36 Derakon[AFK] is now known as Derakon
03:20 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
03:52
<&McMartin>
Hm, VMware Player 6 is out
03:56 Vorntastic [Vorn@Nightstar-b8287ec3.sub-70-211-15.myvzw.com] has quit [[NS] Quit: Bye]
04:02 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has joined #code
04:02 mode/#code [+qo Vornicus Vornicus] by ChanServ
04:21
<&Derakon>
Heavens help me, I'm thinking about writing scripts to automatically crop down screenshots of Angband to focus on the player and OCR out any messages. >.<
04:21
<&Derakon>
(For use in a hypothetical screenshot Let's Play)
04:22
<&Derakon>
Centering on the player ought to be a simple matter of cross-correlating with an image of an '@'.
04:23
<&Derakon>
The OCR I'm less certain of, but messages always show up in a specific area of the screen so it should be doable.
04:28
<@Alek>
I think there's non-player @s in many roguelikes, where it just designates a human(oid) or some such critter. dunno about in Angband.
04:29
<&Derakon>
Vanilla Angband certainly only has the player as @; humanoids are 'p'.
04:29
<&Derakon>
The vast majority of variants continue that tradition.
04:30
<&McMartin>
Humanoids span h, H, o, and @ in nethack
04:31
<&McMartin>
Humans *proper*, and elves, are @
04:31
<&McMartin>
o is orcs and goblins, and h is pretty much everything else, from hobbits to illithids.
04:32
<&McMartin>
Oh wait, and G is gnomes~
04:34
<&Derakon>
Yeah, Angband has 'p' for humans/elves, 'h' for other humanoids, 'o' for orcs, 'O' for ogres, 'P' for giants, and 'T' for trolls.
04:35
<&Derakon>
Oh and 't' for townspeople.
04:37
<&Derakon>
I guess yeeks ('y'), kobolds ('k'), yetis ('Y'), and ainu ('A') are also humanoid, and then there's several letters for undead.
04:37 * Derakon looks back at that last line, sees a bunch of weird emoticons.
04:37
< Syka_>
('Y') == man with an arse for a face
04:38
<&Derakon>
Or a very poorly-done boob job.
04:39
<@Reiv>
porn star boob job, woo
04:43
< Syka_>
boob borg
04:45
<@Azash>
We are the plastic surgeons
04:46
<@Azash>
Prepare to be ass-simulated
04:46 * Azash leaves forever
04:46
< Syka_>
hee
05:01
<&McMartin>
"ainu" are a monster class?
05:02
<@Alek>
apparently so.
05:03
<&McMartin>
OK, I'm going to pretend very hard that this is http://en.wikipedia.org/wiki/Ainur_%28Middle-earth%29
05:03
<&Derakon>
It is, in fact.
05:03
<&Derakon>
This makes no sense whatsoever, but thematically it's better than the monster type it replaced: Angels.
05:04
<&Derakon>
So now you can kill Radagast instead of Gabriel.
05:04
<&McMartin>
Hee
05:04
<&McMartin>
That's "Archon" in Nethack
05:04
<&McMartin>
Archons can summon guys in huge swarms
05:04
<&McMartin>
... including other Archons
05:04
<&Derakon>
Yeah, Archons were the top non-unique angel in previous versions.
05:04
<&Derakon>
And yep, they could summon each other.
05:05
<&McMartin>
http://www.ci-n.com/~jcampbel/goddamnalienarchons.txt
05:05
<&Derakon>
I see that and think of shoggoths rising from the ocean.
05:05
<&Derakon>
That is not a game. It is madness given form.
05:06
<&McMartin>
It's also kind of sad that nethack's name display doesn't let you actually fully display the name "Angharad"
05:09
<@Alek>
and to think, this is actually easier to comprehend than Dwarf Fortress.
05:09
<@Alek>
and people play that.
05:10 Kindamoody[zZz] is now known as Kindamoody
05:11
<&McMartin>
Alek: Normally you get murdered by something before it gets this far, but max-level Valkyries have very high survivability. -_-
05:11 Derakon is now known as Derakon[AFK]
05:13 gnolam_ [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has joined #code
05:13 cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has joined #code
05:13 Netsplit *.net <-> *.split quits: @iospace, ErikMesoy|sleep, Typherix, @Pandemic, Xires, Attilla, himi-cat, @Derakon[AFK], simon_, @Vornicus, (+15 more, use /NETSPLIT to show all of them)
05:14 VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
05:14 ErikMesoy [Erik@Nightstar-404c8d4f.80-203-17.nextgentel.com] has joined #code
05:15 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code
05:16 [R] [rstamer@Nightstar-e681a855.org] has joined #code
05:16 Turaiel [Brandon@Nightstar-949d7402.resnet.mtu.edu] has joined #code
05:17 iospace [Alexandria@4FC299.0D8BA9.052B15.C441F0] has joined #code
05:17 Namegduf [namegduf@Nightstar-5c10d129.beshir.org] has joined #code
05:17 simon_ [simon@Nightstar-0f014e55.pronoia.dk] has joined #code
05:17 McMartin [mcmartin@8E7DA3.1C5F34.58FA8D.4203C1] has joined #code
05:17 xybre [xybre@2B12AA.26C322.29F919.944077] has joined #code
05:17 froztbyte [froztbyte@Nightstar-dc394964.za.net] has joined #code
05:17 himi-cat [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
05:17 Xires [xires@Nightstar-c54fd8cd.feedthetrolls.net] has joined #code
05:17 Attilla [uid13723@Nightstar-1325dff0.irccloud.com] has joined #code
05:17 ktemkin[awol] [ktemkin@Nightstar-117b45a4.c.ircrelay.com] has joined #code
05:17 Vornicus [vorn@31356A.68201E.EB0611.E0094F] has joined #code
05:17 jerith [jerith@ServerAdministrator.Nightstar.Net] has joined #code
05:17 Azash [ap@Nightstar-339920e6.net] has joined #code
05:17 Thalass [thalass@Nightstar-ecf59cc1.bigpond.net.au] has joined #code
05:17 Alek [omegaboot@F9D7EC.A49DC5.E306B4.11D03C] has joined #code
05:17 Typherix [Typherix@Nightstar-ea8fda76.lnngmi.sbcglobal.net] has joined #code
05:17 Derakon[AFK] [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code
05:17 ServerMode/#code [+ooaoooqaoooao iospace Namegduf McMartin McMartin froztbyte Vornicus Vornicus jerith jerith Azash Alek Derakon[AFK] Derakon[AFK]] by *.Nightstar.Net
05:17 mode/#code [+oo Orthia cpux] by ChanServ
05:18
<@Azash>
Hello, world!
05:21 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [[NS] Quit: Going dooooown...]
05:21 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code
05:21 mode/#code [+o Orthia] by ChanServ
05:25
<@Alek>
o_o
05:25
<@Alek>
a netsplit that actually disconnected me.
05:26
<@Azash>
Educated guess: The node you were connected to was the culprit, meatbag
06:05
<~Vornicus>
Fleet orders, first draft: grab ship, drag it to another place. When it does this, you get a box with a number entry, cancel, OK, and 1 and max buttons. This needs lots of keyboard work to get it right; enter & escape for ok and cancel, number typing, and I'm not sure for max & 1.
06:06
<~Vornicus>
possibly max and one?
06:08
< ErikMesoy>
I'd say x.
06:11
<&McMartin>
> and <?
06:12
< ErikMesoy>
(a)ll?
06:14
<~Vornicus>
By default, the number entry box will say, idunno, 1, and holding shift when drag is released will make it say max instead, reducing clicks. I'm tempted to include + and - as keyboard things too, because typing a number 1 lower or 1 higher is a Pain In The Nostrils
06:47 ErikMesoy [Erik@Nightstar-404c8d4f.80-203-17.nextgentel.com] has quit [[NS] Quit: Leaving.]
06:56 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.]
06:59 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code
07:04 Kindamoody is now known as Kindamoody|out
07:15 Turaiel is now known as Turaiel[Offline]
07:45 ErikMesoy [Erik@FA912D.398CEF.7B7F2C.BBBD89] has joined #code
07:51 celticminstrel [celticminst@Nightstar-ae361035.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.]
08:15 Moltare [Moltareish@583787.FF2A18.190FE2.4D81A1] has joined #code
08:59 Moltare [Moltareish@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
09:57 You're now known as TheWatcher
11:27 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
11:29 gnolam [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has joined #code
11:29 mode/#code [+o gnolam] by ChanServ
11:31 gnolam_ [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds]
11:32 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code
11:37 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving]
12:56 * Thalass ponders openpgp and the like
13:07 Vornicus [vorn@31356A.68201E.EB0611.E0094F] has quit [[NS] Quit: ]
13:09
<@Azash>
http://www.reddit.com/r/RTLSDR/comments/1le3if/so_i_discovered_that_my_hp_laptop _leakstransmits/
13:27 ErikMesoy [Erik@FA912D.398CEF.7B7F2C.BBBD89] has quit [Ping timeout: 121 seconds]
13:29 ErikMesoy [Erik@FA912D.398CEF.7B7F2C.BBBD89] has joined #code
14:13
<@Tarinaky>
http://www.youtube.com/watch?v=xNqs_S-zEBY
14:14
<@Tarinaky>
I think Carmack's ID keynote speech mentioned some of this stuff.
14:29
<@TheWatcher>
Gorrilla Arm Time
14:31 Thalass [thalass@Nightstar-ecf59cc1.bigpond.net.au] has quit [Connection closed]
14:38
<@Tarinaky>
TheWatcher: What?
14:38
<@TheWatcher>
*Gorilla
14:38 thalass [thalass@Nightstar-ecf59cc1.bigpond.net.au] has joined #code
14:39
<@Tarinaky>
It wasn't the spelling I was whatting at.
14:40
<@TheWatcher>
Rough summary: try holding your arms out in front of you, unsupported, for 5 minutes.
14:40
<@TheWatcher>
Now, try doing it while moving your arms and hands precisely
14:40
<@Tarinaky>
Fortunately there's a thing called a desk. One can rest ones elbows on it.
14:40
<@Tarinaky>
I think it was invented by a Scandanavian called Ikea.
14:41
<@TheWatcher>
Yes, one even appeared in that video briefly. It was supporting the monitor. I noticed a world shortage of arm support, especially when they switched to free-standing
14:42
<@Tarinaky>
I blame that on prototyping.
14:42
<@TheWatcher>
For regular short periods? Not a problem - people have been doing it forever with chalk boards, whiteboards, flipcharts. But those are entirely different applications than designing hardware in 3D
14:43
<@Tarinaky>
Gorilla arm is probably better for your back/posture than RSI though.
14:45 celticminstrel [celticminst@Nightstar-ae361035.dsl.bell.ca] has joined #code
14:45 mode/#code [+o celticminstrel] by ChanServ
14:45
<@Tarinaky>
For the Occulus Rift it really wouldn't be too much hardship to add some furniture.
15:00 ErikMesoy [Erik@FA912D.398CEF.7B7F2C.BBBD89] has quit [[NS] Quit: Going home.]
15:07
<&ToxicFrog>
Derakon[AFK]: I already have such scripts from doing the Septerra Core LP. You're welcome to them if you want them.
15:07
<&ToxicFrog>
I found gOCR was excellent for extracting text from screenshots, because it can be trained to recognize arbitrary fonts; as long as the font the game uses is consistent, you can teach it to gOCR.
15:17 ErikMesoy [Erik@Nightstar-404c8d4f.80-203-17.nextgentel.com] has joined #code
15:47 Turaiel[Offline] is now known as Turaiel
16:11 Alek [omegaboot@F9D7EC.A49DC5.E306B4.11D03C] has quit [Ping timeout: 121 seconds]
16:16 Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has joined #code
16:16 mode/#code [+o Alek] by ChanServ
16:34 Turaiel is now known as Turaiel[Offline]
16:40
<&ToxicFrog>
Hrm.
16:40
<&ToxicFrog>
Replace old broken code with new experimental code.
16:40
<&ToxicFrog>
New experimental code doesn't work either.
16:40
<&ToxicFrog>
Enable both.
16:40
<&ToxicFrog>
Works.
16:40
<&ToxicFrog>
???
16:41
< RichyB>
One of them solved half the problem, the other solves the other half? :)
16:50 thalass is now known as Thalasleep
16:50
< Thalasleep>
I think "synergy" is the answer, TF
17:02 Turaiel[Offline] is now known as Turaiel
17:10
<@Azash>
"Oh, I guess I can look at the source code to find the problem" http://i.imgur.com/f6ZY5Mo.gif
17:16 VirusHome is now known as Pandemic
17:17 mode/#code [+o Pandemic] by ChanServ
17:41 Moltare [Moltareish@583787.FF2A18.190FE2.4D81A1] has joined #code
17:55 gnolam [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has quit [Client closed the connection]
17:55 gnolam [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has joined #code
17:56 mode/#code [+o gnolam] by ChanServ
17:59 AnnoDomini is now known as Wires
19:06 Moltare [Moltareish@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
19:59 Kindamoody|out is now known as Kindamoody
20:13 Moltare [Moltareish@583787.FF2A18.190FE2.4D81A1] has joined #code
20:36
<&ToxicFrog>
Goddamnit, Python
20:36
< Syka_>
ToxicFrog says, as a burmese python has once again constricted his computer
20:37
<&ToxicFrog>
No, but '' is boolean false
20:37
<@froztbyte>
that sounds like a misdirected statement
20:37
<@froztbyte>
what are you doing?
20:39
<&ToxicFrog>
froztbyte: I was trying to figure out why the linter was objecting to a certain if as containing "explicit comparison to false"
20:39
< Syka_>
ToxicFrog: that sounds correct
20:39
<&ToxicFrog>
One of the clauses was [layer == '']
20:39
< Syka_>
null string is a falsey value
20:39
< Syka_>
and i am fairly sure it is in everything
20:39
<&ToxicFrog>
Ahahahahahahhaha no.
20:40
<@froztbyte>
Syka_: /never/ make that mistake
20:40
<@froztbyte>
"truth" is one thing that does not translate well across languages. at all.
20:40
< Syka_>
well, okay, it is in python :U
20:40
<&ToxicFrog>
The reason this keeps tripping me up is that I'm used to Clojure, Lua, and Scala; in Scala it's a type error, and in the other two nil and false are false and everything else is true.
20:44
<&ToxicFrog>
Conversion of non-boolean "empty" values and zero numeric values to false is common-ish - off the top of my head, Perl, PHP, and Python do it - but by no means universal.
20:44
< ErikMesoy>
eeesh. That sounds just wrong. Empty string feels to me like it should remain String.
20:45
< ErikMesoy>
I know I'd prefer foo=='' to trying to remember if the language of the day uses String.IsEmpty or IsEmpty(String) or what
20:45
<&ToxicFrog>
(and if you find yourself saying "well, Perl and PHP do it this way", it is time to seriously rethink some life decisions)
20:46
<&ToxicFrog>
ErikMesoy: no, no, it's not that; foo == '' is legal
20:46
<&ToxicFrog>
But plain foo, in a boolean context, is false
20:47
<&ToxicFrog>
So [if foo == '':] is eqv to [if foo:]
20:53
<&ToxicFrog>
Syka_: so, anyways, in basically every language I use frequently except python and bash, the empty string is either boolean true or a compile time error when used as a boolean.
20:54
<&ToxicFrog>
And bash is sufficiently weird in general that I don't use its behaviour to model other languages.
20:57
< ErikMesoy>
Possibly less weird comparison: empty string is false in javascript?
20:58 Xon [Xon@9C034E.A7474E.446F1A.DEA144] has quit [Ping timeout: 121 seconds]
20:59 Xon [Xon@9C034E.A7474E.446F1A.DEA144] has joined #code
21:15 Kindamoody is now known as Kindamoody[zZz]
21:36 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has joined #code
21:36 mode/#code [+qo Vornicus Vornicus] by ChanServ
22:03 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
22:04 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
22:22
<&McMartin>
12:41 <&ToxicFrog> Conversion of non-boolean "empty" values and zero numeric values to false is common-ish - off the top of my head, Perl, PHP, and Python do it - but by no means universal.
22:22
<&McMartin>
This is the only way to do it in C. -_-
22:25
<@Azash>
Javascript does it too, I think?
22:25
<@Azash>
Out of curiosity, don't nulls have a zero value and thus evaluate to false?
22:25
<~Vornicus>
Things that I have seen as false, in order of commonality: false, nil, empty container, 0, empty string.
22:25
<@Azash>
(in C)
22:29
< [R]>
<McMartin> This is the only way to do it in C. -_- <-- technically only for pointers (which get set to NULL). Empty strings are pointers that are a "true" value.
22:33
< Moltare>
You will be pleased to know, gentlemen, that I knocked up a proposal for collision detection in runescript based on our discussion yesterday
22:33
<@Namegduf>
Vornicus: Empty container before 0, when C had no bool?
22:33
< Moltare>
As a result of which I'm getting engine support for it instead~
22:33
<@TheWatcher>
ahahha
22:35
<@Azash>
[R]: Mm, aren't empty strings "", thus '\0' ?
22:36
<@Azash>
Moltare: Excellent
22:37
<@Namegduf>
No.
22:37
<@Namegduf>
They're a pointer to '\0'
22:37
<@Namegduf>
"\0" is a pointer to '\0'
22:37
<@Namegduf>
And is non-zero
22:38
<@Namegduf>
Languages today, making everyone mentally flatten all indirection because of their hiding of references... XD
22:39 * TheWatcher lends Namegduf his cane
22:40
<@Namegduf>
Yes. XD
22:40
<@Azash>
I had thought "" denotes anything that's null-terminated, making the 'empty string' just a single null, as opposed to a null pointer or a pointer to garbage
22:41
<~Vornicus>
Azash: "" is a pointer to a place that says 0
22:41
<@Namegduf>
A C string is a pointer to the characters which comprise that string.
22:41
<@Namegduf>
Ending in \0.
22:41
<@Azash>
Vornicus: Yes, exactly
22:41
<@TheWatcher>
Azash: char *foo = ""; printf("%d", foo); will print out something distinctly non-zero.
22:41
<&McMartin>
R: Numbers as well
22:41
<&McMartin>
strcmp returns an int
22:41
<@TheWatcher>
whereas printf("%d", *foo) will be 0.
22:42
<@Namegduf>
It is a non-zero that points at a zero.
22:42
<@Azash>
Yeah
22:42
<&McMartin>
The fun part is that NULL turns into a zero if interpreted as an int, but isn't technically guaranteed to actually be represented the same way as a zero of equivalent size.
22:42
<@Azash>
I mean, when I say "empty strings", I thought that would be parsed as ""
22:43
<&McMartin>
Yeah, "" is a valid pointer to somewhere in the .data segment that has a zero in it
22:43
<@Namegduf>
It was. And they're not false in C.
22:43 Wires is now known as AnnoDomini
22:43
<@Namegduf>
"" is a non-zero pointer to a zero, and C doesn't do invisible dereferencing.
22:43
<@Namegduf>
if (foo) { ... } will run the contents of the if, given foo as TheWatcher defined it.
22:43
<@TheWatcher>
so printf("%s", foo ? "true" : "false") will print 'true', while printf("%s", *foo ? "true" : "false") will print "false"
22:44
< [R]>
char *foo = ""; if (foo) { puts("this prints"); } if (*foo) { puts("this doesn't"); }
22:46
<@Azash>
McMartin: Yeah, that's what I meant
22:54 ErikMesoy [Erik@Nightstar-404c8d4f.80-203-17.nextgentel.com] has quit [[NS] Quit: Leaving.]
22:54 ErikMesoy [Erik@Nightstar-404c8d4f.80-203-17.nextgentel.com] has joined #code
23:34
< Xon>
McMartin, the .NET runtime regardes any access to the first 32kb or 64kb of memory as a null-pointer dereference =p
23:39
<@Namegduf>
I assume that would be so that if you access a field of a class, foo.Bar, and foo is null, the fact that Bar is at a +4 bytes offset into it doesn't stop the access from being treated as a null pointer dereference.
23:39
<@Namegduf>
And they want to support hugeass classes.
23:40
<&McMartin>
Xon: That's a common trick too, so that foo[x] when foo is NULL still probably counts
23:40
<&McMartin>
But yeah
23:41
<@Namegduf>
Aha, that too
23:48
<&ToxicFrog>
McMartin: re C: 0 is false, NULL is false, but the empty string and zero-length array are not false.
23:49
<&McMartin>
Indeed
23:49
< AnnoDomini>
Still better than PHP. :V
23:49
<&McMartin>
Actually, a zero-length array should not exist~
23:49
<&McMartin>
It's a syntactic hack that the compiler should never let you actually instantiate
23:49
<&ToxicFrog>
In at least some compilers, foo[0] is permitted as the final field in a struct and is used for VLAs, IIRC
23:49
<&McMartin>
Yes
23:49
<&McMartin>
That's in the standard, even.
23:50
<&McMartin>
But if you have one in, say, struct foo
23:50
<&McMartin>
then "struct foo f;" is supposed to be an error
23:50
<&McMartin>
Such a type should only be dealt with via pointer
23:50
<&ToxicFrog>
Right.
23:50 Azash [ap@Nightstar-339920e6.net] has quit [Ping timeout: 121 seconds]
23:50
<&McMartin>
(And yeah, I use that technique All The Time in my C code)
--- Log closed Sat Sep 07 00:00:02 2013
code logs -> 2013 -> Fri, 06 Sep 2013< code.20130905.log - code.20130907.log >

[ Latest log file ]