The slogan meant nothing anyway. The only reason there were no holes in the default install was that there were virtually no network services running. My toaster is secure on the same principle.
To enter characters that aren't on your keys, you probably want to use the 'compose' method. This is part of X, so it works for all apps. Once you start using it, you can forget about app-specific hacks.
First you need to decide which key(s) will be used for composing. I have <> keys, so I use them, but you may want to use something like AltGr if you have a typical PC keyboard.
To find the code generated by a key, run xev and then press the key. On my keyboard, pressing the right 'alt' key generates code 113.
Now you need to tell X to use this key as a compose key, using something like this:
xmodmap -e 'keycode 113 = Multi_key'
After doing this, pressing the compose key and then a combination of other keys will generate the characters you're after. For example:
Compose + e + " generates ë (lowercase e with an umlaut).
Now you may add the above xmodmap invocation to your ~/.xinitrc or ~/.xsession or both, to have the setting ready when you next log in.
I have tried to tabulate all the available compositions for iso-8859-1 (latin-1) on my website, here.
> I am a Computer Information Systems > Professional [devry.edu] at a major Fortune > 500 corporation. > [...] > We had previously been running OpenBSD on > all our quad processor Xeons.
Considering you're such an elite professional, it's amusing that you (allegedly) run OpenBSD on SMP boxes. OpenBSD doesn't support SMP. Hope you didn't populate the other 3 CPU sockets.
I think you don't understand what I'm talking about. I'm not talking about timing how long an operation takes, I'm talking about how long it _seems_ to take, _to the user_. If the app is busy for > 10ms, the app feels like it has stalled. This pisses the user off. You can't measure that easily, because the app may do a lot of things that take 9ms, and the UI will feel like it is stuttering.
You also can't just 'assert that the text has a certain colour' in complex rendering code. I'm not just talking about displaying one word in a certain colour, I'm talking about a massive amount of text, which is formatted and marked up before display. Whether it is done 'correctly' or not is extremely difficult to write checking code for. It's far better to simply have a look and see.
Anyway, these were two examples of 'untestable' problems that one faces when writing complex apps. There are many more, and yes, they may in fact be testable, but it would take 10 times longer to write the app if you wrote (hideously complex) tests for such things. Time is money, projects have deadlines, etc.
Assertions are great at the lowest level of development, but when you're dealing with higher levels of complexity, it's not really possible to use them.
For example, how do I write an assertion that downloading some data didn't make the UI stall for long enough to be noticeable ? Or that the formatted text I presented to the user has the right colours and line wrapping to make it pleasing to the eye ? Or that the correct icons were loaded for the toolbar buttons ?
This is not about programming paradigms, it's about the reality of testing large apps.
I've been coding long enough that I don't make too many mistakes. The problem is that if I change something low down in the dependency tree, lots of stuff gets rebuilt, and this takes time.
Also, thanks to the complexity of C++, there is no refactoring browser (that I know of) so if I change a method signature, I have to use the compiler to tell me what needs 'fixing'.
Of course, vim is able to jump to warnings/errors generated by gcc, which helps quite a bit.
I'm currently working on about 50k lines of C++ code, where a rebuild can take anywhere from 3.5s for one file (no problem) to 90s for a change that affects more code. I'm currently using gcc 2.95.3. gcc 3.1 is much slower.
I'm using make -j 2 on a dual athlon, and I forward declare where possible to save time.
I would just prefer the focus of gcc development to shift from execute speed to compile speed. But the gcc people are free to do what they wish, it's not like I'm paying them;)
What most concerns me is how long it takes to compile code. While developing, I don't want to sit and wait for the compiler (+linker). gcc is sadly getting slower and slower in this regard.
To confirm that music is purchased due to hearing it over Internet radio...
Last month, I heard something that sounded
really good on the Drone Zone, looked up and saw the artist was called Fila Brazillia, downloaded a couple of mp3s via peer-to-peer sharing services, decided I really liked them, and ordered 2 CDs. I'll be ordering the rest of their catalogue very soon.
If you want better FreeBSD support, try asking if any developers would like FreeBSD CDs sending to them. If I had FreeBSD, I'd install it and test on it. I don't fancy downloading it over a modem, though.
Rik
There are various ways to theme KDE. Icon sets,
widget styles, window manager borders...
It's very possible to use identical-looking window decorations - KDE supports IceWM decos, so just use an IceWM theme that's identical to a sawfish theme.
It's also possible to have practically identical-looking widgets, because both KDE and GNOME support pixmap themes for widgets. Note, though, that this requires a little more CPU. Especially GTK pixmap themes seem to make widget redraw sluggish, though perhaps this is fixed now (I haven't tried recently).
Icon sets... easy, and KDE is close to supporting SVG icons, so there's another common format.
The only reason that KDE and GNOME will not ship with identical 'themes' is that I doubt the teams will agree on a common 'theme'. Who knows...
2. RMS talks about ill feeling between GNOME and KDE developers. Rubbish. I don't know of any KDE developers who have anything personal against any GNOME developers. Either GNOME developers have something against KDE developers, and we never noticed, or RMS is just making it up as he goes along, which seems more likely to me.
The KDE libraries are by design quite safe.
You don't have the buffer overflow problems
that you have in C.
Please, if you would like to allege that my
code is compromisable, have a look at the
last stable release (0.4) of kpf and see if
you can tell me where.
Until you can prove that kpf is insecure,
you are merely spreading FUD.
Rik
Let's face it. At current, we're barely at the point of dynamically configurable webservers. What is needed is a single, uniform way of informing the system of network related requests and letting it carry them out.
That creates a new server serving files from/some/export, listening on port 8080, with a 4k/s bandwidth limit, a limit of 10 concurrent clients, and disallowing following of symbolic links.
There are other useful DCOP calls you can make
too, here's the rest of them: disableServer, restartServer, reconfigureServer, pauseServer,
unpauseServer, serverPaused.
Of course, you can do all these things with
the applet's config dialog or by right-clicking
on one of the server graphs. You can also play
with the settings by using the directory properties dialog in konqy, which has an extra
tab when you install kpf (only in 0.4.2, the
unstable version, currently.)
My ASUS was GBP 200.
I'm using a 340W.
My notes about life with the A7M266-D
I'm very happy with my dual athlon box. I need the CPU grunt to compile lots of C++ code all day (g++ is horribly slow, as is the Linux linker.)
Why didn't I buy Intel ? Simple. To get an equivalent level of performance, I'd have had to pay twice as much.
Rik
Soundgarden covered Lennon's One Minute Of Silence.
Rik.
The slogan meant nothing anyway. The only reason there were no holes in the default install was that there were virtually no network services running. My toaster is secure on the same principle.
Rik
To enter characters that aren't on your keys, you probably want to use the 'compose' method. This is part of X, so it works for all apps. Once you start using it, you can forget about app-specific hacks.
First you need to decide which key(s) will be used for composing. I have <> keys, so I use them, but you may want to use something like AltGr if you have a typical PC keyboard.
To find the code generated by a key, run xev and then press the key. On my keyboard, pressing the right 'alt' key generates code 113.
Now you need to tell X to use this key as a compose key, using something like this:
xmodmap -e 'keycode 113 = Multi_key'After doing this, pressing the compose key and then a combination of other keys will generate the characters you're after. For example: Compose + e + " generates ë (lowercase e with an umlaut).
Now you may add the above xmodmap invocation to your ~/.xinitrc or ~/.xsession or both, to have the setting ready when you next log in.
I have tried to tabulate all the available compositions for iso-8859-1 (latin-1) on my website, here.
Rik
> I am a Computer Information Systems
> Professional [devry.edu] at a major Fortune
> 500 corporation.
> [...]
> We had previously been running OpenBSD on
> all our quad processor Xeons.
Considering you're such an elite professional,
it's amusing that you (allegedly) run OpenBSD
on SMP boxes. OpenBSD doesn't support SMP.
Hope you didn't populate the other 3 CPU sockets.
Rik
I think you don't understand what I'm talking about. I'm not talking about timing how long an operation takes, I'm talking about how long it _seems_ to take, _to the user_. If the app is busy for > 10ms, the app feels like it has stalled. This pisses the user off. You can't measure that easily, because the app may do a lot of things that take 9ms, and the UI will feel like it is stuttering.
You also can't just 'assert that the text has a certain colour' in complex rendering code. I'm not just talking about displaying one word in a certain colour, I'm talking about a massive amount of text, which is formatted and marked up before display. Whether it is done 'correctly' or not is extremely difficult to write checking code for. It's far better to simply have a look and see.
Anyway, these were two examples of 'untestable' problems that one faces when writing complex apps. There are many more, and yes, they may in fact be testable, but it would take 10 times longer to write the app if you wrote (hideously complex) tests for such things. Time is money, projects have deadlines, etc.
Rik
Assertions are great at the lowest level of development, but when you're dealing with higher levels of complexity, it's not really possible to use them.
For example, how do I write an assertion that downloading some data didn't make the UI stall for long enough to be noticeable ? Or that the formatted text I presented to the user has the right colours and line wrapping to make it pleasing to the eye ? Or that the correct icons were loaded for the toolbar buttons ?
This is not about programming paradigms, it's about the reality of testing large apps.
Rik
> If you want build speed, disable optimization etc.
Duh, thanks for the tip.
Rik
I've been coding long enough that I don't make too many mistakes. The problem is that if I change something low down in the dependency tree, lots of stuff gets rebuilt, and this takes time.
;)
Also, thanks to the complexity of C++, there is no refactoring browser (that I know of) so if I change a method signature, I have to use the compiler to tell me what needs 'fixing'.
Of course, vim is able to jump to warnings/errors generated by gcc, which helps quite a bit.
I'm currently working on about 50k lines of C++ code, where a rebuild can take anywhere from 3.5s for one file (no problem) to 90s for a change that affects more code. I'm currently using gcc 2.95.3. gcc 3.1 is much slower.
I'm using make -j 2 on a dual athlon, and I forward declare where possible to save time.
I would just prefer the focus of gcc development to shift from execute speed to compile speed. But the gcc people are free to do what they wish, it's not like I'm paying them
Rik
What most concerns me is how long it takes to compile code. While developing, I don't want to sit and wait for the compiler (+linker). gcc is sadly getting slower and slower in this regard.
Rik
To confirm that music is purchased due to hearing it over Internet radio...
Last month, I heard something that sounded really good on the Drone Zone, looked up and saw the artist was called Fila Brazillia, downloaded a couple of mp3s via peer-to-peer sharing services, decided I really liked them, and ordered 2 CDs. I'll be ordering the rest of their catalogue very soon.
If you want better FreeBSD support, try asking if any developers would like FreeBSD CDs sending to them. If I had FreeBSD, I'd install it and test on it. I don't fancy downloading it over a modem, though. Rik
1. Theme 'unification' possible.
There are various ways to theme KDE. Icon sets,
widget styles, window manager borders...
It's very possible to use identical-looking window decorations - KDE supports IceWM decos, so just use an IceWM theme that's identical to a sawfish theme.
It's also possible to have practically identical-looking widgets, because both KDE and GNOME support pixmap themes for widgets. Note, though, that this requires a little more CPU. Especially GTK pixmap themes seem to make widget redraw sluggish, though perhaps this is fixed now (I haven't tried recently).
Icon sets... easy, and KDE is close to supporting SVG icons, so there's another common format.
The only reason that KDE and GNOME will not ship with identical 'themes' is that I doubt the teams will agree on a common 'theme'. Who knows...
2. RMS talks about ill feeling between GNOME and KDE developers. Rubbish. I don't know of any KDE developers who have anything personal against any GNOME developers. Either GNOME developers have something against KDE developers, and we never noticed, or RMS is just making it up as he goes along, which seems more likely to me.
Konqueror does that, and yes, it works with .ogg.
Just enable sound previews (View->Preview->Sound Files)
Any other examples ?
Rik
Why should daemons not be tied to GUIs ?
Apart from the obvious - they stop when you
log out. But this is a file sharing utility,
not a CGI-running multiple-process-spawning
web server.
Rik
The KDE libraries are by design quite safe. You don't have the buffer overflow problems that you have in C. Please, if you would like to allege that my code is compromisable, have a look at the last stable release (0.4) of kpf and see if you can tell me where. Until you can prove that kpf is insecure, you are merely spreading FUD. Rik
How's this ?
dcop kpf createServerThat creates a new server serving files from /some/export, listening on port 8080, with a 4k/s bandwidth limit, a limit of 10 concurrent clients, and disallowing following of symbolic links.
There are other useful DCOP calls you can make too, here's the rest of them: disableServer, restartServer, reconfigureServer, pauseServer, unpauseServer, serverPaused.
Of course, you can do all these things with the applet's config dialog or by right-clicking on one of the server graphs. You can also play with the settings by using the directory properties dialog in konqy, which has an extra tab when you install kpf (only in 0.4.2, the unstable version, currently.)
Rik
No, sorry, kpf is read-only for security.
:)
I don't have the time or enough experience to
allow writing - that would require much more code
and much more auditing.
I think I heard of a kio_webdav, but I don't know
if it ever saw light. Check google
Rik
So now I have a slashdot user id. I didn't want one, but
perhaps this will mean I get to respond to ignorant posts
about my software. See parent.
Rik