code logs -> 2009 -> Thu, 05 Mar 2009< code.20090304.log - code.20090306.log >
--- Log opened Thu Mar 05 00:00:15 2009
00:44 * gnolam HTTP/1.1 307s.
00:44
<@gnolam>
That ought to get the debate going.
00:45
<@ToxicFrog>
...what's debateable about it?
00:46
<@Derakon>
How he managed to get a five-minute lag?
00:47
<@gnolam>
People's total inability to contribute or give feedback.
00:47
<@gnolam>
Also, the conditions under which I took on this bloody website.
01:22 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
02:05
<@Derakon>
I love it when I create member variables at the top of a class, and then throughout the class refer to them by a different name. ¬.¬
02:08
<@Vornicus>
Der: join the club.
02:12
<@Derakon>
...ooh, that's a tricky problem. :\
02:12
<@Derakon>
I've calculated the charge time for the deflector to take 12 seconds...but that's only if the game maintains a steady 25FPS.
02:13
<@Derakon>
If it doesn't, then the inflector charge sound will get out of sync. >.<
02:13 McMartin [~mcmartin@Nightstar-3361.dsl.pltn13.sbcglobal.net] has quit [Operation timed out]
02:16 McMartin [~mcmartin@Nightstar-3361.dsl.pltn13.sbcglobal.net] has joined #code
02:16 mode/#code [+o McMartin] by ChanServ
02:26 * Derakon facepalms.
02:26
<@Derakon>
Bug report: the game brings up the loading screen, then stops once the progress bar finishes. I've uploaded a picture.
02:26
<@Derakon>
And then he has a picture of the loading bar.
02:31
<@McMartin>
Is it finished?
02:32
<@Derakon>
Yes.
02:32
<@McMartin>
Let me clarify
02:32
<@McMartin>
Is it, in fact, not then proceeding to the main menu?
02:32
<@Derakon>
But since the loading bar only measures progress loading images, it's still not really very helpful.
02:32
<@McMartin>
Because that would be a bug.
02:32
<@Derakon>
It would be a bug, but the most likely problem is that he didn't delete his old scorefile like he was supposed to.
02:33
<@McMartin>
If this is the first report, close it as invalid and have it as a FAQ
02:33
<@McMartin>
That's quite a bit more reasonable than "Alt-F4 crashes to desktop"
02:33
<@McMartin>
Or the critical-severity graphics bug that landers can't land on gas giants
02:33
<@Derakon>
Hee.
02:34
<@McMartin>
(It's the fact that it's a graphics bug that makes it so adorable)
02:34
<@McMartin>
And it wasn't Alt-F4 CTD, which can also be a valid bug
02:34
<@Derakon>
The difference between a crash and a clean exit, I presume?
02:34
<@McMartin>
Yeah.
02:34
<@McMartin>
This shows up a lot in Mac stuff ;_;
02:34
<@McMartin>
Close the app and then the shutdown dereferences nulls and does other horrors, producing crash logs.
02:35
<@McMartin>
But the bug we got was "I start the program and get this screen" (screenshot of main menu) "and when I click the X in the upper right the program goes away"
02:35
<@Derakon>
;.;
02:36
<@McMartin>
It was, I think, TF that suggested that the reporter must go through life astonished by the great many unique things he is constantly experiencing
02:44
<@Reiver>
Hokay, so.
02:45
<@Reiver>
Topics in AI is pretty interesting, and I grok the concepts it is teaching wonderfully.
02:45
<@Reiver>
I have become fairly convinced, however, that I'm not going to really cope with the implementation of said concepts; and this is worth 66% of the course, in rapid-fire fortnightly projects.
02:46
<@Reiver>
On the bright side, if I /were/ able, hoo boy I'd be proficient in java at the end, having written half a dozen self contained programs, but...~
02:46
<@Derakon>
Heh.
02:46
<@McMartin>
Ugh
02:46
<@McMartin>
Java is a terrible language for AI >_<
02:47
<@McMartin>
Structure traversal and mutation is a lot easier in the functional languages, or in special-purpose stuff.
02:47
<@McMartin>
My AI class was in LISP and Matlab.
02:47
<@McMartin>
(He was a computer vision guy)
02:47
<@Reiver>
Apparently they chose java 'for its familiarity'.
02:48
<@Derakon>
Bah, choose something that nobody can use, so everyone's on equal footing~
02:48
<@Reiver>
Functional languages are taught concurrent with AI at 3rd level, so I think they didn't want to have to wait for people to catch up.
02:48
<@Reiver>
My biggest complaint with this university, in the CS dept at least, is that I get the very strong feeling they have half the papers in the wrong order.
02:49
<@Reiver>
Teach advanced alorathms and AI in B semester, guys! People are fluent in various languages by then, and have spent the first semester learning interesnting stuff like functional language, database structures, etc etc etc...
02:50
<@McMartin>
I keep forgetting how awesome Berkeley was.
02:50
<@Reiver>
McM: Let me put it this way:
02:50
<@Reiver>
Everyone has heard of Berkeley
02:50
<@McMartin>
Berkeley's attitude towards all of this is that you should be able to pick up any language over a weekend.
02:50
<@McMartin>
I keep forgetting this isn't an average attitude =P
02:51
<@Reiver>
It is, at least in terms of fame, one of the most prestigous universities in the world.
02:51
<@McMartin>
Sure
02:51
<@McMartin>
But prestige has more to do with research output and external funding and stuff.
02:51
<@McMartin>
I associate having entire classes on languages[*] as being more a night-school kind of thing.
02:52
<@McMartin>
[* as in "java". Classes in programming language theory are different.]
02:52
<@Reiver>
Oh, er. We tend to be taught new languages as part of programming language theory.
02:52
<@McMartin>
I'm way too young to be doing "back in my day" things, but back in my day, "Pascal" was a class you took in 9th grade.
02:52
<@Reiver>
Hence learning Haskell as part of learning functional programming as half the course on COMP313: Programming Languages.
02:53
<@McMartin>
Right.
02:53
<@Reiver>
(I think we spend the last half writing compilers and things)
02:53
<@McMartin>
And Haskell's definitely the language for that.
02:53
<@McMartin>
ML's better at compilers, becuase that was literally what it was written to do, but Haskell should be decent at it
02:54
<@Reiver>
Right. But it also means that they can't instantly expect us all to go and pick up Haskell in the name of learning how to code AI, because /we're still learning functional programming/
02:54
<@Reiver>
Or they could, but it would make one course or the other a little questionable~
02:54
<@McMartin>
Now we hit terminology problems...
02:54
<@McMartin>
What does "B semester" mean?
02:54
<@Reiver>
Oh! Sorry.
02:54
<@McMartin>
Is that like "Spring" or is that like "upper division"?
02:55
<@MyCatVerbs>
Aye, Haskell's pretty decent at compilers. It's just a straightfoward rip-off of Miranda, which was a lazy rip-off of ML. :)
02:55
<@Reiver>
A Semester: 2nd March-Juneish. B semester: June/Julyish - November.
02:55
<@Derakon>
...oh, right!
02:55
<@Derakon>
Your summer's in the wrong part of the year.
02:55
<@Reiver>
Er, yes
02:55
<@Derakon>
That makes more sense now. >.>
02:55
<@Reiver>
We get summer break over christmas~
02:57
<@Reiver>
And it's nov-march because they also teach S semester papers (Summer school), people have practicums or industry experience to do, etc, and the lecturers rather like having several months off to do their own thing without pesky students too. :p
02:58
<@Reiver>
(In the science department, this is particuarly noticable - attempts to shorten the summer break and lengthen mid-semester ones are particuarly vicous battles because the professors all go on their field trips then - including to antarctica, where making the most of summer is a really good idea~)
02:58
<@McMartin>
Yeah, so, the curriculum I went through, stuff like AI had as a prerequisite already having two years of basics.
02:58
<@Derakon>
Heh.
02:58
<@McMartin>
As which point you'd had classes in at least four languages.
02:58
<@Reiver>
Right. Hm.
02:58
<@McMartin>
In three different programming paradigms
02:59
<@McMartin>
So basically anything else you could pick up from that since there were few additions.
02:59
<@Reiver>
AI is a 3rd year paper; by this point we're expected to have learned Java as a case lesson in OO programming, and while the pre-reqs don't mention it apparently you're also all expected to have done Data Structures too.
02:59
<@Derakon>
Lessee...my college did CS5 (Java), which everyone took, then CS60 (C++/Prolog/Rex (a simple homemade functional language); this was a language survey), then CS70 (C++, datastructures), then options exploded.
02:59
<@McMartin>
The only thing that got neglected was logic programming, which is sort of desultorily handled along with Functional.
02:59
<@Reiver>
(*Mumble, etc*)
02:59 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has quit [Client exited]
03:01
<@Reiver>
1st year, We learn C/C++ / C# (It was C when I went through, apparently they've upgraded since), and those that want to can do a couple other roughly equivalent ones.
03:01
<@McMartin>
Berkeley's was CS61A (basic theory, in the LISP dialect Scheme), CS61B (Data Structures, C++ or Java, which is the only class you can test out of), CS61C (C and Assembler, basic architecture), and then Math 55 or CS 70 (Discrete Mathematics/Computation theory, pencil/paperOS)
03:01
<@Reiver>
2nd year is OO/Data Structures / etc, databases, internet applications, etc etc
03:01
<@McMartin>
Then options explode
03:01
<@Derakon>
I'd forgotten about Math 55, which coincidentally had the same number and title as Berkeley's.
03:01
<@Reiver>
3rd year they break out functional languages, AI, advanced algorathms... eh, I don't remember all the rest~
03:01
< Molgorn>
Our first year programming was Java. our second was "here, write a compiler in C". Our third was "eh, no need to do any programming, it's all theory from now on."
03:01
<@McMartin>
How do you teach C++ or C# without teaching OO?
03:01
<@Derakon>
And was, along with CS70, a prereq for the upper-level courses.
03:02
< Molgorn>
¬¬
03:02
<@McMartin>
Writing a compiler in C is quite possibly the worst idea ever
03:02
<@Reiver>
McM: I honestly don't know. I know that when I initially went through, we learned C in A-semeter, and C++ in B-semetester, when they taught us how to use pointers.
03:02
<@Reiver>
(And stuff like that.)
03:02
<@McMartin>
...
03:02
<@McMartin>
How do you teach C without pointers?
03:02
<@Reiver>
Er, I dunno
03:03
< Molgorn>
Writing it in C without teaching us C first is a worse idea, McM
03:03
<@Reiver>
We learned loops and if statements and file I/O?
03:03
<@McMartin>
... yeah, so, all the file I/O operations take pointers as arguments.
03:03
<@Reiver>
Oh. Hm.
03:03
<@McMartin>
Any kind of data structure larger than an int effectively needs pointers to use idiomatically
03:03
<@McMartin>
Passing arguments by reference? No need, we have pointers
03:04
<@McMartin>
Arrays? Pointers.
03:04
<@Reiver>
Er. It is possible that we'd had a couple Helpful Libraries provided and just told to use a function; I certainly don't remember it being at all complex.
03:04
<@McMartin>
Well, it's not
03:04
<@Reiver>
You just wrote a while loop to cycle through arrays, etc
03:04
<@McMartin>
If they just told you "these have the magic type FILE*" you could use them blindly
03:05
<@McMartin>
a[i] is equivalent in all ways to *(a+i), and a is a pointer
03:05
<@Reiver>
Aah. Okay.
03:05
<@McMartin>
And yes, you can type a[-1] and access whatever happens to be in the memory just before the array
03:05
<@McMartin>
And yes, I've edited code that relied on this
03:06
<@Derakon>
C is basically a set of abstractions for assembly. ¬.¬
03:06
<@Reiver>
We only ever learned a[i] - I suspect they left the *(a+i) to B semester just so they didn't scare students in the literal Computing 101~
03:06
<@Derakon>
s/abstractions/macros/
03:06
<@McMartin>
Now now
03:06
<@McMartin>
It has pass by value
03:07
<@McMartin>
Macros recompute the value every time
03:07
<@McMartin>
And replicate side effects for hilarious comedy
03:08
<@MyCatVerbs>
McMartin: bah, you don't need to understand OOP to write C++. At least, judging by what you see making it into production regularly... :)
03:08
<@Reiver>
And then 4th year they continue with a lot of stuff. Er. ... you know, this would probably work better like this: http://www.scms.waikato.ac.nz/genquery.php?linklevel=4&linklist=SCMS&linkname=30 0_Level-2&linktype=link&children=Papers
03:09
<@Vornicus>
You don't need to understand OOP to write C++. You do need to understand OOP to write OOish C++
03:09
<@Reiver>
That's 3rd year papers. Sidebar on the left gives you the other years; the titles alone should give you a general idea of what is taught when.
03:11
<@Reiver>
The AI paper I am grumbling about: http://www.scms.waikato.ac.nz/genquery.php?linklevel=4&linklist=SCMS&linkname=30 0_Level-2&linktype=report&listby=Paper_Number&lwhere=unique_record_id=31&childre n=Papers
03:11
<@Reiver>
Note that I didn't do Programming with Data Structures, but the paper I did do is now outdated, but equivalent to General Programming in terms of what I can and can't take.
03:12
<@Reiver>
(And I can't take the Data Structures one, because its format has been changed and also clashes with the OO paper I did~)
03:12
<@Reiver>
Didn't do it then; can't do it now. Well, I could, but it wouldn't count towards my degree. >.>
03:13 * Vornicus futzes with reverse engineering data for VornMoO, uses pivottables to good effect.
03:14
<@McMartin>
I think part of my horror here is the implication that it's reasonable to ever teach "programming without data structures"
03:14
<@Vornicus>
Really need to build a hundred more games and see what comes out.
03:14
<@Reiver>
Nnnot really.
03:15
<@Reiver>
It's more that I've learned how to use data structures, but not how to make them from hand
03:15
<@Reiver>
I've, uh, long since forgotten, but I was comfortable enough using ArrayList and WhateverYouCallTheTreeThing in Java.
03:16 * Vornicus knows how to make quite a few data structures, but has never had to.
03:16
<@McMartin>
Data Structures should be including not only those things, but everything you build out of them
03:17
<@McMartin>
Like, teaching Java or C++ without functional decomposition and breaking the representation down into classes is essentially Extremely Bad Habits 101
03:17
<@Reiver>
functional decomposition?
03:18
<@McMartin>
"I want to do X. I should write functions a, b, c, d, and e"
03:18
<@McMartin>
As opposed to one humongous fuckyou x() with a lot of copypasting.
03:18
<@McMartin>
Not to mention how to represent the inputs and the results
03:18
<@Derakon>
I remember doing functional programming without functional decomposition.
03:18
<@Derakon>
Whee massive abuse of the ?: operator~
03:18
<@McMartin>
Exactly the same thing as if/then/else, but harder for debuggers to interact with!
03:18
<@Reiver>
Oh, yes. We got taught the Concept Of Functions in 1st year.
03:19
<@Reiver>
Indeed, I proceeded to promptly get in trouble by taking the adage 'Never write the same line of code twice' a little too far~
03:20
<@Reiver>
(My end of semester project was incomprehensible to the tutors, apparently. Technically correct, but they'd been reading boilerplate prior... >_>)
03:21
<@Reiver>
("Okay, let's have a look here. You've got a function that... okay, calls that one... which calls that one..." - Note this was being looked at in hardcopy, so there was page shuffling all round~)
03:22
<@Reiver>
("And then after doing... aha! Okay, I see. Then it makes ... that function work on that function, and... we haven't taught you recursion yet!" "Er. What's recursion?" >_>)
03:22 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has joined #code
03:22 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has quit [Client exited]
03:24
<@Reiver>
Anyway, uh, yeah. We got taught how to do Functions and stuff. </sidetrack>
03:24 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has joined #code
03:25
<@Vornicus>
You can write the same line of code twice.
03:26
<@Reiver>
If it's Standard Boilerplate?
03:26
<@Reiver>
(For/while loops etc)
03:26
<@Vornicus>
If it's smallish.
03:27
<@MyCatVerbs>
Just not three times. :)
03:30
<@Reiver>
Idly, vorn: http://community.livejournal.com/cs_lectures/3994.html#cutid1
03:30
<@Reiver>
Your pretty peeektures broke.
03:30 * Reiver figures you know this, but thought he'd point it out anyway.
03:34
<@Vornicus>
Yeah, my pretty pictures are on my mac.
03:34 Reiver [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout]
03:36 lysol [~westside@Nightstar-28403.stkn.mdsg-pacwest.com] has joined #code
03:38 * Derakon gets the inflector charge sound effect working...
03:38 lysol [~westside@Nightstar-28403.stkn.mdsg-pacwest.com] has quit [Quit: ]
03:38
<@Derakon>
Next is the hum, which isn't looping smoothly.
03:38
<@Derakon>
And then I get to figure out a good deflector sound effect, since making it totally silent when I have this massive reverberant hum for the charge is just weird.
04:20 Reiver [~reaverta@Nightstar-23730.xdsl.xnet.co.nz] has joined #Code
04:20 mode/#code [+o Reiver] by ChanServ
04:25
<@Derakon>
Argh, what the christ, Audacity.
04:25
<@Derakon>
I grab a selection of sound and try to time shift it.
04:25
<@Derakon>
It instead timeshifts the entire sample. I.e. everything in that track, not just the selected area.
04:25
<@Derakon>
Is it so hard to insert the appropriate amount of silence?
04:39
<@Derakon>
...what the fuck. I select 1.5s of sound. I copy it. I open a new track. I paste. The result is more than 1.5 seconds long.
04:39
<@Derakon>
What the Christ, Audacity.
04:43
<@McMartin>
And yet, it's still better than basically all alternatives
04:43
<@McMartin>
Since anything that does it better costs four figures at least
04:44
<@Derakon>
I'm just trying to make a copy of the sound that's offset by half the length, to try to make it loop properly.
04:45
<@Derakon>
I don't even know if it'll work but I'm sure as hell not going to find out if Audacity keeps doing dumb shit like this.
04:46
<@McMartin>
I'm pretty sure "insert silence" is actually a primitive operation
04:46
<@McMartin>
But I don't have it handy and it's been a loooong time
04:46
<@Derakon>
Yeah, I found that.
04:46
<@Derakon>
So I'm less peeved about that particular issue.
04:46
<@Derakon>
Now I just want the damn thing to paste what I've copied and nothing more.
04:56 Reiver [~reaverta@Nightstar-23730.xdsl.xnet.co.nz] has quit [Ping Timeout]
04:57 Reiver [~reaverta@Nightstar-23730.xdsl.xnet.co.nz] has joined #Code
04:57 mode/#code [+o Reiver] by ChanServ
05:09
<@Vornicus>
ARGWTF why am I building a Populous: The Beginning sequel in my head?
05:10
<@Derakon>
Because ideas are cheap.
05:10
<@Vornicus>
I noticed.
05:13
<@Derakon>
Speaking of which, I'm reconsidering Selene.
05:14
<@Vornicus>
Oh?
05:14
<@Derakon>
I don't think that I can make a game that's accessible, ramps up quickly, and plays smoothly that works as Selene is planned.
05:14
<@Vornicus>
What's wrong with it?
05:14 * Reiver sighs at Ground Control.
05:15
<@Reiver>
This mission would be a ton easier if my allies were not on some timer to drive straight into the deathtrap while I'm bombarding it
05:15
<@ToxicFrog>
...what mission?
05:15
<@Derakon>
It's difficult to articulate...especially when I'm listening to the PA D&D sessions.
05:15
<@Derakon>
I'll write an LJ post about it.
05:15
<@Reiver>
You're trying to take out the main HQ
05:15
<@Reiver>
You have to kill the outpost first.
05:15
<@Reiver>
This is not terribly difficult, but trying to keep the allied squads intact in the process...
05:17
<@Derakon>
Oh geeze, the poor cleric.
05:17
<@Derakon>
He got shot in the chest, then shot again (by the same crossbowgoblin), then swung with his hammer and got a 1.
05:18
<@Reiver>
Been there, done that~
05:21
<@ToxicFrog>
Reiver: I'm afraid I don't recall that one. Which faction?
05:22 * Vornicus seems to have misplaced his GC install at some point.
05:22
<@Derakon>
GC?
05:22
<@Reiver>
Cravencorp
05:22
<@Vornicus>
Ground Control
05:22
<@Reiver>
You have to deal with Your Very First Mine Field
05:23
<@Reiver>
And there's an outpost you slaughter before it slaughters Dwight, and then march on to blow up the Dawnie HQ, and capture the Xenofacts
05:40
<@Derakon>
Hrm...thinking about it more, maybe I can just change one planned mechanic and have it work out.
05:40
<@Derakon>
The planned mechanic was to have the game be running continuously even when you're in your base.
05:41
<@Derakon>
Which worked out okay in Lunatic Fringe because enemies spawn far from the player and you were basically running a continual campaign of keeping them far away.
05:41
<@Derakon>
But thinking about it now, I think LF had a fair amount of dead time, which I'd like to eliminate.
05:42
<@Derakon>
So by pausing the game while you're at your base (and maybe shunting the base's healing to an auto-repair system on your ship, whose supply of spare parts the base replenishes), I don't have to worry so much about leaving a large empty space between your base and the enemy spawn point.
05:42
<@Derakon>
Yeah, I think that works.
05:42
<@Derakon>
The base becomes a place to upgrade your ship, drop off supplies, pick up new spare parts, and direct research.
05:43
<@Derakon>
You actually repair in-flight.
05:43
<@Derakon>
You still have an incentive to keep the base clear so you can safely dock, but it's not imperative.
05:59
<@ToxicFrog>
Reiver: Mission 15?
05:59
<@ToxicFrog>
I, er, don't recall having to keep Dwight alive in that mission
05:59
<@ToxicFrog>
Although that may be wishful thinking on my part
06:00
<@ToxicFrog>
That said, bombers equipped with AMS, use them to clear the minefield
06:02 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
06:18 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
06:18 mode/#code [+o gnolam] by ChanServ
06:29
<@Vornicus>
But yeah. The one thing I've always found odd about P:tB is that huts are the only upgradeable building. Well, that and the unit AI is inconceivably dumbasstastic, but that's a different story.
06:30
<@gnolam>
Populous: the Beginning?
06:32
<@Vornicus>
Indeed.
06:33
<@Vornicus>
I'm not sure what upgraded unit training huts would do, but upgraded towers would be taller.
06:35 AnnoDomini [~farkoff@Nightstar-29159.neoplus.adsl.tpnet.pl] has joined #Code
06:35 mode/#code [+o AnnoDomini] by ChanServ
06:42
<@Vornicus>
Upgraded shipyards would be able to build bigger boats; upgraded balloon huts... dunno.
06:45
<@gnolam>
Someone here planning on doing a remake? :)
06:45 * Vornicus is just getting his ideas out of his head andinto a fixed form. Was going "good god get it out of my head" a few minutes ago.
06:47
<@gnolam>
Upgraded balloon huts => balloons fitting more than 2 people?
06:47
<@Vornicus>
I'm not sure I like that; I'd prefer it to be a different axis from the boat one.
06:50
<@Vornicus>
Though I guess you could do other things with boats too.
06:53
<@Vornicus>
...not sure what those would be though!
07:29 Alek [~omegaboot@Nightstar-23818.dsl.emhril.sbcglobal.net] has quit [Ping Timeout]
07:30 Vornotron [~vorn@Admin.Nightstar.Net] has joined #code
07:30 Alek [~omegaboot@Nightstar-23818.dsl.emhril.sbcglobal.net] has joined #code
07:32 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Ping Timeout]
07:32 Vornotron is now known as Vornicus
08:00 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
08:02 Derakon is now known as Derakon[AFK]
09:00 You're now known as TheWatcher
09:44
<@gnolam>
You could implement giant sharks. When they come, you're going to need a bigger boat.
09:52 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
09:52 mode/#code [+o Attilla] by ChanServ
09:56 * TheWatcher ponders
09:57 * TheWatcher reiterates his statement that Chris Should Not Be Allowed To Play Old Games.
10:32
<@gnolam>
Oh?
10:33
< TheWatcher>
I have this nasty habit of playing old games and going 'hmm, I bet I could remake this using @modern_tech and add @newfeatures in the process..." and then find a chunk of brain cycles are being dedicated to doing it before I realise what has happened.
10:35
<@gnolam>
Ahh.
10:35
<@gnolam>
I think I'm suffering from the same syndrome. :)
10:36 * gnolam points to his gigantic unfinished project directory.
11:13 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
11:13 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
11:13 mode/#code [+o Attilla] by ChanServ
11:34 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
12:18 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has quit [Ping Timeout]
13:11 Consul [~consul@Nightstar-29739.dsl.sfldmi.ameritech.net] has quit [Client exited]
13:17 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
13:18 Consul [~consul@Nightstar-29739.dsl.sfldmi.ameritech.net] has joined #code
13:18 mode/#code [+o Consul] by ChanServ
13:55 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has quit [Operation timed out]
14:01 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has joined #code
14:39 * gnolam ponders weapons.
15:12 KBot [AnnoDomini@Nightstar-29216.neoplus.adsl.tpnet.pl] has joined #Code
15:13 KarmaBot [AnnoDomini@Nightstar-29159.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:13 AnnoDomini [~farkoff@Nightstar-29159.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:15 KBot is now known as KarmaBot
15:20 AnnoDomini [~farkoff@Nightstar-29216.neoplus.adsl.tpnet.pl] has joined #Code
15:20 mode/#code [+o AnnoDomini] by ChanServ
15:45 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
15:45 mode/#code [+o Vornicus] by ChanServ
16:21 You're now known as TheWatcher[afk]
16:35 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
16:35 mode/#code [+o Attilla] by ChanServ
17:08 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
17:09 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
17:09 mode/#code [+o Attilla] by ChanServ
17:39 Derakon[AFK] is now known as Derakon
18:01
<@jerith>
I don't suppose anyone here groks AppleScript?
18:02
<@jerith>
I'm trying to bring a window of a particular app to the front without all the other windows of that app coming with it.
18:05
<@Derakon>
I'm afraid I don't...
18:05
<@Derakon>
But it should be at least possible, since that's what happens if you click on a window that's part of an app not in focus.
18:08
<@jerith>
Yeah, that's what I figured.
18:08
<@jerith>
I haven't been able to make it work yet, though.
18:09 You're now known as TheWatcher
19:15
<@McMartin>
can you tell application (blah) to tell window (blah part 2) to activate?
19:19
<@jerith>
McMartin: I can, but that activates the whole app.
19:19
<@jerith>
Which yanks all its windows to the front.
19:20
<@jerith>
I keep running into this. :-/
19:20
<@McMartin>
Damn it.
19:20
<@McMartin>
I knew the application alone activating did that
19:20
<@jerith>
MacOS *REALLY* wants an application to all be one thing.
19:23
<@jerith>
I managed to open two instances of aquamacs from the commandline.
19:23
<@jerith>
But as soon as I wrap that in a script, it stops working. :-/
19:25
<@Derakon>
Argh, I just reproduced this bug this morning, and now it won't repro!
19:25
<@Derakon>
...oh, wait, but I also changed the code.
19:26
<@Derakon>
Yeah, there we go.
19:26
< TheWatcher>
Heh
19:26
< TheWatcher>
Love it when that one happens >.>
19:27
<@jerith>
Anyways, I've written an 'aquamacs' script that lives near the front of my path.
19:28
<@jerith>
If I call it explicitly, it works.
19:28
<@jerith>
If I `which aquamacs`, it points to my script.
19:28
<@jerith>
If I `aquamacs`, it seems to run the other one.
19:28
<@Derakon>
That's weird.
19:29
<@jerith>
I wonder it it's an alias?
19:30
<@Derakon>
My understanding has always been that `which` will tell you what happens when you run a given command.
19:30
<@Derakon>
Are you certain that which is pointing to the right script? Grasping at straws here.
19:32
<@McMartin>
which does not respect shell aliases
19:32
<@McMartin>
Indeed, it doesn't know about them since it's a program in its own right. It just searches $PATH
19:33
< TheWatcher>
jerith: just type 'alias' at the shell, should list the current aliases?
19:33
<@jerith>
TheWatcher: Just did that. Nothing.
19:33 * TheWatcher eyes this, swears vaguely
19:35
< TheWatcher>
I am passing around way too many objects as it is, without adding another, gah.
19:35
<@jerith>
Meh. I'm happy to nuke the one in /usr/local/bin.
19:37
< TheWatcher>
Sod it, time to add a ModuleHandler class too
19:38
<@jerith>
What're writing?
19:39
< TheWatcher>
The code to drive my website. And two others, using more or less the same code, and different templates.
19:39 * gnolam slaps himself.
19:40
<@gnolam>
I forgot the cardinal rule: do not configure servers while under the influence of alcohol.
19:40
< TheWatcher>
Heh
19:41
< TheWatcher>
jerith: matters are being slightly complicated by me being a Smartarse.
19:42
<@jerith>
Ah, yes. That'll do it.
19:44
< TheWatcher>
When it works, it'll be kinda neat, but it's proving tricky because I'm being very strict on keeping low coupling levels
19:49
<@jerith>
Perl?
19:50
< TheWatcher>
Yep
19:50
< TheWatcher>
I'm thinking that, if I pull it off, I might get to unleash Azathoth on the world.
19:51
< TheWatcher>
*cough* I mean, yeah, I must be a masochist. Yes.
19:51
<@jerith>
Ah. I suppose you don't follow Chalain on twitter?
19:51
< TheWatcher>
Nope, why?
19:51
<@jerith>
"Some programmers, when faced with a problem, add a layer of indirection. Now they have a pointer to an array of problems."
19:51
<@McMartin>
Ahaha, win
19:52
<@jerith>
Metnion of perl brought that to mind for some reason. :-)
19:52
< TheWatcher>
Snrrrk
19:52
<@McMartin>
This sounds like I should be following Chalain on twitter
19:52
< TheWatcher>
yeah, this would involve me getting a twitter, which... no
19:53
<@McMartin>
You could also follow Othar Trygvassen, Gentleman Adventurer
19:53
<@Derakon>
He's in my webcomics bookmarks~
19:53
<@McMartin>
(also, the "for some reason" is because the original version involved regexes and was basically about Perl)
19:53
<@jerith>
Yeah.
19:54
< TheWatcher>
That's what http://syndicated.livejournal.com/twitter_othar/ is for >.>
19:54
<@jerith>
Actually, I think it was more the "array of problems".
19:54 mode/#code [+o TheWatcher] by ChanServ
19:54
<@jerith>
Which you shouldn't try to access in scalar context.
19:54
<@TheWatcher>
McM: That's what http://syndicated.livejournal.com/twitter_othar/ is for >.>
19:57 Chalain [~chalain@Admin.Nightstar.Net] has joined #code
19:57 mode/#code [+o Chalain] by ChanServ
19:58
<@TheWatcher>
Speak of the devil... I mean, hi Chalain!
20:00
<@gnolam>
Whoa.
20:00
<@gnolam>
Who's the snitch? :)
20:01
<@Chalain>
Nobody snitched. Somebody broke the Zoo.
20:01
<@Chalain>
You damn kids are the reason we can't have nice things! *shakes fist*
20:01
<@Chalain>
This in turn alerted me to the fact that my irc client had disconnected some time ago.
20:02
<@Chalain>
Possibly in November, if my logfiles are to be believed.
20:02
<@Chalain>
So, um, yeah. Hi!
20:02
<@gnolam>
Something like that. :)
20:02
<@gnolam>
Welcome back!
20:03
<@Chalain>
Thanks! ...aaaaaaaaaaand lurk.
20:03
<@Chalain>
(gotta get back to work. I'm at the day job. And it's hard to hide serious goofings off when you're pair programming.)
20:03 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
20:07
<@gnolam>
Ah, is /that/ was XP is for? I had been wondering...
20:07
<@gnolam>
s/was/what
20:09
<@McMartin>
It's about 3/4s of it.
20:09
<@Derakon>
For what now?
20:09
<@McMartin>
Making slacking harder.
20:09
<@Derakon>
...oookay.
20:09
<@McMartin>
You half the number of people coding, but by having an overseer, slacking drops to levels that increase total productivity!
20:10
<@McMartin>
(The remaining fraction is that the guy writing "y = x->f; if (!x) exit 1;" has someone jump on that fast.
20:10
<@Derakon>
Heh.
20:11
<@Derakon>
Hrm...whichever project I do end up going for next, it's gonna need a better way to handle the UI.
20:11
<@Derakon>
Fusillade puts every menu on its own event loop, which is just terrible. :\
20:11
<@gnolam>
Don't beat yourself up about it. All UIs need a better way to handle the UI.~
20:12
<@Derakon>
Yes, but Spellcast+ and Selene will both use the mouse while actually playing the game.
20:16
<@Derakon>
What I need to do is generalize the event loop and make the layering I've been using (e.g. game loop is "on top of" the main menu; pause dialog is "on top of" game loop) more explicit.
20:18
<@Chalain>
There's a very real component to PP taht I'm just now starting to see: by having a pair programmer, you never drill off into side tangents, or work bottom-up (when you have a feature spec to work down from), and you don't get stuck polishing rivets.
20:18
<@Derakon>
Yeah, pair programming definitely keeps you more focused.
20:19
<@Chalain>
I am coming close to agreeing with the argument that time spent coding without a partner is mostly time wasted.
20:19
<@Derakon>
I've managed to make Fusillade entirely on my own. ¬.¬
20:20
<@Chalain>
There's a lot of stuff I would do if I were alone "just to get it done" that my partner rejects because it would increase technical debt. The end result is MUCH more satisfying code.
20:20 * TheWatcher notes that there isn't actually anyone in work who could understand most of what he codes
20:21
<@Chalain>
Heh
20:21
<@AnnoDomini>
Whoah. A Chalain.
20:21
<@TheWatcher>
Which is kinda depressing considering most of it is perl, in a computer science department...
20:22
<@TheWatcher>
(I'm one of two people left in the department who knows perl to any useful extent ;.;)
20:22
<@Chalain>
Yeah, there are a number of barriers. That's one of them. It's definitely a hydroplane effect. When you've going people willing to pair and management willing to try it and test suites to regress against and feature-driven design strategies... it works insanely well.
20:22
<@Chalain>
TheWatcher: Eww! But cool. :-)
20:27
<@Derakon>
':' isn't a special character for URLs, right?
20:27
<@Derakon>
Er, for GET params.
20:30 * TheWatcher goes check the RFC
20:31
<@Derakon>
"coedEntry" != "codeEntry".
20:34
<@TheWatcher>
Dera: RFC2396 says 'Within a query component, the characters ";", "/", "?", ":", "@", "&", "=", "+", ",", and "$" are reserved.'
20:34
<@Derakon>
Okay, thanks.
20:34
<@AnnoDomini>
coedEntry? Sounds dirty. :P
20:34
<@ToxicFrog>
I just escape everything other than [a-zA-Z0-9]
20:35
<@Derakon>
I found a bug that caused course keys to get truncated...
20:35
<@Derakon>
base64 includes '+' and '='.
20:35
<@Derakon>
So I'm replacing them with '~' and '_' respectively.
20:36
<@Derakon>
Argh, must go AFK. BBIAB.
20:54
<@Derakon>
Back.
21:13 * Derakon LJ-posts design thoughts for event handling. http://derakon.livejournal.com/322379.html
21:13
<@Derakon>
(Friendslocked)
21:15 * TheWatcher eyes
21:16
<@TheWatcher>
says I'm not allowed to view it, wut
21:16
<@Derakon>
O_o
21:16
<@Derakon>
What's your LJ name again?
21:16
<@TheWatcher>
rimspace
21:17
<@Derakon>
Whoops. Fixed.
21:17
<@Derakon>
Most of my posts have been to my gamedev filter lately...
21:17
<@Derakon>
You can check out the game idea I posted last night!
21:18 * TheWatcher goes look
21:18
<@TheWatcher>
actually
21:18 * TheWatcher goes make tea, then look
21:18
<@Derakon>
Heh.
21:19
< Molgorn>
I see it not ;_;
21:19
<@Derakon>
LJ name?
21:20
< Molgorn>
Moltare
21:20
< Molgorn>
Always Moltare ;)
21:20
<@Derakon>
I...don't even have you friended.
21:20
< Molgorn>
;_;
21:20
<@Derakon>
Don't think you have me friended either, for that matter.
21:21
< Molgorn>
I'm already up against my smiley limit for the month, so take this one as read
21:21
<@Derakon>
Er?
21:21
<@Derakon>
I've just added you to the group.
21:22
< Molgorn>
ta
21:22
< Molgorn>
who the hell are formym and val_artspot
21:23
<@Derakon>
Formym sounds vaguely familiar, no idea on the latter.
21:23
< Molgorn>
Formym has... no entries
21:23
<@ToxicFrog>
Derakon: http://www.pygame.org/wiki/gui ?
21:24
<@Derakon>
TF: interesting, will give it a look.
21:24
<@ToxicFrog>
"let's build a proper GUI toolkit on top of SDL" is a common enough problem that there are libraries that solve it, and it looks like that's what you're doing here.
22:51 Reiver [~reaverta@Nightstar-23730.xdsl.xnet.co.nz] has quit [Quit: Changing servers]
22:51 Reiver [~reaverta@Admin.Nightstar.Net] has joined #Code
22:52 mode/#code [+o Reiver] by ChanServ
23:01 AnnoDomini [~farkoff@Nightstar-29216.neoplus.adsl.tpnet.pl] has quit [Quit: Some people find sanity a little confining.]
23:03 * Derakon ponders the interface for accessing the global highscores list.
23:03
<@Derakon>
The problem right now is that to input your credentials, you have to go to the options page. Not very intuitive.
23:04
<@Derakon>
The problem I'm laboring under is that I want the global highscores to be accessible, in read-only mode, without an account.
23:04
<@Derakon>
(In part because they're already written that way~)
23:04
<@Derakon>
If I sacrificed that, I could simply disable global highscores if you don't have an account; then the "Scores" button on the main menu would prompt you for your account if you don't have one.
23:05
<@Derakon>
But as it stands...I don't want to be prompting the user for their credentials every time they switch to global highscores just because they want to operate in read-only mode.
23:08
<@TheWatcher>
Can you exploit the Anonymous account? log in anonymously automagically, and change that if they log in properly
23:08
<@Derakon>
I don't really see what that would gain me here. Perhaps I'm misunderstanding the suggestion.
23:09
<@TheWatcher>
okay, highscores are currently only accessible if you're logged in, right?
23:10
<@TheWatcher>
using a forum account login
23:10
<@Derakon>
No.
23:10
<@Reiver>
Derakon: Do you have to buy it to use the highscore?
23:10
<@TheWatcher>
oh
23:10
<@TheWatcher>
okay, never mind me, then
23:10
<@Derakon>
Highscores are accessible in read-only mode even without an account (and even if you haven't bought the game).
23:10
<@Derakon>
You cannot send highscores without an account, and that's entirely intentional.
23:10
<@Derakon>
The problem is how to set up the interface so that you don't have to dive into the config page to provide your forum credentials.
23:16
<@McMartin>
Caching credientials is Bad (tm)
23:17
<@McMartin>
Across runs, at least
23:17
<@Derakon>
Which is why I'm using session keys.
23:17
<@Derakon>
You send your credentials, you get an obfuscated string back, you use that to ID to the database.
23:17
<@Derakon>
Credentials are not stored.
23:18
<@McMartin>
OK, yeah, that's fine
23:18
<@McMartin>
This is, after all, your field of expertise, but just checking~
23:20
<@Derakon>
To be perfectly honest, TW suggested that approach.
23:20
<@Derakon>
Wow, the goons've gone nuts over Lock and Key.
23:21
<@Derakon>
Two new pages since last night.
23:22
<@Derakon>
I may just disable anonymous mode. :\
23:22
<@Derakon>
Er, read-only mode.
23:26
<@Reiver>
McM: Caching credentials is bad?
23:26
<@Reiver>
Does that include "Remember this password for next time" type things?
23:26
<@Derakon>
Aaaaand done.
23:26
<@Derakon>
Reiver: in general, you shouldn't cache credentials unless you're a security expert.
23:27
<@Derakon>
Even then they're dangerous in the context of shared computers.
23:27
<@Reiver>
Fair point.
23:27
<@Derakon>
E.g. kid 1 sends his scores online, kid 2 finds his credentials (or uses the cached versions) and poses as kid 1.
23:29
< Molgorn>
Lock and Key?
23:29
< Molgorn>
oh, McM's LP?
23:29
<@Derakon>
Yes.
23:30
< Molgorn>
Could you provide a link? I'm following TF's and I'd like to collect the set >_>
23:30
<@Derakon>
http://forums.somethingawful.com/showthread.php?threadid=3088209&userid=0&perpag e=40&pagenumber=7
23:30
<@Derakon>
It starts on page 4, IIRC.
23:30
< Molgorn>
ta
23:50
<@Derakon>
Arglebarglefargle.
23:51
<@Derakon>
Using Pygame to make a sound loop indefinitely? There's a small but very noticeable gap between each loop. >.<
23:52
<@ToxicFrog>
>.<
23:59
<@Derakon>
I can reduce, but not eliminate, the gap by setting the sound buffer so high that there's instead a noticeable lag at the start of any other sound. >.<
--- Log closed Fri Mar 06 00:00:53 2009
code logs -> 2009 -> Thu, 05 Mar 2009< code.20090304.log - code.20090306.log >