code logs -> 2010 -> Mon, 19 Jul 2010< code.20100718.log - code.20100720.log >
--- Log opened Mon Jul 19 00:00:13 2010
00:03 You're now known as TheWatcher[T-2]
00:06 You're now known as TheWatcher[zZzZ]
00:11 aoanla [AndChat@35E323.D172EA.FF9F80.BD68C2] has quit [[NS] Quit: ]
00:33 Attilla [Attilla@Nightstar-0896c32a.threembb.co.uk] has quit [[NS] Quit: ]
01:14 Vornicus is now known as Finerty
01:56
< gnolam>
A-ha!
01:56 * gnolam finally figures out why the collision detection is wonky.
01:57
<@Finerty>
Define "wonky"
01:58
< gnolam>
"From certain angles, trace rays go right through my NPCs' arms"
01:59
< gnolam>
I thought it was possibly a collision model/skin mismatch, but it turns out that it's the hitbox. It's not big enough to contain all the animations.
02:02
< gnolam>
So a ray fired from e.g. straight ahead at an NPC's outstretched hand will always miss, since it will then miss the hitbox and never perform the detailed collision tests.
02:02
< gnolam>
The questions is now if I can fix this /in code/. I really really don't want to decompile all the models, outfit them with bigger hitboxes, and then recompile them again.
02:04
< gnolam>
-s
02:06 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
02:54 McMartin [mcmartin@Nightstar-dd07698f.pltn13.sbcglobal.net] has quit [[NS] Quit: System shutdown]
03:07 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
03:21 Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed]
05:11 Finerty is now known as Vornicus
05:41 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
05:42 Vornicus is now known as Vornicus-Latens
06:06 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
06:13 Stalker [Z@5E691D.FC7C16.73870F.B436B6] has joined #code
06:25
<@jerith>
TheWatcher[zZzZ]: Anope is an open source project...
06:25
<@jerith>
You'll have to convince Syloq to apply your patch, though.
06:28
< PinkFreud>
1155 List<ImapResponse> responses = executeSimpleCommand("CAPABILITY");
06:28
< PinkFreud>
1156 if (responses.size() != 2) {
06:28
< PinkFreud>
1157 throw new MessagingException("Invalid CAPABILITY response received");
06:28
< PinkFreud>
1158 }
06:29
< PinkFreud>
it would appear that a certain android mail bug is buried in those 4 lines of java.
06:30
< PinkFreud>
when an imap server sends a tab within it's response to the CAPABILITY request, the mail client silently closes the connection.
06:31
< PinkFreud>
I wonder how it's building that list. In particular, how it's splitting returned data into list elements.
06:31 Stalker [Z@5E691D.FC7C16.73870F.B436B6] has quit [Ping timeout: 121 seconds]
06:41 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
07:11 AnnoDomini [annodomini@Nightstar-7f2e0b2b.adsl.tpnet.pl] has joined #code
07:11 mode/#code [+o AnnoDomini] by Reiver
07:17
< Stalker>
:)
08:29 McMartin [mcmartin@Nightstar-dd07698f.pltn13.sbcglobal.net] has joined #code
08:29 mode/#code [+o McMartin] by Reiver
08:30
<@McMartin>
Well, that mostly worked, except I can't figure out how to get F13 to start sshd on boot by itself.
08:36 * McMartin messes with chkconfig, thinks that will help.
08:52 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
09:00 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
09:03 You're now known as TheWatcher
09:20 aoanla [AndChat@Nightstar-a06f1b6e.range86-147.btcentralplus.com] has joined #code
10:06 * TheWatcher sighs, vaguely considers beating a co-worker around the head with mysqli_real_escape_string()
10:08
<@jerith>
TheWatcher: Is that one of the several PHP mysql escaping functions?
10:09
<@TheWatcher>
Yes. And much as I detest a) php and b) php's utterly shitty way of providing database access, escaping strings before shoving them into a query is generally a Good Idea last i checked, even in that sorry mess.
10:10
<@jerith>
TheWatcher: I agree. However, my point is that there are several functions to do it, all broken in different ways.
10:10
<@TheWatcher>
Well, yes.
10:10
<@TheWatcher>
I keep tellin ghim to use perl, but hey~
10:10
<@jerith>
Although using any of them is usually better than not using any of them.
10:12
<@TheWatcher>
Yeah. He sends me this email "would you look at this page code, to see if there's any security risks?" I think I managed to not laugh too hard while pointing out he was doing no sanitising or validation of user input, not escaping values being shoved into sql queries, and a host of other things
10:16 * jerith chuckles.
10:16
< EvilDarkLord>
jerith: How are they broken?
10:16
<@jerith>
EvilDarkLord: I've managed to avoid them in enough years that I no longer recall the details.
10:16
<@jerith>
Thank Eris.
10:18
<@jerith>
SQLers to me!
10:19
<@jerith>
Is there a way to say "copy all rows from this table to that table, but transform these fields like so"?
10:23
<@jerith>
Actually, I'll just make it a multistage thing. Copy the tables and then postprocess the copies.
11:08 AnnoDomini [annodomini@Nightstar-7f2e0b2b.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
11:10 AnnoDomini [annodomini@Nightstar-5e7617b2.adsl.tpnet.pl] has joined #code
11:10 mode/#code [+o AnnoDomini] by Reiver
11:14 aoanla [AndChat@Nightstar-a06f1b6e.range86-147.btcentralplus.com] has quit [[NS] Quit: ]
11:27 Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code
12:26 cpux is now known as shade_of_cpux
12:56 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
13:17 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
13:33 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
13:37 * TheWatcher eyes cpan
13:38
<@TheWatcher>
Huh, I can't believe there's no module to show one of those [ <=> ] activity bouncer things on there, or at least none I can find.
13:43
< PinkFreud>
gui version: http://kobesearch.cpan.org/htdocs/Wx-Perl-Throbber/Wx/Perl/Throbber.html
13:43
<@TheWatcher>
Thanks, but this is for a terminal program
13:43 * TheWatcher shrugs, just writes his own, damnit
13:44
< PinkFreud>
http://search.cpan.org/~blblack/Term-Spinner-0.01/lib/Term/Spinner.pm is a standard spinner, too
13:47
< PinkFreud>
anyone well-versed in java able to answer my question from several hours ago?
13:49
<@TheWatcher>
Looking at it, you need to eyeball the source of executeSimpleCommand - it'll be dowing the splitting either in there, or a method called from there
13:49
<@TheWatcher>
-w
13:50
< PinkFreud>
hmmm
13:50
<@TheWatcher>
Is there source up anywhere, I'll see if I can help trace it too?
13:54
< PinkFreud>
huh. that's bizarre.
13:54
< PinkFreud>
I left that tab open last night. it's disappeared.
13:55
< PinkFreud>
crud. nevermind. I'm a complete dumbass.
13:55
< PinkFreud>
that code is for K9, which is not the default android mail app
14:02
< PinkFreud>
was poking around at bug reports last night. somewhere along the line, a bug report for android's mail app appears to have devolved into a discussion on k9
14:04 Vornicus-Latens is now known as Vornicus
14:45 * Vornicus bonks OpenOffice, let me fiddle with the table borders, damn your eyes
14:47
<@AnnoDomini>
Good luck. You're going to need it.
16:22 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed]
16:56
< Tarinaky>
I'm debating whether I'd have an easier time trying to get projects to completion if I learned a higher level language :/
17:00
<@TheWatcher>
Like perl?~
17:00 * TheWatcher flrrrd
17:03
< PinkFreud>
lol
17:05
< Tarinaky>
Dunno.
17:05
< Tarinaky>
I've pretty much lost interest in my current game project.
17:05
< simon_>
in which language was it written?
17:05
< Tarinaky>
And I can't get back into it without wrapping my head around my pointer arithmatic again.
17:05
< Tarinaky>
C++
17:06
< simon_>
pointer arithmetic in C++? sounds like you are using a multitool like a hammer. :D
17:06
< Tarinaky>
I say pointer arithmetic.
17:06
< Tarinaky>
I was using the TR1 memory templates.
17:06
< simon_>
if I were prototyping a game, I'd use pygame.
17:09
< Tarinaky>
Ugh. Python >..
17:09
< celticminstrel>
I like Python actually, though I wouldn't use it for a game.
17:10
< Tarinaky>
Having trouble conceiving of a good idea that doesn't require me to invest any effort into the graphics :/
17:11
<@TheWatcher>
Um, yeah.
17:11
< simon_>
think of puzzles then.
17:11
<@Vornicus>
Obvioulsy, Inform~
17:12
<@TheWatcher>
Procedurally generate everything?~
17:12
< Tarinaky>
Procedurally generating stuff requires me to invest more effort than churning out 6 shitty sprites.
17:12
<@Vornicus>
YOu can steal stuff from other games.
17:13
< Tarinaky>
I was thinking more "Anything I can write with ncurses."
17:13
< simon_>
a 2D version of Diablo I.
17:13
< Tarinaky>
ncurses gives me 128 graphical assets out the box!
17:13
< Tarinaky>
simon_: That was the project I got bored of.
17:13
< simon_>
haha.
17:13
< Tarinaky>
simon_: Or variation thereof.
17:13
<@TheWatcher>
I Can't Believe It's Not Dwarf Fortress? >.>
17:14
<@Vornicus>
(also, diablo I was 2d. don't let 3/4s view fool you.)
17:15
< gnolam>
Tarinaky: A Minecraft clone. ;)
17:15
< celticminstrel>
I rather dislike ncurses. I wish there was another library that did what it does better. And with Unicode. And maybe even without requiring a terminal.
17:15
< Tarinaky>
I don't even know what minecraft is.
17:15
<@Vornicus>
Hell, a mine/sweeper/ clone.
17:15
< Tarinaky>
celticminstrel: ncurses does Unicode.
17:15
< Tarinaky>
I hate minesweeper. >.>
17:16
< celticminstrel>
Tarinaky: Technically true, but doesn't it rely on support of the terminal for it?
17:16
<@Vornicus>
Or, or, idunno, one of the less clue-y of the Kaser games.
17:16
< gnolam>
If you don't know what Minecraft is, do not check it out. It's been a worse time sink for me than Dwarf Fortress. :P
17:16
< celticminstrel>
I made a minesweeper clone once with conio.h
17:16
< Tarinaky>
Yes. But who the hell uses a terminal that doesn't support unicode?
17:16
< simon_>
Vornicus, still, it was isometric.
17:17
< Tarinaky>
If you want to remove the dependency on the terminal you pretty much need to make a terminal emulator with SDL.
17:17
< celticminstrel>
Yeah.
17:17
< simon_>
gnolam, Minecraft wasn't that interesting, I think.
17:18
<@Vornicus>
Minecraft appears to be a black screen.
17:18
< Tarinaky>
I'm currently going through my backcatalogue of DOS games and can't come up with anything good :/
17:18
< Tarinaky>
Ironseed's probably too ambitious.
17:19
< gnolam>
Ok, a serious suggestion then: Lunar Lander
17:20
< simon_>
Lunar Lander 3D
17:20
< gnolam>
You can code a working version in an afternoon, and then you can add however much polish you want. :)
17:20
< simon_>
or even better: Lunar Lander 1D.
17:21
<@ToxicFrog>
<Tarinaky> I'm debating whether I'd have an easier time trying to get projects to completion if I learned a higher level language --- probably! And even if you don't, it'll be a good exercise.
17:22
<@Vornicus>
I would like to second Lunar Lander.
17:22
<@ToxicFrog>
And yeah, I think gnolam has a good idea.
17:22
<@Vornicus>
And yes. High level languages are Good For You.
17:23
<@TheWatcher>
(but then, so is learning at least one assembler language >.>)
17:24
<@ToxicFrog>
(yes, but while both are good to learn, HLLs are more likely to be useful day to day...depending on what you're working on)
17:24
< Tarinaky>
I don;t see how I can do Lunar Lander with a curses interface though :/
17:24
<@McMartin>
(Also, as a rule you are *much* better off having the HLL be your native thought pattern and hand-compiling it, rather than starting at assembler-convenient structures and hand-abstracting them)
17:25
<@McMartin>
If you insist on retaining Curses, Tetris or the Conway Life Automaton.
17:26
< Tarinaky>
Using anything other than curses will require me to sink 2 weeks into making assets.
17:26
< gnolam>
Lunar lander will require exactly one sprite. :)
17:26
< Tarinaky>
gnolam: And it'll take me 2 weeks to make it.
17:27
<@ToxicFrog>
...make it a triangle.
17:27
<@ToxicFrog>
A white triangle.
17:27
<@ToxicFrog>
You don't even need a sprite for that, you can draw it directly.
17:27
< Tarinaky>
ToxicFrog: You over-estimate my ability to draw.
17:28
<@ToxicFrog>
32 32 scale 0 0 moveto 0.5 1 lineto 1 0 lineto closepath fill
17:28
<@ToxicFrog>
There you go.
17:28
< Tarinaky>
I don't know what to do with that.
17:28
< gnolam>
I wonder if anyone ever made a Glide-accelerated version of ncurses? Voodoo curses!
17:29
< Tarinaky>
gnolam: Accelerate -what-?
17:29
<@ToxicFrog>
Tarinaky: Those are Postscript drawing commands that will give you a triangle.
17:29
<@ToxicFrog>
In practice you'd probably use your drawing library's draw-triangle or draw-polygon command.
17:29
<@ToxicFrog>
That's what I mean by "drawing it directly".
17:29
< Tarinaky>
Yeah. I don;t have a drawing library.
17:29
<@ToxicFrog>
...um
17:30
<@ToxicFrog>
Part of developing a game is choosing your language and runtime environment, which includes choosing how you are going to do things like display graphics
17:30
<@ToxicFrog>
Eg, choosing between curses, SDL, DirectX, openGL, pygame, love2d, OGRE...
17:30
< Tarinaky>
I can remember most of ncurses off the top of my head.
17:30
< Tarinaky>
I've not touched SDL in 2 years and as a result would like to avoid it.
17:30
<@ToxicFrog>
...
17:31
< Tarinaky>
Simply because it'll cut down on the amount of work needed >.>
17:31
<@ToxicFrog>
So you want to do this without actually looking anything up or learning anything new?
17:31
<@ToxicFrog>
What's the point, then?
17:31
< Tarinaky>
Practise.
17:31
< Tarinaky>
To actually be able to use the stuff I've already looked up and learned.
17:31
< Tarinaky>
Objective: See project from beginning to end.
17:32
< Tarinaky>
The easier I make it the more likely I am to finish, no?
17:32
<@ToxicFrog>
Ok, so your actual object is not "learn a HLL" or "make a game to practice project management" or something, but "make a game to practice C++ and the ncurses library"?
17:32
< Namegduf>
"Perhaps but that doesn't fix the real problem"
17:32
<@McMartin>
Depends on how shitty your operating constraints are
17:33
<@McMartin>
I mean, unless you're actually practicing project management.
17:33
< Tarinaky>
I was only musing on changing language.
17:33
< simon_>
regardless of which language I code in, I always look up stuff.
17:33
< Tarinaky>
simon_: Yes, but stuff is already book marked in firefox :p
17:35 Attilla [Attilla@Nightstar-19c23ba0.threembb.co.uk] has joined #code
17:35 mode/#code [+o Attilla] by Reiver
17:35
< Tarinaky>
Fine-fine. I'm a bad person.
17:35
<@McMartin>
Yeah, "having the entire library paged in to personal memory" is an unrealistic and if anything counterproductive goal
17:35
< Tarinaky>
What should I be doing?
17:35 * simon_ is reading a book on propositional logic
17:35
<@McMartin>
If your goal is to finish a project, you should start by speccing a project; several possibilities have been mentioned here.
17:36
< celticminstrel>
Pacman!
17:36
<@McMartin>
If you want real practice in design, design it so that you can start in ncurses and then modify it to SDL later by swapping out a backend module.
17:37
< Tarinaky>
I'm trying to come up with something that's easier than the last project I abandoned
17:37
< Tarinaky>
Which is the hard part.
17:37
< celticminstrel>
Pacman!
17:38
<@ToxicFrog>
Lunar Lander is much simpler than a roguelike and has been suggested like three times
17:38
< Tarinaky>
I only saw it suggested twice.
17:39 * TheWatcher eyes
17:39
<@ToxicFrog>
Gnolam suggested it, Vorn and I seconded.
17:39
< Tarinaky>
Lunar Lander has the problem that I can't figure out how to actually land the damn thing.
17:39
< simon_>
you could always do a Lunar Lander with several variables. they don't have to be in 3D graphically. :-P
17:39
<@ToxicFrog>
simon_: what?
17:39
<@ToxicFrog>
Tarinaky: neither can I. So?
17:40
< simon_>
ToxicFrog, one could illustrate the landing process in terms of N metres that should be as close to their center as possible.
17:40
<@TheWatcher>
simon_: you're aware that the original Lunar Lander was a 2D, extremely basic graphics game, right?
17:41
<@ToxicFrog>
2d vector graphics 4 life, yo
17:41
< simon_>
TheWatcher, yup. I just figured that instead of making a Lunar Lander 3D, one could make a Lunar Lander 1D and scale up the number of metres and make them somehow dependent on one another ;-P
17:41
<@ToxicFrog>
I can't parse that sentence.
17:42
<@ToxicFrog>
"scale up the number of metres and make them somehow dependent on one another"?
17:42
<@TheWatcher>
Glad it's not just me. Why not just make a 2D version using ncurses O.o
17:42
<@ToxicFrog>
Hmm. I can't remember if the first version I played was curses or vector.
17:43
<@ToxicFrog>
Might have been curses, I started out on a serial terminal
17:43
<@ToxicFrog>
But all of my memories of it are of a white-on-black vector version.
17:43
< simon_>
like... imagine Lunar Lander 1D. it has just a single dimension which is height. but the lander will crash if it lands too hard, so instead, it could be visualised by a speedometer.
17:43
<@TheWatcher>
Yep. IIRC the Atari site has the vector version playable online :)
17:44
<@McMartin>
ToxicFrog: Your memories are of the Atari cabinet, I suspect.
17:44
<@McMartin>
I forget whether it's actually one of the ones the government paid them to make
17:44
< simon_>
I'm just imagining that you can make a pretty decent Lunar Lander simulator that can be played even though you don't have a 2D graphical front-end.
17:44
<@McMartin>
(Along with the Battlezone variant)
17:45
<@McMartin>
Other games that play well on rigid 2D grids: Space Invaders. Breakout/Arkanoid.
17:46 * TheWatcher wonders how well a terminal Defender clone would work
17:46
<@ToxicFrog>
McMartin: I have never used any Atari system of any kind.
17:46
<@McMartin>
TF: Not even in arcades?
17:46
<@ToxicFrog>
Although I do remember a UNIX port of the original Battlezone, called "cbzone".
17:46
<@ToxicFrog>
I think I've played, um, four arcade games ever? And none of them were lunar lander.
17:47
<@ToxicFrog>
Probably more, all the light-gun games kind of blur together.
17:47 * McMartin gets around to reinstalling GCC on Iodine.
17:48
<@Vornicus>
Centipede
17:48
<@ToxicFrog>
That reminds me.
17:48 * ToxicFrog goes to figure out how to package scala 2.78
17:48
<@ToxicFrog>
*2.8
17:48
< celticminstrel>
You know, curses has the disadvantage of being a very coarse grid.
17:48
< celticminstrel>
Is it really suitable for a lunar lander simulation?
17:49
<@ToxicFrog>
Yes.
17:49
<@ToxicFrog>
80x24 is plenty of resolution to plough screaming into the lunar surface~
17:49
<@McMartin>
celticminstrel: If your model depends on the display resolution, you're doing something horribly wrong even if you're displaying at 1080p
17:51
<@jerith>
My first lunar lander depended on display resolution.
17:52
< celticminstrel>
I was referring to the fact that the "pixels" are huge.
17:52
<@jerith>
Of course, the C64 only had one resolution. And my language was BASIC. And I had a single digit in my age.
17:53 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
17:54
<@McMartin>
celticminstrel: Sure, but at any reasonable resolution you're still maintaining a way higher precision than you can display.
17:55
< celticminstrel>
But you can't really perceive the discrepancy at a normal resolution. You can at a curses resolution. I guess there are tricks to reduce this by filling half cells or quarter cells or whatever, but still.
18:01
<@McMartin>
As a rule, if you're using a curses interface, you're OK with blocky animation.
18:03 * Vornicus remembers Lunar Lander for C64, where it'd actually zoom in on the platform when you got close.
18:04 * Vornicus knew how it did the regular-scale one, but that bit was really cool.
18:08 Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has joined #code
18:08 mode/#code [+o Derakon] by Reiver
18:09 * Derakon arghs at his boss, who has Definite Ideas about user interface design that he can't really see working all that well.
18:09
< Tarinaky>
:/ python is weird.
18:10
<@Derakon>
For example, we have two vertical scales that we show to the user. One shows the altitude of the slide, and ranges from 4000um to 25000um. The other shows a histogram of altitudes where experiments have been run, and ranges from 5000um to 8000um.
18:10
<@Derakon>
He wants the histogram to match the scale of the slide altitude so you can draw a horizontal line across from one to the other.
18:11
<@Derakon>
Given that the histogram can't really go below 200px tall on its current scale without becoming unusably squished, this would mean a 1400px-tall histogram.
18:11
<@Derakon>
And a 1400px-tall slide view.
18:11
<@Derakon>
My solution to this problem was to let them be on different scales and simply show the slide position when it's in the histogram's scale.
18:12
<@Derakon>
He doesn't think this is a good idea, because it's "hokey" to not be able to draw a line across from the slide view to the histogram.
18:12
<@Derakon>
Argh.
18:15
<@ToxicFrog>
Tarinaky: how so?
18:15
<@ToxicFrog>
I mean, apart from function-scope locals~
18:15
< Tarinaky>
size = width, height = 320, 240
18:15
<@Derakon>
That should be two lines.
18:16
<@ToxicFrog>
That doesn't look legal.
18:16
<@Derakon>
size = width
18:16
<@Derakon>
height = (320, 240)
18:16
< Tarinaky>
That makes even less sense.
18:16
<@Derakon>
TF: hm, I just checked and it is
18:16
<@ToxicFrog>
...what are the semantics?
18:16
<@Derakon>
After which, size is (320, 240) and height is 240.
18:16
<@Derakon>
So now I'm very confused.
18:17
<@Vornicus>
Left-association, automatic tuplizing.
18:17
<@ToxicFrog>
Oh
18:17
<@ToxicFrog>
size = (width, height) = (320, 240)
18:17
<@Vornicus>
Exactly.
18:17
<@Derakon>
Ahhh.
18:17
<@ToxicFrog>
Makes sense.
18:17
<@Derakon>
This is why you don't leave the parens off of your tuples. I'm frankly surprised that Python allows it.
18:18
<@Vornicus>
Utterly redonkulous, but.
18:18
<@ToxicFrog>
Hey, works in scala too: val size @ (width, height) = (320, 240)
18:18
<@Derakon>
(BTW, shot of the scope UI from a couple weeks ago http://derakon.dyndns.org/~chriswei/temp/omxscreenshot20100709.png )
18:18
<@Derakon>
(Looks rather different now; most of the UI elements in the bottom-center area are shuffled off to the sides)
18:18
<@Derakon>
(The slide view / histogram are in the upper-right)
18:19
<@ToxicFrog>
Tarinaky: anyways, python lets you leave the parens off of tuples; that code breaks down into:
18:19
<@Derakon>
(If you have any suggestions for useful UIs that would show the histogram and the slide view in a way that would let you draw a horizontal from one to the other, feel free to speak up~)
18:19
<@ToxicFrog>
(width, height) = (320, 240)
18:19
<@ToxicFrog>
size = (width, height)
18:20 * ToxicFrog fiddles around
18:21
<@ToxicFrog>
(width, height) = size = (320, 240) also works, but IMO size first is more readable.
18:21
<@Derakon>
As a general rule, I suggest only doing one assignation per line.
18:21
<@Derakon>
Also, one import per line.
18:21
<@Derakon>
No "import numpy, OpenGL.GL as GL, sys, os"
18:22
<@Derakon>
There is no shortage of newline characters.
18:22
< Tarinaky>
Any decent IDEs/debuggers?
18:22
<@Derakon>
vim/grep~
18:23
<@Derakon>
There's a Python debugger, but I forget what it's called.
18:23
<@Derakon>
Oh yeah, pdb.
18:24
<@ToxicFrog>
Doesn't gdb have python support now as well? Or is that an F13-specific extension?
18:24
<@Derakon>
No idea.
18:25
<@ToxicFrog>
Tarinaky: the python wiki has a list, if it starts working again
18:25 * Tarinaky takes it as an opportunity to play with eclipse again.
18:26
< Tarinaky>
Anyone know what an eclipse team provider is?
18:26
<@ToxicFrog>
Personally, I just use jedit for everything, which isn't an IDE but is pretty sweet
18:26 * Vornicus has never liked IDEs for python dev.
18:28 * Tarinaky facepalms.
18:28
< Tarinaky>
It'd be too much to ask for the precompiled binaries for my distro to be set up wouldn't it :/
18:45 * Tarinaky scratches his head and tries to work out what the hell he can actually do with this.
18:45 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [Client closed the connection]
18:47 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
18:49 Attilla [Attilla@Nightstar-19c23ba0.threembb.co.uk] has quit [[NS] Quit: ]
18:59
<@Derakon>
So no ideas on my UI problem then? ?.?
19:01
<@Vornicus>
Why is the historgram limited?
19:01
<@Derakon>
How do you mean, limited?
19:01
<@Derakon>
Its scale is automatically set based on the altitudes at which users run experiments.
19:01
<@Vornicus>
Like, the histogram has different limits on altitude than the active altitude thing.
19:02
<@Derakon>
Much of the range of motion for the slide is so that the slide can be moved out of the way for swapping components around.
19:02
<@Derakon>
Experiments never run at an altitude above 7600um or so.
19:02
<@Vornicus>
Aha.
19:03
<@Vornicus>
I'd say, hm. Fiddle the altitude display so it doesn't show an "analog" instrument for extremely high altitudes.
19:04
<@Derakon>
IOW use a nonlinear scale for the altitude display?
19:04
<@Vornicus>
No, what I mean is
19:06
<@Vornicus>
You know how, in some games, if a target is off the screen, it'll display a little arrow and maybe a distance?
19:06
<@Derakon>
Yeah.
19:07
<@Derakon>
I actually have something similar; there's a device positioned above the slide, which I have (in a more recent version than shown in the screenshot) just clamped to right at the top of the display.
19:07
<@Derakon>
(For situations when it's way above the stage's max altitude, that is)
19:08
<@Derakon>
(That's the purple line)
19:08
<@Vornicus>
I'd make the histogram and current altitude the same scale, and then if the current altitude is above the histogram's top level, then you display the current altitude without an actual line.
19:08
<@Derakon>
Hm...
19:09
<@Derakon>
I've a feeling the bossman won't go for that, but I can ask.
19:09
<@Derakon>
He seems to want basically a linear scale that still shows everything at useful levels of resolution without taking up too much space. You can see why I'm frustrated.
19:09
<@Vornicus>
Yes.
19:10
<@Derakon>
He also wants the colored lines in the altitude display to have attached labels with their altitudes; he hates the key I've made.
19:10
<@Derakon>
I can't see how to do labels in a way that wouldn't create a horrible mess in the very common event that two lines are close to each other though.
19:11
<@ToxicFrog>
Tarinaky: http://wiki.python.org/moin/IntegratedDevelopmentEnvironments -- this is the page I mentioend earlier
19:11
< Tarinaky>
I've managed to get Eclipse working atm.
19:12 * jerith glares at Eclipse.
19:12
< Tarinaky>
I'm just GAHing because the language is weird and confusing.
19:12
<@Derakon>
You're just having to adjust.
19:13
<@Derakon>
Once you've learned a few languages, learning more becomes easier.
19:13
< Tarinaky>
I know C, C++ and Pascal. That's a few! >.> <.< >.>
19:13
< celticminstrel>
That's two and a half.
19:13
<@jerith>
No. That's barely one and a half.
19:13 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
19:14
<@Derakon>
IMO every software engineer worth his salt should learn, at the very least, one low-level language (C qualifies), one high-level scripting language (Python, Perl, etc.), ande one functional language.
19:14
<@Derakon>
s/ande/and/
19:14
< Tarinaky>
I think it's the lack of typechecking that gets me.
19:14
< celticminstrel>
Python has type checking.
19:14
<@Derakon>
That's a standard component of most interpreted languages.
19:14
< Tarinaky>
Best I can describe it is it's like flying in a glass/see-through airplane.
19:14
<@Derakon>
You just keep track yourself.
19:15
< celticminstrel>
It's just that in Python, the type is attached to the data rather than to the variable.
19:15
<@Derakon>
I find it helps to name my dicts "fooToBarMap", my lists "fooList", and my booleans "doesFoo", "isFoo", "shouldFoo", etc.
19:15
<@jerith>
I have fewer type issues in Python than I have NullPointerExceptions in Java.
19:16
< Tarinaky>
I'm used to using C++ string type checking for error detection and as a way to bolster my confidence. "If it compiles it'll probably work."
19:16
<@ToxicFrog>
celticminstrel: it has type checking, it doesn't have static type checking, which is what Tarinaky is missing.
19:16
< Tarinaky>
*strong
19:16
< Tarinaky>
Yeah.
19:16
<@Derakon>
You expect compiled code to work?
19:16
< Tarinaky>
Derakon: I expect it to probably work.
19:16
<@ToxicFrog>
And yeah, increasingly I find myself missing static typing when working in languages that don't have it.
19:16
<@Derakon>
I assume that any code that has not been tested will not work.
19:16
<@Derakon>
That tends to be more often true in my experience.
19:17
<@ToxicFrog>
...but I also dislike most of the statically typed languages I've tried.
19:17
< Tarinaky>
I find "Probably work" to be a fair estimation.
19:17
<@jerith>
I tend to name scalar types (strings, numbers, etc.) in the singular and collections (sets, dicts, lists, tuples, etc.) in the plural. But that's about it.
19:17
< simon_>
ToxicFrog, I just feel naked without.
19:17
<@ToxicFrog>
Derakon: it is not unreasonable to assume that, if the compiler catches a greater set of potential problems, code that compiles under that compiler is more likely to work that code that compiles under a different, more lax compiler.
19:17
<@Derakon>
TF: oh, sure.
19:17
<@ToxicFrog>
This doesn't mean it will work, just that you can be confident that there is a class of problems that your program does not have.
19:18
<@jerith>
Derakon: I usually assume that even well-tested code doesn't work. It's less surprising that way. >.>
19:18
<@Derakon>
My point is mostly that I run into logic errors way more often than I run into syntax errors.
19:18
< Tarinaky>
I want to stress that I used the word probably.
19:18
<@ToxicFrog>
Er
19:18
<@Derakon>
Tarinaky: yeah, we're just differing over estimated likelihoods.
19:18
<@ToxicFrog>
Type mismatches are logic errors.
19:18
<@Derakon>
TF: no, I mean functional logic errors.
19:18
<@Derakon>
"Whoops, I chose the wrong offset", not "whoops, I tried to pass a string instead of a double".
19:18
< Tarinaky>
It's normally pointers that slip errors past the compiler.
19:19
<@ToxicFrog>
Aah.
19:19
<@ToxicFrog>
Tarinaky: Not a problem in a language without pointers~
19:19
< Tarinaky>
I struggle to imagine such a thing.
19:19
<@Derakon>
Heh.
19:19
<@Derakon>
Oddly enough, most languages do not have them.
19:20
<@ToxicFrog>
Well, it depends on whether by "pointer" you mean "computable memory address" or "indirect reference"
19:20
<@Derakon>
Many languages have references, yes.
19:20
<@ToxicFrog>
Most languages have the latter, but not the former.
19:20
< Tarinaky>
When I say pointers I mean references.
19:20
<@Derakon>
Say what you mean~
19:20
< Tarinaky>
I'm a C++ programmer. Pointers -are- references :p
19:20
<@Derakon>
...
19:20
<@Derakon>
No, they aren't.
19:21
< celticminstrel>
They are functionally equivalent.
19:21
<@Derakon>
Pointers and references in C++ are the difference between "void foo(Bar* bar)" and "void foo(Bar& bar)", which have completely different invocations.
19:21
< Tarinaky>
They're as close as you're going to get.
19:21
<@ToxicFrog>
In C, pointers are used to implement indirect references. In C++, pointers and references are different language constructs with different behaviours.
19:21
<@Derakon>
Assuming I remember my C correctly.
19:21
< celticminstrel>
Except that you can do things with pointers that cannot be done with references.
19:21
< Tarinaky>
Eh. C++ references are really just a sugar for C pointers.
19:21
< celticminstrel>
Essentially.
19:21
<@Derakon>
They are still distinct entities.
19:21
<@ToxicFrog>
And functions are just a sugar for GOTO, your point?
19:21
< celticminstrel>
A sugar with limitations though.
19:22
<@Derakon>
You're suggesting being loose with language in a programming channel?
19:22
<@ToxicFrog>
More usefully: "sugar" generally implies a syntax alias. Pointers and references in C++, however, have actual semantic differences.
19:22
<@ToxicFrog>
They may both be pointers once it hits object code, but that doesn't mean they're the same thing.
19:23
< Tarinaky>
I thought it did.
19:23
<@Derakon>
There is more to programming than what the machine runs.
19:23
<@Derakon>
Unless you like having arguments like this every time you talk about your code.
19:23
<@Derakon>
This is a bit like claiming that logarithms and exponentiation are the same thing.
19:24
<@ToxicFrog>
Tarinaky: strings, integers, booleans, and executable code are all just binary numbers once compiled. Does that mean that they're equivalent?
19:24
<@Derakon>
According to Sebastian, yes. >.<
19:25
< Tarinaky>
ToxicFrog: Sometimes. >.> <.< >.>
19:25
<@Derakon>
(So much "I'll pass some string that represents code that shall be exec'd by the function I'm calling" argh)
19:25
<@ToxicFrog>
(kill him)
19:25 * Tarinaky has been known to use strings of characters for strings of bits >.>
19:26
<@Derakon>
...use the hex notation, man.
19:26
<@Derakon>
Or the binary.
19:26
< Tarinaky>
I mean each character being 8-bits.
19:26
< Tarinaky>
So a string of a string of bits >.>
19:27
<@Derakon>
bits = [0b10101010, 0b00001111, 0b11001100];
19:27
< celticminstrel>
Gah!
19:28
< Tarinaky>
I've never actually used binary notation.
19:28
<@ToxicFrog>
bits = [ 0xAA, 0x0F, 0xCC ]
19:28
< celticminstrel>
I have to try like fifty times just to select an area of something!
19:28
<@Derakon>
TF's approach is also acceptable.
19:29
<@Derakon>
Though I find that when I see hex, I have to mentally convert it to binary much of the time anyway.
19:29 * Vornicus gives all involved the "struct" library.
19:29
< Tarinaky>
Anyway.
19:29
< Tarinaky>
Time to figure out how to do assets in python.
19:30
<@Derakon>
What kind of assets?
19:30
<@ToxicFrog>
...if you're doing lunar lander, why do you need assets?
19:31
< celticminstrel>
This mouse seems to register a click after the button is released...
19:31
< Tarinaky>
Derakon: 32 32 scale 0 0 moveto 0.5 1 lineto 1 0 lineto closepath fill
19:31
< celticminstrel>
Or randomly while it's pressed.
19:31
<@ToxicFrog>
Tarinaky: as I said earlier, that's postscript code to draw a simple triangle.
19:32
< Tarinaky>
Yes. I'm trying to figure out what the equiv. Python code is.
19:32
<@ToxicFrog>
It's a triangle with corners at (0,0) (16,32) (0,32)
19:32
< Tarinaky>
I'm thinking of having an external image for no other reason than to make it easier to replace later.
19:32
<@ToxicFrog>
What the equivalent python code is depends on what drawing library you're using (eg, pyglet vs pygame vs cairo vs...)
19:33
< Tarinaky>
So trying to figure out 1) What formats can I import with pygame
19:33
<@Vornicus>
But that's clearly a data thingy.
19:33
< Tarinaky>
2) How to make it in that format.
19:33
< Tarinaky>
3) How to import it from that format.
19:33
<@Derakon>
Import OpenGL.GL as GL; GL.glBegin(GL.GL_LINE_LOOP); GL.glVertex2f(0, 0); GL.glVertex2f(.5, 1); GL.glVertex2f(1, 0); GL.glEnd()
19:33
<@Vornicus>
Tarinaky: PNG, among others.
19:33
<@ToxicFrog>
If you want to make it an external image, the 'convert' or 'ghostscript' commands can both turn postscript into raster images.
19:33
< Tarinaky>
4) How do I do rotation efficiently.
19:33
<@Derakon>
But yeah, just use an image, and use PyGame to load and display.
19:33
<@ToxicFrog>
If you're using pygame, the documentation should tell you, but I can tell you off the top of my head that PNG, GIF and JPEG are all supported.
19:33
<@ToxicFrog>
...rotation?
19:34
<@Derakon>
Lunar Lander does require rotation of the lander.
19:34
< Tarinaky>
ToxicFrog: So that the image matches the orientation of the lander.
19:34
<@Vornicus>
It does?
19:34
<@Vornicus>
I never needed it.
19:35
<@Derakon>
Vorn: a misaligned lander crashes when it hits flat terrain.
19:35
<@Vornicus>
or, rather, saw it.
19:35
<@Derakon>
I suppose it depends on the implementation.
19:35
<@Derakon>
Most ones I've seen have rotate left, rotate right, and thrust as the only inputs.
19:36
<@ToxicFrog>
The one I played -may- have had rotate commands, but if so I never knew it
19:36
<@ToxicFrog>
It was all about balancing vertical thrust
19:36
< Tarinaky>
http://www.atari.com/arcade/lunar_lander
19:36
<@Vornicus>
Mine always had x and y thrust controls.
19:36
<@Derakon>
That sounds a lot easier. ?.?
19:36
<@ToxicFrog>
Anyways, Tarinaky, pygame allows you to rotate surfaces; you won't need to do it by hand.
19:37
<@Derakon>
You could also use OpenGL for drawing vectors instead, but honestly I strongly recommend starting with PyGame.
19:37
<@Derakon>
It abstracts away a lot of the details that you shouldn't be bothering yourself with until you've sorted out the larger design issues.
19:39
< Tarinaky>
tmp>>echo "32 32 scale 0 0 moveto 0.5 1 lineto 1 0 lineto closepath fill" | convert - ship.png
19:39
< Tarinaky>
convert: no decode delegate for this image format `/tmp/magick-XX2q0lR1' @ error/constitute.c/ReadImage/532.
19:39
< Tarinaky>
convert: missing an image filename `ship.png' @ error/convert.c/ConvertImageCommand/2970.
19:39
< Tarinaky>
>.<
19:40
<@Derakon>
...
19:40
<@Derakon>
Convert can't recognize what filetype you're using if you just toss it a bare string.
19:40
<@ToxicFrog>
Tarinaky: 'man convert', perhaps?
19:41
<@Derakon>
Put it in a file with the extension ".ps", and you'll need ghostscript installed if my attempt is any indication.
19:41
<@ToxicFrog>
Or, you know, learn some postscript, play around with the interactive interpreter, experiment with gs
19:41
<@ToxicFrog>
That is to say, learn, rather than just whacking pieces of data around without understanding them.
19:41
< Tarinaky>
ToxicFrog: See. This is why I wanted to avoid doing anything graphical.
19:41
< Tarinaky>
It just turns into a total timesink :/
19:42
<@Derakon>
It's not a timesink.
19:42
<@Derakon>
It's educational.
19:42
<@ToxicFrog>
Alternately, open up any graphics editor, use the "triangle" tool, call it a day.
19:42
<@ToxicFrog>
But then you won't learn postscript.
19:42
< Tarinaky>
ToxicFrog: I can never get an equilateral triangle with those tools.
19:42
<@Derakon>
Then learn postscript.
19:42
<@McMartin>
If you want a truly equilateral triangle you will need OpenGL or similar because aspect ratios will otherwise get you
19:42 * jerith should learn postscript sometime.
19:42
< Tarinaky>
brb, food.
19:43
<@McMartin>
Not to mention irrational numbers.
19:43
<@Derakon>
If the tools you know how to use can't do the job you want to do, then learn to use new tools.
19:43
<@Derakon>
McM: Let's settle for "close enough" for now, aye? I don't want to try to help him debug OpenGL problems over IRC.
19:43
<@McMartin>
True, but I also don't want to hear three weeks of "my ship looks all squat =("
19:43
<@Derakon>
Since we'll only ever get as far as "Okay, it's running...and it's a black screen".
19:50
<@Vornicus>
speaking of opengl I should look into pyglet, as I never actually managed to get PyOpenGL's prereqs working.
19:50
<@Derakon>
I did...but I don't remember how. ?.?
19:51 aoanla [AndChat@2D9A5E.989619.671B34.A8F381] has joined #code
19:51
<@Derakon>
Heyo, caps.
19:51
< Tarinaky>
I don't particularly want to learn postscript though. :/
19:51
< aoanla>
yo
19:51
<@Derakon>
Tough shit.
19:51
<@Vornicus>
Postscript is refreshing.
19:51
<@Derakon>
There are things you must do that you don't want to do, to be able to do the things you want to do.
19:52
<@Derakon>
So you can either buckle up and get it done, or decide you actually don't want to do it.
19:52
<@Vornicus>
I spent a couple weeks putting together art for Vornsettlers, and it was really, really pretty.
19:52
<@Derakon>
I remember that.
19:52
< Tarinaky>
Also - why has postscript given me a massive piece of paper with a tiny triangle bunched up in the corner :/
19:52
<@Derakon>
You generated like five different scale factors by changing one number.
19:53
<@Vornicus>
Because you didn't tell it how big of a canvas to use.
19:53
<@Derakon>
Postscript presumably defaults to a scale appropriate for print, which means very large DPI.
19:54
<@Derakon>
I would expect, at minimum, a 2550x3300 canvas.
19:54
<@Vornicus>
No, it defaults to 72 points per inch, but thinks in subpixel values.
19:54
< Tarinaky>
Also - the gs interactive prompt is useless - it doesn't support the cursor keys xD
19:54
<@Derakon>
Vorn: ah? Okay.
19:54
<@Vornicus>
It also assumes letter size.
19:54
<@Derakon>
Letter size...is that 8.5x11?
19:55
<@Derakon>
(2550x3300 is 8.5x11*300)
19:55
<@Vornicus>
Der: actually I think my /crowning/ achievement was the ten number tokens and the six dice.
19:55
<@Derakon>
Heh.
19:55
<@Derakon>
With the pips automatically calculated.
19:56
< Tarinaky>
convert -size 32x32 foo.ps ship.png still gives me the same problem.
19:56
<@jerith>
Dammit. Now I want to learn postscript.
19:56
<@jerith>
But I've just fixed some Python stuff which was a distraction from the Android dev that I was doing instead of learning Smalltalk...
19:57 * jerith is reminded of the Shinybot.
19:57
<@ToxicFrog>
Tarinaky: as in it gives you a huge image with a small triangle? Or as in it gives you a small image with a smaller triangle?
19:57
< Tarinaky>
ToxicFrog: Huge canvas, small triangle.
19:58
< Tarinaky>
What I'm trying to get out of it is a triangle in the centre of a canvas that is as wide and tall as the triangle itself.
19:58
<@Derakon>
Convert is taking your postscript image and converting it pixel-for-pixel into a PNG image.
19:58
<@Derakon>
So why are you surprised that handing it an image with a tiny triangle results in an image with a tiny triangle?
19:58
<@ToxicFrog>
Tarinaky: research the "crop" option to convert.
19:58
<@Derakon>
Or get Postscript to generate the input image you want.
19:58
<@ToxicFrog>
Alternately, learn enough about postscript to specify the page size.
19:59
<@ToxicFrog>
Or about ghostscript specifically - try search the man page for "DEVICEWIDTH" and "DEVICEHEIGHT"
20:00
< Tarinaky>
convert -crop 32x32 foo.ps ship.png changed nothing :/
20:00
< Tarinaky>
Am I missing something really silly here?
20:00
<@Derakon>
You are not understanding how crop works.
20:00
< Tarinaky>
The manual says -crop geometry
20:01
<@Derakon>
http://www.imagemagick.org/script/command-line-options.php#crop
20:01
< Tarinaky>
-crop geometry cut out a rectangular region of the image
20:01
<@Derakon>
Did you read up what it meant by "geometry"?
20:02
< Tarinaky>
widthxheight Maximum values of height and width given, aspect ratio preserved.
20:02
<@Derakon>
Now, go read what crop says it does if the x and y offsets are not present.
20:04 * Vornicus should learn his way around imagemagick.
20:04
<@Derakon>
Indeed.
20:05
<@Derakon>
I made my GIANT SPACE COLLAGE using only it and Preview.
20:06
< Tarinaky>
I don't understand.
20:10
<@Vornicus>
What precisely don't you understand.
20:10
<@Derakon>
You don't understand what crop does when you don't specify offsets?
20:10
< Tarinaky>
Correct.
20:10
< Tarinaky>
I also don't understand how I'm meant to specify an offset.
20:10
<@Derakon>
"If the x and y offsets are omitted, a set of tiles of the specified geometry, covering the entire input image, is generated. "
20:11
<@Derakon>
So if you just say "crop 32x32" then it will cover the entire image with 32x32 tiles, and generate an image for each.
20:11
< Tarinaky>
Oh.
20:11
< Tarinaky>
Right.
20:11
< Tarinaky>
Duh.
20:11
< Tarinaky>
Well, that won't do :/
20:11
<@Derakon>
"{size}{+-}x{+-}y"
20:11
<@Derakon>
That's the geometry syntax for size and offsets.
20:11 jeroid [jerith@687AAB.5E3E50.724FA3.672D9F] has joined #code
20:12 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has left #code []
20:12
< Tarinaky>
convert: invalid argument for option `-crop': 32x32+32y @ error/convert.c/ConvertImageCommand/1089.
20:12
< Tarinaky>
convert: invalid argument for option `-crop': 32x32+0x+32y @ error/convert.c/ConvertImageCommand/1089.
20:12
< Tarinaky>
Ahah.
20:13
< Tarinaky>
That's what you meant.
20:13
<@Derakon>
Got it working?
20:13
< Tarinaky>
Nope.
20:13
< Tarinaky>
Now I have an empty image.
20:13 * Derakon facepalms.
20:13
< Tarinaky>
I hate graphics :/
20:14
<@Vornicus>
Maybe we should learn to crop from playing around with Lenna.
20:14
<@Derakon>
(http://en.wikipedia.org/wiki/Lenna)
20:15
< Tarinaky>
It's not even giving me a blank/white image.
20:16
< Tarinaky>
It's giving me a square of transparency with the layer boundry to the right of that.
20:16
< Tarinaky>
Which is just completely wrong.
20:16 AndChat| [AndChat@37647E.0002A6.6691A5.FBC99B] has joined #code
20:18 AndChat- [AndChat@2D9A5E.989619.671B34.A8F381] has joined #code
20:19 aoanla [AndChat@2D9A5E.989619.671B34.A8F381] has quit [Client closed the connection]
20:22 AndChat| [AndChat@37647E.0002A6.6691A5.FBC99B] has quit [Ping timeout: 121 seconds]
20:27
< Tarinaky>
Don't suppose anyone knows what I'm doing wrong here? Because I'm completely flummoxed by the challenge of drawing a triangle :/
20:28
<@Derakon>
Download the Lenna image and try cropping against it instead.
20:28
<@Derakon>
It's much easier to test this kind of thing when you have a pattern that fills the entire image.
20:28
<@Derakon>
Anyway, lunchtime.
20:29
< jeroid>
Lens! \o/
20:29
< jeroid>
Umm, Lena!
20:29
< jeroid>
Silly autocorrect.
20:30
< Tarinaky>
... 32x32+0+0 gives me a square of orange.
20:30
< Tarinaky>
Also, my space bar is broken.
20:31
< Tarinaky>
So not really very helpful :/
20:31
< jeroid>
How broken?
20:32
< Tarinaky>
The metal bar thing that distributes the pressure on it popped out of the key when I slammed my hand onto the keyboard in frustration of my inability to tab-complete a filename.
20:32
< Tarinaky>
I've managed to pop it back in though.
20:34 AndChat- [AndChat@2D9A5E.989619.671B34.A8F381] has quit [[NS] Quit: ]
20:35
< Tarinaky>
I've been at this an hour and it's just frustrating me :/
20:36
< Tarinaky>
(0,0) (0.5,1) (1,0) I just want to draw the lines joining those 3 bloody points.
20:36 * Tarinaky seethes.
20:38 RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has joined #code
20:38
<@ToxicFrog>
Tarinaky: yes, it's giving you a square of orange. Try 256x256+0+0 and see what it gives you.
20:39
< Tarinaky>
Right. That gives me her hat.
20:39
<@ToxicFrog>
Then reread the documentation for crop and play with the -gravity option to crop from different corners.
20:41
< Tarinaky>
See, why couldn't you have pointed me at the gravity option an hour ago >.>
20:42 jeroid [jerith@687AAB.5E3E50.724FA3.672D9F] has quit [[NS] Quit: Bye]
20:42
< Tarinaky>
How do I replace the fill with just the lines?
20:42
< Tarinaky>
In the postscript file.
20:42
<@Vornicus>
stroke
20:42
<@Vornicus>
instead of fill
20:43
< Tarinaky>
The PNG file specifies an offset that caused the layer to be positioned outside the image.
20:44
< Tarinaky>
Oh. Never mind, nothing to do with stroke.
20:44
< Tarinaky>
It's just decided to stop working for fill as well :/
20:45
< Tarinaky>
convert -gravity SouthWest -crop 32x32+0+0 foo.ps ship.png loads fine in xzgv but gimp refuses to open ship.png
20:46
<@ToxicFrog>
Try +repage after -crop?
20:46
<@ToxicFrog>
Or possibly use a stupider image format than PNG
20:47
<@ToxicFrog>
Also, I didn't point you at -gravity for two reasons:
20:47
<@ToxicFrog>
(1) I was AFK
20:47
<@ToxicFrog>
(2) -gravity is mentioned several times in the documentation for -crop and I assumed that you would have the initiative and curiousity to look at it without prompting
20:48
< Tarinaky>
I was too busy being confused with the geometry documentation.
20:48
< Tarinaky>
Stroke fills the entire image with black :/
20:49
< Tarinaky>
strokepath fills the entire image with white >.>
20:52
<@Vornicus>
Change the pen size
20:52
<@ToxicFrog>
I think you have to set the line width.
20:52
<@ToxicFrog>
I don't remember how to do that because I never use stroke~
20:52 * Vornicus has it here!
20:52
< Tarinaky>
I'm playing with setlinewidth but it doesn't seem to be doing anything.
20:52
<@Vornicus>
<num> setlinewidth
20:52
<@Vornicus>
try 1 32 div setlinewidth
20:52
<@Vornicus>
er
20:52
<@Vornicus>
"1 32 div setlinewidth", is the whole statement
20:53
< Tarinaky>
Ahah.
20:53
< Tarinaky>
What does 1 32 div mean?
20:53
<@ToxicFrog>
1/32.
20:53
<@ToxicFrog>
Postscript is a stack language; operands are pushed onto a stack, operators pop their arguments from the stack and push results.
20:54
<@ToxicFrog>
Try entering that one command at a time in the interactive mode and entering 'stack' between each one to display the stack contents.
20:54
< Tarinaky>
I was trying with 1 setlinewidth expecting 1 pixel :/
20:54
<@ToxicFrog>
In general it operates in generic measurement units, not pixels; the code I gave draws the triangle in a 1x1 square.
20:55
<@ToxicFrog>
The '32 32 scale' applies a 32x scale factor to it so you end up with a 32x32px image.
20:56
< Tarinaky>
Hmm. I don't think stroke is what I want to be doing anyway now I think about it.
20:56
<@ToxicFrog>
Oh?
20:56
< Tarinaky>
What I want really is a triangle with part of it cut out.
20:57
< Tarinaky>
If I just make the stroke thick it saturates on the corners.
20:58
< Tarinaky>
If I wanted a triangle that was say... half the size but centred on the bigger triangle, would adjusting the scale achieve what I wanted/
20:58
< Tarinaky>
Or would the triangle be anchored to the bottom-left?
20:59
<@ToxicFrog>
Yes, but you can fix that with "translate"
21:01
<@Vornicus>
0.5 0.5 translate 8 8 scale 1 4 div setlinewidth -1 -1 moveto 1 -1 lineto 0 1 lineto closepath stroke
21:05
< Tarinaky>
This guide I'm cribbing from is unclear how rgb values are specified.
21:05
< Tarinaky>
Are they 0->255 or 0->1 or Hex or...?
21:06
<@Vornicus>
0 to 1
21:06
<@Vornicus>
Make sure you set the color space first
21:06
<@Vornicus>
"/DeviceRGB setcolorspace"
21:07
< Tarinaky>
convert: missing an image filename `ship.png' @ error/convert.c/ConvertImageCommand/2970.
21:07
< Tarinaky>
tmp>>vim foo.ps
21:07
< Tarinaky>
1 /DeviceRGB setcolorspace
21:07
< Tarinaky>
2 32 32 scale 0 0 moveto 0.5 1 lineto 1 0 lineto closepath 0 0 0 setrgbcolor fill
21:07
< Tarinaky>
3 0.5 0.5 translate 8 8 scale -1 -1 moveto 1 -1 lineto 0 1 lineto closepath 1 1 1 setrgbcolor fill
21:08
< Tarinaky>
Whoops. I only meant to paste in those last 3 lines.
21:08
< Tarinaky>
(Ignore the error, it's from ages ago)
21:08
< Tarinaky>
That ps file is giving me a blank image.
21:10
<@Vornicus>
what's your scale in the second one there for.
21:10
< Tarinaky>
It's what you gave me.
21:10
<@Vornicus>
Yes, but it assumes a /fresh/ document
21:10 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
21:11
< Tarinaky>
... What do I want then?
21:11
< Tarinaky>
I want the second triangle to 'cut out' the middle of the first one.
21:12
<@Vornicus>
All right, so set up the second triangle's coordinates in the space of the original scale.
21:12
< Tarinaky>
So get rid of translate and scale then?
21:12
<@Vornicus>
Yeah, and then change the coordinates appropriately.
21:13
<@Vornicus>
you'll want 0.25 for -1, 0.75 for 1, and 0.5 for 0, for the second triangle's coordinates.
21:19
< Tarinaky>
Thanks.
21:19
< Tarinaky>
I've got what I wanted now \o/
21:22
<@Vornicus>
While we're in there you can actually set up the image size within the ps file. "<< /PageSize [ 32 32 ] >> setpagedevice", make that before the setcolorspace line.
21:22
<@Derakon>
Hm. Math/arrays question time.
21:22
<@Derakon>
I have two arrays of image data -- each entry in the array is the brightness of a pixel (greyscale).
21:22
<@Vornicus>
ok.
21:22
< Tarinaky>
In truth. By the time I've learned how to do anything with this image in pygame I'm going to have totally forgotten postscript.
21:23
<@Derakon>
I take each array and divide it bit its max value, then subtract the one from the other, take the absolute value, and sum the result.
21:23
<@Derakon>
This gives me a metric that tells me how different the two are.
21:23
<@Derakon>
I then changed it so that, before dividing by the max, I subtract off the min (since it turns out most of the values have 1000 added to them) to rebase. This gets me a metric with better distribution, yes?
21:24
<@Vornicus>
hnnnnn.... not.... really.
21:24
<@Vornicus>
Remember you have to handle gamma.
21:24
<@Derakon>
Now, I wanted to compare two methods of aligning these two arrays. With the first metric, one of my sets of three test arrays scored better with method B than method A. With the second metric, method A consistently scored better.
21:24
<@Derakon>
How is that possible?
21:25
<@Derakon>
Or, to use symbols and more newlines: http://paste.ubuntu.com/466127/
21:26
<@Derakon>
Tweaked slightly: http://paste.ubuntu.com/466128/
21:28
<@Derakon>
How do you mean, gamma?
21:30 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
21:32 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Client closed the connection]
21:32 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
21:32
<@Derakon>
Hm, all I can think of is that the alignment algorithm is pushing the minimum value off the edge of the image in one of the versions, causing its base to be higher.
21:36 aoanla [AndChat@Nightstar-a06f1b6e.range86-147.btcentralplus.com] has joined #code
21:43 * Tarinaky is deciding to try and make a scrolling buffer space shooter.
21:43
<@Derakon>
What happened to Lunar Lander?
21:43
< Tarinaky>
Didn't really want to.
21:43
<@McMartin>
Aaactually
21:44
<@McMartin>
Space Invaders might be a simpler project
21:44
<@Derakon>
Yeah, come to think, Space Invaders was my first game project.
21:44
<@Derakon>
(Also the only thing that was ever made with Niobium)
21:45
< Tarinaky>
I was going to go with something more like the game described in Programming Linux Games.
21:49
< aoanla>
Arkanoid was mine. But mainly because I wanted to write a bouncing projectile.
21:50
<@McMartin>
Mine was closer to Outrun than anything else, though the earliest game project I'm willing to admit to was a vertical scrolling wave shooter
21:50
<@jerith>
Lunar Lander was mine, but I didn't quite figure out collision detection.
21:51 * Tarinaky is currently trying to work out how you do colour-keys with pygame.
21:51
<@jerith>
Of course, just getting gravity working was an achievement with the maths I had back then.
21:51
<@Derakon>
Why bother?
21:51
<@Derakon>
Colorkeys let you do neat effects, but they're generally a royal pain.
21:52
< Tarinaky>
Derakon: So I can use the same image for both player ships and enemy ships by changing their colour.
21:52
<@Derakon>
You could just create two images.
21:52
<@McMartin>
That's the easiest way to do it
21:53
<@McMartin>
That said, you aren't looking for "colorkey", you're looking for "paletted image"
21:53
<@McMartin>
colorkey is how paletted images fake alpha channels
21:53
< Tarinaky>
Considering I spent 2 hours trying to draw a triangle. :/
21:53
< Tarinaky>
Also - I need to colour-key away the white background of the png too :/
21:55
<@ToxicFrog>
..or just make it transparent, since PNG supports transparency
21:55
< Tarinaky>
How do I make it transparent?
21:55
<@Vornicus>
PS doesn't really handle transparency; you can, however....
21:55
<@Derakon>
http://www.geom.uiuc.edu/events/courses/1996/cmwh/Stills/manipulating.html#Trans parency
21:56
<@Vornicus>
...That'll actually leave you white-point jaggies, don't do it that way
21:56
<@Derakon>
In general you want to generate the image with a transparent background to start with.
21:56
<@Derakon>
But honestly, graphics quality should be the least of your concerns.
21:57
<@Derakon>
You could have started programming this hours ago if you'd been willing to settle for the output of a paint program.
21:57
< Tarinaky>
I'm not though.
21:57
<@Derakon>
And yet you're using a triangle as a game graphic.
21:57
< Tarinaky>
I'd rather have something I'm not ashamed to look at.
21:57
<@Vornicus>
0 0 moveto 0.5 1 lineto 0.5 0.75 lineto 0.25 0.25 lineto 0.75 0.25 lineto 0.5 0.75 lineto 0.5 1 lineto 1 0 lineto closepath fill
21:57
< Tarinaky>
Derakon: There's a difference between simplicity and looking like arse.
21:57
<@jerith>
Didn't we bully him into Doing The Right Thing?
21:58
<@Derakon>
Jerith: As I recall, we basically said "you can settle for what's easy, or you can learn to do what's hard; it's up to you"
21:58
<@jerith>
Ah.
21:59
<@jerith>
http://mail.python.org/pipermail/python-list/2010-June/1247889.html
22:00
< Tarinaky>
convert: unrecognized option `-transparency' @ error/convert.c/ConvertImageCommand/2807.
22:00
<@Derakon>
Tarinaky: well, that page was written in '96.
22:00
<@Derakon>
I didn't bother testing it.
22:00
<@Derakon>
I'm sure Google can turn up something more modern.
22:00
<@Derakon>
Jerith: >.<
22:03
< Tarinaky>
surfaceShip.set_palette((255,255,255))
22:03
< Tarinaky>
ValueError: takes a sequence of integers of RGB
22:04
< Tarinaky>
:/
22:04
< Tarinaky>
Correct me if I'm wrong. Isn't that a sequence of integers of RGB?
22:04
<@Derakon>
Nope.
22:04
< Tarinaky>
What would a sequence of integers of RGB be then?
22:04
<@Derakon>
It's a tuple.
22:04 * Derakon ducks.
22:05
<@Derakon>
Have you tried just passing 255,255,255 instead of tuple-izing it?
22:05
< Tarinaky>
Yes.
22:05
< Tarinaky>
It complains that it expects 1 argument and not 3.
22:05
<@Derakon>
Okay, try passing a list instead then.
22:05
<@Derakon>
Oh, wait, no.
22:05
< Tarinaky>
What's a list?
22:05
<@Derakon>
[foo, bar, baz]
22:05
<@Derakon>
But that's not right, assuming I'm reading the docs right.
22:06
<@Derakon>
Surface.set_palette([RGB, RGB, RGB, ...]): return None
22:06
<@Derakon>
What do you think "RGB" means here?
22:06
< Tarinaky>
surfaceShip.set_palette([255,255,255])
22:06
< Tarinaky>
ValueError: takes a sequence of integers of RGB
22:06
<@Derakon>
More to the point, what do you think a palette is?
22:06
< Tarinaky>
A sequence of numbers refering to positions in RGB colour space?
22:06 * Tarinaky shrugs.
22:07
<@Derakon>
Positions.
22:07
<@Derakon>
Plural.
22:07
<@Derakon>
What did you provide?
22:07
< Tarinaky>
A position?
22:07
<@Derakon>
Singular.
22:08
< Tarinaky>
So surfaceShip.set_palette([(0,0,0),(255,255,255)]) then?
22:08
<@Derakon>
Why don't you give it a shot and see?
22:09
< Tarinaky>
I did.
22:09
< Tarinaky>
It stopped throwing an error but it still wasn't drawing anything visible.
22:09 * Derakon shrugs.
22:09
<@Derakon>
I've never used palettized surfaces before.
22:19
< Tarinaky>
Oh dur. I need to flip it.
22:19
<@Vornicus>
yeah, flip? useful.
22:20 * Derakon tries to think of a good icon to use for the "Nano" computer, which controls several moving parts for the microscope (including slide motion, mirror orientations, a diffraction filter, and so on)
22:21
<@Derakon>
I have eyes for the camera computers, a power plug for the program that turns the lasers on and off, and of course a microscope for the GUI program...
22:23
<@Vornicus>
a robot joint, with movement lines.
22:24
<@Derakon>
One of my coworkers suggested a guy running.
22:27 Netsplit *.net <-> *.split quits: simon_, Zed, @Vornicus, Alek, @Kazriko, SmithKurosaki, @jerith, @AnnoDomini, @Reiver
22:28 Netsplit over, joins: SmithKurosaki
22:28 Netsplit over, joins: Vornicus
22:28 Vornicus is now known as 459AAAO7P
22:28 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
22:28 Netsplit over, joins: ~Reiver, @jerith, @Kazriko, simon_, @AnnoDomini, Alek, Zed
22:28 ServerMode/#code [+oooqoo Vornicus Kazriko Reiver Reiver jerith AnnoDomini] by *.Nightstar.Net
22:28 mode/#code [+o Syloqs-AFH] by Reiver
22:28
<@Derakon>
Now I need one for our "DSP" computer, which we use as a voltage source.
22:29
<@Derakon>
That is, it is programmed to send precise voltages to various devices at precisely-timed intervals.
22:30
< Tarinaky>
Derakon: A green sine wave?
22:30
<@Derakon>
Maybe a remote control?
22:31
< Tarinaky>
Oh wait. Digital. Square wave then.
22:31 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
22:32
<@Derakon>
Actually, this might work well: http://office.microsoft.com/en-us/images/results.aspx?qu=heart+monitor#ai:MC9003 03795|
22:33 * TheWatcher /me vaguely wonders what the submission process is to get modules into CPAN, never having tried it before, rather suspects he'd have to use POD instead of doxygen-style documents, though >.<
22:33
< 459AAAO7P>
Clear all filters and try again!
22:33
<@TheWatcher>
... how did I manage a double-me O.o
22:34 459AAAO7P is now known as Vornicus
22:34
<@TheWatcher>
Ugh, yes, I would. Sod.
22:35
<@Derakon>
POD is, I assume, a Perl-specific documentation syntax?
22:35
<@McMartin>
Yes, roughly equivalent to Python doc strings.
22:36
<@TheWatcher>
Yeah, and it's nigh-unreadable, IMO
22:37 * jerith has been writing ReST-style docstrings for Sphinx recently.
22:37
<@jerith>
They're horrible.
22:37
<@jerith>
I much prefer epydoc or pydoctor, but.
22:39
<@McMartin>
This sounds like a meaning of "REST" I'm not familiar with. Can you unpack that?
22:40
<@jerith>
ReStructured Text.
22:40
<@jerith>
A not-very-markup.
22:40
<@McMartin>
Aha
22:40 * McMartin is unfamiliar with it, obviously
22:41
<@jerith>
Which means, of course, that the actual markup bits are clunky.
22:41
<@TheWatcher>
Derakon: for example, try to read this without using something that does syntax highlighting, and pick out which bits are code and which are document http://cpansearch.perl.org/src/BLBLACK/Term-Spinner-0.01/lib/Term/Spinner.pm
22:41
<@jerith>
http://sphinx.pocoo.org
22:41
<@Derakon>
TW: erk
22:42
<@jerith>
Although ReST is a separate thing that Sphinx just happens to use.
22:42 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
22:43
<@jerith>
TW: It's Perl. All the bits are both code and document, and some of them are also emo poetry.
22:44
<@Derakon>
Okay, I now have eight bits of clipart to use as launch icons.
22:44
<@Derakon>
Jerith: I'd think that Perl would tend towards heavy metal rather than emo.
22:44
<@jerith>
Derakon: Did you ever see that script that was also poetry?
22:44
<@Derakon>
(microscope, zeerust lasergun, power cord, eye, heart monitor, runner, drill, remote control)
22:45
<@Derakon>
Jerith: are you referring to the language Shakespeare?
22:45
<@Derakon>
Or to an obfuscated Perl program?
22:47
<@jerith>
http://en.wikipedia.org/wiki/Black_Perl
22:47
<@Derakon>
Ah, I had not seen that.
22:50
<@McMartin>
(Where does the term "Zeerust" come from, anyway?)
22:51
<@Derakon>
TVTropes sources it to The Meaning of Liff.
22:52
<@McMartin>
I've never heard of that either =/
22:52
<@McMartin>
Is this lolTVT or something I should have heard of~
22:52
<@Derakon>
It's a book put out by Douglas Adams and John Lloyd that makes up meanings for underutilized words.
22:52
<@McMartin>
Aha
22:53
<@Derakon>
http://folk.uio.no/alied/TMoL.html apparently has some entries though it lacks Zeerust.
22:53
<@jerith>
There's also The Deeper Meaning of Liff.
22:57
<@TheWatcher>
Dera: that link is a somewhat pathological case, but is a good example of why I detest POD, and comment all my code like http://pastebin.starforge.co.uk/324
22:57
<@Derakon>
It doesn't hurt to have syntax highlighting~
22:57
<@TheWatcher>
(that's a comparable trivial example, without usage example at the top)
22:58
<@TheWatcher>
meh, look at the text box at the bottom, then ;P
22:58
<@Derakon>
:p
22:59
<@Derakon>
But yes, having a character at the beginning of every comment line does make it easier to recognize what parts are comments.
23:02 * Derakon eyes the UCSF timesheet website, which is unable to allocate vacation time in more than 24-hour blocks.
23:03
<@Derakon>
I'm tempted to break my week-and-a-half vacation into three chunks.
23:03
<@Derakon>
I don't think my boss would get it though.
23:04
<@Derakon>
...now I have about twice as much sick time banked away as vacation time.
23:05
<@Derakon>
(Three chunks as you only actually need 8 hours per day...)
23:05 Attilla [Attilla@Nightstar-60d26056.threembb.co.uk] has joined #code
23:05 mode/#code [+o Attilla] by Reiver
23:06
<@McMartin>
This is one reason why a lot of places shift over to generic PTO.
23:08
<@Derakon>
Really?
23:08
<@Derakon>
I've just generally had bosses who didn't care if I took sick leave as vacation.
23:09
<@McMartin>
Well, sure, but if you're going to do that, you might as well be honest baout it
23:09
<@Derakon>
Heh.
23:18 * Derakon eyes MacPorts, which, after install, is not in his path.
23:18
<@Derakon>
In fact, I can't find it anywhere.
23:19
<@Derakon>
...oh, wait, it's in /opt. Oookay.
23:25 AndChat| [AndChat@37647E.0002A6.6F1B60.78F38C] has joined #code
23:25 AndChat| [AndChat@37647E.0002A6.6F1B60.78F38C] has quit [[NS] Quit: ]
23:27 TarinakyKai [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code
23:28
<@jerith>
/opt/local, yes.
23:28 aoanla [AndChat@Nightstar-a06f1b6e.range86-147.btcentralplus.com] has quit [Ping timeout: 121 seconds]
23:29
<@TheWatcher>
...
23:29
<@TheWatcher>
wut
23:29
<@TheWatcher>
What's wrong with /usr/local ? O.o
23:30
< TarinakyKai>
It's not SPESHUL enough,
23:30
<@McMartin>
MacPorts insists on having its own copies of every utility ever, and so it can't risk stomping the versions OS X actually ships with.
23:30
<@TheWatcher>
I.. see,
23:30
<@jerith>
TheWatcher: macports is explicitly third-party stuff.
23:30 Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Ping timeout: 121 seconds]
23:30
<@McMartin>
Yes
23:30
<@McMartin>
Third-party stuff like Perl
23:30
<@Derakon>
Isn't that what /usr/local is for, though?
23:30
<@McMartin>
Which it insists on compiling from source -_-
23:31
< TarinakyKai>
Right. Good night folks.
23:31
<@jerith>
Because you can't trust system perl to be what you expect.
23:31
< TarinakyKai>
And thanks for being patient with me.
23:31
<@jerith>
'Night TarinakyKai.
23:31 TarinakyKai [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed]
23:32
<@jerith>
More to the point, a lot of Mac OS system-provided stuff is... quirky.
23:32
<@McMartin>
Well
23:32
<@McMartin>
It's BSD which sometimes diverges from Linux expectations
23:32
<@McMartin>
The thing is, so is Ports!
23:36
<@jerith>
macports likes to control the horizontal and the vertical, because it makes its world a little more consistent.
23:36
<@McMartin>
Where by "consistent", ime, we mean "can't install anything because it has some configuration flaw seven levels deep in your dependencies"
23:37
<@jerith>
Where do you put your own Python packages if you're using system Python?
23:37
<@McMartin>
I have yet to successfully use MacPorts without hand-hacking the repo file scripts
23:37
<@Derakon>
Bah. After all that to install ghostscript, I can't because my version of Xcode is too old to build zlib, of all things.
23:38
<@jerith>
macports was thoroughly broken for a few months after Snow Leopard, because a bunch of stuff suddenly became 64-bit obly.
23:41 * Derakon eyes Apple, which wants him to reregister to download the frickin' thing again.
23:41
<@Derakon>
You already have my information, you hor!
23:41
<@Derakon>
Oh look, and a new 50-page agreement.
23:41
<@Derakon>
Viewable through a ten-line-tall text box.
23:43 * Derakon blinks. "Go university connections. I'm getting 9MBps download rates. O_o)
23:44
< Vornicus>
Shiny.
23:44
< PinkFreud>
Derakon: quite possibly I2, if both your uni and your download source participate.
23:46
<@Derakon>
Could be, could be.
23:46
<@jerith>
http://en.wikipedia.org/wiki/File:Itanium_Sales_Forecasts_edit.png
23:48
<@Derakon>
Cute.
23:55 Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving]
--- Log closed Tue Jul 20 00:00:14 2010
code logs -> 2010 -> Mon, 19 Jul 2010< code.20100718.log - code.20100720.log >