--- Log opened Fri Oct 18 00:00:17 2013 |
00:04 | <@Azash> | What's DOSS? |
00:11 | | Stalker [Z@Nightstar-b920a19c.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
00:13 | <@Tarinaky> | Azash: DOS SHELL |
00:13 | <@Tarinaky> | Not DOSS HELL |
00:13 | <@Azash> | Oh, I just thought one S was superfluous |
00:17 | | Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has quit [Client closed the connection] |
00:18 | | Alek [omegaboot@Nightstar-4093ec22.il.comcast.net] has joined #code |
00:18 | | mode/#code [+o Alek] by ChanServ |
00:44 | <@simon`> | I have a question on garbage collection: the strategies that put computation on hold, performs GC and resumes computation, why don't they delegate this to a thread within the process? |
00:45 | <&ToxicFrog> | There are some GCs that do this. |
00:46 | <&ToxicFrog> | But this requires you to be able to modify shared structures simultaneously from the GC and the other thread(s) without things breaking. |
00:46 | <@Namegduf> | simon`: "Because their GC algorithm doesn't work if things are being changed in parallel to the GC." is the answer when they don't do it. |
00:46 | <@Namegduf> | But some do some work in parallel and have a shorter stop-the-world, and others I think are entirely parallel. |
00:46 | <@simon`> | well, if we restrict ourselves to functional languages... |
00:47 | <@simon`> | then all memory should be read-only anyway. |
00:47 | <@Namegduf> | Not in a way that fixes this, I think. |
00:47 | <@simon`> | (unless of course smart optimizations do away with that assumption) |
00:47 | <@Namegduf> | Think of a simple mark and sweep detector. |
00:47 | <@simon`> | yes. |
00:47 | <@Namegduf> | It goes over memory, looking for references to things, and whatever it doesn't find a reference for, is collected. |
00:48 | <@simon`> | ah. at any point in time, it might temporarily have lost a reference. |
00:48 | <@Namegduf> | Now think of something else which makes a new reference and drops the old, in parallel to the search. |
00:48 | <@Namegduf> | Yes. |
00:49 | <@simon`> | well, I was thinking you could make a rougher division being: if you're within some (functional, still) scope where a variable exists, consider it alive even though you might've surpassed its last usage. |
00:49 | <@simon`> | so a variable is alive in its entire scope |
00:49 | <@simon`> | I know this worsens GC perhaps a lot in some cases.. |
00:49 | <@simon`> | err, maybe this is totally crazy, actually. |
00:49 | <@Namegduf> | Doesn't work for values which escape their scope; i.e. are returned, are stored somewhere... |
00:50 | <@Namegduf> | Values which do not escape their scope can be allocated on a stack, and usually are. |
00:50 | <@simon`> | right. some scopes may live a very long time. |
00:50 | <@Namegduf> | It's more that they aren't bounded by scope. |
00:50 | <@Namegduf> | You have a map. |
00:50 | <@Namegduf> | No, you have two maps. |
00:51 | <@Namegduf> | You sometimes insert a reference the same thing into one, sometimes the other, sometimes both, and arbitrarily remove it from either, too. |
00:51 | <@Namegduf> | Are you going to keep everything which ever goes into the map around forever until the program terminates? |
00:51 | <@simon`> | maps being kill/alive sets? |
00:51 | | Turaiel[Offline] is now known as Turaiel |
00:51 | <@Namegduf> | Maps being data structures. Not thinking functional here. |
00:51 | <@Namegduf> | Like python dictionaries. |
00:51 | <@simon`> | good good :) |
00:52 | <@Namegduf> | You need to collect stuff when it's no longer in either map. |
00:52 | <@Namegduf> | But scope can't tell you that, and the maps could persist the whole run of the program. |
00:52 | <@simon`> | right |
00:53 | <@simon`> | and you can't determine statically whether particular indices in a map will be referred to. |
00:53 | <@simon`> | at least not in the general case with any certainty. |
00:53 | <@simon`> | *hrm* |
00:53 | <@simon`> | ToxicFrog, can you point me to *one* GC (or paper on GCs) that talks of it? |
00:54 | <@simon`> | I'm not sure what to search for, since "threaded" apparently isn't the keyword. |
00:54 | <@simon`> | maybe parallel. |
01:00 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
01:03 | <&ToxicFrog> | simon`: this is further complicated by most parallel GC literature being related to performing the actual collection in parallel while the world is stopped. |
01:03 | <&ToxicFrog> | This is, for example, what the Java GC does. |
01:04 | <&ToxicFrog> | [concurrent garbage collection] is a query you may find useful. |
01:06 | <&ToxicFrog> | That is the common term for "garbage collection in which the GC and the main program can execute simultaneously" |
01:06 | <&ToxicFrog> | That said, even most (all?) concurrent GCs still need to pause at some point for initial or final marking. |
01:07 | <&McMartin> | Yeah |
01:07 | <&McMartin> | Though "incremental" GCs don't halt the *entire* world, just some of it |
01:07 | <&McMartin> | Which Java's GC should be; IIRC it's a generational one |
01:07 | <&ToxicFrog> | Well |
01:08 | <&McMartin> | There are other non-generational incremental collectors at least in theory |
01:08 | <&ToxicFrog> | "incremental" generally means "small chunks of GC execution are interleaved with small chunks of main code execution" |
01:08 | <&ToxicFrog> | As in, it doesn't need to do an entire collection cycle in one go |
01:08 | <&ToxicFrog> | (and it's orthogonal to being generational) |
01:09 | <&ToxicFrog> | Anyways. Incremental non-concurrent GCs do in fact halt the entire world, it's just that no one halt takes as long as a non-incremental halt. |
01:09 | <&ToxicFrog> | Lua's GC is one such. |
01:10 | <&McMartin> | Oh, speaking of Lua |
01:11 | <&McMartin> | Do you happen to know if Lua's object serialization format is portable (that is, endian- and bit-width and alignment-safe) |
01:12 | <&ToxicFrog> | ...you mean the bytecode format? |
01:12 | <&ToxicFrog> | Because there is no "lua object serialization format", although there are a number of libraries for such. |
01:12 | <&ToxicFrog> | (JSON is popular; I've toyed with implementing EDN) |
01:12 | <&McMartin> | I'm not sure what I mean |
01:13 | <@simon`> | thanks ToxicFrog :) |
01:13 | <&McMartin> | It turns out that one of the reasons one of the UQM core guys had been off the radar for awhile is because he was building infrastructure to put Lua hooks into a bunch of stuff |
01:13 | <&ToxicFrog> | Righteous |
01:13 | <&McMartin> | 13:54 < SvdB> Now that I think about it, the KVSt could just contain the table serialised by Lua. That way, mods can store other types of data than integers in the state right away. |
01:13 | <&McMartin> | The phrase "the table serialized by Lua" was the part I was not wholly clear on. |
01:14 | <&ToxicFrog> | Ok. There is no formal spec or reference implementation for serialization of lua data structures or from lua code. |
01:14 | <&McMartin> | OK |
01:15 | <&ToxicFrog> | There are a number of community libraries of various levels of complexity for various serialization formats, ranging from Pluto (which lets you save and restore the entire VM) to various JSON-y things. |
01:15 | <&ToxicFrog> | Baby's First Serializer is just a simple function that spits out executable lua source that, when executed, re-creates and returns the original value. |
01:15 | <&McMartin> | I'd prefer to not have my save format be a code injection vulnerability if possible~ |
01:15 | <&ToxicFrog> | (this is actually how SupComm save files work) |
01:16 | <&ToxicFrog> | It's sandboxable, so you can pretty easily make it impossible for savegames to e.g. perform arbitrary disk IO and program invocation when loaded. |
01:16 | <&ToxicFrog> | Anyways. The actual answer is "ask them about their serialization format" |
01:17 | <&ToxicFrog> | Also, what's a KVSt? |
01:17 | <&McMartin> | I'm rewriting the savegame format |
01:18 | <&McMartin> | KVSt was a hypothetical "Key-Value State" for modders who wanted something more structured than an expandable bitfield to hold extended game state in. |
01:18 | <&McMartin> | I'm doing the standard IFF/RIFF/PNG/etc "series of 4-byte tag, length field, data chunks" thing for it. |
01:19 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
01:19 | | mode/#code [+o Orthia] by ChanServ |
01:19 | <&ToxicFrog> | Aah |
01:20 | <&ToxicFrog> | ...I'm not sure whether to read SvdB's comment as "we can replace the KVSt with a serialized lua table" or "we can store a serialized lua table as one of the Vs in the KVSt" |
01:20 | <&McMartin> | It was more "a KVSt is a serialized Lua table" |
01:20 | <&ToxicFrog> | Aah. |
01:20 | <&McMartin> | Since a "stock" UQM save would have no KVSt chunk at all. |
01:21 | <&McMartin> | (Those values get turned into the bitfield, which is the game state chunk) |
01:21 | <&McMartin> | Sadly, some of that bitfield at present is actually indexes into an array of bytes that is used as literal swap space, and is otherwise completely unstructured |
01:21 | <&ToxicFrog> | :gonk: |
01:21 | <&McMartin> | (Those were initially actual swap files on the 386, I think.) |
01:22 | <&McMartin> | So, I now have a design that actually represents the information these have, which will eventually shrink the size of that bitfield. |
01:22 | <&McMartin> | In the meantime, I need to be able to synthesize those swap files from more sensible representations, and vice versa. |
01:23 | <&McMartin> | On the plus side, this means our savefiles will also finally become endian-safe, now that nobody gives a shit about that anymore with the fall of the PowerPC Macs. |
01:40 | <&ToxicFrog> | Heh. |
01:42 | <&McMartin> | Also on the list: scrapping a 20+-year-old custom Lempel-Ziv-based compression system used only for savegames |
01:43 | <&ToxicFrog> | huzzah |
01:43 | <&ToxicFrog> | Anyways, I am totally willing to help with lua-related inquiries. |
01:45 | <&McMartin> | Yeah, I suspect things are under control, but we'll see how these two designs end up merging. |
01:45 | <&McMartin> | (Answer: probably kind of painfully) |
01:45 | <&McMartin> | On the plus side, I totally got backcompat working and expect to keep that in 0.8 |
01:46 | <&ToxicFrog> | Excellent. |
01:46 | <&ToxicFrog> | Also, what's the "other design" here? The IFF format you're working on? |
01:49 | <&McMartin> | Yeah |
01:49 | <&McMartin> | And specifically, eradicating this "swap space" abstraction |
01:49 | <&ToxicFrog> | The solution that comes immediately to mind is "use lua tables at runtime, serialize to/from IFF" |
01:49 | <&McMartin> | Which is shifting to "synthesize a swap space on load" to keep the changes more local at present. |
01:49 | <&McMartin> | Yes |
01:49 | <&McMartin> | That's how it'll merge, eventually |
01:50 | <&ToxicFrog> | Which has the added advantage that you can easily extend the IFF to support new data types you introduce |
01:50 | <&McMartin> | But those swap files are touched by both of us, is the thing |
01:50 | <&McMartin> | And by "touch" I mainly mean "I was going to burn those down" |
01:50 | <&ToxicFrog> | Aah. |
01:50 | <&McMartin> | That's now being delayed until after we both merge. |
01:50 | <&McMartin> | But yes, there's not a problem at the endpoint |
01:51 | <&McMartin> | I think after both move, I remove "synthesize swap file" and move "interpret swap file" from the save code to the load-legacy code. |
02:03 | <@Reiv> | And lo, my day just shifted from Meh to Worse. |
02:04 | <@Reiv> | "So, uh, how many installs do we think we're reading?" "Not sure, [how to look it up]". "So... about three hundred?" "Probably." "And I'm finding six thousand?" "Installs or meters." "*Installs.*" |
02:05 | <@Reiv> | Bearer of bad news etc~ |
02:10 | <&ToxicFrog> | I have no idea how to interpret that. |
02:40 | <@Reiv> | I wa stold to find the installs. I found installs. I asked how many we expected. I'd found fifty times that number. |
02:41 | <@Reiv> | People are not entirely thrilled that I have found fifty times that number. |
02:41 | <@Reiv> | wait. 20 times. Wrong direction on my division. >_> |
02:42 | <&ToxicFrog> | Aah. |
02:45 | <@Alek> | people have figured out why Microsoft is pushing tile-based interfaces. ... IE's function border-radius does not work. |
02:46 | < Syka> | hee |
02:47 | < Syka> | i think its because they don't think ARM can do glass, personally |
02:47 | < Syka> | "oh shit this will never run" "shit just make it 3D accelerated 2D squares then" |
02:49 | <@Reiv> | ARM? |
02:50 | < Syka> | you know, Win RT |
02:51 | < Syka> | where Microsoft is trying to get to |
02:51 | < Syka> | because Intel is no longer siding with Microsoft as much as they'd likw |
02:52 | < Syka> | and microsoft desperatelt want tablet share, which intel can't do |
02:53 | <@Namegduf> | They needed a touch-friendly UI, and the closest thing they had to an idea internally was the interface they'd used on Zune and Windows Phone 7. |
02:53 | <@Namegduf> | So they took it. |
02:59 | | Vorntastic [Vorn@Nightstar-e03faa78.sub-70-211-6.myvzw.com] has joined #code |
03:04 | | Xon2 [Xon@9C034E.A7474E.446F1A.DEA144] has joined #code |
03:04 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
03:06 | | Xon [Xon@9C034E.A7474E.446F1A.DEA144] has quit [Ping timeout: 121 seconds] |
03:15 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
03:16 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has joined #code |
03:16 | | mode/#code [+o Reiv] by ChanServ |
04:04 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
04:04 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
04:08 | | Vorntastic [Vorn@Nightstar-e03faa78.sub-70-211-6.myvzw.com] has quit [[NS] Quit: Bye] |
04:23 | | Kindamoody[zZz] is now known as Kindamoody |
04:25 | | ktemkin is now known as ktemkin[awol] |
04:57 | | Derakon is now known as Derakon[AFK] |
05:53 | | Kindamoody is now known as Kindamoody|semiafk |
06:06 | | celticminstrel [celticminst@Nightstar-90d86201.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
06:35 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.] |
06:36 | | ErikMesoy|sleep is now known as ErikMesoy |
06:38 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code |
06:57 | | Turaiel is now known as Turaiel[Offline] |
08:11 | | thalass [thalass@Nightstar-4ab061cc.bigpond.net.au] has joined #code |
08:11 | < thalass> | My Pi is here. Mwahaha! |
09:25 | <&McMartin> | LEMON MIRANGUE PI |
09:30 | | Attilla [uid13723@Nightstar-1325dff0.irccloud.com] has quit [Ping timeout: 121 seconds] |
09:32 | | jeroud [uid10043@Nightstar-7774ea6e.irccloud.com] has quit [Ping timeout: 121 seconds] |
09:57 | | jeroud [uid10043@Nightstar-7774ea6e.irccloud.com] has joined #code |
10:01 | | Attilla [uid13723@Nightstar-1325dff0.irccloud.com] has joined #code |
10:24 | | You're now known as TheWatcher |
10:54 | | thalass is now known as Thalass|bunny |
10:54 | | Thalass|bunny is now known as Thalass |
11:02 | | Thalass [thalass@Nightstar-4ab061cc.bigpond.net.au] has quit [[NS] Quit: work time] |
11:09 | | Stalker [Z@Nightstar-b920a19c.cust.comxnet.dk] has joined #code |
11:34 | | Kindamoody|semiafk is now known as Kindamoody |
12:02 | | Kindamoody is now known as Kindamoody|out |
12:07 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
12:17 | | Stalker [Z@Nightstar-b920a19c.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
12:57 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
13:38 | <@Tarinaky> | Okay, what's the most sensible properties to define an ellipse by? |
13:38 | <@Tarinaky> | In terms of being able to draw it... |
13:43 | <@froztbyte> | origin, and the two ways of "spread" |
13:44 | <@froztbyte> | I don't know what the names for for those are |
13:44 | <@Tarinaky> | Two ways? |
13:44 | <@Tarinaky> | I'm not sure what you mean by spread. |
13:44 | <@froztbyte> | how wide and flat it is |
13:44 | <@Tarinaky> | Isn't that only one parameter? |
13:49 | <@Tarinaky> | Focus, eccentricity, semi-major axis, inclination and ascending node? |
13:53 | <~Vornicus> | semimajor, semiminor, center, angle. |
13:53 | <@Tarinaky> | Center is one of the focii or...? |
13:53 | <~Vornicus> | Center is center. |
13:53 | <@Tarinaky> | And what do you mean by angle? |
13:54 | <~Vornicus> | The angle of the first axis from horizontal. |
13:55 | <@Tarinaky> | It'd be easier if I could use a focii as a parameter or be able to calculate the center from one of the focii... |
13:55 | <@Tarinaky> | Because of specific problem. |
13:55 | <@Tarinaky> | *focus |
13:55 | <~Vornicus> | Okay, two foci and a point on gives you the ellipse too. |
13:56 | <@Tarinaky> | I don't have the second focus, but I have a bunch of other data :/ |
13:57 | <~Vornicus> | What data do you have. |
13:57 | <@Tarinaky> | http://en.wikipedia.org/wiki/Earth |
13:57 | <~Vornicus> | Fuckin' |
13:57 | <@Tarinaky> | I did something bad didn't I? >.< |
14:19 | <@froztbyte> | what are you trying to do? |
14:20 | <@Tarinaky> | Current goal: make a simple orrary containing the Sun and the Earth, loading the latter from a data file that can be extended to include planets that aren't Earth. |
14:20 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
14:21 | <@froztbyte> | (because, thus far, it seems you're trying to portray something that isn't an ellipse (the earth) as an ellipse (not the earth), and took half a screen of XY problem to figure out) |
14:21 | <@froztbyte> | Tarinaky: eh |
14:21 | <@froztbyte> | Tarinaky: just grab one of the Great Circle models |
14:21 | <@froztbyte> | they have a fairly reasonable set of data about what the earth looks like |
14:21 | <@froztbyte> | and you can pick whichever best suits your needs |
14:22 | <@Tarinaky> | I'm not familiar with Great Circle models. |
14:23 | <@froztbyte> | it's what people who do GIS work use |
14:23 | <@Tarinaky> | But it's the orbit of the Earth I'm interested in, not the planet itself. |
14:23 | <@froztbyte> | for inter-area calculations etc |
14:23 | <@Tarinaky> | Yeah, I'm not interested in geography. |
14:24 | <@froztbyte> | okay, you just go ahead making assumptions |
14:25 | <@Tarinaky> | I... did something wrong again didn't I? |
14:25 | <@froztbyte> | yes |
14:25 | <@froztbyte> | you made an assumption |
14:25 | <@Tarinaky> | I'm not sure what. |
14:25 | <@froztbyte> | the great circle models are /not geography/ |
14:25 | <@froztbyte> | they are an assessment of /the shape of the earth/ |
14:25 | <@Tarinaky> | Yeah. I don't care about the shape of the earth. |
14:26 | <@Tarinaky> | Because that's not what I'm drawing. |
14:26 | <@froztbyte> | but you're trying to represent it? |
14:26 | <@Tarinaky> | As a point in cartesian space. |
14:27 | <@froztbyte> | so what are you actually trying to represent as an ellipse? the orbital path? |
14:27 | <@Tarinaky> | Yes. |
14:28 | <@froztbyte> | isn't an ellipse symmetrical about a given set of axis? |
14:28 | <@froztbyte> | (asking, I haven't math'd in a while, as previously indicated) |
14:28 | <@Tarinaky> | I think so. Don't remember the name of the axis though. |
14:29 | <@froztbyte> | then you're probably going to be boned a bit if you want to represent orbits as that |
14:29 | <@froztbyte> | because they're not guaranteed to be ellipsoids |
14:29 | <@froztbyte> | aside: I keep typing eclipse the first time around. |
14:30 | <@Tarinaky> | I... think I can live with that approximation. |
14:32 | <@Tarinaky> | I'm not interested in doing an n-body problem simulator. :p |
14:32 | <@froztbyte> | pfffft, live a little |
14:32 | <@froztbyte> | what's a little bit of gravity on a friday afternoon |
14:32 | <@froztbyte> | anyway |
14:33 | <@froztbyte> | I guess what I'd do at this point is open http://mathworld.wolfram.com/Ellipse.html and see what other crap I could infer to fake up some data |
14:33 | <@froztbyte> | or just call the earth an egg and go from there. |
14:37 | | celticminstrel [celticminst@Nightstar-90d86201.dsl.bell.ca] has joined #code |
14:37 | | mode/#code [+o celticminstrel] by ChanServ |
14:45 | <@Tarinaky> | froztbyte: I don't understand what you mean by call it an egg? |
14:46 | <@froztbyte> | Tarinaky: it's flatter on the one end ;D |
14:46 | <@Tarinaky> | I'm... not sure how that's a helpful comment. |
15:19 | <&ToxicFrog> | froztbyte, Tarinaky: er...orbits are elliptical, modulo peturbations from third bodies |
15:22 | <&ToxicFrog> | Indeed, you can derive Earth's orbital ellipse from the orbital characteristics - semi-major axis and eccentricity give you the shape, longitude of ascending node, argument of periapsis, and eccentricity give you the orientation, and MAAE gives you Earth's position in the orbital path as a function of time. |
15:23 | <&ToxicFrog> | Er. s/argument of periapsis, and eccentricity/argument of periapsis, and inclination/ |
15:26 | < RichyB> | MAAE? |
15:36 | | Turaiel[Offline] is now known as Turaiel |
15:42 | <&ToxicFrog> | Mean anomaly at epoch |
15:52 | | Turaiel is now known as Turaiel[Offline] |
15:58 | | celticminstrel [celticminst@Nightstar-90d86201.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
17:28 | | gnolam [lenin@Nightstar-ac48fa42.mobileonline.telia.com] has joined #code |
17:28 | | mode/#code [+o gnolam] by ChanServ |
17:45 | | celmin [celticminst@1AB00B.855209.73FD43.AD8BA1] has joined #code |
17:46 | | mode/#code [+o celmin] by ChanServ |
18:17 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
18:26 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
18:50 | | celmin [celticminst@1AB00B.855209.73FD43.AD8BA1] has quit [[NS] Quit: And lo! The minstrel departs, to spread the music to the masses!] |
18:59 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
19:02 | | gnolam [lenin@Nightstar-ac48fa42.mobileonline.telia.com] has quit [Client closed the connection] |
19:08 | | gnolam [lenin@Nightstar-ac48fa42.mobileonline.telia.com] has joined #code |
19:08 | | mode/#code [+o gnolam] by ChanServ |
19:12 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
19:12 | | mode/#code [+o himi] by ChanServ |
19:55 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
19:55 | | mode/#code [+o PinkFreud] by ChanServ |
20:01 | | gnolam [lenin@Nightstar-ac48fa42.mobileonline.telia.com] has quit [[NS] Quit: Sardine time is almost over] |
20:31 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
20:37 | | Kindamoody|out is now known as Kindamoody |
21:06 | | Turaiel[Offline] is now known as Turaiel |
21:06 | | gnolam [lenin@Nightstar-f7705974.cust.bredbandsbolaget.se] has joined #code |
21:06 | | mode/#code [+o gnolam] by ChanServ |
21:08 | | Kindamoody is now known as Kindamoody[zZz] |
21:24 | | Stalker [Z@Nightstar-b920a19c.cust.comxnet.dk] has joined #code |
21:31 | | Turaiel is now known as Turaiel[Offline] |
21:41 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
21:41 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
21:41 | | mode/#code [+o Orthia] by ChanServ |
21:42 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
21:42 | | mode/#code [+ao Derakon Derakon] by ChanServ |
21:42 | | * Derakon eyes his code, mutters. |
21:43 | <&Derakon> | I have a class that records images provided by cameras. It expects a system where each camera has a specific wavelength filter in front of it, and thus only sees certain wavelengths of light. |
21:43 | <&Derakon> | Now I'm working on a new microscope where they only have one camera, and they change which wavelengths it sees by replacing the filter in front of it. |
21:43 | <&Derakon> | This mucks up my saving system something awful. |
21:43 | <&Derakon> | Bleh. |
22:00 | | AnnoDomini [abudhabi@2B12AA.CA225B.06AE83.B2A635] has quit [Ping timeout: 121 seconds] |
22:00 | | AnnoDomini [abudhabi@2B12AA.CA225B.06AE83.B2A635] has joined #code |
22:01 | < AnnoDomini> | Hmmm. Will being ^Z'd too long break irssi's connection? |
22:07 | <&Derakon> | Yes. |
22:08 | < AnnoDomini> | I see. |
22:09 | <@froztbyte> | what you want is screen(1) |
22:10 | <@froztbyte> | and then running irssi in that |
22:10 | <@froztbyte> | and then you can make another window (ctrl-a, c) and work in that |
22:10 | <&McMartin> | This is my workflow |
22:10 | <&McMartin> | You will probably want to run screen with the -U option so irssi's unicode support works. |
22:11 | < AnnoDomini> | I *am* running irssi in screen. |
22:11 | < AnnoDomini> | ^Z is more convenient than another window. |
22:12 | <&Derakon> | Then don't ^Z. |
22:12 | <@froztbyte> | I....would never have thought so |
22:12 | <&Derakon> | Switch out of screen instead. |
22:12 | <@froztbyte> | ^z is for other style of jobs |
22:12 | <&Derakon> | Then screen will keep running irssi in the background. |
22:12 | <@froztbyte> | long-running tar, etc |
22:13 | < AnnoDomini> | How do I switch out of screen, then? |
22:13 | <&Derakon> | ^a, d |
22:13 | <&Derakon> | As I recall. |
22:13 | <@froztbyte> | yes |
22:13 | <&Derakon> | (I've remapped it to ^g instead since ^a is the very useful "move cursor to beginning of line" command in many contexts) |
22:14 | < AnnoDomini> | "^a, d" works not. ^a twice gives me "no other window". |
22:16 | <&Derakon> | Don't type the comma. |
22:16 | <&Derakon> | And by "^a" I mean "control-A", not "type the caret symbol". |
22:17 | <@Azash> | Is there a way to have an s/// move from the end to the beginning? |
22:18 | < AnnoDomini> | I was doing that, actually. My error was hitting the QWERTY d rather than the Dvorak d. |
22:19 | <@Azash> | Derakon: Treat each lens as a separate camera? |
22:19 | <@froztbyte> | AnnoDomini: oops |
22:21 | < AnnoDomini> | I am using a USB keyboard which I hadn't modified yet to Dvorak. Maybe I won't. It's useful having both layouts. |
22:24 | <&Derakon> | Azash: well, s/lens/filter, but yeah, that's what I ended up doing. |
22:24 | <&Derakon> | So there's one physical camera, and it pretends to be many different cameras. |
22:29 | | Turaiel[Offline] is now known as Turaiel |
22:44 | | ErikMesoy is now known as ErikMesoy|sleep |
23:20 | < AnnoDomini> | Can anyone tell me about Mono? |
23:20 | < Syka> | well, it's also called the kissing disease |
23:21 | < Syka> | unrelatedly, there is a programming framework that is just as unpleasant |
23:25 | < AnnoDomini> | OK. |
23:25 | <&Derakon> | And now everything is working fantastically except that the images are using an exposure time of only 1ms. |
23:25 | <&Derakon> | (Regardless of what they're supposed to be using) |
23:25 | < Syka> | AnnoDomini: summed up - reimplementation of .NET |
23:25 | < Syka> | so a C# compiler, CLR VM, etc |
23:26 | < Syka> | also monogame which is a reimplementation of XNA? |
23:27 | | Kindamoody[zZz] [Kindamoody@Nightstar-05577424.tbcn.telia.com] has quit [Operation timed out] |
23:28 | | Kindamoody[zZz] [Kindamoody@Nightstar-05577424.tbcn.telia.com] has joined #code |
23:28 | | mode/#code [+o Kindamoody[zZz]] by ChanServ |
23:29 | < AnnoDomini> | So what would you recommend if I wanted the approximate graphics control of SDL, Java-like error and especially String handling, preferrably compiling to native code (or simply VM'd much faster than Java), and Windows/Linux portability? |
23:29 | <&Derakon> | I wish I could set a watchdog on this property so I'd know when it changed, but getting pdb involved would be a nightmare, I expect, and it's modified through general-purpose functions (setProperty(category, propertyName, newValue)) rather than through specific accessors. |
23:30 | <&McMartin> | AnnoDomini: Um, SDL and C++, actually. |
23:30 | <&McMartin> | std::string is Pretty Good |
23:30 | <&Derakon> | Doesn't get him a stack trace on errors. |
23:30 | < AnnoDomini> | I was hoping you wouldn't say that. |
23:31 | <&Derakon> | But I don't know of any native-compilation language that does that. |
23:31 | <&McMartin> | Hm. |
23:31 | <&McMartin> | I'm pretty sure it's possible to make C++ do this, albeit nonportably |
23:31 | <&Derakon> | Heh. |
23:31 | <&McMartin> | But I don't have the relevant data handy. |
23:31 | < Syka> | AnnoDomini: ...Java? |
23:31 | <&Derakon> | AD's wishlist is pretty demanding. |
23:31 | <&McMartin> | I've seen it done before in log files, though, so I know it's *possible*. |
23:32 | <&McMartin> | The key thing is that C++ containers, exceptions, and strings provide a level power comparable to and in some cases superior to Java's. |
23:32 | < AnnoDomini> | I have problems using C++. Not sure why. I can and do use C just fine. |
23:32 | <&Derakon> | Honestly, I'd say "Python + PyGame, shove in OpenGL if you need performance". |
23:32 | <&McMartin> | The Python VM is in fact absurdly fast. |
23:32 | < Syka> | I havent used pygame at akl |
23:32 | < Syka> | all* |
23:32 | <&Derakon> | And if you need more performance, bring in Cython or ctypes. |
23:32 | < Syka> | is it any good? |
23:32 | <&Derakon> | It's SDL in Python. |
23:32 | < Syka> | Derakon: bring in pypy* |
23:32 | <&McMartin> | Pygame is a python wrapper for SDL. |
23:32 | < Syka> | Cython should not be used anymore |
23:33 | < Syka> | uh |
23:33 | <&McMartin> | It has the deployability problems one too often finds with native libraries extending Python. |
23:33 | < Syka> | Ctypes* |
23:33 | <&Derakon> | Why not? |
23:33 | < Syka> | CFFI has replaced all the C stuff |
23:33 | < Syka> | and it works with pypy |
23:34 | < Syka> | which is the real performance endgame right now |
23:34 | <&McMartin> | Pygame doesn't do SDL2 yet, which is "released" and commercially viable but I'm not sure it's open-source viable yet. |
23:34 | <&McMartin> | SDL2 handles the bringing in of OpenGL for you, though. |
23:34 | | * Derakon checks pypy's homepage. |
23:34 | <&Derakon> | I get the impression that most third-party libs that aren't pure python aren't supported. |
23:35 | < Syka> | well, that's kinda wrong |
23:35 | <&Derakon> | As I said, impression. |
23:35 | < Syka> | go look at Duangle's Nowhere |
23:35 | < Syka> | and the engine behind it |
23:35 | < Syka> | that runs on top of pypy, and uses CFFI |
23:36 | <&Derakon> | The main breaker is if I have to recompile third-party libs to get them to work with pypy. |
23:36 | <&Derakon> | 'Cause that tends to be a royal pain in the ass. |
23:36 | < Syka> | well, you Shouldn't(TM) |
23:36 | <&Derakon> | (Same reason why I'm not on Python 3) |
23:36 | < Syka> | hopefully |
23:36 | <&Derakon> | Heh. |
23:36 | <&Derakon> | If wishes were fishes~ |
23:36 | <&McMartin> | pygame's real problem, which jerith has run into, is that it needs to do various tricks to dick around with executable entry points, because SDL1 hijacks main() |
23:36 | < Syka> | ctypes stuff doesnt work as well as CPython |
23:36 | < Syka> | but CFFI stuff works on both |
23:36 | < Syka> | and CFFI is easier |
23:37 | < Syka> | so hopefully that is adopted for all new things |
23:37 | <&McMartin> | CFFI definitely doesn't work with SDL alone, though. |
23:37 | <&McMartin> | SDL2 "should" fix that. |
23:37 | <&McMartin> | Since it drops the main()-hijacking jankiness. |
23:37 | < Syka> | pypy is also hilariously fast |
23:38 | < Syka> | because lol JIT |
23:38 | <&McMartin> | I forget if I used a pypy implementation for the Klotski race. |
23:38 | <&McMartin> | I think I didn't. |
23:39 | <&Derakon> | Is pypy fast enough to be competitive with compiled C for "inner-loop" types of things? |
23:40 | < Syka> | well, depends |
23:40 | < Syka> | depends on what the inner loop does! |
23:40 | <&Derakon> | :p |
23:41 | <&Derakon> | Basically my point is that "use Python for high-level, run-rarely stuff; use C for low-level, run-often stuff" is an existing paradigm. |
23:41 | <&Derakon> | And while speed improvements are always welcome, if pypy doesn't change that then it's not really changing the workflow, just where the breakpoints are. |
23:42 | < Syka> | well, I guess it comes down to what it does |
23:42 | < Syka> | if it is a task that is JITable, then yes, it is |
23:42 | < Syka> | if you're doing lots of I/O, you're going out to C libs anyway |
23:42 | <&McMartin> | I would suspect that if you're doing lots of I/O you're I/O bound and the language is irrelevant. |
23:42 | <&Derakon> | That said, I tend to feel like it's a rare program that a) is slow, and b) cannot have the slow bits removed either by using an existing third-party library or by improving the high-level algorithm. |
23:43 | <&McMartin> | The JIT I would expect to underperform except under truly exceptional circumstances. |
23:43 | < Syka> | McMartin: well, I/O bound |
23:43 | < Syka> | but FFI overhead is also a thing |
23:43 | <&McMartin> | (compared to optimized native) |
23:44 | < Syka> | McMartin: try http://speed.pypy.org i think |
23:44 | < Syka> | iirc they use similar things to the benchmarks game on debian alioth |
23:44 | | * AnnoDomini would use Java, but waiting >10s for the thing to start is not fun. |
23:45 | <&McMartin> | Syka: Oh, this was a shootout we did across languages and "sensible" implementations a while back. |
23:45 | <&McMartin> | Klotski solvers |
23:45 | <&McMartin> | I never did write a C one |
23:45 | < Syka> | ahh |
23:45 | < AnnoDomini> | Neither is installing Java properly. I still haven't managed to get it correctly talking to the browsers on my Debian install. |
23:45 | <&McMartin> | If I do it'll be based on the LISP one. |
23:45 | | * Derakon goes poof. |
23:45 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: leaving] |
23:47 | < Syka> | argh |
23:47 | < Syka> | i have elections today |
23:47 | < Syka> | and I don't particuatrly look forward towards the oncoming 40C day |
23:48 | <&McMartin> | AnnoDomini: C# with MonoGame may also be worth looking into |
23:48 | <&McMartin> | It was good enough for Bastion and SpaceChem. |
23:49 | < AnnoDomini> | Never heard of these. |
23:50 | <@Namegduf> | I've worked with and in the MonoGame codebase. |
23:50 | <@Namegduf> | It has been very rapidly developed over the last year and a half or so. |
23:50 | <&McMartin> | MonoGame is a clone of XNA, IIRC. |
23:50 | <&McMartin> | Bastion and SpaceChem are commercial videogames that were ported to Linux from the XBox 360 by way of MonoGame |
23:51 | <&McMartin> | Well, Bastion was. SpaceChem was ported to Linux from Windows that way. |
23:51 | <@Namegduf> | Yes, with some extensions and reasonably easy ability to directly access the underlying graphics bindings for the platform and call platform-specific APIs for things it can't do. |
23:52 | | * McMartin nods. |
23:52 | <&McMartin> | C#'s FFI is actually Really Quite Good. |
23:52 | <@Namegduf> | The big warnings are that it has a LOT of unspecified little behaviours, and a lot of them are platform specific. |
23:52 | <&McMartin> | It's not Fucking Awesome, but it's quite good |
23:52 | <@Namegduf> | Especially between OpenGL and DirectX. |
23:53 | <@Namegduf> | You leave a texture set in a slot for one shader, don't clear it explicitly and drawing continues, set it in another slot for another shader later, and try to apply a sampler state, it will work with DX and not with OGL. |
23:54 | <&McMartin> | Mmm. Is there anything stopping you from using OpenGL on all platforms? |
23:54 | <@Namegduf> | Apparently it is a bad idea on Windows. Not sure why. |
23:54 | <&McMartin> | I mean, obviously XNA wouldn't do that, but I could see it being maybe possible with MonoGame. |
23:54 | <&McMartin> | Huh. |
23:54 | <@Namegduf> | They focus on SharpDX as their graphics bindings there. |
23:54 | <@Namegduf> | You *can* do it, though. But I understand it's a bad idea. |
23:55 | <@Namegduf> | There was a couple of months ago a bug where scissor rectangles would become corrupted if you used only one and only on a render target. |
23:55 | <@Namegduf> | (All platforms) |
23:55 | <@Namegduf> | There is no single format for audio supported by all their platforms. |
23:55 | <@Namegduf> | Lots of... things like this. |
23:55 | <@Namegduf> | Oh, the OS X version doesn't call the OnExiting handler. |
23:56 | <@Namegduf> | Does the Linux version? No idea. Windows version does. |
23:56 | <&McMartin> | That doesn't strike me as significantly worse than the general case of "doing 3D programming is kinda full of spiders" |
23:57 | < AnnoDomini> | How's the 2D in MonoGame? As easy as in SDL? |
23:57 | <@Namegduf> | MonoGame does support SDL as its backend now, I think. |
23:57 | < AnnoDomini> | 1.2? |
23:57 | <@Namegduf> | It's been in development for a long time, a migration to using SDL as the common backend for Windows, Linux, and OS X. |
23:58 | <@Namegduf> | Apparently a game released on Steam which used that common backend recently. |
23:58 | <&McMartin> | I notice SDL2 does have perfunctory C# bindings now, too |
23:58 | <@Namegduf> | So it's presumably quite workable. |
23:58 | <@Namegduf> | Let me see if I can figure out which. |
23:58 | <@Namegduf> | As for 2D... I don't know how easy it is in SDL. |
23:58 | <&McMartin> | Neither one would surprise me. SDL1 is way more widely deployed but SDL2 is Good Enough To Be The Source Engine's Backend. |
23:59 | <&McMartin> | (Because it is, and they hired Sam Latinga to make it so~) |
23:59 | <@Namegduf> | https://github.com/mono/MonoGame/issues/1567 |
23:59 | <@Namegduf> | SDL2. |
23:59 | < AnnoDomini> | OK. Downloaded and installed MonoGame. Now I supposed I need to get Visual Studio or something. |
23:59 | | You're now known as TheWatcher[T-2] |
23:59 | <&McMartin> | AnnoDomini: MonoDevelop. |
23:59 | < AnnoDomini> | -d |
23:59 | <@Namegduf> | That or Xamarin/MonoDevelop. |
--- Log closed Sat Oct 19 00:00:01 2013 |