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