code logs -> 2013 -> Fri, 18 Oct 2013< code.20131017.log - code.20131019.log >
--- 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
code logs -> 2013 -> Fri, 18 Oct 2013< code.20131017.log - code.20131019.log >

[ Latest log file ]