I am interested in your claim that DB2 maybe does date maths bettert han PostgreSQL. I use both quite regularly and find DB2 to be clunkier, less consistent, weaker in its handling of timezones and missing all sorts of operations. But I am probably biased and possibly failing to research DB2 as thoroughly...
Does anyone have any implementation level details about this? I'd love to hear what the software approach is, what programming language they'll be working in, how the parallelism will be handled, what sorts of problems are involved etc etc etc. We come here for news for nerds (well, cool graphics are OK too, but...)
Actually I did read the article. I've also had conversations about this with LSB people at a talk. But I still wanted to bring this point to people's attention, because every time people say 'Linux' when they mean GNU, UNIX, POSIX, or something else they increase the confusion. Of all people, I would expect hackers to strive to use language accurately.
The funny thing about the LSB is that it concerns APIs for use by userland programs -it has _absolutlely nothing_ to do with the kernel. All of the requirements for LSB compliance concern calling conventions, executable formats, libc, POSIX facilities, filesystem layout an other extra-kernel configuration, most of which any UNIXoid system could support.
There are no obstacles to Darwin, *BSD and Solaris systems meeting LSB compliance, because it has nothing to do with kernels and everything to do with the specific details of a UNIX userland environment.
Generally I don't get into 'Linux' vs 'GNU' discussions but the LSB is once case where I feel the name 'Linux' is used completely inappropriately.
I would recommend QT because: 1. You might as well write cross platform code if you can. 2. You might as well use open source tools whenever possible. 3. If you write it in C++ your application will be fast and responsive.
You can either use the commercial or the GPL versions, and you can develop on your favourite platform (Solaris/BSD/Linux/various other *nix/Win32/Mac), and the resulting application will actually look nice and friendly, unlike many other GUI toolkits which produce slightly alien-looking results.
It is extremely satisfying to develop a GUI application on your GNU/Linux box and later see it running on a Mac and a Windows box, looking just like a native application on each platform, and performing well. Happy customers.
Joel Spolsky, in my humble opinion, has some excellent advice on software development culture, including some compelling arguments you might use. Here he lists the '12 steps to better code'. Arrange for you boss to read this:
If that doesn't work, I would recommend reading his article 'getting things done when you're only a grunt' - basically, it says that you should just go ahead and set these things up for your own use, and then maybe even get others to start using them, and occasionaly show off your amazing documentation/source control/bug tracking system by retrieving the code the boss lost, or by producing the history of some bug or a report on bugs fixed this week.
Personally I think that all of his 12 points are important and I work hard to establish these things when I start work on a new project (sometimes 'unofficially', but invariably 'unofficial' bug tracking/source control/... tools soon become official as nobody can actually live without them and remain highly productive). There are some things that I would add to his 12 points however (and this is getting slightly off topic from your discussion of bug tracking):
13. Dogmatically provide automated unit testing for all code, with as close to 100% coverage as possible; design code from the ground up to best tested 14. Always write self-documenting code (Javadoc for Java, doxygen for C++/PHP etc) 15. Use all available automated tools to improve code quality (code duplication detection, lint, valgrind/purify,... you name it, if it works and especially if it's free, use it on your code, it will only get better)
Another excellent source of advice is the Pragmatic Programmer's book, From Journeyman to Master, which discusses the practice of programming (as opposed to programming itself) in detail.
I was at a talk on LSB at linux.conf.au yesterday. It really made me think... LSB is all about the ELF binary format, the GNU toolchain and runtime libraries and so on. It really has nothing to do with "Linux", and (reportedly) several non-Linux systems like Solaris, HP-UX, and *BSD can be made to pass all the tests.
It seems like "LSB" is one of the more outrageous cases of using the word "Linux" to describe GNU or Unix things entirely outside the kernel. So this is not a case where "GNU/Linux" would be a better name -it's a case where just "GNU" would be a better name!
LSB in effect says nothing whatsoever about your kernel, it is all about binary compatibility though user-space linking policies, library versions, and executable format - not your kernel. And guess what - in a GNU/Linux system those things come entirely from GNU parts and the ELF standard.
Yeah there is a monthly charge. Calling people in a different city or country has a toll charge, but calling people in the same city has no charge per minute, so for the purposes of Bellster-type gateways, it is 'free'.
My friends and I have speculated about this sort of thing before... taking advantage of 'free' local calls from a friend's house, or recording local content with a friend's Tivo in another country.
Local calls are free in New Zealand. Can anybody else report where they are free?
Incidentally, in the late 90s when I was living in London I visited New York. I went into a news agent and bought a cheap call card, and dialed my neighbour in London, from a phonebox in downtown Manhattan. Later I worked out that I had paid about the same for the call as if I had called him from my house next door to him (2p a minute during the day or something... I have forgotten the numbers).
That's just what it's like when you get media from other countries. You find out that sometimes the best X is somewhere else. We in small countries are quite aware that occasionally the best X is in our own country; but more often than not the best X is in Norway, or Switzerland, or the USA, or somewhere else.
They didn't have the crappiest UNIX on the market back in the day - it was awesome to be able to run UNIX on cheapo 386 hardware, and it worked really well.
I feel sorry for the excellent engineers and businessmen who made that happen (more than twenty years ago), their ancient and respectable company name has been turned into shit by a bunch of dot-com bubble idiots with a hangover and a patent lawyer.
A broken system. And not just merely broken, but so kaput that you must either reinstall a new OS from scratch, or put that kernel back in.
I beg to differ - the whole point of this post was that you can replace the linux kernel with the NetBSD kernel (presumably with lots of work) and have a functioning system. Also you can supposedly use the illusive HURD kernel. Not that surprising since they are all reimplimentations/evolutions of the UNIX kernel.
A while back, on a slow day at work, some friends of mine idly discussed making a system along these lines that would run as a separate process.
Our idea was to write it in C, and make it proxy connections to mysql, postgres etc. In otherwords it would speak and understand the wire protocols of each database it supported. It would apply replication (etc) logic as it passed messages through to the real databases.
We imagined a type of pipeline which you could configure, and messages would move though that pipeline being processed by different modules... ie you could enable replication, logging, and perhaps various other types of processing, as options for each user/db or something like that.
Such a system would be useful for any client without modification (such as PHP, perl, C programs and of course the relevant JDBC drivers).
Well we didn't go very far with the idea... Ok we didn't go anywhere with it... But I still I felt like sharing.
Maybe this will make people stop and think about what "linux" actually is, and where else credit might be due. If you switch out that component, what do you have?
Of course the marketing machine likes the word linux quite a lot, it's catchy, it has panache, it sells, which is why people say things like "wow, how did you get that linux software running on MacOS?" when refering to things like bash, gcc or gnome apps.
That's exactly what used to happen (and maybe still does?) in New Zealand - national traffic was cheap and sometimes unlimited, and international traffic was more expensive. What else can an ISP in a small far away country do? They have to foot the bill for the link to an ISP in some big country as a "client" rather than as a peer.
SCO's UNIX is/was actually pretty groovy, back about 10 years ago we used to develop and run software on little 486 boxes that would support very large numbers of simulataneous users using TCP and DEC terminal servers, try doing that with anything other software in 1993.
Besides, considering that SCO UNIX is System V, plus lots of BSD bits, I can't see why free software people would want to bash it, afterall, immitation is the sincerest form of flattery, and the GNU project and the Linux kernel project are total and complete reimplementations of every detail of that world, precisely because it was/is the best use for a CPU known to man.
UNIX deserves respect, proprietary or not, those guys did enormous things for us.
The O'Reilly pthreads book is a pretty readable and quick introduction for someone who knows C -- it explains the concepts, the API, and locking etc problems you will encounter and how to solve them.
It introduces the classic models with code examples and good diagrams and explanations (boss/workers, consumer/producer, peer workers etc) but it doesn't go much into real program or algorithm design with multiple threads of execution however, which is of course another can of worms (but you're already dealing with that sort of problem since you've said he likes you to use fork()s).
YMMV, I have a fairly old edition (1994 or something)...
Typefaces/fonts are an interesting area. American companies apparently used typefaces (which tradionally all came from European type design houses) without paying any royalties or licences, but are now starting to try to get protection.
http://nwalsh.com/comp.fonts/FAQ/cf_14.htm
"The reluctance of Americans to press for typeface copyright may have been influenced by a feeling that typeface plagiarism was good for U.S. high-tech businesses who were inventing new technologies for printing, and plagiarizing types of foreign origin (Europe and England). If the situation becomes reversed, and foreign competition (from Japan, Taiwan, and Korea) threatens to overcome American technological superiority in the laser printer industry, then American firms may do an about-face and seek the protection of typeface copyright to help protect the domestic printer industry. Such a trend may already be seen in the licensing of typeface trademarks by Adobe, Hewlett-Packard, IBM, Imagen, and Xerox in the U.S. laser printer industry."
I am interested in your claim that DB2 maybe does date maths bettert han PostgreSQL. I use both quite regularly and find DB2 to be clunkier, less consistent, weaker in its handling of timezones and missing all sorts of operations. But I am probably biased and possibly failing to research DB2 as thoroughly...
It'say 'member', otnay 'member?', ifay isthay isay Emeschay.
Does anyone have any implementation level details about this? I'd love to hear what the software approach is, what programming language they'll be working in, how the parallelism will be handled, what sorts of problems are involved etc etc etc. We come here for news for nerds (well, cool graphics are OK too, but...)
For number 3 (automatic clustering) try these:
http://openmosix.sourceforge.net/
http://openssi.org/
http://www.kerrighed.org/
All of these systems will let processes migrate between networked GNU/Linux machines.
Actually I did read the article. I've also had conversations about this with LSB people at a talk. But I still wanted to bring this point to people's attention, because every time people say 'Linux' when they mean GNU, UNIX, POSIX, or something else they increase the confusion. Of all people, I would expect hackers to strive to use language accurately.
The funny thing about the LSB is that it concerns APIs for use by userland programs -it has _absolutlely nothing_ to do with the kernel. All of the requirements for LSB compliance concern calling conventions, executable formats, libc, POSIX facilities, filesystem layout an other extra-kernel configuration, most of which any UNIXoid system could support.
There are no obstacles to Darwin, *BSD and Solaris systems meeting LSB compliance, because it has nothing to do with kernels and everything to do with the specific details of a UNIX userland environment.
Generally I don't get into 'Linux' vs 'GNU' discussions but the LSB is once case where I feel the name 'Linux' is used completely inappropriately.
I would recommend QT because:
1. You might as well write cross platform code if you can.
2. You might as well use open source tools whenever possible.
3. If you write it in C++ your application will be fast and responsive.
You can either use the commercial or the GPL versions, and you can develop on your favourite platform (Solaris/BSD/Linux/various other *nix/Win32/Mac), and the resulting application will actually look nice and friendly, unlike many other GUI toolkits which produce slightly alien-looking results.
http://www.trolltech.com/products/qt/
If you prefer C, you could use GTK+ instead: http://www.gtk.org/
It is extremely satisfying to develop a GUI application on your GNU/Linux box and later see it running on a Mac and a Windows box, looking just like a native application on each platform, and performing well. Happy customers.
Joel Spolsky, in my humble opinion, has some excellent advice on software development culture, including some compelling arguments you might use. Here he lists the '12 steps to better code'. Arrange for you boss to read this:
0 43.html
3 32.html
... you name it, if it works and especially if it's free, use it on your code, it will only get better)
http://www.joelonsoftware.com/articles/fog0000000
If that doesn't work, I would recommend reading his article 'getting things done when you're only a grunt' - basically, it says that you should just go ahead and set these things up for your own use, and then maybe even get others to start using them, and occasionaly show off your amazing documentation/source control/bug tracking system by retrieving the code the boss lost, or by producing the history of some bug or a report on bugs fixed this week.
http://www.joelonsoftware.com/articles/fog0000000
Personally I think that all of his 12 points are important and I work hard to establish these things when I start work on a new project (sometimes 'unofficially', but invariably 'unofficial' bug tracking/source control/... tools soon become official as nobody can actually live without them and remain highly productive). There are some things that I would add to his 12 points however (and this is getting slightly off topic from your discussion of bug tracking):
13. Dogmatically provide automated unit testing for all code, with as close to 100% coverage as possible; design code from the ground up to best tested
14. Always write self-documenting code (Javadoc for Java, doxygen for C++/PHP etc)
15. Use all available automated tools to improve code quality (code duplication detection, lint, valgrind/purify,
Another excellent source of advice is the Pragmatic Programmer's book, From Journeyman to Master, which discusses the practice of programming (as opposed to programming itself) in detail.
Thomas
I was at a talk on LSB at linux.conf.au yesterday. It really made me think... LSB is all about the ELF binary format, the GNU toolchain and runtime libraries and so on. It really has nothing to do with "Linux", and (reportedly) several non-Linux systems like Solaris, HP-UX, and *BSD can be made to pass all the tests.
It seems like "LSB" is one of the more outrageous cases of using the word "Linux" to describe GNU or Unix things entirely outside the kernel. So this is not a case where "GNU/Linux" would be a better name -it's a case where just "GNU" would be a better name!
LSB in effect says nothing whatsoever about your kernel, it is all about binary compatibility though user-space linking policies, library versions, and executable format - not your kernel. And guess what - in a GNU/Linux system those things come entirely from GNU parts and the ELF standard.
Yeah there is a monthly charge. Calling people in a different city or country has a toll charge, but calling people in the same city has no charge per minute, so for the purposes of Bellster-type gateways, it is 'free'.
My friends and I have speculated about this sort of thing before... taking advantage of 'free' local calls from a friend's house, or recording local content with a friend's Tivo in another country.
Local calls are free in New Zealand.
Can anybody else report where they are free?
Incidentally, in the late 90s when I was living in London I visited New York. I went into a news agent and bought a cheap call card, and dialed my neighbour in London, from a phonebox in downtown Manhattan. Later I worked out that I had paid about the same for the call as if I had called him from my house next door to him (2p a minute during the day or something... I have forgotten the numbers).
That's just what it's like when you get media from other countries. You find out that sometimes the best X is somewhere else. We in small countries are quite aware that occasionally the best X is in our own country; but more often than not the best X is in Norway, or Switzerland, or the USA, or somewhere else.
Welcome to the world.
Looks like great software, I'm looking forward to trying it out.
But I have to ask - what's kernel-specific about this software? Looks like it builds on any Unix box.
They didn't have the crappiest UNIX on the market back in the day - it was awesome to be able to run UNIX on cheapo 386 hardware, and it worked really well.
I feel sorry for the excellent engineers and businessmen who made that happen (more than twenty years ago), their ancient and respectable company name has been turned into shit by a bunch of dot-com bubble idiots with a hangover and a patent lawyer.
A broken system. And not just merely broken, but so kaput that you must either reinstall a new OS from scratch, or put that kernel back in.
I beg to differ - the whole point of this post was that you can replace the linux kernel with the NetBSD kernel (presumably with lots of work) and have a functioning system. Also you can supposedly use the illusive HURD kernel. Not that surprising since they are all reimplimentations/evolutions of the UNIX kernel.
A while back, on a slow day at work, some friends of mine idly discussed making a system along these lines that would run as a separate process.
Our idea was to write it in C, and make it proxy connections to mysql, postgres etc. In otherwords it would speak and understand the wire protocols of each database it supported. It would apply replication (etc) logic as it passed messages through to the real databases.
We imagined a type of pipeline which you could configure, and messages would move though that pipeline being processed by different modules... ie you could enable replication, logging, and perhaps various other types of processing, as options for each user/db or something like that.
Such a system would be useful for any client without modification (such as PHP, perl, C programs and of course the relevant JDBC drivers).
Well we didn't go very far with the idea... Ok we didn't go anywhere with it... But I still I felt like sharing.
Maybe this will make people stop and think about what "linux" actually is, and where else credit might be due. If you switch out that component, what do you have?
Of course the marketing machine likes the word linux quite a lot, it's catchy, it has panache, it sells, which is why people say things like "wow, how did you get that linux software running on MacOS?" when refering to things like bash, gcc or gnome apps.
That's exactly what used to happen (and maybe still does?) in New Zealand - national traffic was cheap and sometimes unlimited, and international traffic was more expensive. What else can an ISP in a small far away country do? They have to foot the bill for the link to an ISP in some big country as a "client" rather than as a peer.
Maybe it costs you more because of the
asymmetric nature of internet interconnection. Telstra probably has much higher expenses than ISPs in the US and Europe.
SCO's UNIX is/was actually pretty groovy, back about 10 years ago we used to develop and run software on little 486 boxes that would support very large numbers of simulataneous users using TCP and DEC terminal servers, try doing that with anything other software in 1993.
Besides, considering that SCO UNIX is System V, plus lots of BSD bits, I can't see why free software people would want to bash it, afterall, immitation is the sincerest form of flattery, and the GNU project and the Linux kernel project are total and complete reimplementations of every detail of that world, precisely because it was/is the best use for a CPU known to man.
UNIX deserves respect, proprietary or not, those guys did enormous things for us.
The O'Reilly pthreads book is a pretty readable and quick introduction for someone who knows C -- it explains the concepts, the API, and locking etc problems you will encounter and how to solve them.
It introduces the classic models with code examples and good diagrams and explanations (boss/workers, consumer/producer, peer workers etc) but it doesn't go much into real program or algorithm design with multiple threads of execution however, which is of course another can of worms (but you're already dealing with that sort of problem since you've said he likes you to use fork()s).
YMMV, I have a fairly old edition (1994 or something)...
Typefaces/fonts are an interesting area. American companies apparently used typefaces (which tradionally all came from European type design houses) without paying any royalties or licences, but are now starting to try to get protection.
http://nwalsh.com/comp.fonts/FAQ/cf_14.htm
"The reluctance of Americans to press for typeface copyright may have been influenced by a feeling that typeface plagiarism was good for U.S. high-tech businesses who were inventing new technologies for printing, and plagiarizing types of foreign origin (Europe and England). If the situation becomes reversed, and foreign competition (from Japan, Taiwan, and Korea) threatens to overcome American technological superiority in the laser printer industry, then American firms may do an about-face and seek the protection of typeface copyright to help protect the domestic printer industry. Such a trend may already be seen in the licensing of typeface trademarks by Adobe, Hewlett-Packard, IBM, Imagen, and Xerox in the U.S. laser printer industry."
> That's like saying a piece of Linux software is "for Mandrake 8.2". Most win32 software will run on 95, 98, ME, NT, 2k, and XP
Which is just like saying that Un*x software is for "Linux". The marketing screws with people's minds and their neurons disconnect.
Eh? Everyone uses openssh!
Quote: "It's against the law. It's a crime we are going to enforce," the detective said.
Who needs criminals when you have the police out there enforcing crime themselves, eh?