code logs -> 2012 -> Sat, 28 Apr 2012< code.20120427.log - code.20120429.log >
--- Log opened Sat Apr 28 00:00:45 2012
00:46 Derakon[AFK] is now known as Derakon
01:04 cpux|2 is now known as cpux
01:05
< Noah>
God this Microsoft Server 2008 book is dreadfully boring
01:06
<@Tamber>
"Microsoft Server 2008, now with added Fun."
01:06
< Noah>
It
01:06
<@Tamber>
(or should that be "!!Fun!!"?
01:06
<@Tamber>
)
01:06
< Noah>
It's as dull as river stone, and half as intriguing.
01:07 * Tamber gives Noah an IRIX server to babysit.
01:07
< Noah>
Sorry, I don't manage anything that's old enough to drink
01:08
<@Tamber>
hehe
01:09
< Noah>
A fact that my wife hasn't figured out yet
01:09
<@Tamber>
Hey, this is 6.5.18; it's nowhere near old enough to drink, yet! But it is liable to start having temper-tantrums.
01:57
< Noah>
Uhg, that's my server homework, now I get to make up some bullshit for my composition paper
01:59 maoranma [maoranma@Nightstar-087c9ef0.tn.comcast.net] has joined #code
02:00 Derakon is now known as Derakon[AFK]
02:01 Noah [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has quit [Ping timeout: 121 seconds]
02:10 Kindamoody[zZz] is now known as Kindamoody
02:14 Noah [maoranma@Nightstar-087c9ef0.tn.comcast.net] has joined #code
02:17 maoranma [maoranma@Nightstar-087c9ef0.tn.comcast.net] has quit [Ping timeout: 121 seconds]
02:17 maoranma [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has joined #code
02:17 Attilla [Obsolete@Nightstar-416d44d2.as43234.net] has quit [Ping timeout: 121 seconds]
02:19 Noah [maoranma@Nightstar-087c9ef0.tn.comcast.net] has quit [Ping timeout: 121 seconds]
02:35 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection]
02:39 maoranma [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has quit [Ping timeout: 121 seconds]
02:47 Noah [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has joined #code
02:56 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
03:01 * Vornicus checks. Noah, are you Lernu Ludi on Steam?
03:13 McMartin [mcmartin@Nightstar-71663c79.pltn13.sbcglobal.net] has quit [[NS] Quit: brb]
03:17
< Noah>
Yes
03:18
< Noah>
Hey, what's the difference between a truck-load of bowling balls and a truck-load of dead babies?
03:24
<~Vornicus>
One's a lot easier to clean up after
03:24
< Noah>
Close. You can't unload bowling balls with a pitchfork.
03:32 McMartin [mcmartin@Nightstar-71663c79.pltn13.sbcglobal.net] has joined #code
03:32 mode/#code [+ao McMartin McMartin] by ChanServ
03:41 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
03:46
< Noah>
Aww, McMartin missed my dead baby joke
03:46
<&McMartin>
Well, that's what quoting backscroll is for, sir
03:47
< Noah>
{22:18} <Noah> Hey, what's the difference between a truck-load of bowling balls and a truck-load of dead babies?
03:47
< Noah>
{22:24} <~Vornicus> One's a lot easier to clean up after
03:47
< Noah>
{22:24} <Noah> Close. You can't unload bowling balls with a pitchfork.
03:47
< Noah>
Stolen from Stephen King, who admits to stealing it from a 10 year old.
03:47
<&McMartin>
You just aren't good enough with the pitchfork.
03:47 * McMartin gets a tine in the thumbhole, pitches a strike jai alai style.
03:48
<&McMartin>
I'll give you that one's *easier* to unload with a pitchfork.
03:49
< Noah>
Or the pitchfork needs to be reeeeeeeeeaaaaaally pointy
03:49
<&McMartin>
Or super-curved.
03:50
< Noah>
Uhg, so I'm finally done with this dumb essay about why video games have turned for the worse due to violence and gore
03:50
<&McMartin>
Many babies way moer than 8lb, and there are 8lb bowling balls
03:50
< Noah>
Which they haven't, I just wrote the paper from the POV of a paranoid who doesn't realize the people playing these games are often too full of cheetos, mountain dew, and apathy to comit any real crimes
03:51
<&McMartin>
My highest death count is still Master of Orion, where I'm pretty sure I've murdered a trillion sentient beings over the years.
03:51
<&McMartin>
SOMEHOW NOBODY COMPLAINS ABOUT THIS
03:52
< Noah>
I've destroyed many solar systems in Spore before
03:52
<&McMartin>
And what about games like Descent, where you're heroically rescuing people caught in a mining accident and never doing anything more socially unacceptable than breaking malfunctioning industrial machinery?
03:52
<&McMartin>
That bends them all outta shape
03:52
< Noah>
"Hey, I wonder if these guys can live without any atmosphere"
03:53
< celticminstrel>
^weigh?
03:53
< Noah>
Wait, that's what Descent is about?
03:53
< celticminstrel>
Hm?
03:54
<&McMartin>
Noah: ... you've never played Descent?
03:54
<&McMartin>
All the enemies are berzerk mining robots in Descent, yes.
03:54
<&McMartin>
It rather famously had a lower Violence rating ("Damage to realistic looking objects") than LucasArts's cartoon adventures ("Rewards harming non-threatening creatures").
03:54
< celticminstrel>
...you can destroy solar systems in Spore?
03:55
<&McMartin>
Despite being an FPS where you shoot everything that moves.
03:55 Noah [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has quit [Connection closed]
03:55
<&McMartin>
This is why they shifted to something more like movie ratings, and I suspect also why "Comic Mischief" became a new content label that *wasn't* a huge hit to your violence rating.
03:55 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
03:56 Noah [maoranma@Nightstar-087c9ef0.tn.comcast.net] has joined #code
03:56 maoranma [maoranma@Nightstar-087c9ef0.tn.comcast.net] has joined #code
03:56
< maoranma>
Phone shut off randomly
03:56
< maoranma>
Wait, that's what Descent is about?
03:59
<~Vornicus>
Descent: mining and security robots have gone berzerk, imprisoning human miners and bending the in-mine factories to their own purposes. Your job is to go in, rescue the miners, and turn off the factories by destroying the reactors.
04:00 Noah [maoranma@Nightstar-087c9ef0.tn.comcast.net] has quit [Ping timeout: 121 seconds]
04:00
<~Vornicus>
problems?
04:01 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code
04:04 * Vash adds the tolololol face next to vorn's last message. Because that's what popped in her head.
04:09
< maoranma>
Trololo lololo lolololo
04:10 maoranma [maoranma@Nightstar-087c9ef0.tn.comcast.net] has quit [[NS] Quit: ]
04:11 Noah [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has joined #code
04:13 maoranma [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has joined #code
04:13
< maoranma>
God damn phone
04:14
< Eri>
Who was phone?
04:15 Noah [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has quit [Ping timeout: 121 seconds]
05:15 maoranma [maoranma@Nightstar-925b45fd.pools.spcsdns.net] has quit [[NS] Quit: ]
05:24 Vash [Vash@Nightstar-fb5b40e5.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
05:49 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
06:35 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
06:36 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
07:32 eckse [eckse@Nightstar-6e6a7b39.dsl.sentex.ca] has quit [Client closed the connection]
09:18 * Rhamphoryncus contemplates writing yasttc in javascript and webgl ;)
09:24 Kindamoody is now known as Kindamoody|out
09:41
< ShellNinja>
Is there any particular reason why Fraps won't take screenshots at all?
09:42
< ShellNinja>
It's aggravating. It installs and runs okay, all versions that I've tried, but consistently fails to do anything when I press the screenshot button I set.
09:42
< ShellNinja>
This is WinXPSP3.
09:47
< ShellNinja>
I need something that can take screenshots every X seconds, because I'm quite aggravated trying to get a good game going as Byzantium in EU3.
09:47
<&McMartin>
Do you get the FPS counter?
09:47
< ShellNinja>
Where would I get it?
09:47
<&McMartin>
It should be appearing in one of the corners by default unless you went out of your way to turn it off
09:48
<&McMartin>
EU3 you say, though
09:48
<&McMartin>
I'm on Win7, but I have FRAPS; let me try it out and see what I get
09:48
< ShellNinja>
I do not get any FPS counters.
09:48
<&McMartin>
OK, I see a "repeat screen capture every X seconds" option under "Screenshots"
09:49
<&McMartin>
Testing first in BTR, which I know works with FRAPS
09:50
< ShellNinja>
There aren't any FPS counters on my screen, yet Fraps is running.
09:51
< ShellNinja>
BBS, need to repair my bike.
09:59
<&McMartin>
OK, so, in order to get an FPS counter, you have to go to the "FPS" screen and select an overlay corner, it looks like.
10:00
<&McMartin>
Repeated screenshot is working for me on BTR; gonna try it now on EU3.
10:12
<&McMartin>
I have successfully done this by hitting F10 once in EU3.
10:12
<&McMartin>
The FPS overlay pulses once every ten seconds.
10:12
<&McMartin>
Make sure your screen capture hotkey isn't disabled
10:13
<&McMartin>
If you can't make the overlay show up, XPSP3 might be somehow failing to let FRAPS get at the EU3 window (???)
10:14
<&McMartin>
But it works on Win7
10:14
<&McMartin>
(HttT, though I doubt strongly the version of EU3 matters)
10:25
< gnolam>
http://stackoverflow.com/questions/4456438/how-can-i-pass-the-string-null-throug h-wsdl-soap-from-as3-to-coldfusion-web
10:33
< ShellNinja>
I can't take ANY screenshots, nevermind EU3.
10:34
< ShellNinja>
I have selected an overlay corner. I checked the FPS box.
10:34
< ShellNinja>
Fraps seems to do SOMETHING when I hit the button, since it creates an otherwise non-existent screenshot folder.
10:36
< ShellNinja>
Are there any other applications that allow something like I need?
10:41
<&McMartin>
Hm.
10:41
<&McMartin>
FRAPS and/or the steam overlay has always worked for me, so I haven't looked too far afield.
10:41
<&McMartin>
Steam overlay won't help you here because you want autorepeat.
10:41
<&McMartin>
I don't suppose FRAPS is looking for Aero?
10:42
< ShellNinja>
I have no idea.
10:42
<&McMartin>
That's on the leftmost tab in my version
10:42
<&McMartin>
"Watch Aero desktop"
10:42
<&McMartin>
I have it checked
10:42
<&McMartin>
I'm guessing you probably shouldn't, since XP doesn't *have* aero.
10:44
< ShellNinja>
I have nothing like this.
10:44
<&McMartin>
Mmm.
10:45
<&McMartin>
I find this mysterious
10:45
<@TheWatcher>
ShellNinja: have you rebooted since you installed fraps?
10:45
<@TheWatcher>
I'm wondering if it can't insert its hooks...
10:49
< ShellNinja>
I have not.
10:49
< ShellNinja>
Doing so now!
10:50
<&McMartin>
Ooh, that's a good thought
10:54
< ShellNinja>
Rebooting once deleted the executable. Reinstalling, no change.
10:54
< ShellNinja>
Rebooting a second time, executable still there, no change otherwise.
10:55
<@TheWatcher>
.... deleted the, wha
10:55
<&McMartin>
... do you have an extremely agressive antivirus program?
10:55
< ShellNinja>
I have no AV software installed.
10:56 Attilla [Obsolete@Nightstar-416d44d2.as43234.net] has joined #code
10:56
<@TheWatcher>
I'm out, that's more weirdness than I can handle before a second mug of tea.
10:57
< ShellNinja>
Well, thanks for the help, guys. I will try more later.
11:01 * TheWatcher eyes some of this CSS he is blantantly ripping off (hey, it's gpled both ways, so it's all good...), really wonders about some of this stuff... like sticking `outline: none` on things that could never have had it set. Suspects either browser-fuckery, or paranoia.
11:24
<&McMartin>
Woo
11:24
<&McMartin>
Intraprocedural compilation now works completely to my spec
11:24
<@TheWatcher>
\o/
11:24
<&McMartin>
Next: Quad-to-Assembler translator, and then I have runnable programs
11:41
<@Tamber>
TW: Considering the difference between how things are /supposed/ to behave, and how they actually /do/, can you really blame them for paranoia?
11:42
<@TheWatcher>
No ;.;
11:43 You're now known as TheWatcher[afl]
11:43 You're now known as TheWatcher[afk]
11:43
<@TheWatcher[afk]>
Time to go attack pieces of wood with sharp implements, yes.
11:45
<&McMartin>
omg hax
13:25 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
13:59 Attilla_ [Obsolete@Nightstar-416d44d2.as43234.net] has joined #code
14:00 Attilla [Obsolete@Nightstar-416d44d2.as43234.net] has quit [Ping timeout: 121 seconds]
14:03 Attilla [Obsolete@Nightstar-416d44d2.as43234.net] has joined #code
14:04 Attilla_ [Obsolete@Nightstar-416d44d2.as43234.net] has quit [Ping timeout: 121 seconds]
14:49 Kindamoody|out is now known as Kindamoody
14:57 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [[NS] Quit: Rebooting]
15:05 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
15:36 You're now known as TheWatcher
16:05 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
16:12 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
16:18 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
16:55 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
16:56 Attilla_ [Obsolete@Nightstar-4d709978.as43234.net] has joined #code
16:56 Attilla [Obsolete@Nightstar-416d44d2.as43234.net] has quit [Ping timeout: 121 seconds]
16:57 Attilla_ is now known as Attilla
18:42 AnnoDomini [annodomini@Nightstar-bd2f5f93.80-203-16.nextgentel.com] has joined #code
18:42 mode/#code [+o AnnoDomini] by ChanServ
18:44 rms is now known as Anna
18:45
< Rhamphoryncus>
"Warning: I have modified the directory structure of my SDL headers, which means all my tutorials are weird. Oddly, this has caused a lot of confusion.."
18:49
<@Anna>
Last sentence is win
18:50
<@Anna>
L2-I
18:50
<@Anna>
Srsly.
18:53
< Rhamphoryncus>
That's me slightly paraphrasing
18:53
< Rhamphoryncus>
http://www.sdltutorials.com/sdl-tutorial-basics
18:58
< Rhamphoryncus>
It recommends starting out with 6 files
19:01
< Rhamphoryncus>
My version is a single file of 30 lines. Including a couple couts and several blank lines
19:01 AnnoDomini is now known as Jasever
19:02
< Rhamphoryncus>
Fortunately I have played with SDL before, I just needed something to jog my memory
19:09
< Rhamphoryncus>
Hrm. SDL itself recommends #include "SDL.h" as the most portable
19:16
<@ToxicFrog>
Yes. The idea is that you then compile with $(pkg-config --cflags sdl) or your local equivalent, and it will automatically emit -I/usr/include/SDL1.2 or similar as needed.
19:17
< Rhamphoryncus>
afaik "" vs <> is pretty meaningless. It's a historical artifact meant to make it easier for compilers to bake in headers rather than having actual files. Of course it's trivial to do that regardless
19:17
< Rhamphoryncus>
And SDL itself is neither part of my project nor truly part of the system, so it doesn't fit in either
19:18
< Rhamphoryncus>
Hum. Both <SDL.h> and <SDL/SDL.h> work fine
19:18
< Rhamphoryncus>
What I really wonder is if there is a C++ API or if the claim on the SDL homepage is just marketing BS for "You can use the C API, it works fine"
19:21
<@ToxicFrog>
Beats me, I don't do C++
19:23
< Rhamphoryncus>
I'm picking it as a pragmatic choice
19:24
< Rhamphoryncus>
It seems mature enough to be a decent choice over C now
19:26
<@ToxicFrog>
I contend that, with the exception of certain fairly narrow problem domains, there is almost no reason to use C++.
19:26
< Rhamphoryncus>
vs C?
19:26
<@ToxicFrog>
At all.
19:27
<@ToxicFrog>
It's mature enough that the tool ecosystem for it now actually works etc, but there's no shortage of equally mature HLLs.
19:28
< Rhamphoryncus>
Okay, let's start over here. My main contenders are C and C++. I like python but obviously it doesn't cover the low-level aspects I need and can't be used across multiple threads. (yes, I KNOW it runs, but it doesn't scale.)
19:28
<@ToxicFrog>
C++ occupies a narrow, awkward niche where you're working on stuff large enough that C++'s added complexity actually gives you some benefit, but performance-constrained enough that you can't just move to a JITted HLL, but at the same time not so performance-constrained that you need viciously optimized C with a custom libc.
19:29
<@ToxicFrog>
Which as far as I can tell means kernels and physics middleware.
19:30
<@ToxicFrog>
...what low-level features do you need? What are you writing?
19:30
< Rhamphoryncus>
I'm going to look at lua and squirrel for plugin/scripting stuff later, which means I'm already at two options. A third is a possibility, but my favourite HLL is python, which I already ruled out..
19:30
< Rhamphoryncus>
This is my yasttc
19:31
< Rhamphoryncus>
(yet another stupid transport tycoon clone, if you weren't here for that)
19:31
<@ToxicFrog>
Aah
19:32
<@Kindamoody>
Don't tell me there's a language called squirrel? o.o
19:32
< Rhamphoryncus>
Kindamoody: yup. Aimed at embedding in games, just like lua
19:32
<@Kindamoody>
Jeez, another thing that'll highlight me. :|
19:33
< Rhamphoryncus>
Doh. Well, I'm not intending to use it any time soon
19:33 * Kindamoody has "squirrel" on her highlight list, and gets "dinged" a lot. :P
19:33
<@ToxicFrog>
Kindamoody: yep, it's basically Lua for people who insist on {}-delimited blocks + better intrinsic OO support
19:34
< Rhamphoryncus>
All I get dinged for is adam&eve or adam sandler. Occasionally adam smith or dino.
19:34
<@Kindamoody>
Hehe, thanks for the info anyway.
19:34
<@Kindamoody>
And good night. :)
19:34
< Rhamphoryncus>
cya
19:34 Kindamoody is now known as Kindamoody[zZz]
19:35
< Rhamphoryncus>
ToxicFrog: Do you have a specific language to suggest to be my third, one that's a HLL?
19:35
<@TheWatcher>
Perl~
19:36
< Rhamphoryncus>
Hrm. I'm out of peanuts
19:36 * Rhamphoryncus throws the bottle at TheWatcher
19:36
<@ToxicFrog>
Rhamphoryncus: what do you mean by "a third"?
19:37
<@TheWatcher>
Awwgh >.<
19:37
< Rhamphoryncus>
A low-level language, a high-level language, and a sandboxed plugin language
19:37
<@ToxicFrog>
Why would you need both a LLL and a HLL?
19:38
< Rhamphoryncus>
The same reason I'd plan to use C with Python. It's there if I need it.
19:38
< Rhamphoryncus>
The game will be performance limited, so I need that option
19:39
<@TheWatcher>
....
19:39
<@ToxicFrog>
Personally, my instinct would be to prototype in love2d+luajit and then rewrite bottlenecks in C (if necessary) for 2d stuff, and look at something like OGRE or Irrlicht with the C#, Lua, or even Scala bindings for 3d stuff
19:39
<@ToxicFrog>
If I went insane and decided to do 3d stuff~
19:40
< Rhamphoryncus>
I am doing 3d
19:41
<@ToxicFrog>
Ok, in that case my best advice, independent of whatever language you end up using, is that rolling your own 3d engine from scratch is so not worth it
19:41
< Rhamphoryncus>
That's half the fun :P
19:41
< Rhamphoryncus>
I'm pretty sure I can't do most of my ideas without it
19:42 * TheWatcher eehs, sees both sides, really.
19:44
< Rhamphoryncus>
If it was a shooter I'd be much more torn. I'm familiar with how much work goes into something like nexuiz, even if I was more interested in experimenting with the engine
19:44
< Rhamphoryncus>
For this.. I've never seen an engine look like what's in my head
19:44
<@TheWatcher>
Rolling your own can be a lot of work, but it is a good learning experience if you're interested in how it all works. Using things like OGRE, Irrlicht, Crystal Space and so on saves you worrying about some stuff, but then you end up working within the constraints and framework they impose, which may either a) not work in your head, or b) actually mean almost as much work to make it do what you want as just writing it from scratch
19:46 * Rhamphoryncus takes a peek at ogre
19:51
< Rhamphoryncus>
It sounds like ogre wants me to provide a scene and it figures out how to render it
19:53
< Rhamphoryncus>
There's no way the LoD system it provides would work for me. In fact I'm determined to make it not work ;)
19:53
<@ToxicFrog>
er
19:53
< Rhamphoryncus>
If at the lowest detail level it's reasonable to have 10 million objects and 30 is stressing it then I want the game to use 500 million
19:54
< Rhamphoryncus>
Most of which may be generated on the fly, but they're not simply parts of a larger object. They're distinct
19:55
< Rhamphoryncus>
Of course I can do my own LoD with ogre anyway, but then I'm not full utilizing it
19:55
< Rhamphoryncus>
And.. I really want to poke at low-level opengl crud
19:57
<@ToxicFrog>
Ok, so this is less a "let's make a game" project and more a "let's design a new type of 3d engine" project
19:58
< Rhamphoryncus>
yes, definitely
20:23
< Rhamphoryncus>
Urgh. Not finding a backport of SDL 1.3 to the last version of ubuntu. Probably have to do the update now :(
20:35
<&jerith>
Rhamphoryncus: Backport it?
20:35
<&jerith>
Grab the source package from an earlier Ubuntu and shove it into a PPA.
20:36
< Rhamphoryncus>
New version of ubuntu came out in the last few days. I just wanted to be lazy
20:36
<&jerith>
The first time I did that was with Erlang, and it took all of half an hour.
20:37
< Rhamphoryncus>
I've told it to start downloading. I'm going to bugger off while it does
20:38
<@Anna>
Expecting a Debian-based system to have the latest stuff is like expecting IE to be useful for anything other than getting a web browser.
20:38
<@Anna>
Sometimes sanity creeps in and you get what you expect.
20:39
<&jerith>
Anna: Debain-based systems usually have recent stuff.
20:39
<@Anna>
On release day maybe.
20:39
<@Anna>
A month later they don't.
20:40
<&jerith>
They tend not to live on the bleeding edge unless you explicitly pull in other repos.
20:40
<&jerith>
Because stability.
20:41
<&jerith>
Anna: Are you a Gentooer, perchance? ;-)
20:44
<@Jasever>
Debain!
20:44
<@Anna>
No.
20:44
<@Anna>
Arch, but looking for something else because they keep making pacman horrible.
20:44
<&jerith>
Ah, Arch.
20:45
<&jerith>
The distro that decided to point "python" to "python3" and break everything.
20:48
<@Anna>
Only issue I've seen is node.js' build stuff being broken
20:48
<@Anna>
But that's trivial
21:09 Derakon[AFK] is now known as Derakon
22:11 eckse [eckse@Nightstar-6e6a7b39.dsl.sentex.ca] has joined #code
22:11 mode/#code [+o eckse] by ChanServ
22:39
< Rhamphoryncus>
If this ubuntu doesn't fix some of the serious fuckup then the only thing stopping me from switching will be laziness
22:45 * McMartin reads backscroll
22:46
<&McMartin>
You have to do some linker trickery to mix C and C++
22:46
<&McMartin>
IIRC, SDL already does this so you can transparently deploy SDL code in C++ code as if the C++ were C.
22:47
<&McMartin>
"C++ wrappers" for SDL invariably are just things that define classes that are full of one-line methods calling an SDL function and using "this" as one of their arguments
22:47
<&McMartin>
The only real gain you get from this is that you can put SDL_FreeWhatever int he destructor and have the stack update mechanism take care of any leaks.
22:47
<@Anna>
What.
22:48
<&McMartin>
This is actually a big enough deal that, contra ToxicFrog, C++ remains valuable in places C would otherwise be indicated.
22:48
<@Anna>
Alright the last two things you said were sane.
22:49
<&McMartin>
It may be necessary to wrap your #include <SDL.h> and friends in a declaration marking it as C code like so:
22:49
<&McMartin>
extern "C" {
22:49
<@Anna>
Yes
22:49
<&McMartin>
#include "SDL.h"
22:49
<&McMartin>
#include "SDL_whatever.h"
22:49
<&McMartin>
}
22:49
<@Anna>
Most libraries have that anyways.
22:49
<&McMartin>
Yeah
22:50
<@TheWatcher>
SDL headers already do that for you. Been using SDL from c++ for yonks, no problems.
22:50
<&McMartin>
Yeah, OK then.
22:50
<&McMartin>
In this case, "C++ bindings for SDL" is "you don't need any"
22:51
<&McMartin>
And, IME, things advertised as such are someone's homework assignment and often don't do a good job of handling it beyond RAII, if they even get that right.
22:52
<&McMartin>
Ordinarily I would say "what you want to do here is write your own backend library in C++, and have it happen to use SDL in its internals, and then the game part just needs to ignore the implementation details"
22:52
<&McMartin>
Which is fine, as far as it goes.
22:53
<&McMartin>
However, I have learned to my cost that one of the things C++ is *awful* at is libraries. The C++ ABI is uniquely unstable across compilation environments.
22:53
<&McMartin>
If you plan on writing a C++ library, putting some thought into a clean and usable C interface *to* the C++ library (often using int_ptr_ts as handles to library objects) is wise.
22:54
<&McMartin>
Because otherwise, not only will other languages not be able to embed you...
22:54
<&McMartin>
... binaries compiled with different compiler options (to say nothing of other *actual compilers*) will be unable to link against you, even as a DLL.
22:56
<&McMartin>
But yes, I will differ slightly from TF, even though I once agreed with him fully.
22:56
<&McMartin>
Once you've decided "OK, I need to use C for this", you do then ask "is this one of those places where C++ will actually be useful and I should use that?"
22:56
<&McMartin>
Note that if "I need to use C for this" is "no", C++ is also pretty much never the answer~
22:57
<&McMartin>
The thing is, two of the things that make C++ "I should use this instead of C" are:
22:57
<&McMartin>
Hm. Three of the things.
22:57
<&McMartin>
(1) Do I use nonconstant strings, ever
22:58
<&McMartin>
(2) Do I use dynamically-sized arrays, ever (arguably: "do I use any kind of array or list-like collection, ever)
22:58
<&McMartin>
(3) Do I have any resource that requires "paired methods" - that is, if f(a) is called at some point (or f(...) is called, returning a), do I need to call g(a) later in the program for correct operation.
22:59 * TheWatcher does vaguely note at this juncture that 1 and 2 essentialy encompass pretty much the entire set of useful non-trivial programs~
22:59
<&McMartin>
Note that in many programming styles, (3) includes "do I use heap-allocated objects".
23:00
<&McMartin>
The thing is, often the things you need C for are trivial but aggravating
23:07 Jasever is now known as AnnoDomini
23:10 Anna is now known as rms
23:10
< Rhamphoryncus>
McMartin: yeah. "trivial but aggravating" sums up the whole language
23:11
<&McMartin>
As well as its best applications~
23:11
< Rhamphoryncus>
heh
23:11 * TheWatcher actually quite likes C, but then he likes Perl, so he's obviously beyond help
23:11
<@TheWatcher>
(M'actually teaching a C course at the moment, in fact)
23:12
<&McMartin>
C is an important language *to know*
23:13
<&McMartin>
I'm drawing a sharp distinction between "using C with C++ extensions" and "using C++ idiomatically"
23:13
<&McMartin>
For the latter, TF's judgement stands in full force
23:13
<&McMartin>
(That niche is basically "system-native GUI programs that talk with the window manager at the lowest level")
23:14
< Rhamphoryncus>
A native C++ API would be a little cleaner than C, mostly due to namespacing (SDL::CreateWindow vs SDL_CreateWindow and such), but it's pretty minor. Mostly I was just mislead by their claim of having a C++ interface, so I had to spend time searching around to find out what was really meant
23:18
< Rhamphoryncus>
I agree with designing your library to have a C interface. Even without the ABI issues it's a simpler to build language bindings on
23:19
< Rhamphoryncus>
But C++ for an app? I don't get the argument against that
23:20 AnnoDomini [annodomini@Nightstar-bd2f5f93.80-203-16.nextgentel.com] has quit [[NS] Quit: To sleep!]
23:27
<&McMartin>
Mainly "You should be using some less compromised language instead"
23:29
< Rhamphoryncus>
Looking for a better option than C++ is fine. Claiming C++ is worse than C makes no sense
23:29
< Rhamphoryncus>
But I don't like any of TF's suggestions anyway
23:30
<&McMartin>
My biggest complaint about C and C++ is that some of their design decisions get taken by developers as laws of nature because it's what everything's implemented in
23:30
<&McMartin>
I still haven't forgiven C for "for" loops.
23:31
< Rhamphoryncus>
heh. Don't worry, you can expect to see me rant plenty about basic stuff like that in C++ ;)
23:31
<&McMartin>
Well, C++ has the excuse of its two "terrible" design decisions~
23:31
< Rhamphoryncus>
A powerful iterator API is just fine when you need it. 90% of the time you don't.
23:31
<&McMartin>
C++11 fixes that, more or less
23:32
< Rhamphoryncus>
I recall seeing something, yeah
23:32
<&McMartin>
auto, basically
23:32
<&McMartin>
Which it snuck out of C#, more or less~
23:33
< Rhamphoryncus>
It's probably full of wtf too, but whatever. I'm trying to be pragmatic :)
23:33
<&McMartin>
auto is limited type inference for variable declarations
23:33
<&McMartin>
Which takes a lot of the sting out of namespaces generally and iterator declarations specifically
23:33 * Rhamphoryncus nods
23:34 * McMartin is very pro-type inference. >_>
23:34
< Rhamphoryncus>
Yeah, so am I, even though I haven't used it much
23:34
< Rhamphoryncus>
Don't waste the programmer's time on irrelevant crap
23:35 eckse [eckse@Nightstar-6e6a7b39.dsl.sentex.ca] has quit [Client closed the connection]
23:35
<&McMartin>
Well, specifically, I tend to prefer type inference to dynamic typing.
23:37 eckse [eckse@Nightstar-6e6a7b39.dsl.sentex.ca] has joined #code
23:37 mode/#code [+o eckse] by ChanServ
23:37
< Rhamphoryncus>
Python convinced me of the value of not plastering type declarations everywhere, but now I'm shifting back towards static type and type inferencing is the obvious best of both
23:37
<&McMartin>
Hi five
23:38 * McMartin has been OCaml'ing lately
23:38
<&McMartin>
Which has made me miss Python's batteries included
23:39
< Rhamphoryncus>
Another good reason to use C++
23:39
<@ToxicFrog>
<Rhamphoryncus> But C++ for an app? I don't get the argument against that
23:40
<@ToxicFrog>
My argument there is that there is no shortage whatsoever of languages that have a much better complexity:expressiveness tradeoff, in whatever paradigm you prefer, while also being easier to deploy and harder to compromise.
23:41
< Rhamphoryncus>
Well, there's various sorts of functional languages.. but I don't like functional languages
23:43
< Rhamphoryncus>
I don't see any better options, that's why I've picked C++
23:43
<@ToxicFrog>
Um
23:43
<@TheWatcher>
Rhamphoryncus: so program it in scheme.
23:43
<@ToxicFrog>
There's a reason I said "in whatever paradigm you prefer" and didn't tack on "...provided that what you prefer is functional programming"
23:43
<@ToxicFrog>
Unless by "functional languages" you mean "any language that supports FP, even if it doesn't require it"
23:44
<@TheWatcher>
Oh, wait, misread, ignore me.
23:44
<@ToxicFrog>
In which case you have basically ruled out every modern language.
23:44
<@ToxicFrog>
But seriously, even if your preferred programming style is C++oid, you've got C#, Java, and Scala at least.
23:45
<&McMartin>
Precise destructors alone are a sufficient reason to pick C++ over Java.
23:46
<&McMartin>
I keep having terrible luck with making Scala programs actually scale -_-
23:46
<&McMartin>
(Granted, automatic memory management alone is a reason to pick Java over C++)
23:46
< Rhamphoryncus>
I've got good enough understanding of GC that I'm not worried about doing that in Java. And that I think C++ is pretty crude
23:47
< Rhamphoryncus>
C# I'm not touching because of MS
23:47
<@ToxicFrog>
C# has had good open-source implementations for years now, dude
23:47
<&McMartin>
But #3 on my list above (manual cleanup required of some resources) is one of the few places where C++ blows the pants off of Java in terms of both elegance and ease of getting it right.
23:48
<@ToxicFrog>
McMartin: true; OTOH GC'd languages greatly reduce the frequency with which that's something you need to worry about at all.
23:48
<&McMartin>
(C# fixes this with IDisposable; Scala may have some clean notion of autodeployable unwind-protect)
23:48
<&McMartin>
TF: Mmm. That has not been my experience, because these things include: file handles; database connections; network connections
23:49
< Rhamphoryncus>
I can't remember what scala looks like (and I'm updating ubuntu so I don't want to run firefox right now), but mentally I have it lumped in with functional languages
23:49
<&McMartin>
Java programs taht do a lot of those often have resource exhaustion problems because someone forgot a try-finally block around their DB connection.
23:49
<&McMartin>
Scala is nominally multiparadigm, so it's only slightly more functional than Python is
23:49
< Rhamphoryncus>
ToxicFrog: don't care, I don't trust them and I don't want anything to do with them
23:49
<@ToxicFrog>
McMartin: right, what I'm saying is that in my experience those account for 10% of the resources I'm manually managing and the remaining 90% are free()
23:49
<@ToxicFrog>
Rhamphoryncus: why not?
23:50
<@ToxicFrog>
And yeah, Scala supports (arguably encourages, with val and the Collections library) functional programming but does not require it
23:50
< Rhamphoryncus>
Why wouldn't I want to use something controlled by MS?
23:50
<&McMartin>
Rhamphoryncus: Unless it's Novell you don't trust, this is also an argument to not use C++ or C.
23:50
<&McMartin>
TF's point is it isn't controlled by MS, because there are independent implementations of the language and libraries.
23:50
< Rhamphoryncus>
Implementations but not specs and patents
23:51
< Rhamphoryncus>
and API copyrights, depending on the mood of the courts and legislature :P
23:51
<&McMartin>
That's a stronger argument for not using *Java*, not C#~
23:51
< Rhamphoryncus>
Not too fond of java either
23:51
<@TheWatcher>
Indeed; Oracle have actually exercised that one, Microsoft haven't.
23:52
< Rhamphoryncus>
MS hasn't exercised it with C#. Every other aspect of business though?
23:53
<@TheWatcher>
Frankly, these days I'm far less suspicious of Microsoft, they do actually seem to be trying.
23:54
<&McMartin>
Also, AIUI, Novell doesn't replicate the bits that are patent-encumbered.
23:54
<@ToxicFrog>
Actually, C# is an ISO/EMCA standard which MS is legally incapable of patenting
23:54
<&McMartin>
WPF is the bit with encumbrance, IIRC.
23:54
<@ToxicFrog>
they can patent parts of the library implementation, but those parts aren't included in mono, so
23:54
<&McMartin>
(ECMA)
23:54
<@ToxicFrog>
(thank you)
23:54
<&McMartin>
TheWatcher: MS learned long ago that if you try to initiate action against people using your technology your technology gets abandoned =P
23:55
< Rhamphoryncus>
MS.. seems to be trying? Yeah, no, hell hasn't frozen over yet. Maybe they've moderated a bit, but they're still not to be trusted
23:55
<&McMartin>
After, uh, convincing Borland to self-destruct in exactly this way and headhunting all their compiler devs.
23:56
<&McMartin>
Rhamphoryncus: The issue here is that here your distrust is at a level of engagement where you can't touch anything they've ever contributed to.
23:56
<&McMartin>
And that includes, well, a lot.
23:57
<@TheWatcher>
Yeah, you want to use OpenGL? Best not, they're on the ARB.
23:58
< Rhamphoryncus>
McMartin: it gives me a bias against them. Obviously I can't avoid them completely
23:59
< Rhamphoryncus>
All other things being equal I'd chose something they have less control over
--- Log closed Sun Apr 29 00:00:02 2012
code logs -> 2012 -> Sat, 28 Apr 2012< code.20120427.log - code.20120429.log >

[ Latest log file ]