code logs -> 2012 -> Sat, 19 May 2012< code.20120518.log - code.20120520.log >
--- Log opened Sat May 19 00:00:05 2012
00:15
<@TheWatcher[zZzZ]>
I don't think that makes you a bad program; that makes Qt Designer a bad program ¬¬
00:15
<@TheWatcher[zZzZ]>
*bad person'
00:15
<@TheWatcher[zZzZ]>
yeah, I should be sleping -_-
00:15
<&McMartin>
Well, it's not really a bad program
00:16
<&McMartin>
For *initial setup* it would have been easier
00:16
<&McMartin>
But it's easier to edit XML than it is to look up how to change the things I want via the UI
00:16
<&McMartin>
(It helps that the XML it generates is actually sensible)
00:17
<@TheWatcher[zZzZ]>
So not glade, then~
00:18
<&McMartin>
Yeah, Qt Designer is better than Glade simply because what I have just described is actually possible~
00:18
<&McMartin>
(And in a particularly nice stroke, grid layouts deduce their size from their children so I could c/p widgets inside of it to extend it.
00:52 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
01:20
<&McMartin>
Ha ha, yay
01:20 * McMartin does the Mutant Python version of the Clojure Fibonacci thing.
01:20
<&McMartin>
def fib(n):
01:20
<&McMartin>
(i, a, b) = (1, 0, 1)
01:20
<&McMartin>
while i < n:
01:20
<&McMartin>
(i, a, b) = (i+1, b, a+b)
01:20
<&McMartin>
return b
01:22
< Rhamphoryncus>
explicit i? Evil
01:22
<&McMartin>
Otherwise it's not as close a translation from the Clojure
01:22
< Rhamphoryncus>
yeah
01:23
< Rhamphoryncus>
It's actually kind of clever
01:23
< Rhamphoryncus>
You probably know the idiomatic python from would use xrange
01:23
<&McMartin>
It's true that if you were to go *more* pythonic you could do a for i in xrange(n) and remove it elsewhere.
01:23
<&McMartin>
for i in xrange(n): (a, b) = (b, a+b)
01:24
< Rhamphoryncus>
yup
01:24
<&McMartin>
But that maps to map, not loop/recur, and loop/recur is the more Clojure-y way of doing it.
01:24
< Rhamphoryncus>
Part of me wishes that was for xrange(n): (a, b) = (b, a+b)
01:25
<&McMartin>
Sadly, the dotimes stuff in Lisps tends to be over-imperative
01:25
< Rhamphoryncus>
Yo
01:25
< Rhamphoryncus>
You might be able to omit the parenthesis. I can't recall the exact rules
01:25
<&McMartin>
You'd want something like "self-compose this function 20 times" for the Proper Abbreviated Lisp Variant
01:26
<&McMartin>
The Mutant Python here is problematic compared to Clojure because it's doing explicit state assignment. The Clojure version isn't.
01:27 * Rhamphoryncus nods
01:27
< Rhamphoryncus>
I always respond to that with "but you still have state, you're just making it.. implicit.." >.>
01:28
<&McMartin>
Kiinda.
01:28
< Rhamphoryncus>
They still have state, just not *state*. Or is it the other way around?
01:28
<&McMartin>
You're making it implicit and you're also making it copy-on-write, which lets you make superior multithreaded coherency guarantees.
01:28
< Rhamphoryncus>
yeah
01:28
<&McMartin>
That's more than just syntax.
01:29
<&McMartin>
That said, yes - assignment is just a way of getting around the fact that your compiler or ABI doesn't properly handle tail call elimination in the general case. >_>
01:29
<&McMartin>
In fact, Clojure, since transparent JVM interop is a design goal, and the JVM lacks the ability to do same, has a bunch of extra looping constructs precisely for this reason >_>
01:30
< Rhamphoryncus>
It's like using message passing rather than locks. You can't have a real deadlock, but the core concept of a cyclic dependency is still quite possible. However, because it pushes you in a different direction it's less likely to happen
01:30
<&McMartin>
But it still manages to keep directly mutable state well-hidden anyway - loop/recur and trampoline both cover about 99% of the use cases.
01:30
< Rhamphoryncus>
tail call *elimination*. I like that name
01:30
<&McMartin>
It's not just tail recursion, and that's important.
01:31
<&McMartin>
Clojure can handle tail *recursion*, though it does require some syntax for it.
01:31
< Rhamphoryncus>
What's the difference?
01:31
<&McMartin>
tail recursion is literally "simultaneously reassign your paramaters and goto the start of the function"
01:31
< Rhamphoryncus>
I'm just happy it's not "optimization", which has all the wrong associations
01:32
<&McMartin>
tail call elimination says "if the last thing you do is return the value of a function call, *destroy your own stack frame before setting up the call said call*"
01:32
< Rhamphoryncus>
ah, so recursion is only self-recursion
01:32
<&McMartin>
Right
01:32
< Rhamphoryncus>
Goto works great for that, heh
01:32
<&McMartin>
One classic thing to do for the general case is to implement a state machine by having each state be a function, and you transition to the next state by tail-calling the function associated with the state you transition to.
01:33
<&McMartin>
Clojure can do that design, but it takes a little more work to set up (that's 'trampoline').
01:33
< Rhamphoryncus>
And by "great" I mean "augh, it burns! .. but it's better than the alternative"
01:33
<&McMartin>
Well, goto is what it compiles down to.
01:33
< Rhamphoryncus>
Naw, jump is what it compiles down to ;)
01:33
<&McMartin>
But depending on your function call ABI you may have to do some horrendous dickery with the stack contents to make sure that the mid-call cleanup doesn't trash the ultimate caller's state.
01:34 * Rhamphoryncus nods
01:35
<&McMartin>
But yeah, what you do with tail calls isn't really an optimization because it's actually a rather critical part of the program semantics.
01:35
< celticminstrel>
jump == goto
01:35 * Rhamphoryncus reels in celticminstrel
01:35
<&McMartin>
Most runtimes have limits on function depth, so whether or not a certain syntactic construct is or is not a function call is Actually Really Important.
01:35
< Rhamphoryncus>
jump is goto in the same sense that pure functional languages have state ;)
01:36
<&McMartin>
You troll with *nets*, not reels.
01:36
< Rhamphoryncus>
That's trawling. This was a baited hook
01:37
<&McMartin>
More seriously, most functional languages aren't pure, so there's a question of how thoroughly they segregate mutable bits away from others.
01:37
<&McMartin>
Traditionally, Lisps don't segregate it *at all* - everything that isn't an atom is mutable.
01:37 * Rhamphoryncus nods
01:37
<&McMartin>
Clojure is more ML-y about it, it looks like, with refs and atomically-updatable refs as explicitly called out data types in their own right.
01:38
<&McMartin>
That's *technically* a syntactic convenience, though in practice it makes properly optimizing parallelizable code feasible at all.
01:39 * Rhamphoryncus noddages
01:40
<&McMartin>
(Though you can do amazing things with Scheme analysis)
01:40
<&McMartin>
(But it's much nicer to use a rare type annotation to not *have* to)
01:40
<&McMartin>
(also lets you make guarantees in the presence of external code clients that may not even have been written yet)
01:43
< Rhamphoryncus>
augh
01:44
< Rhamphoryncus>
glUniformMatrix4fv(Uniforms.Modelview, 1, 0, &ModelviewMatrix.col0.x);
01:44
< Rhamphoryncus>
They're assuming the nested structs are packed such that they match a float array
01:44
<&McMartin>
\o/ C \o/
01:46
< Rhamphoryncus>
I've seen that stuff so much that C/C++ might as well add an official extension for serial-formatted containers (padding, alignment, byte order, etc).
01:46
< Rhamphoryncus>
After all it is useful, just not allowed
01:52
<&McMartin>
I guess #pragma pack isn't *official*
01:53
<&McMartin>
But where it is supported it does make the relevant guarantees.
01:55
< Rhamphoryncus>
yeah
01:55
< Rhamphoryncus>
and the equivalent GCC form
01:55
< Rhamphoryncus>
It doesn't cover byte order which is okay in this case (opengl is using system byte order), but not useful for file or network formats
02:05
<@ToxicFrog>
hton() \o/
02:05
<@ToxicFrog>
(actual answer: json \o/)
02:14
< Rhamphoryncus>
bad man :P
03:00 Kindamoody[zZz] is now known as Kindamoody
03:00
<&McMartin>
Oh hey
03:01
<&McMartin>
Clojure *does* have the "do this n times" thing, along with Haskell-like "infinite lazy sequence"
03:01
<&McMartin>
(def fib (map first (iterate (fn [[a b]] [b (+ a b)]) [1 1])))
03:01
<&McMartin>
Then you do (take 10 fib) or whatnot to get your list.
03:05
< maoranma>
"Robin Lionheart" Should I know this steam person?
03:13 * ToxicFrog tries to figure that out
03:13
< maoranma>
they're in the IFmud steam group
03:13
<@ToxicFrog>
(fn [[a b]] [b (+ a b)]) -- anonymous function (a,b) => (b, a+b)
03:14
<@ToxicFrog>
(iterate (fn...) [1 1]) -- use fn as a generator given initial argument [1 1]?
03:15
<@ToxicFrog>
(map first ...) -- map is obvious, guessing that first [x _] = x
03:16
<@ToxicFrog>
I'm not sure where the laziness occurs, though
03:21 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.]
03:49
<&McMartin>
The laziness occurs in "use fn as a generator" - generators are lazy.
03:49
<&McMartin>
If you only want 10 of that generator, you have to use take and drop, wich it took from Haskell~
03:49
<&McMartin>
Also, hello, map bindings, why aren't you in every multiparadigm language
03:50
<&McMartin>
(Answer: Because most don't have to juggle multiple kinds of object-like entities)
03:51
<&McMartin>
See, for instance, gravity here in http://www.chris-granger.com/images/lightable/game-example.png
03:52
<&McMartin>
Where gravity takes a map-like object named 'me' that has two key-like objects named vy and y, which get pre-bound to those args.
03:52
<&McMartin>
Appears to work for both maps and keys, and for objects and fields.
03:52
<&McMartin>
I wonder if it works on POJOs, though it's admittedly pretty rare for POJOs to have public fields in the first place.
03:52
< maoranma>
Got my bot to reload scripts without having to kill it each time *flexes*
03:58
<@ToxicFrog>
Aah. Map bindings.
03:58
<@ToxicFrog>
Now I know the general term for that weird feature Lua 5.2 introduced~
03:58
<@ToxicFrog>
(well, actually what it introduced was a change to how environments are handled, but as a side effect this gets you map bindings)
04:03 maoranma is now known as Noah
04:12
<~Vornicus>
pojos?
04:13 * Vornicus tries to decipher the code on that image, fails.
04:14
<~Vornicus>
oh. Plain Old Java Objects
04:14
<~Vornicus>
(which have accessors, etc)
04:25
<&McMartin>
I still am having a little trouble intuitively dealing with ->. I think it's kind of like a chain of $s in Haskell? Maybe?
04:26
<&McMartin>
But in reverse order?
04:28
<&McMartin>
TF: I've never seen it before now, so I have no idea if "map bindings" is the real name for it or if there *is* a real name for it.
04:28
<&McMartin>
In my own brainmeats I'm seeing it as an OO-y version of ML-style pattern-matching.
04:28
<&McMartin>
I'm actually kind of surprised Python doesn't already have this, if indeed it doesn't.
04:29
<&McMartin>
I'm actually getting alarmingly close to being able to read all the code in the Light Table sample photos.
04:37
<~Vornicus>
Okay I don't get map bindings
04:38
<&McMartin>
OK, so, there are three kinds of bindings I am currently aware of in Clojure.
04:38
<&McMartin>
There's the ordinary boring kind:
04:38
<&McMartin>
(defn f [a b] (+ a b))
04:38
<&McMartin>
That defines f, which takes two arguments, a and b, and sums them.
04:38
<&McMartin>
You'd invoke it with (f (a b)).
04:38
<&McMartin>
Then there's positional bindings (?).
04:38
<&McMartin>
(defn f [[a b] [c d]] (+ a b c d))
04:39
<&McMartin>
This takes two arguments, each of which is a two-argument list, and sums the four numbers: (f [1 2] [3 4]) -> 10
04:40
<&McMartin>
Abusing those two things are most of how you do tree-walking and similar in ML and related languages, since you can do an "or" on these patterns. Clojure appears to sort of have this too but I'm not clear on just how strong it is, and it doesn't seem to be intended to be used that way.
04:41
<&McMartin>
The map-based bindings in their simplest form are, if I recall the syntax right...
04:41
<&McMartin>
... actually, let me check first...
04:42
<&McMartin>
(defn f [{x :x y :y}] (+ x y))
04:42
<&McMartin>
This is equivalent, in python, to: def f(m): (x, y) = m[x], m[y]; return x+y
04:42
<&McMartin>
This is *also* equivalent, in python, to: def f(m): (x, y) = m.x, m.y; return x+y
04:43
<&McMartin>
Depending on whether you're dealing with a map or an object.
04:44
<&McMartin>
There are then a bunch of annotators to make these more convenient: :keys [x y} is short for x :x y :y, for instance, since the names and the variable names are the same, and then there's :as which lets you bind the name of the whole map (the 'm' in the python example) while still picking bits out.
04:45
< Noah>
That shit sounds complicated
04:45
<&McMartin>
It means I can define a function, pass it an object, and treat the fields of that object as variables inside the function, which means I don't have to worry as much about what is and is not a field.
04:46
<&McMartin>
It's a convenience for duck typing.
04:46
< Noah>
Uh....okay
04:46
<&McMartin>
It will make my life easier in my current project
04:47
<&McMartin>
Except for the part where I delete the incredibly verbose parts and replace it with the convenient smaller parts~
04:47
< Noah>
Sounds like a lot of work to boost your FPS in WoW.
04:56
<&McMartin>
Much the same can be said for all syntactic conveniences
05:11 * Vornicus sees now.
05:20 * Alek ponders.
05:21 * Alek ponders what languages can support a boolvar in place of an expression. for example, on an ifthen.
05:21
<@Alek>
like, IF (boolvar) THEN do this.
05:21
<@Alek>
if true.
06:33 Attilla [Obsolete@Nightstar-6adb8d7f.as43234.net] has joined #code
06:39
<&McMartin>
You mean like Java?
06:40
<~Vornicus>
Like, uh
06:41
<~Vornicus>
Everything?
06:41
<~Vornicus>
I mean, aside from languages that don't have a boolean type and even in C you can fake that.
06:41
<~Vornicus>
I mean, damn
06:41
<&McMartin>
The only languages I can think of tha tcan't are langauges that don't have booleans, and I can't think of any post-GWBASIC languages for which this is true.
06:42
<&McMartin>
Or rather
06:42
<&McMartin>
Languages that *do* have booleans but don't have boolean variables.
06:42
<&McMartin>
For which GW-BASIC is the only example I can think of.
06:42
< Noah>
GW?
06:42
<~Vornicus>
I mean seriously, the way to test for string termination in C, you go if(c)
06:43
<&McMartin>
Noah: The dialect between BASICA and QBASIC.
06:43
< Noah>
Ah
06:43
<&McMartin>
An old PC BASIC from back when there were still line numbers.
06:43
< Noah>
10: GOTO 10
06:43
<&McMartin>
drop the colon and yes, that one.
06:45
< Noah>
"The only error messages were: "WHAT?" for syntax errors, "HOW?" for arithmetic errors such as division by zero, and "SORRY" for out of memory errors."
06:45
< Noah>
Uhg, god I remember that
06:46
<&McMartin>
GW was better than that, having at least "Syntax error" and "Division by zero" and "Illegal operation".
06:47
< Noah>
WHAT?
06:47
< Noah>
*headdesk*
06:47 Attilla [Obsolete@Nightstar-6adb8d7f.as43234.net] has quit [Ping timeout: 121 seconds]
06:48
< Noah>
Still, I developed a lot of my typing skill on that stupid TRS80 Model III
06:51
< Rhamphoryncus>
Damnit C++, how can it be so awkward to pass a some objects into a function?!
06:53
<&McMartin>
Just pass a const reference to them
06:54
< Rhamphoryncus>
A reference to a vector would be perfect if I could object the objects, but they're handles to resources and thus the destructor incorporates cleanup
06:57
< Rhamphoryncus>
This is what I came up with as the closest to what I want:
06:57
< Rhamphoryncus>
std::vector<std::unique_ptr<const Shader>> shaders;
06:57
< Rhamphoryncus>
shaders.push_back(std::unique_ptr<const Shader>(new Shader(GL_VERTEX_SHADER, vertex_shader_src)));
06:57
< Rhamphoryncus>
shaders.push_back(std::unique_ptr<const Shader>(new Shader(GL_FRAGMENT_SHADER, fragment_shader_src)));
06:57
< Rhamphoryncus>
GLuint program = make_program(shaders);
06:57
< Rhamphoryncus>
obviously that's garbage
06:57
< Rhamphoryncus>
(the next step will be to replace make_program with a Program class)
06:59
< Rhamphoryncus>
What I should probably do is have the copy constructor invalidate the previous instance
07:00
< Noah>
Or yell at Bjarne
07:00
< Rhamphoryncus>
I can do that while doing the others ;)
07:03
< Noah>
In Danish?
07:10
< Rhamphoryncus>
nope
07:14 ErikMesoy|sleep is now known as ErikMesoy
07:25
< Rhamphoryncus>
So it looks like C++11 added rvalue references which help somewhat
07:26
< Rhamphoryncus>
Basically they let you overload the copy constructor based on the argument being an rvalue rather than an lvalue, which is when you typically want move semantics rather than copy
07:30 jeroid [jerith@Nightstar-0461e78d.hfc.comcastbusiness.net] has joined #code
07:34 eckse [eckse@Nightstar-f37f8545.dsl.sentex.ca] has quit [Client closed the connection]
08:02
<&McMartin>
Woo
08:02 * McMartin is rocking the BASIC-style interface here.
08:04
<&McMartin>
Rhamphoryncus: I'm thinking maybe you want boost::shared_ptr<Shader> with a custom deleter
08:04
< Rhamphoryncus>
std::unique_ptr does that in a stricter form and doesn't require boost
08:05
<&McMartin>
The whole point is that since vectors and such reallocate the stricter form is too strict
08:05
< Rhamphoryncus>
I don't see why
08:08
<&McMartin>
Vector can call copy constructors and such behind your back
08:08
<&McMartin>
Any call to push_back() or reserve() can bulk-copy all extant entries
08:09
< Rhamphoryncus>
Which should work fine: the one one invalidates the old one
08:11
<&McMartin>
I've never dealt specifically with unique_ptr, but that sounds suspiciously like auto_ptr, which was a thicket of surprise doom.
08:12
< Rhamphoryncus>
unique_ptr was specifically designed with auto_ptr in mind
08:26
< Rhamphoryncus>
... heh, I skipped llvm/clang 3.1
08:26
< Rhamphoryncus>
3.0 is the released version, and 3.1 is so close to release that trunk has already moved to 3.2
08:34
< Rhamphoryncus>
oops. Designed with auto_ptr *and* shared_ptr in mind
08:37
<&McMartin>
I was going to say, pretty sure shared_ptr was part of boost that got standardized >_>
08:46 jeroid [jerith@Nightstar-0461e78d.hfc.comcastbusiness.net] has quit [[NS] Quit: Bye]
08:52
< Rhamphoryncus>
aaand I finally got the move-constructor to work. clang was flipping out because I missed part of the operator= declaration
08:52
< Rhamphoryncus>
std::vector<Shader> shaders;
08:52
< Rhamphoryncus>
shaders.push_back(Shader(GL_VERTEX_SHADER, vertex_shader_src));
08:52
< Rhamphoryncus>
shaders.push_back(Shader(GL_FRAGMENT_SHADER, fragment_shader_src));
08:56
< Rhamphoryncus>
hrm. Initializer lists don't work with it :/
08:58
< Rhamphoryncus>
Ah. Initializer lists always contain const elements
09:42 You're now known as TheWatcher
10:03 * Rhamphoryncus wonders if he should design the whole thing to be lazy instead
10:04
< Rhamphoryncus>
setup all the parameters (which can be copied, use initializer lists, etc), then go through and compile it
10:06 Kindamoody is now known as Kindamoody|out
10:27 Attilla [Obsolete@Nightstar-6adb8d7f.as43234.net] has joined #code
12:50 Kindamoody|out is now known as Kindamoody
13:25 Attilla_ [Obsolete@Nightstar-116ac4b4.as43234.net] has joined #code
13:25 Attilla [Obsolete@Nightstar-6adb8d7f.as43234.net] has quit [Ping timeout: 121 seconds]
14:07 furhman [kapanlagi@3CBAD0.2B89A5.B5C98B.5D62BA] has joined #code
14:11 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
14:19 furhman [kapanlagi@3CBAD0.2B89A5.B5C98B.5D62BA] has quit [[NS] Quit: ]
14:30 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
14:49 Attilla_ is now known as Attilla
15:20 Kindamoody is now known as Kindamoody|out
15:38
<@TheWatcher>
Dear Opera: I am fucking sick of having to set my sans-serif font every time I restart you. Fix this shit.
15:47
<@TheWatcher>
... ah, that's why, it ignores the settings in the font dialog, and uses fontconfig's <prefer> values. Right.
15:50 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
15:51 mode/#code [+ao Derakon Derakon] by ChanServ
15:51
<@TheWatcher>
Ullo Dera
15:51
<&Derakon>
Heyo.
16:24 McMartin [mcmartin@Nightstar-40f80dd0.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds]
16:25 Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has quit [Client closed the connection]
16:25 Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has joined #code
16:31 McMartin [mcmartin@Nightstar-bc7067be.pltn13.sbcglobal.net] has joined #code
16:31 mode/#code [+ao McMartin McMartin] by ChanServ
16:55 Chi [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code
16:55 mode/#code [+o Chi] by ChanServ
16:56 Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [Ping timeout: 121 seconds]
17:01 IamSorry [IamSorry@3CBAD0.BFB526.DE12F2.A947A1] has joined #code
17:04 Derakon is now known as Derakon[AFK]
17:22 VirusJTG [Twitch@Nightstar-09c31e7a.sta.comporium.net] has joined #code
17:28 IamSorry [IamSorry@3CBAD0.BFB526.DE12F2.A947A1] has quit [[NS] Quit: ]
18:07
< ErikMesoy>
What IRC clients would you suggest for newbies?
18:07
<@Tamber>
What platform?
18:08
<@rms>
Mibbit
18:08
< ErikMesoy>
Preferably cross-platform, though I can do separate listings. This is for a forum post where I'm trying to help people get easy access to the local IRC.
18:08
<@Tamber>
...Mibbing would work also; didn't think of that.
18:08
<@rms>
As much as I hate mibfags, I have to admit, Mibbit is probably the best for newbs.
18:08
<@Tamber>
Mibbit, even.
18:09
<@Tamber>
I don't think I want to know what Mibbing is.
18:09
<@Tamber>
Probably voids a warranty, somewhere.
18:09
<@rms>
You can specifically cause it to dump them into a certain server/channel
18:10
< ErikMesoy>
Mibbit listed. Anything else you want to endorse?
18:14
<~Vornicus>
mIRC and xChat are the most popular IRC clients
18:15
<~Vornicus>
Mibbit is not really a good idea on this network: it's limited in user count the same way that normal hosts are; if you need a webchat, we have webchat.nightstar.net
18:15 Kindamoody|out is now known as Kindamoody
18:18
< ErikMesoy>
This is for the Sorcery network where one of the Exalted RPG developers has recently started hanging out. I've taken on the job of facilitating IRC-to-community communication because the dev is giving rules clarifications on IRC. While I greatly appreciate that he's giving them at all, this can be a bit hard for most people to access.
18:18
< ErikMesoy>
I've linked the Sorcery interface along with the Mibbit interface, and clients too.
18:48 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
18:52 rms is now known as Anna
18:55 ErikMesoy is now known as Prince
18:55 AnnoDomini [annodomini@A08927.B4421D.B81A91.464BAB] has joined #code
18:55 mode/#code [+o AnnoDomini] by ChanServ
18:56 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited]
19:00 EvilDarkLord is now known as Aeron
19:00 AnnoDomini is now known as Jasever
19:04 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
19:06 Kindamoody is now known as Kindamoody[zZz]
19:24
< RichyB>
Prince, qwebirc, XChat, mIRC.
19:26
< RichyB>
Prince, qwebirc is neat for tech support because it requires no installation; freenode for instance use it like so: http://webchat.freenode.net/
19:31 RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
19:40 ShellNinja is now known as Jasever_
19:40 Jasever [annodomini@A08927.B4421D.B81A91.464BAB] has quit [[NS] Quit: My other nick will continue from here.]
19:52 Chi is now known as Alek
20:11 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
20:17 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
20:18 mode/#code [+ao Derakon Derakon] by ChanServ
20:39 eckse [eckse@Nightstar-f37f8545.dsl.sentex.ca] has joined #code
20:39 mode/#code [+o eckse] by ChanServ
21:08 Prince [Erik_Mesoy@A08927.B4421D.B81A91.464BAB] has quit [Ping timeout: 121 seconds]
21:10 ErikMesoy [Erik_Mesoy@A08927.B4421D.B81A91.464BAB] has joined #code
21:11 ErikMesoy is now known as Prince
21:50 iospace [alex@Nightstar-e67f9d08.com] has joined #code
22:10 * TheWatcher embarks on of of those "If this shit works, it will be awesome, but I have no idea whatsoever if it will" endeavours, performs dark magic with perl object inheritance
22:32 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code
22:32 mode/#code [+o Vash] by ChanServ
22:33 * VirusJTG offers TW an old prise a young priest and a goat
22:33
< VirusJTG>
young priest*
22:33
< VirusJTG>
old priest*
22:34
< iospace>
schrodinger's priest?
22:57
<@TheWatcher>
Well, bugger me, it works
23:02 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
23:09
< celticminstrel>
Trying to figure out why SDL_BlitSurface is raising EXC_BAD_ACCESS...
23:09
< iospace>
OHGOD YOU DIVIDED BY-shot
23:09
< celticminstrel>
XD
23:23 RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has joined #code
23:26
< celticminstrel>
Seems to have something to do with SDL_ttf...
23:42
< celticminstrel>
In that it's only failing to blit surfaces obtained from said library.
23:51 Prince is now known as ErikMesoy|sleep
23:54 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
23:59 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
23:59 mode/#code [+o himi] by ChanServ
--- Log closed Sun May 20 00:00:22 2012
code logs -> 2012 -> Sat, 19 May 2012< code.20120518.log - code.20120520.log >

[ Latest log file ]