code logs -> 2013 -> Wed, 10 Jul 2013< code.20130709.log - code.20130711.log >
--- Log opened Wed Jul 10 00:00:01 2013
00:07 * sshine wrote a blog post about how students are reluctant to commit to open source projects and how it could benefit learning to become a good software developer.
00:08
< sshine>
(it's currently unpublished and is written in Danish, so it's not worth much beyond this summary)
00:10 You're now known as TheWatcher[T-2]
00:11
<&ToxicFrog>
Boosh. DynDNS gone, DNS for Orias moved to afraid.org.
00:13 You're now known as TheWatcher[zZzZ]
00:34
<@gnolam>
sshine: commit to open source projects?
00:56 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
01:04 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.]
01:05 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
01:05 mode/#code [+o himi] by ChanServ
01:07 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code
01:18
<&McMartin>
Wow
01:18
<&McMartin>
I'm poking around the wrangling regarding the R6RS version of Scheme. It's hilariously vicious. Though after reading R6RS, I'm less surprised at the vitriol.
01:19
<&McMartin>
(No R5RS program is a valid R6RS program)
01:20
<&ToxicFrog>
(awesome)
01:21
<&McMartin>
Check this out, from '07
01:21
<&McMartin>
http://lists.r6rs.org/pipermail/r6rs-discuss/2007-October/003351.html
01:21
<&McMartin>
In which all major scheme developers discuss plans for r6rs implementation
01:21
<&McMartin>
Including lines like "R6RS must die"
01:46 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds]
02:19
<@Reiv>
... why would you change something so it breaks everything ever?
02:20
<&Derakon>
Ask why Python3 was written~
02:20
<&Derakon>
And it doesn't even break everything ever!
02:24
< ktemkin>
At least Python3 is different enough that a good number of people still keep both interpreters around.
02:26
< Azash>
03:21 < Fuuzetsu> How about Java interfaces? You can create an instance of an interface in Java. Is that an object?
02:26
< Azash>
03:22 < Fuuzetsu> (Don't do this by the way, it can lead to horrible runtime errors because of the halting problem)
02:26
< Azash>
Am I the only one who thinks the halting problem doesn't have a lot to do with this?
02:30
< ktemkin>
(You can create an instance of an interface in Java? I didn't think interfaces were instantiable.)
02:30 Vorntastic [Vorn@Nightstar-f1baea33.sub-70-211-3.myvzw.com] has joined #code
02:30
< Azash>
Almost everything in Java is an object
02:30
< Azash>
I think you can, yes
02:30
< ktemkin>
(The only references I can find to instantiating an interface in Java are people creating anonymous inner classes that implement interfaces, and then instantiating those.)
02:31
< ktemkin>
Even so, I don't see what that would have to do with the halting problem.
02:32
< Azash>
Same
02:38
<&ToxicFrog>
ktemkin: the Interface, as in the reflection object that represents the interface declaration, is instantiable, IIRC
02:39
<&ToxicFrog>
Or, rather, when you get the Interface via reflection, you have an object.
02:39
<&ToxicFrog>
And yeah, Fuuzetsu has no clue.
02:39 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection]
02:40 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
02:49 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
02:53
<@Tarinaky>
http://www.cs.yale.edu/quotes.html
02:54 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Client exited]
02:55
< Vorntastic>
I can't even figure out what fuuzetsu even meant.
02:55 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
02:55 mode/#code [+o Pandemic] by ChanServ
02:59
< Azash>
Vorntastic: His argument was that the halting problem causes runtime errors
02:59
< Azash>
(he expanded on it later)
02:59
< Vorntastic>
yeah, wtf
03:00
<&ToxicFrog>
He has no idea what the halting problem is, does he
03:00
< Vorntastic>
This makes no sense.
03:00
< Azash>
ToxicFrog: He's the type to drop terms, you know
03:01
< Vorntastic>
I know that c++ templating is turing complete. I don't know if java is the same way; somehow I think it unlikely.
03:03
<&McMartin>
It is not; Java "templates" are actually type constraints laid upon uniform reference, while C++ templates are a slightly-more-structured form of macro expansion.
03:03
<&McMartin>
Furthermore, in practice, C++ templates are not turing complete, as TMK all major C++ compilers have a maximum number of expansions before they will error out (configurable via command line).
03:04
<&McMartin>
(on g++, that switch is -ftemplate-depth)
03:04
<@Tarinaky>
Don't all physical computers have a recusion limit?
03:05
<&McMartin>
Yes But.
03:05
<&McMartin>
There is a difference between "you can run out of memory" and "if your call depth exceeds 17, an error is signalled."
03:06
<@Tarinaky>
It's also worth noting that the language doesn't make any suggestions as to this limit even existing.
03:07
<&McMartin>
Indeed not; this is why I qualified the statement with "in practice"
03:07
<@Tarinaky>
I'm... not sure I really believe there's a difference between "you can run out of memory" and "if the call depth exceeds X, an error is signalled."
03:09
<&McMartin>
It's been awhile since I've done template metaprogramming
03:09
<&McMartin>
But IIRC, template expansion depth is less "depth of the call stack" and more "number of instructions run"
03:09
<&McMartin>
Which are, I suppose, equivalent if you are using continuation-passing style and don't have tail call elimination, which IIRC is basically how this stuff works.
03:11
<&McMartin>
But to your direct point, yeah, it would seem we differ there
03:11
<&McMartin>
Because I would add a distinguisher when X is low enough that recursive algorithms become entirely impractical
03:11
<&McMartin>
And while I'm not wholly sure where that line is, that line is most definitely higher than 17.
03:12
<@Reiv>
Other point: There is a difference between physical limitations and code limitations when it comes to Turing-completeness.
03:13
<@Tarinaky>
I'm not sure how this is different from a computer with a very small amount of memory.
03:13
<@Reiv>
We do not generally blame stuff for not being turing-complete simply because memory is not, in fact, infinite.
03:13
<@Reiv>
We would blame it for being so if it was an /aspect of the language/ that meant you'd run outta moola, though.
03:13
<&McMartin>
Tarinaky: As recently as ten years ago I programmed in an environment where I had 2 kilobytes of stack space per thread, but access to 2 gigabytes of heap.
03:14
<&McMartin>
This meant that iteration-based algorithms which kept worklists on the heap could scale much more dramatically than recursive algorithms that did so implicitly via stack frames.
03:15
<&McMartin>
One might object that this is a mere implementation restriction, but the existence of such implementation restrictions is more or less the nature of my point.
03:15
<@Tarinaky>
I'm not sure it's a requirement of a computer that it have a large amount of memory. Even if physical machines in the wild actually do.
03:16
<@Alek>
it... probably isn't.
03:16
<&McMartin>
It is not, though the one place I can think of where a "reasonable" recursion depth was named, X was 10,000.
03:16
<@Tarinaky>
It also kindof seems silly if we have an argument where it's a computer if it has N bits, but not a computer if it has N-1 bits.
03:16
<&McMartin>
I direct you, again, to the qualifier "in practice"
03:16
<@Reiv>
Tarinaky: Which is why we don't generally fault computers for finite memory space.
03:17
<&McMartin>
Perhaps you will prefer this phrasing.
03:17
<@Reiv>
But we would sure as mustard fault a language that declared it can only handle six levels of recursion.
03:17
<@Tarinaky>
The language doesn't. The implementation does.
03:18
<&McMartin>
"C++ implementations generally severely restrain template expansion depth. This means that while the language theoretically permits one to perform arbitrary computations in C++ templates, or, indeed, make C++ compilation be nonterminating by constructing an infinite loop, in practice your ability to do these things is extremely curtailed."
03:19
<&McMartin>
"Which means that you cannot in fact do these things with template expansion the way you can with, say, PostScript or sendmail.conf"
03:20
<&McMartin>
That said
03:20 * Tarinaky shrugs.
03:20
<@Tarinaky>
I'm going to go back to watching House.
03:20
<&McMartin>
I haven't read the C++ spec. I *have* read the OpenGL specs, though, so I'll take slight issue with Reiv's comment
03:20
<&McMartin>
Specs and and do say "a compliant implementation must support at least N of this feature"
03:21
<&McMartin>
(OpenGL 2.1 has a rather hilarious requirement that implementations must support at least zero vertex shaders~)
03:21
<@Tarinaky>
I've only ever read commentary on the C++ spec, I've never actually read the spec itself.
03:21
<&McMartin>
Likewise
03:21 Vorntastic [Vorn@Nightstar-f1baea33.sub-70-211-3.myvzw.com] has quit [Ping timeout: 121 seconds]
03:21
<&McMartin>
It's entirely possible that it's got something like "you have to support at least 16 levels" or something
03:22 Vorntastic [Vorn@Nightstar-f1baea33.sub-70-211-3.myvzw.com] has joined #code
03:22
<&McMartin>
In fact, I'd hope so or else things like boost::tmp intrinsically can't be compliant
03:22
<@Tarinaky>
I was under the impression that the minimum template expansion depth was omitted from all but the more recent versions of the C++ spec.
03:22 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
03:22
<&McMartin>
Could be. If so, that was a mistake the first time unless the express purpose was "we have no idea what X should be, let's turn people loose and find out"
03:23
<@Tarinaky>
I suspect mistake is probably the right answer.
03:24 * McMartin might be a little cranky that it took like seven years for standards-compliant compilers to become ubiquitous~
03:24
<@Tarinaky>
In fairness, it takes about 7 years to read the standard~
03:25
<&McMartin>
C++ linking is still kind of a clusterfuck, but it's less of one now that C++ implementations have basically elected to have their own linkers rather than being entirely equivalent to C and Fortran
03:48 Vorntastic [Vorn@Nightstar-f1baea33.sub-70-211-3.myvzw.com] has quit [Ping timeout: 121 seconds]
03:55 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
03:55 mode/#code [+qo Vornicus Vornicus] by ChanServ
04:06 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
04:06 mode/#code [+o himi] by ChanServ
04:15 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
04:18 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has joined #code
04:31 himi [fow035@Nightstar-fb787e3c.in-addr.csiro.au] has joined #code
04:31 mode/#code [+o himi] by ChanServ
04:36 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
04:36 mode/#code [+ao Derakon Derakon] by ChanServ
05:08 Derakon is now known as Derakon[AFK]
05:13 Kindamoody[zZz] is now known as Kindamoody
05:19 Harlow [Harlow@Nightstar-4eeab464.il.comcast.net] has joined #code
05:19
< Harlow>
Any one wondering what the oculus rift is like?
05:21
<@Tarinaky>
Not really, not if the question's phrased like that.
05:26 ErikMesoy|sleep [Erik@Nightstar-16aba739.80-203-17.nextgentel.com] has left #code []
05:30 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has quit [Connection reset by peer]
05:31 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has joined #code
05:31 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has quit [Client closed the connection]
05:31 Karono [Karono@10AAA2.FD2B33.7F4978.5FBCA7] has joined #code
06:24 Karono is now known as Karono[afk]
06:26 celticminstrel [celticminst@Nightstar-8403057e.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:39 Karono[afk] is now known as Karono
07:09 Netsplit *.net <-> *.split quits: @Reiv, @jerith, [R], @himi, Harlow, Karono, @McMartin, Typh|offline, ktemkin, sshine, (+6 more, use /NETSPLIT to show all of them)
07:09 Netsplit over, joins: Chutzpah, @PinkFreud, jeroud, &jerith, &Derakon[AFK], sshine, @Reiv, &McMartin, @himi, Karono (+5 more)
08:20 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code
08:51 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: shutting down!]
09:05 Karono [Karono@10AAA2.FD2B33.7F4978.5FBCA7] has quit [[NS] Quit: ]
09:36 You're now known as TheWatcher
09:40 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving]
09:41 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has joined #code
10:43 himi [fow035@Nightstar-fb787e3c.in-addr.csiro.au] has quit [Client closed the connection]
10:50 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [Operation timed out]
10:55
< ktemkin>
Uggh... the upstream repo for this project rebased away the commit I'm working on top of.
10:55
< ktemkin>
I thought that was universally considered bad manners.
11:02 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
11:02 mode/#code [+o himi] by ChanServ
11:12
<@Tarinaky>
Doesn't mean it's not done.
11:19
<@froztbyte>
woooo git
11:48 * iospace sets froztbyte on fire
11:49
< Syka_>
git is wonderful and i love it
11:50
<@Tarinaky>
"It has been said that git is the worst form of version control, except for all the others that have been tried from time to time."
11:50
< Syka_>
hee
12:07
< Azash>
As said by Sir Linston Churchvalds
12:23 ktemkin is now known as ktemkin[awol]
12:46
<@Tarinaky>
Argh.
12:46
<@Tarinaky>
I am banging my head against a wall with this.
12:47 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code
12:49
<@Tarinaky>
And now I'm mad and sweaty. Great.
12:49
<@Tarinaky>
Fucking weather :/
13:35 Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
13:35 mode/#code [+o Pandemic] by ChanServ
13:39 McMartin [mcmartin@Nightstar-7130bbf8.pltn13.sbcglobal.net] has quit [[NS] Quit: system update]
13:43 Kindamoody is now known as Kindamoody|out
13:44
<@froztbyte>
it is quite a sad thing that git won the popularity contest
13:45
< Syka_>
froztbyte: at least it's not svn
13:46 * TheWatcher shudders
13:47
< Syka_>
and at least it's not mercurial
13:47 * Syka_ escapes while she can
13:48
<@froztbyte>
svn had won the popularity contest for a while
13:48
<@froztbyte>
but such is the way of LCD
13:48
<@froztbyte>
(Lowest Commoner Denominator)
13:48
<@TheWatcher>
Out of curioisity, which would you prefer?
13:49
< Syka_>
patch files and emails, i bet
13:49
< Syka_>
:p
13:49
<@froztbyte>
we have to go with the system understood by the most shitty people possible for anything to gain popularity :(
13:49
< Syka_>
froztbyte: well
13:49
< Syka_>
git was made by the Linux kernel team
13:49
<@froztbyte>
TheWatcher: my main issue with git is that its UI is goddamned batshit fucking insane
13:49
<@froztbyte>
TheWatcher: its insides are fine
13:49
< Syka_>
imagine if it was made by, say, Ruby developers
13:49
<@froztbyte>
fix the UI, and I might not even mind
13:49
<@TheWatcher>
:gonk:
13:50
<@froztbyte>
(there are possibly some things which are affected directly and will need change)
13:50
<@froztbyte>
darcs doesn't scale, even though it had some neat solutions
13:50
<@froztbyte>
bzr is future-dead, afaict?
13:50
<@TheWatcher>
Syka_: you're going to give me nightmares, damnit
13:51
<@froztbyte>
hg has some neat stuff, but has speed issues on a lot of things (how much of this is cpython? probably a lot; we demand additional pypy!)
13:51
<@froztbyte>
then there are other odd ones I've not really dealt with much
13:51
<@froztbyte>
monotone and the like
13:52 * TheWatcher suspects that git could be sanityised through wrappers
13:55 * TheWatcher ponders this student data, wonders why we have years 1 to 4, and then MSc and PhD students are set as year 6.
13:58
< Syka_>
TheWatcher: well, git has an api, so it'd just be smoothing over that, i suppose
14:01
<&ToxicFrog>
Possibly I should invest some time in improving the res decompressor.
14:01
<&ToxicFrog>
Time it takes to load a compressed ARCHIVE.DAT: 43 seconds.
14:01
<&ToxicFrog>
Time it takes to load an uncompressed one: 800ms.
14:02 McMartin [mcmartin@Nightstar-7130bbf8.pltn13.sbcglobal.net] has joined #code
14:02 mode/#code [+ao McMartin McMartin] by ChanServ
14:02
<@TheWatcher>
How frequently will you need to load the res file?
14:03
<&ToxicFrog>
TheWatcher: once, at startup
14:03
<&ToxicFrog>
But a 43 second startup time, especially for a program I run frequently as I make changes to it, is pretty sad.
14:03
<@TheWatcher>
Fair enough
14:08
<&ToxicFrog>
That said, I was pretty lazy with the decompressor; it's a pure lua implementation that's a direct translation of the example C code from the spec.
14:08
<&ToxicFrog>
There's probably a lot of room for improvement just in the lua version, and calling out to C would make it a non-issue.
14:55 Karono_ [Karono@Nightstar-0e4527e4.optusnet.com.au] has joined #code
14:55 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has quit [Client closed the connection]
15:01 Karono_ is now known as Karono
15:21 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
15:54 Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code
15:54 mode/#code [+ao Derakon Derakon] by ChanServ
16:23 gnolam [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has quit [[NS] Quit: Patch Wednesday]
16:29 gnolam [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has joined #code
16:29 mode/#code [+o gnolam] by ChanServ
17:45 celticminstrel [celticminst@Nightstar-8403057e.dsl.bell.ca] has joined #code
17:45 mode/#code [+o celticminstrel] by ChanServ
18:18 Typh|offline is now known as Typherix
18:43 Karono [Karono@Nightstar-0e4527e4.optusnet.com.au] has quit [[NS] Quit: zzz]
19:50 Kindamoody|out is now known as Kindamoody
20:21 Kindamoody is now known as Kindamoody[zZz]
20:22 Typherix is now known as Typh|offline
20:56
< RichyB>
I like this. http://shouldiuseacarousel.com/
21:00
<&Derakon>
I have not heard of "carousels" in terms of web development before, but I'm guessing this is self-demonstrating?
21:12
<@Namegduf>
Yes.
21:12
< Azash>
I had hoped for an HTML5 marquee
21:13
< Azash>
I am disappointed
21:13 * TheWatcher twitch
21:15
<@TheWatcher>
I have a list somewhere here of the places I have come across people using <marquee>
21:16
<@TheWatcher>
They will be 5th through 264th against the wall, come the revolution.
21:17
<&ToxicFrog>
Really, you've only encoutered four <blink> tags?
21:17
<@TheWatcher>
Heheh
21:18
<&Derakon>
Hey, people with more hardware experience than I: any concern about using a USB extension cable on a camera that's expected to be sending decently large amounts of data?
21:18
<&ToxicFrog>
(also, yes, fuck carousels)
21:18
<&Derakon>
Theoretically can achieve 50FPS at 512x512.
21:18
<&Derakon>
(2 bytes/pixel)
21:23
<&Derakon>
No ideas, huh?
21:25
< [R]>
USB supposedly has enough overhead to consume half the bandwidth.
21:25
< [R]>
Which means you get 250MB/s from a 2.0 link.
21:25
< [R]>
Mb/s*
21:26
<&Derakon>
Hm, Wikipedia claimed achievable 35MB/s.
21:26
<&Derakon>
512*512*50*2/1024/1024 = 25MB/s
21:26
<&Derakon>
My question is mostly, will extending the USB cable cause problems?
21:27
<&ToxicFrog>
It can.
21:27
<&ToxicFrog>
It is not guaranteed to.
21:27
<&Derakon>
Hm.
21:29 * Derakon shrugs, fires an email off to the camera vendor.
21:33 * TheWatcher fingertappity, code or piano practice, hrm
21:34
< jeroud>
Both involve tappyfingerings!
21:57
<@Alek>
practice piano while coding.
21:57
<@Alek>
*by coding
22:00
< Azash>
TheWatcher: Build a keyboard where pressure on the key determines whether it's considered as caps or not
22:00 * froztbyte needs to acquire a musical keyboard at some nearby point in the future to be able to piano again
22:01
<@froztbyte>
https://soundcloud.com/damegeraldine/wood-spirit
22:01
<@froztbyte>
^ also what's playing here atm
22:01
<@froztbyte>
not technically complicated at all, but fairly pleasant listening
22:01
<@froztbyte>
(for background sounds)
22:02
<@TheWatcher>
froztbyte: Myst got me a Yamaha PSR-E333, it's pretty nifty
22:03 gnolam_ [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has joined #code
22:03 gnolam is now known as NSGuest24434
22:03 gnolam_ is now known as gnolam
22:03 mode/#code [+o gnolam] by ChanServ
22:04
<@froztbyte>
nice
22:04
<@gnolam>
Azash: that's... actually pretty clever.
22:04
<@froztbyte>
gnolam: and fairly easily doable
22:04
<@froztbyte>
at least, with some
22:05
<@froztbyte>
TheWatcher: my main requirement actually started with Ableton Live being horrendously annoying to use with only a mouse+launchpad
22:05 NSGuest24434 [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds]
22:05
<@froztbyte>
TheWatcher: but it'd be nice to be able to Just Play again too
22:05
<@froztbyte>
since I haven't played regularly now for about 4 years :/
22:06
<@TheWatcher>
It'd been 20 years for me >.<
22:06
<@froztbyte>
hahaha
22:06
<@froztbyte>
were you formally taught, lessons and all, or more autodidactically?
22:08
<@TheWatcher>
I had some lessons when I was in secondary school, but didn't have a piano or keyboard of my own, and only limited access to the school's, so I didn't get enough practice.
22:09
<@froztbyte>
ah
22:09
<@froztbyte>
yus, somewhat familiar
22:09
<@froztbyte>
I had maybe 14 lessons in my life? sorta split half/half between when I was in grade 2, and later in grade 8
22:10
<@froztbyte>
got a bunch of musical knowledge through osmosis while I was in choir
22:10
<@froztbyte>
and then just banged on further myself
22:10
<@froztbyte>
the only trick is I /couldn't/ play much, because I prefer to practice at night when there are no other people making a noise
22:10
<@froztbyte>
but the piano was situated near a wall which had the neighbours' main sleeping room within 2m of it :/
22:11
<@TheWatcher>
Play /really quiet/ ;)
22:11
<@froztbyte>
that just isn't the same :(
22:12
<@froztbyte>
there's a couple of things which are just Really Fun(TM) to play in full emotion
22:12
<@froztbyte>
the first thing I ever taught myself was Nothing Else Matters
22:12
<@froztbyte>
and I think I still remember the first 2.5 pages or so of the score
22:13
<@froztbyte>
(lots of niggly little thematic variations0
22:13
<@froztbyte>
ah well, this is only related to #code at a mathematical level ;)
22:41
<&McMartin>
http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/
22:49
<@Tarinaky>
I need help :/
22:50
<@Tarinaky>
I'm really not getting anywhere trying to build a GUI system ontop of Pyglet and OpenGL. I... can't seem to do it >.<
22:50
<&McMartin>
Oof
22:50
<&McMartin>
That is in all honesty a pretty tall order.
22:51
<&McMartin>
Are you at least using an ortho projection?
22:51
<@Tarinaky>
Yeah. Pyglet handles all of that for me.
22:52 * McMartin nods
22:52
<@Tarinaky>
The specific thing I've been having trouble with is getting skinning and more 'advanced' elements to work sensibly.
22:52
<&McMartin>
As you may recall from the many arguments here, I'm an OO skeptic
22:52
<&McMartin>
But GUI is one of the places where OO really is perfectly suited to the problem domain.
22:53
<@Tarinaky>
I know. I have some core Objects I can specialise that do the... simple bit. I got quite far leveraging just composition and some recursion.
22:55
<@Tarinaky>
I had a Widget base class that mostly just specified a Constructor and some basic attributes and a Container specialisation that'd pass events down to its component widgets.
22:55
<@Tarinaky>
So drawing a container drawed the widgets that it contained (with some appropriate affine transformations).
22:56
<@Tarinaky>
I'm... really kindof stuck trying to figure out what the iterative step is for adding sprites and textures to the mix is though.
22:56
<@Tarinaky>
I really struggle with big steps :/
23:00 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
23:01
<@Tarinaky>
I'm going for a shower, brb.
23:02
<&McMartin>
You may need a layout manager object for subcontainers instead of, basically, "canvas"
23:02
<&McMartin>
This is part of the 'all GUI programming is made of spiders' thing
23:05 Chutzpah [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
23:06 AnnoDomini [abudhabi@Nightstar-c53de59e.adsl.inetia.pl] has quit [Operation timed out]
23:06 AnnoDomini [abudhabi@Nightstar-c53de59e.adsl.inetia.pl] has joined #code
23:07 Chutzpah [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
23:14
<@Tarinaky>
McMartin: What does a layout manager object do?
23:14
<@Tarinaky>
Back, btw.
23:16
<&McMartin>
Hm. This is hard to explain without pointing to examples. Do you have experience in any other GUI systems like GTK, Qt, or Swing, or WinForms?
23:17
<@Tarinaky>
I've written a Swing app before. But nothing serious, just first year CompSci stuff :/
23:18
<&McMartin>
Ok, you know how you could put a java.awt.GridLayout inside a java.swing.JPanel and then use that to fill it with buttons and labels and stuff?
23:18
<@Tarinaky>
Yeah.
23:18
<&McMartin>
GridLayout and friends are the layout-manager widgets.
23:19
<&McMartin>
Basically, everything that isn't a layout object has Exactly one Widget In It, and things that *are* layout objects subdivide widgets into a bunch of other oes.
23:19
<&McMartin>
*ones
23:20
<@Tarinaky>
Right.
23:21
<@Tarinaky>
Yeah.
23:22
<&McMartin>
Swing/AWT is unusually spidery about this, though, so Qt and GTK's notion of nested horizontal or vertical widget sets is probably easier to implement.
23:22
<@Tarinaky>
What do I do about the actual look of it though? Since that's where I'm stuck now.
23:23
<&McMartin>
Mmm
23:24
<&McMartin>
The "classic" answer is to have your one widget that behaves the way you want be the superclass, and make a subclass with a new renderer
23:24
<@Tarinaky>
I'm not sure I follow.
23:33 Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: leaving]
23:36
<&McMartin>
One of your widget methods should be paint() or render() or draw() or something.
23:36
<&McMartin>
It should be virtual.
23:36
<&McMartin>
So you should be able to change appearance of widgets via subclass-and-override.
23:36
<@Tarinaky>
Yeah, that's what I got.
23:37
<&McMartin>
I guess *I'm* the one who's unclear then; what's that not handling for you?
23:37
<@Tarinaky>
I suck at words...
23:37
< RichyB>
Have you tried SWORDS instead?
23:38
<@Tarinaky>
Actually... gluing on some rasterised graphics.
23:39
<@Tarinaky>
So I don't have to put up with people poking fun at my stuff always looking like it came from the bowels of DOS.
23:39
<@Tamber>
Now it looks like DOS, with graphics!
23:40
<&McMartin>
Tarinaky: Raster graphics in OpenGL is kind of obnoxious, but the easiest way to do it is with a textured quad
23:40
<@Tarinaky>
Sure. I'm not sure how to get the texture I need.
23:40
<@Tarinaky>
I mean... a Button that's twice as wide needs a different texture... A button that's 3 pixels wide needs a different texture.
23:40
<@Tarinaky>
*wider
23:45 You're now known as TheWatcher[T-2]
23:50 You're now known as TheWatcher[zZzZ]
23:50
< RichyB>
D J Bernstein, regardless of how you feel about qmail or djbdns, has a surprisingly pleasing voice. http://secappdev.org/lectures/144
23:51
<@Tarinaky>
I'm not missing something obvious then?
23:51
<&McMartin>
Not really.
23:51
<@Tarinaky>
:/
23:51
<&McMartin>
You'd need different graphics for different buttons, so that's a field.
23:52
<&McMartin>
For generic resizable, there's a trick where you use nine textures
23:52
<&McMartin>
One for each corner, one each, tiled horizontally, for top, bottom, left, right, and one tiled horizontally and vertically for the "body"
23:53
<&McMartin>
If height is fixed, as it often would be for buttons, you could drop that to three, left-middle(tiled)-right
23:53
< RichyB>
If you want to do 2d drawing, you're presumably going to end up drawing into a memory buffer, making a texture from that, then painting that texture onto a quad?
23:54
<&McMartin>
Depends on whether the "label" is a rendered element in its own right
23:54
<&McMartin>
If z-buffering is off since it's 2D you might just Render Background, Render Text.
--- Log closed Thu Jul 11 00:00:16 2013
code logs -> 2013 -> Wed, 10 Jul 2013< code.20130709.log - code.20130711.log >

[ Latest log file ]