code logs -> 2007 -> Sat, 10 Feb 2007< code.20070209.log - code.20070211.log >
--- Log opened Sat Feb 10 00:00:00 2007
--- Day changed Sat Feb 10 2007
00:00
<@ToxicFrog>
Reiver: Nullsoft Scriptable Install System.
00:00
<@Reiver>
I... see.
00:01
<@ToxicFrog>
It's a thingy: you write a script, it takes that and your files and generates a windows installer.
00:01
<@Reiver>
Oh, right.
00:01
< MyCatVerbs>
...am I the only person here who is becoming slowly but steadily less enamoured with Firefox every single time I use it?
00:01
<@Reiver>
McM's previous conversation thus snaps into context!
00:01
<@Reiver>
MCV: Dunno!
00:01
<@Reiver>
I use Opera. <g>
00:02
< MyCatVerbs>
I'm well past mild irritation and heading for the valley of outright hatred here.
00:02
<@Reiver>
This would rather be why I converted to Opera mid ~2002 yes
00:02
<@Reiver>
Keep trying Firefox.
00:02
<@Reiver>
Keep going back to Opera.
00:02
<@Reiver>
(With the one exception of... 6.0 I think it was?)
00:03
< MyCatVerbs>
Every incremental release seems to be slower, with more bugs and worse UI ganking.
00:03
<@Reiver>
In firefox? Yeah.
00:03
<@Reiver>
Patch apon patch apon hack.
00:03
<@Reiver>
"But cycles are cheap!" is a dangerous mantra.
00:03
<@ToxicFrog>
MCV: I'm not, but that's because I started out non-enamoured.
00:03
< MyCatVerbs>
Currently it has decided that saving files from links is no longer good enough for it. Instead it has adopted the rather more uppercrust solution of discarding data at random.
00:03
<@Reiver>
TF: What do you use?
00:05
<@ToxicFrog>
Opera.
00:05
<@Reiver>
Ha!
00:05
<@Reiver>
'tis shiny.
00:06
<@ToxicFrog>
Indeed.
00:06
<@Reiver>
I notice idly that in recent versions they seem to have made the whole preferences thing a lot less painful!
00:06
<@Reiver>
This was a wonderous thing.
00:07
<@Reiver>
Although I am still waiting to be able to make a status feild be able to either have a hard restriction on length rather than proportional, and/or have it pop up when I mousehover over stuff.
00:07
<@Reiver>
I like having it - I dislike taking up screenspace with a dedicated row for it.
00:07
<@ToxicFrog>
Aah, you want the statusbar to pop up if it has something to say but be absent otherwise?
00:07 * Reiver nods.
00:07
<@ToxicFrog>
Yeah, can't do that yet.
00:08
<@Reiver>
But they have the code somewhere!
00:08
<@ToxicFrog>
Submit a feature request :P
00:08
<@Reiver>
I mean they do it with the page loading info bar, you know?
00:08
<@Reiver>
Well the other option would be putting it along the top menu bar. File/View/Options/Etc only takes up half the row you know? You could totally stick a status bar on the other half! >.>
00:10
<@Reiver>
Then all they need to do is make their rightclick menus (Context menus? I forget the name) actually editable.
00:10
<@Reiver>
'cuz I can see why they have such a huge list of options, but I don't use half of them.
00:10
<@ToxicFrog>
They *are* editable.
00:10
<@Reiver>
...Where?
00:10
<@ToxicFrog>
Just not through the GUI, yet.
00:11
<@Reiver>
Oh.
00:11
<@ToxicFrog>
You have to edit the INIs.
00:11
<@Reiver>
Hm.
00:11
<@Reiver>
Last time I touched Opera INIs it stopped working completely.
00:11
<@ToxicFrog>
However, over the past few versions, they've been steadily adding stuff to the GUI that used to be strictly INI hacks.
00:11
<@ToxicFrog>
So that'll probably turn up eventually, maybe in 10x
00:11 * Reiver nod.
00:11
<@Reiver>
(idly what the hell does the 'restore' option when you rightclick a window tab do?)
00:11
<@ToxicFrog>
In the meantime, it's one of the inifiles, not sure which one.
00:12
<@ToxicFrog>
(if it's hidden, makes it visible)
00:12
<@Reiver>
...
00:12
<@Reiver>
Clicking the tab would do that too surely.
00:12
<@ToxicFrog>
It has different semantics somehow.
00:12
<@ToxicFrog>
Not sure on the details, I never use it.
00:13
<@Reiver>
Yeah, neither.
00:13
<@Reiver>
Those two options would be marvelous candidates for removal from the menu. ¬¬
00:15
< MyCatVerbs>
Oh whoppee, Galeon's a fucking bugcrate too.
00:15
< MyCatVerbs>
Faster, though. But that's not saying much.
00:18
<@ToxicFrog>
MCV: have you tried Opera?
00:19
< MyCatVerbs>
Few times in the past. For reasons of ideological wankery, I'd prefer to use something open source, but then, they're almost all based on fucking Netscape.
00:20
< MyCatVerbs>
Ooooh, nice. Amaya fails all its debug assertions immediately upon being run. Fuck that.
00:21
< MyCatVerbs>
So very, very tempting to try to hack tabs and keyboard control into, say, links-graphic.
00:24
<@ToxicFrog>
Elinks has tabs~
00:25
<@ToxicFrog>
And, yes, while I too would prefer to use OSS, there are no X11-mode OSS browsers that don't suck.
00:31
<@Reiver>
I admire opera.
00:31
<@Reiver>
I still wonder how they make their money though.
00:32
< MyCatVerbs>
Fuckit. "links -driver x" works.
00:33
<@ToxicFrog>
Reiver: well, in years gone past, it was payware and the free version was ad-supported.
00:33
<@ToxicFrog>
These days, they make their money by selling the non-PC versions.
00:33 * Reiver realises this yes
00:33
<@Reiver>
...Ahhh
00:33
<@Reiver>
That's... actually that's cunning.
00:33
<@ToxicFrog>
Phones, the Wii, etc.
00:33
<@Reiver>
'cuz folks are happy to pay for those niches.
00:34
< EvilDarkLord>
And there's no Firefox Mobile afaik.
00:34
< MyCatVerbs>
There couldn't be. It doesn't scale down well enough, unlike Opera.
00:35
< MyCatVerbs>
Dillo Mobile would be totally feasible, though. Heh. =D
00:35
<@ToxicFrog>
Reiver: exactly. And the PC version gets them good press + addicts who are more than willing to pay to have it on their phone as well.
00:38 * Reiver nod.
00:38
<@Reiver>
Then again, addict or not, I'd pay for having a decent blody browser~
00:39
<@ToxicFrog>
Yeah, but you know what a decent browser is
00:39
<@ToxicFrog>
Consider the number of people who have only used IE and have no point of reference for what's good and bad in a web browser.
00:39
< MyCatVerbs>
That would explain why Firefox gets glowing reviews, indeed.
00:43
<@Reiver>
True.
00:43
<@Reiver>
(Also I meant on cellphones.)
00:44
<@ToxicFrog>
So did I. If you're used to IE, the crippleware most mobile devices get as browsers seems normal.
00:45
<@Reiver>
Really? Huh.
00:45
<@Reiver>
I thought they were even worse.
00:47
<@ToxicFrog>
Yeah, but it's "I guess they had to remove some features to fit it on the $device" worse, not "I can't believe they actually shipped this POS" worse
00:47
<@ToxicFrog>
Relative to IE.
00:48
<@Reiver>
Ah right.
00:48
<@Reiver>
Then Opera comes along and Sucks Much Less?
00:48
< MyCatVerbs>
Okay, I'm starting to actively like Links' graphical mode. Is this worrying? oO
00:50
<@ToxicFrog>
Dunno, never used it.
00:50
<@ToxicFrog>
I do however know that elinks is the god of tty browsers.
00:50
<@McMartin>
"Cycles are precious" is what gave us standard libraries in which boundschecking is not only not default but not even theoretically possible.
00:50 * McMartin also stabs strncat in the face for being stupid.
00:51 * Reiver nods?
00:51
<@McMartin>
Strncat doesn't take, as its bound argument, the size of the destination.
00:51 * Reiver knows not what this boundscheckings relationship to precious cycles is.
00:51
<@McMartin>
It takes the amount of space left
00:51
<@McMartin>
See, checking an array access costs you the precious, precious cycles
00:51
<@McMartin>
So we won't do it.
00:51
<@McMartin>
See also 35 years of buffer overrun sploitz.
00:52
<@Reiver>
...Right.
00:52
<@Reiver>
I get it now.
00:52
<@McMartin>
The strncat bit is mostly unrelated.
00:52
<@Reiver>
...Not even theoretically possible?
00:52
< MyCatVerbs>
Liiiisp! =D
00:52
<@McMartin>
Reiver: The only way to make strcpy and strcat safe is not to use them.
00:53
< MyCatVerbs>
Bounds checking? We of the linked list obsession have never heard of these fascinating and mystical "bounds" of which you speak.
00:53
<@ToxicFrog>
Aren't strncpy/strncat also part of the stdlib, though?
00:53
<@ToxicFrog>
Those are safe, for correct n
00:53
<@McMartin>
(I lie slightly. You can use them in places where everything is a constant.)
00:53
< MyCatVerbs>
ToxicFrog: yes. gets() is part of the stdlib, too.
00:53
<@McMartin>
TF: Right. Too bad arrays don't carry the proper n with them.
00:53
<@ToxicFrog>
MCV: and so is fgets.
00:53
<@ToxicFrog>
McMartin: true.
00:53
<@McMartin>
By which I mean "arrays don't exist, because hey, we can use arbitrary pointer arithmetic to get the same effect"
00:54
<@ToxicFrog>
Also, WRT linked lists: O(n) for index operation rather than O(1)
00:54
< MyCatVerbs>
ToxicFrog: I was just pointing out that sanity is not a prerequisite to inclusion in stdlib.
00:54
<@ToxicFrog>
This makes them kind of useless for some stuff.
00:54
<@ToxicFrog>
MCV: that wasn't even close to my point.
00:54
<@McMartin>
Speaking of LISP, I picked up the Silver Book for 10 bucks yesterday.
00:54
< MyCatVerbs>
Very true. But I can still dream... :)
00:54
<@Reiver>
TF: http://www.ascent.co.nz/productspecification.aspx?ItemID=348652 - Is this what I should be looking at for motherboard goodness?
00:54
<@ToxicFrog>
Which was that while strcat and strcpy aren't safe, the stdlib also supplies strncat and strncpy, which are if you're keeping track of your buffer sizes.
00:55
<@ToxicFrog>
Reiver: this is what I got, except it cost me $90
00:55
<@ToxicFrog>
I hope those aren't $cdn
00:55
<@McMartin>
... and the current length of the destination string, in strncat's case
00:55
<@McMartin>
Which is why I stabbed at it.
00:55
<@McMartin>
Since it has to work out that length on its own anyway just to get the pointer where the append goes
00:56
<@McMartin>
rar, etc.
00:56
<@ToxicFrog>
Yes, that's stabworthy
00:56
<@Reiver>
TF: NZ$
00:57
<@Reiver>
~$100 USD
00:57 * McMartin also, again, hunts down whoever was responsible for %n in format strings and stabs them so hard their grandfather dies.
00:57
<@Reiver>
NZ tends to pay higher prices in general, mind.
00:57
<@Reiver>
And that's not the cheapest store, but one of the better stores.
00:57
<@ToxicFrog>
Aah.
00:58
<@Reiver>
(I would rather pay an extra ten bucks to have 1) Support 2) Support that has an english speaker on the other end of the phone 3) Support that I can be sure will be honored in six months time.)
00:58
<@Reiver>
(If this costs extra, so be it)
00:59
<@Reiver>
(Also they are pretty nice - I had a hard drive fail on me once. They did a 'swap forward' replacement - they sent me the new HD before they recieved the old one.)
00:59
<@Reiver>
(I then had 14 days to post the old one back. Failure to do so, they just send you the bill for the new one... this is pretty sweet all things told!)
01:00
<@Reiver>
('cuz it had my machine functional in three days, and one of that was my messing around. Next-day delivery is kinda nice.)
01:01
<@ToxicFrog>
That is pretty sweet.
01:01
<@ToxicFrog>
I got mine from Canada Computers, which I've never bought from before, but (1) they have an excellent rep, (2) they have the best prices and (3) they have actual physical stores, so if something goes wrong I don't need to mail it back, I just drive into Waterloo.
01:01 * Reiver nods.
01:02
<@Reiver>
Yeah, nothing to that par here alas.
01:02
<@Reiver>
However!
01:02
<@Reiver>
Ascent has free delivery.
01:02
<@ToxicFrog>
So does CC, if you're in the same province.
01:02
<@Reiver>
This tends to save me ~ten bucks to start with.
01:02
<@ToxicFrog>
And I am :P
01:02 * Reiver grin.
01:02
<@Reiver>
Yeah, there's... crap all physical stores around here.
01:03
<@Reiver>
You either go to the decent ones that cost a lot, or the dodgy little asian ones that sell you stuff at basically wholesale prices because they're not trying to make a profit.
01:03
<@Reiver>
...The reason they're not trying to is because they're trying to sort-of-scam getting permanent residency - where if you can run a buisness for (3?) years successfully, you get automatic rights to apply.
01:04
<@Reiver>
So they come into the country with $100k in their bank account, set up a computer shop, sell things at enough profit to pay the rent, and live off their own funds.
01:04
<@Reiver>
The catch, of course, is that the store will be gone within three years.
01:04
<@McMartin>
And you've got $100k injected into your economy~
01:05
<@Reiver>
I think that's why the NZ govt doesn't mind it too much, but it's a pain in the ass for hardware returns~
01:08
<@Reiver>
You want memory the same speed as your motherboard, right?
01:09
<@Reiver>
So 800MHz FSB => DDR2 800MHz RAM?
01:11
<@ToxicFrog>
Ideally. In practice, it's DDR2, even the slowest on the market is going to be noticeably faster than what you had before.
01:12
<@Reiver>
RAM chips: Transcend, GeIL, Corsair - are any of these recognisable/reccomended? >.>
01:12
<@ToxicFrog>
Mainly, there's no point in getting faster memory than your motherboard.
01:12
<@ToxicFrog>
Corsair is the only one of those I know. They have a good rep and I've never had any trouble with them.
01:12
<@ToxicFrog>
And now, errands.
01:12
<@Reiver>
(I usually get Kingston, but not at that price. Ow.)
01:12
<@Reiver>
Cheers, TF
01:18 MyCatVerbs is now known as MyCatEats
01:22 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
01:22 mode/#code [+o Chalcy] by ChanServ
01:23 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
01:34 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
01:46 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
01:46 mode/#code [+o Chalcedon] by ChanServ
01:55 Reiver is now known as ReivOut
02:00 MyCatEats is now known as MyCatVerbs
02:02 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
02:03 mode/#code [+o Chalcy] by ChanServ
02:03 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
02:08 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
02:08 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
02:08 mode/#code [+o Chalcedon] by ChanServ
02:11 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has left #code []
02:13 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
02:13 mode/#code [+o Chalcy] by ChanServ
02:13 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
02:16 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
02:50 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
02:50 mode/#code [+o Chalcedon] by ChanServ
03:14 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep]
04:32 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
04:32 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
04:32 mode/#code [+o Chalcedon] by ChanServ
05:02 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
06:07 Vornicus-Latens is now known as Vornicus
06:11 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has quit [Quit: Leaving]
06:25 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has joined #code
06:44 McMartin [~mcmartin@Nightstar-8547.dsl.pltn13.pacbell.net] has quit [Quit: brb]
06:45 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: I'll have nightmares of interclass depencencies for months to come. (g'nini~)]
07:35 Reivtop [~reiver@Nightstar-869.bitstream.orcon.net.nz] has joined #Code
08:20 McMartin [~mcmartin@Nightstar-8547.dsl.pltn13.pacbell.net] has joined #code
08:20 mode/#code [+o McMartin] by ChanServ
09:13 Reivtop [~reiver@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: Laptop fall down go boom...]
09:30 ReivOut is now known as Reiver
09:43 * Reiver tries to work out WTF is up with this Kingston RAM these days.
10:29 You're now known as TheWatcher
10:31 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has quit [Quit: off to install SuSE]
10:55 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has joined #code
11:59 Mahal is now known as MahalBEDD
12:41 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has quit [Quit: Leaving]
13:18 gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code
15:28 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code
16:01 GeekSoldier [IceChat7@Nightstar-5987.pools.arcor-ip.net] has joined #code
17:17 You're now known as TheWatcher[afk]
17:32 AnnoDomini [~farkoff@Nightstar-6894.neoplus.adsl.tpnet.pl] has quit [Killed (NickServ (GHOST command used by AbuDhabi))]
17:32 AnnoDomini [~farkoff@Nightstar-29704.neoplus.adsl.tpnet.pl] has joined #Code
18:01 gnolam is now known as gnolam|Party
18:31 Serah-Lost [~-@87.72.36.ns-26407] has quit [Connection reset by peer]
18:37 You're now known as TheWatcher
19:09 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
19:12 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
19:12 mode/#code [+o Chalcedon] by ChanServ
19:29 EvilDarkLord is now known as Jo}{n
19:41 Serah-Lost [~-@87.72.36.ns-26407] has joined #Code
20:38 Jo}{n [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Quit: AnnoDomini ]
20:39 Althalas [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
20:40 Althalas is now known as EvilDarkLord
20:44 EvilDarkLord is now known as Jo}{n
20:47 Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has joined #code
21:11 Jo}{n is now known as EvilDarkLord
21:23 Pi [~sysop@Nightstar-6915.hsd1.or.comcast.net] has quit [Ping Timeout]
22:31 GeekSoldier [IceChat7@Nightstar-5987.pools.arcor-ip.net] has left #code []
22:42 You're now known as TheWatcher[T-2]
22:45 You're now known as TheWatcher[zZzZ]
22:59 AnnoDomini [~farkoff@Nightstar-29704.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
23:02 AnnoDomini [~farkoff@Nightstar-29704.neoplus.adsl.tpnet.pl] has joined #Code
23:03
<@ToxicFrog>
...
23:04
<@ToxicFrog>
$ g++ -I. -o Pixel.o Pixel.cpp
23:04
<@ToxicFrog>
bash: g++: command not found
23:04
< Vornicus>
23:04
< Vornicus>
oops?
23:04
<@ToxicFrog>
Yes.
23:04 * ToxicFrog is making an image segmenter, and doing it in C++ this time.
23:05
< MyCatVerbs>
ToxicFrog: Cygwin? Didja try "gpp" instead?
23:06 * MyCatVerbs vaguely thinks '+' might be one of the characters that isn't supposed to be allowed in filenames on Win32.
23:08
<@ToxicFrog>
MyCatVerbs: no, FC6
23:09
<@McMartin>
[mcmartin@zinglon c64]$ which g++
23:09
<@McMartin>
/usr/bin/g++
23:09 * ToxicFrog baps the repo maintainers for not making "g++" a synonym for "gcc-c++"
23:09
<@McMartin>
Um? I'm on FC6 too
23:10
< MyCatVerbs>
Synonym? On both my Arch and OBSD boxes, g++ is the original name.
23:10
<@McMartin>
Which gcc package do you have installed?
23:11
<@McMartin>
gcc.x86_64 4.1.1-51.fc6 seems to do the g++ thing just fine
23:11 * Janus wonders if -I needs the punctuation behind it. [/longshot]
23:11
< MyCatVerbs>
Oh wait, it has a refcount of three on my Arch box, two on my OBSD machine, four on my university's RedHat boxes and three on my friend's FreeBSD box.
23:12
< MyCatVerbs>
Synonyms and hardlinks, of course. >_>
23:12
<@ToxicFrog>
McMartin: I have gcc installed, but not gcc-c++
23:12
<@ToxicFrog>
MyCatVerbs: symlinks do not increment the link count.
23:14
< MyCatVerbs>
ToxicFrog: and hardlinks do. Welcome to Unix 101.
23:14
< Vornicus>
Janus: that says "look in this directory for libraries I include"
23:14
<@ToxicFrog>
Vornicus: header files.
23:14 * McMartin ... at UQM bug reporters
23:14
< Vornicus>
well, okay, header files.
23:14
< Vornicus>
But.
23:14
<@ToxicFrog>
Headers are included, libraries are linked (and -L is the equivalent for libraries)
23:14
<@McMartin>
"UQM won't start. I'm getting the message "try running with option X." I can't make any sense of it."
23:14
<@ToxicFrog>
...
23:15 * McMartin replies with "Um, have you tried running with option X? Though actually, option Y will probably work too, so try that"
23:15 * McMartin then goes to see if he can duplicate it on his Win32 machine.
23:15
<@ToxicFrog>
Maybe they're on windows and don't know what argv is.
23:16
<@McMartin>
They are on windows, but (a) there's still no excuse for not knowing what argv is, and (b) when it doesn't detect your soundcard, the solution is not a reinstall.
23:16
< MyCatVerbs>
ToxicFrog: verily and forsooth, we should sodomise with a lawnmower every man jack of a whoreson who starts their C programs with "void main (void) {..."
23:16
<@McMartin>
I mean "I cannot detect a soundcard, try running with the --sound=none option" is not that hard to work out.
23:16
<@McMartin>
(Though actually, there is a problem here if something has caused the OpenAL DLL to break, which is what this looks like)
23:17
< Vornicus>
Except that most folks wouldn't have any idea how to use said option.
23:18
<@McMartin>
There's a difference between "how do I set options when I can't get to the setup menu" and "I am lost in a world of confusion"
23:19
<@ToxicFrog>
MyCatVerbs: well, main(void) is actually legal ("this program does not accept arguments of any kind, so don't try") and void main, I think, will not link successfully.
23:19
< MyCatVerbs>
McMartin: just point at laugh at the silly little GUItard.
23:19
<@ToxicFrog>
And I am referring to end users in any case.
23:19
<@McMartin>
MCV: I don't think you understand the burdens of proselytization.
23:19
<@McMartin>
Also, it's a port of a console game.
23:19
< MyCatVerbs>
ToxicFrog: don't care if it's legal, I still think it's a lawnmower sodomy offence.
23:19
<@ToxicFrog>
And the fact that many of them are, in fact, completely ignorant of the fact that you can pass arguments to a program.
23:19
<@ToxicFrog>
Or even what arguments are.
23:19
< Vornicus>
MyCatVerbs: this is exactly the problem with much open source support.
23:19 * McMartin notes with some amusement that he has seen arcade cabinets with similar errors.
23:20
< MyCatVerbs>
Vornicus: what, that I'm an arrogant cunt? Heh.
23:20
<@ToxicFrog>
MyCatVerbs: this is because you're feeling exceptionally obtuse and confrontational tonight; go have some tea and read the C99 spec and come back when you're calmer.
23:20
<@McMartin>
TF: For the record, gcc will happily link void mains; such programs always return EXIT_SUCCESS.
23:20 Pi [~sysop@Nightstar-6915.hsd1.or.comcast.net] has joined #code
23:20 mode/#code [+o Pi] by ChanServ
23:20
<@ToxicFrog>
McMartin: aah.
23:21
<@McMartin>
Er
23:21
<@McMartin>
Rather, they return EXIT_SUCCESS if control leaves main() normally.
23:21
< MyCatVerbs>
ToxicFrog: actually, it's because I'm reading TAoUP tonight. A large portion of the issue is that it discards important OS features in the process.
23:21
<@McMartin>
OK, lesson 1, which ESR grasps only dimly
23:21
<@McMartin>
(Though he does, at least, grasp it)
23:21
<@McMartin>
THE END USER DOES NOT GIVE A FUCK ABOUT THE OS.
23:22
<@McMartin>
THE END USER JUST WANTS HIS SHIT TO WORK.
23:22
<@ToxicFrog>
MyCatVerbs: such as?
23:22
< Vornicus>
Well said
23:22
< MyCatVerbs>
McMartin: could it not be explained to them by to circa-win95 method of having them copy the shortcut, hit "properties" on the copy and then stick the option in?
23:23
< Vornicus>
...you can do that?
23:23
<@McMartin>
Yes; that's how the installer makes remixes active by default if you install them in Windows.
23:23
<@ToxicFrog>
Vornicus: yes.
23:23
< Vornicus>
I didn't know that.
23:23
< MyCatVerbs>
Vornicus: yesh, it's how HL mod authors told their users to launch their work.
23:23
<@McMartin>
And actually, our intended solution for all problems like this is that 0.6.3 and later are going to have "safe-mode" shortcuts that give the most conservative possible settings as cmdline options.
23:24
<@ToxicFrog>
Shortcuts are, after all, just extremely crippled one-line shell scripts with some extra metadata.
23:24
< MyCatVerbs>
ToxicFrog: such as, for example, all sorts of buildtools (make and so on)...
23:24 * Vornicus thought they were like symlinks.
23:24
<@ToxicFrog>
MyCatVerbs: so, hang on.
23:24
<@ToxicFrog>
If I write a program that doesn't take arguments, this breaks Make?
23:24
<@ToxicFrog>
What are you on?
23:24
<@ToxicFrog>
Vornicus: ahahahahahahahahahaha no.
23:24
<@ToxicFrog>
Life would be much easier if they were.
23:24
<@ToxicFrog>
They are in fact regular files;.
23:24
<@McMartin>
They're like /usr/share/*.desktop files.
23:25
< Vornicus>
well, shell extensions that pretended to be symlinks anyway.
23:25
< MyCatVerbs>
ToxicFrog: touch?. Brainfarted and I was thinking of error code returns.
23:25
<@ToxicFrog>
This is why, say, Apache doesn't follow them.
23:25
<@ToxicFrog>
MyCatVerbs: even if you declare 'void main', (1) glibc will fill in EXIT_SUCCESS when you return from main and (2) you can return other codes using exit()
23:25
<@McMartin>
MCV: As I noted to TF, I'm not sure if it's in the standard or not, but void mains are accepted and handled identially by every compiler I've tried.
23:26
<@McMartin>
What will fuck you is haveing int main() and forgetting to return 0 at the end
23:26
<@ToxicFrog>
As McM said earlier.
23:26
< MyCatVerbs>
ToxicFrog: if you don't 'terp commandline options, you don't have any particularly easy method of setting per-run options. For short lived programs, other methods of passing per-run options are kinda clunky.
23:26
<@McMartin>
... many programs are not short-lived
23:26
<@ToxicFrog>
McMartin: but then, I think, the compiler objects to "implicit return from non-void function"
23:27
<@ToxicFrog>
Or something along those lines.
23:27
<@McMartin>
TF: Sure. Hope it compiled that one last so it's not buried in ZOMG YOU PASSED AN UNSIGNED CHAR * TO PRINTF
23:27
<@ToxicFrog>
...how does that work?
23:27
< MyCatVerbs>
ToxicFrog: "Control reaches end of non-void function." =)
23:27
<@ToxicFrog>
MyCatVerbs: believe it or not, some programs *don't need options*, or only use options that are so verbose that having the on the command line is the path to woe and madness (and, in some cases, major security holes)
23:27
< MyCatVerbs>
(yes, I found that one by triggering it, of course)
23:28
<@McMartin>
We've got a "string type" in UQM right now that will eventually be replaced with something self-allocating and ref-counting so we don't leak memory like a sieve/have to juggle a bunch of different fragile banking functions.
23:28
<@ToxicFrog>
I'm not saying that "programs shouldn't accept command line arguments"
23:28
<@McMartin>
At the moment, it's got some places (like unicode decoding) that need these characters signed.
23:28
<@McMartin>
Er
23:28
<@McMartin>
Need them unsigned
23:28
<@ToxicFrog>
I'm saying that writing a program that doesn't is, in fact, a valid thing to do.
23:28
<@McMartin>
So we're using unsigned character pointers for all our strings at the moment.
23:29
<@McMartin>
This produces a warning in gcc every time a standard string.h or stdio.h function touches it, because "pointer arguments to argument XX of YYYY differ in signedness"
23:29
<@McMartin>
This includes all our debugging logs.
23:29
<@McMartin>
Of which there are roughly 3,000.
23:29
< MyCatVerbs>
ToxicFrog: could you give an example, please? Most things I can think of, you'd still want a very bare handful of commandline options to handle things like which files to target.
23:29
<@ToxicFrog>
McMartin: yes, but those are warnings.
23:29
<@McMartin>
So is "control reaches end of non-void function."
23:29
<@ToxicFrog>
AFAIR, control reaches end of void function is an error.
23:29
<@ToxicFrog>
...
23:29
<@ToxicFrog>
wtf?
23:29
<@McMartin>
You might not be using the result!
23:29
< Janus>
Don't they make pragma commands to disable those type of warnings?
23:30
<@McMartin>
Janus: They don't port well.
23:30
< MyCatVerbs>
McMartin: why would I write a program to return a result which I'd then discard?
23:30
<@McMartin>
I use grep -V
23:30
< MyCatVerbs>
Screensavers? oO
23:30
<@ToxicFrog>
MyCatVerbs: I have a program that dumps a simple ASCII chart.
23:30
< Janus>
Oh, then.
23:30
<@ToxicFrog>
That's all it does.
23:30
<@McMartin>
MCV: That was at TF's "why is this not an error".
23:30
<@McMartin>
At you, um, I've spent the last hour playing Guitar Hero II.
23:30
<@McMartin>
It doesn't take command line options.
23:31
<@McMartin>
It's also not a short-running application.
23:31
< MyCatVerbs>
McMartin: that's a console game on fixed hardware. If you wrote that on a PC, you'd *still* like as not find yourself passing in options for things like initial screen resolution, et cetera.
23:31
<@McMartin>
UQM mostly pulls material out of ~/.uqm/ for its configuration because there's about 50 options, and that's before dealing with input config
23:32
< MyCatVerbs>
And yeah, I have noticed that I'm making a lot of PC-centric assumptions here.
23:32 * Vornicus ponders that Finder doesn't really have command line options.
23:32
<@McMartin>
UQM also targets at least two consoles to my knowledge
23:33
< MyCatVerbs>
ToxicFrog: ad-hoc output generators and strictly single function filters, then?
23:33 gnolam|Party [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep]
23:33
<@ToxicFrog>
MyCatVerbs: and console programs.
23:33
<@McMartin>
And major long-running apps.
23:33
<@ToxicFrog>
And lots of other stuff I haven't thought of.
23:34
<@McMartin>
I don't really need cmdline args for my bittorrent clients.
23:34
<@McMartin>
Or my word processors
23:34
<@ToxicFrog>
Such as ss1edit.
23:34
<@McMartin>
Or spellcast, though it does for legacy reasons
23:34
< MyCatVerbs>
McMartin: your word processor still takes a filename to open as a commandline argument when you double click something in the shell.
23:34
<@ToxicFrog>
McMartin: v3 likely won't.
23:34
< Vornicus>
(though both could /take/ them, and many shells will use command line options to name files it opens)
23:34
<@McMartin>
That's not really an "option"
23:34
< Vornicus>
it's still argv, though, which is the point
23:35
< MyCatVerbs>
True, it never takes a switch.
23:35
<@McMartin>
Yes, but the user doesn't have to mess with it.
23:35
<@McMartin>
They just set the association and go.
23:35
< MyCatVerbs>
But do you not usually want to at least add verbosity flags?
23:35
< MyCatVerbs>
Or just enable logging by default?
23:36
<@ToxicFrog>
McMartin: yes, but it's still argv. And the point here is that there are, in fact, programs for which int main(void) is a reasonable signature.
23:36
<@McMartin>
UQM dumps logs to stdout.txt and stderr.txt by default in debug mode
23:37
<@McMartin>
In release it keeps the log in a ring queue and dumps the last N lines to an error window on program abort/crash.
23:37
< MyCatVerbs>
...oh and if you ever write an X11 game that doesn't take a -display option or some equivalent to it, I will personally hunt you down and tickle you.
23:37
<@McMartin>
Who in their right mind programs for X directly in this day and age?
23:37
<@ToxicFrog>
MyCatVerbs: ahem.
23:37
<@ToxicFrog>
env DISPLAY=foo:0.0 program
23:38
<@McMartin>
Also, yeah, I try not to put massive security holes in my program.
23:38
<@McMartin>
At least not as a feature
23:38
< MyCatVerbs>
McMartin: you still do so through Qt, GTK, all your other various GUI toolkits.
23:38 * MyCatVerbs blinks.
23:38
<@ToxicFrog>
MyCatVerbs: which, unlike -display, will work even if you are not in fact programming directly on top of X, but instead on GTK, or SDL, or FXTK, or what have you.
23:39
<@ToxicFrog>
Most of which do not give you an interface to specify which X server the window will appear on; they use the DISPLAY environment variable.
23:39
<@McMartin>
And the only program I've seen that needed this was because it used multiple one simultaneously
23:39
<@McMartin>
viz, xspellcast
23:39
<@ToxicFrog>
All the programs I've seen that used -display, in fact, were ones that used multiple displays at once...yes
23:39
<@McMartin>
And this is, um, a really, really bad idea
23:39
<@ToxicFrog>
Early versions of Crossfire did that as well.
23:39
<@ToxicFrog>
Although they ditched it with the move to client-server
23:39
< MyCatVerbs>
Wait, back up a second here.
23:40
< MyCatVerbs>
McMartin: massive security hole? Care to elaborate?
23:40
<@McMartin>
Never run "xhost +". Ever.
23:41
< Vornicus>
what's that do?
23:41
< MyCatVerbs>
Vornicus: suicide.
23:41
<@ToxicFrog>
Vornicus: lets anything in existence talk to your X server.
23:41
<@ToxicFrog>
I don't know anyone who actually does this.
23:41
< Vornicus>
oh, cute
23:41
< MyCatVerbs>
Vornicus: lets *anyone* lot your keystrokes, display windows to your screen...
23:41
<@ToxicFrog>
It's always "xhost +hostname"
23:41
<@McMartin>
And even that assumes you have total and complete control of hostname, because anyone there can do all that to you.
23:42
<@ToxicFrog>
McMartin: well, generally, they *do*
23:42
<@McMartin>
This is why you only do X11 tunneling on a per-session basis over ssh, which doesn't require xhost.
23:42
< MyCatVerbs>
McMartin: so, um, just distribute the .Xauthority file to the machines you want to be able to run Xclients from. That's what it's for.
23:42
<@ToxicFrog>
I mean, Durandal is always xhost +orias
23:42
<@McMartin>
Right, but if someone pwnz Durandal, then they can pwn orias from it.
23:42
<@ToxicFrog>
If that becomes hostile, then either (a) someone has compromised Orias, in which case I'm fucked, or (b) someone has compromised Durandal's hosts file, in which case I'm fucked
23:43
<@McMartin>
MCV: The point is, you have to play possibly dangerous xhost games to get multidisplay programs working, and then they only work if everyone is running X.
23:43
<@ToxicFrog>
...how can they get at Orias from durandal?
23:43
<@ToxicFrog>
McMartin: And on a LAN!
23:43
<@McMartin>
They might just be really patient!
23:43
<@ToxicFrog>
Since X kind of doesn't work well over the intarwebs.
23:43
<@McMartin>
I've done SSH/X11 tunnelling to lab from a cable modem.
23:43
<@McMartin>
It takes 10 minutes to open xterm, but!
23:43
< MyCatVerbs>
McMartin: ...where on Earth did you get the impression that I wanted to run all the Xclients on one machine out to Xservers on the players' machines?
23:44
<@McMartin>
MCV: Because that's the only possible justification for not just using the DISPLAY env.
23:44
< MyCatVerbs>
McMartin: Xnest, hello?
23:44
<@McMartin>
NHOI
23:44
< Vornicus>
"nhoi"?
23:45
< MyCatVerbs>
Try English, dude.
23:45
<@McMartin>
Never Heard Of It.
23:46
< MyCatVerbs>
Debugging X servers?
23:46 proton [proton@Nightstar-10448.internet.krstarica.net] has joined #code
23:46
<@McMartin>
... right. I'm totally writing a multiplatform real-time GUI app, and I will break compatibility with over 95% of our user base so that I can debug X servers with it.
23:47 proton [proton@Nightstar-10448.internet.krstarica.net] has quit [Quit: ]
23:48
<@McMartin>
I admit, I've been viewing much of this conversation as Yet Another Iteration of "Everyone should eschew cross-platform APIs because they mean people won't be forced to use my preferred invisible-to-the-end-user software"
23:49
< MyCatVerbs>
McMartin: irrelevant anyway, because I'm pretty certain cross platform widget kits handle parsing of standard X11 options on your behalf anyway.
23:50
<@Reiver>
I would reccomend /checking/ that first.
23:51
< MyCatVerbs>
Reiver: that is one fuckload of documentation to wade through.
23:51
<@McMartin>
Reiver: Well, UQM has taken some flak for not following the Mac UI guidelines, but those complainers can die in a fire~
23:51
<@Reiver>
Why does it not follow mac ui guidelines?
23:52
<@Reiver>
(Also does the macs use X servers, or did they require something more standardised?)
23:52
<@McMartin>
Because the Mac UI guidelines are extremely strict and cannot be met by accident.
23:52
< MyCatVerbs>
Reiver: both. OS X *has* an X server, but its primary display mechanism is, IIRC, based on Display Postscript.
23:52
<@McMartin>
"It uses its own widget kit and is not mouse-controlled" will pretty much guarantee that it doesn't meet it.
23:53
<@Reiver>
Ah I see, McM.
23:53
<@McMartin>
At least pre-OS X, the guidelines included "all buttons must look like this"
23:53
<@Reiver>
And, well
23:53
<@Reiver>
non-mouse-controlled is pretty integral to UQM being, well, UQM...
23:54
< MyCatVerbs>
Heehe.
23:54
< MyCatVerbs>
McMartin: does this mean that Warcraft 3 broke Apple's guidelines? =D
23:54
<@McMartin>
There are places where it should understand clicks.
23:55
< MyCatVerbs>
Oh and Quake, of course?
23:55
<@McMartin>
MCV: Probably. I note that Maelstrom for Linux does not.
23:55 MahalBEDD is now known as Mahal
23:55
<@McMartin>
Except for menu placement, of course.
23:56
<@McMartin>
(Also, UQM could usefully allow mouse input in various locations, most notably the starmap, landing-zone selection, and all menus)
23:57
< Vornicus>
Personally anyone who complains about any graphical game not meeting UI guidelines needs to die in a fire.
23:57
<@McMartin>
Well, it was necessary to react to main-menu mouse clicks in UQM to pop up a "Hey, not mouse-controlled" dialog
23:59
<@McMartin>
The people who want "click this spot in space" to mean "solve the ballistics required to provide a trajectory to reach this point" get "No, that's your job".
--- Log closed Sun Feb 11 00:00:30 2007
code logs -> 2007 -> Sat, 10 Feb 2007< code.20070209.log - code.20070211.log >