If one believes that humans are different from animals in that we contain a spirit and an awareness of God
That's a pretty big 'If' you have there. I certainly don't believe that, and few of my friends in the UK and Ireland believe that, or in any god-type crap for that matter. You'll find that even if the wierdo christians still alive in the US, or the muslims in the middle east, don't go ahead with genetic research, people in northern europe, south-east asia, and japan will.
XML is, as is touched upon briefly in the aritcle, just lisp s-expressions, but with phenomenally annoying syntax.
If you have to work with XML, and you know some Scheme, I recommend translating it into Scheme form, via ssax. It makes XML not quite such a pain in the arse.
moved back to commercial programming at Eurobase Systems Ltd when Graftgold ceased trading. He is a Senior Programmer working on client/server database applications for the insurance market.
Shiver. Braybrook's games were some of the best ever. I'd say he probably couldn't bear games coding for such an ugly-to-program platform as the Wintel architecture for very long, after the comparitive bliss of Amiga games programming...
"natural market forces" have nothing to do with the proprietary software market. It's only there because of governmental market interference via copyrights. In a natural market, there would be no copyright (incidentally rendering the GPL unenforceable).
In fact, in a natural market, you'd be laughed at for trying to sell software, since, in the absence of copyright, it's non-scarce. The only thing you could sell would be the time and effort you expend _writing_ the software in the first place.
Copyright is not a law of nature! It's a way to sell the same thing to suckers over and over again. Some of the greatest works of art and inventions of all time were produced in eras without copyright. My personal opinion is that if copyright were done away with, there'd be far less rubbish produced, but the best stuff would remain, since the best stuff tends to be done regardless of the profit motive.
Personally, I wouldn't care if all proprietary off-the-shelf software companies went out of business. Screw 'em.
At the same time, I'll happily _buy_ GPL or BSD licensed software off-the-shelf, particularly large packages, since it's usually easier to buy them, and get a nice printed manual, than to spend an age downloading them.
I have books from the dawn of the microcomputer age, and the name for the "box" of your computer back then was... "mainframe". At that stage, analogously to the "big" computer systems of the time (now called mainframes), that's what the "box" of a standard microcomputer was called, since it... was... the... main... frame... of the computer.
The keyboard/monitor/etc, were (still are) described as "peripherals". For some reason, "mainframe" didn't stick around for the microcomputer, and came to exclusively mean the big computers that IBM still make.
Hey, there are ants all over the world (and the plants in my back garden), who farm aphids like cows, right down to "milking" them, and herding them from place to place. I haven't observed them engaged in selective aphid breeding programmes, like humans eventually stated doing to cows, but it's probably only a matter of time:-).
Personally, I don't give a crap about any gods, so I'm not worried about "playing god". After all, it's what people do. We modify our environment ot suit our needs, rather than just putting up with it, and we're getting better at it.
In Sun Java 2 on Win32, there's a Java Bean <-> COM/ActiveX bridge, so it's perfectly possible to do Java/COM interop the "Sun" way (which, I suppose, might mean some code changes, but it still works, and it's FAR cleaner than the MS way.) . In fact, this bridge is the way the Java 2 Plugin works with new versions of IE.
Geez. Talk about flamebait topic. Personally (and personal opinion only, here), I'd say, Qt is better designed, clearer, and easier from a programming standpoint - but it's actually not clean C++, what with its dodgy signals/slots stuff, that gtk-- manages to do within the bounds of the language.
If you're writing commercial, proprietary software, then you have to pay to use Qt - but Trolltech provide a thoroughly professionally supported toolkit to you for your money.
The Qt class library is actually more akin to the standard set of Java classes than just a widget set - there's decent cross-platform support for sockets, xml, threads, unicode, etc. It really makes C++ programming very easy.
OF course, there's other cross-platform C++ tollkits like FLTK... The gui toolkit page lists many more.
There's one extra proviso, too, at least here in Oz: the professional bodies (eg IEEE) can *revoke* certification of a university course if they believe it no longer provides the appropriate level of knowledge and experience.
Yeah - same in Britain + Ireland. It's very seldom that univerities do actually lose the certification though, since IMechE, IEEE, etc. send inspectors every so often and tell them if they're making the exams/projects too easy or whatever, before the situation gets to the stage where they'd have to consider de-endorsing the course.
I am a mechanical engineer (MEng Mech Eng.). I passed lots of tests (barely, I only got a 2.2). But even to get that qualification, I _also_ had to complete team and individual industrial-style projects + have them reviewed. (Designing a recumbent pedal vehicle, and a streamlined body for a vehicle.)
Even so, I'm not really a fully qualified mechanical engineer - I'm not chartered. (I probably never will be, since I started developing software instead, but that's another story.)
I don't know how it works in America, but the way you fully qualify as an engineer (get your charter) in Britain and Ireland _is_ by the mechanical engineering equivalent of writing several programs and submitting them to a review group - the IMechE. After a few years as a "rookie" mechanical engineer in the industry (usually with a "mentor", an engineering guru to guide you on your way), you submit details of the projects you have worked on for review, and have an unfun interview. If they're up to scratch, you get a charter. The academic tests don't really mean much, beyond a certain basic level of competence, unless you're sticking in academia to do research.
Just as I can happily write programs without being a qualified software engineer, plenty of people can happily design machines without being a mechanical engineer. But qualified mechanical engineers will probably do a better job, and be allowed do it where people's lives are at stake - note how most software says things like "not to be used to run a nuclear reactor" in the license?
Also, mechanical engineers don't go off and reinvent the wheel from scratch either - we don't re-derive the Navier-Stokes equations each time we use them, and, when we're designing something, we used a (gasp!) "component-based approach" - ordering off-the-shelf parts and slotting them together. It keeps the cost down that way, and is a lot like component/ OO programming with a rich standard API. Kinda like writing Java applications, in fact (what I've actually spent the past while doing). Building and Civil engineers use a similar approach for... building houses...
Programming _is_ like building a house. Generally, you're slotting together lots of components that people have already designed. A builder doesn't make his own bricks - bricks come in a selection of standard sizes from the brick factory.
So, why not a similar approach for life-critical Software Engineering?
Re:Good grief!
on
KDE 2.2.2
·
· Score: 2, Informative
It's not particularly interesting - they've just centralised the icon database into a server, so that all the applications don't perform the same searches of (possibly very long and crowded on the system of someone who likes eye-candy) icon directories - now the server only has to walk the search path once, and applications ask it for the icons.
You've got a good manager. What if your manager is country club or golf buddies with the local microsoftie, and just tells you to go microsoft regardless? Microsoft are GOOD at manipulating the opinions of the technically-clueless, by "networking". Happens all the time in Ireland+England, anyway. The subverted manager will just ignore what you say, and, when you quit*, they'll just hire a drooling-idiot MCSE to be their yes-man to back up their decisions to their bosses.
*of course, chances are, an already-subverted manager means that you woulnd't have been hired.
If you really want to get rid of MS stuff, you have to buy a few shares in the company, then go to the shareholder meetings, and vociferously question their IT overspend relative to a linux or bsd solution.
I dunno - I quite like OpenGL, but for realistic rendering, raytracing is pretty cool... Imagine having HW capable of raytrace-rendering 100s of renderman frames per second, and using that to animate in real time.
(a) mainframes are still around. If anything they're experiencing massive growth, thanks to IBM remarketing them as ultra-reliable linux virtual server solutions.
(b) As a mechanical engineer and computational fluid dynamicist, I assure you, the workstations are not "dominated by windows" - most people are still on SGIs, and the majority of those that aren't are moving to Linux, not Windows NT, under the advice of the application vendors, who find supporting their apps on linux much less of a pain than on WinNT.
Unix Clusters aren't going away either. Just because you can do on one computer what took a cluster two years ago, doesn't mean that people like me won't just find more complex problems to do. Depending on the application, there's a spectrum of cost/performance solutions that may be worthwhile - if you're simulating a nuclear explosion, and CPUs get more powerful, you don't necessarily downsize, you might make the simulation more accurate by using roughly the same amount of computers to do much more. Human's AREN'T able to simulate the physical world with complete accuracy - but the more calculations, the better (assuming perfect programming), at least until you hit quantum limits, and then it takes EVEN MORE power to do probabilistic predictions via monte-carlo or sum-over-histories....
Simple Directmedia Layer. It, and associated add-on SDL_* libraries, provide simple, easy to understand and use, pure C APIs to the basics a game developer would want. It handles input/output, and acts as a gate to OpenGL for 3D.
(from SDLsite:)
Simple DirectMedia Layer is a cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power." Simple DirectMedia Layer supports Linux, Win32, BeOS, MacOS, Solaris, IRIX, and FreeBSD.
SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, Eiffel, ML, Perl, PHP, Python, and Ruby.
Pretty much all commercial games on linux use SDL, as well as most new little games on linux, and a fair proportion of them on windows and MacOS
Re:In a nutshell: OpenGL2 good; "Pure" OpenGL bad
on
OpenGL 2.0 White Papers
·
· Score: 2, Informative
Yes, well, the way OpenGL development works is that the features first show up as a "Vendor Extension", then if they're any good, the Architecture Review Board sits down and folds them into the main specification. You're just seeing the middle of this process. But, hey, the process works, and it's picking up speed again,
after a whole load of (largely MS-related) shenanigans involving the ARB and SGI (MS basically did the same to SGI as they did to IBM with OS/2 and WNT, with a project called "Fahrenheit" - which wasted lots of SGI's time and money. SGI should have known better than to deal with MS)
Since Apple and BSD, commercial unix and Linux are now all firmly on the OpenGL path, it's unlikely OpenGL will go away...
OpenGL is unlikely to go - after all, DirectX only exists on Wintel/XBox. Scientific and industrial visualisation applications are pretty much all OpenGL, and are pretty much all designed for Unix and Linux (there are rickety ports to WNT from Unix), and depend on the design for high-poly-count and easy C and FORTRAN compatibility of OpenGL. The fancy-texturing facilities of DirectX are largely irrelevant, and the requirement to use C++ or (bleurgh!) a COM interface in other languages, makes it difficult to use DirectX for anything "serious".
The margins for software and hardware vendors in this market are much larger, and more secure, than in the games software market (where most products barely break even) - you can get away with charging £20000 a year for a license to many specialised programs.
Schools are, or should be, for teaching children how to learn for themselves. "Learning how to learn" is the single most important part of schooling, and one that is (some conspiracy theorists would say deliberately) not sufficiently stressed in the majority of present state-funded educational systems in western society.
In contrast, most schools are just "teaching" the kids to "use the tools most prevalent in the business world", all nice 'n' ready for their career-chip implantation as another mindless corporate drone.
Computing classes should teach people the principles of computing, so they can handle _any_ language and _any_ platform. Only some schools do - here, in Ireland, we have a complete joke of a school qualification called the "ECDL" which schools essentially implement as a certification of ability to use Microsoft Office. That's just wrong. The kids aren't learning how to use computers, they're getting vocational training on how to be secretaries. Kids who are actually interested in computers and computing are _not_ being served by the educational system.
If one believes that humans are different from animals in that we contain a spirit and an awareness of God
That's a pretty big 'If' you have there. I certainly don't believe that, and few of my friends in the UK and Ireland believe that, or in any god-type crap for that matter. You'll find that even if the wierdo christians still alive in the US, or the muslims in the middle east, don't go ahead with genetic research, people in northern europe, south-east asia, and japan will.
Save on the home heating bills since you could produce lots of your own methane for your boiler, at the same time as keeping your lawn trimmed...
XML is, as is touched upon briefly in the aritcle, just lisp s-expressions, but with phenomenally annoying syntax.
If you have to work with XML, and you know some Scheme, I recommend translating it into Scheme form, via ssax. It makes XML not quite such a pain in the arse.
And who says the gasbags aren't intelligent?
Truly tragic story:
http://www.graftgold.com/now.html
Andrew Braybrook:
moved back to commercial programming at Eurobase Systems Ltd when Graftgold ceased trading. He is a Senior Programmer working on client/server database applications for the insurance market.
Shiver. Braybrook's games were some of the best ever. I'd say he probably couldn't bear games coding for such an ugly-to-program platform as the Wintel architecture for very long, after the comparitive bliss of Amiga games programming...
"natural market forces" have nothing to do with the proprietary software market. It's only there because of governmental market interference via copyrights. In a natural market, there would be no copyright (incidentally rendering the GPL unenforceable).
In fact, in a natural market, you'd be laughed at for trying to sell software, since, in the absence of copyright, it's non-scarce. The only thing you could sell would be the time and effort you expend _writing_ the software in the first place.
Copyright is not a law of nature! It's a way to sell the same thing to suckers over and over again. Some of the greatest works of art and inventions of all time were produced in eras without copyright. My personal opinion is that if copyright were done away with, there'd be far less rubbish produced, but the best stuff would remain, since the best stuff tends to be done regardless of the profit motive.
Personally, I wouldn't care if all proprietary off-the-shelf software companies went out of business. Screw 'em.
At the same time, I'll happily _buy_ GPL or BSD licensed software off-the-shelf, particularly large packages, since it's usually easier to buy them, and get a nice printed manual, than to spend an age downloading them.
I have books from the dawn of the microcomputer age, and the name for the "box" of your computer back then was... "mainframe". At that stage, analogously to the "big" computer systems of the time (now called mainframes), that's what the "box" of a standard microcomputer was called, since it... was... the... main... frame... of the computer.
The keyboard/monitor/etc, were (still are) described as "peripherals". For some reason, "mainframe" didn't stick around for the microcomputer, and came to exclusively mean the big computers that IBM still make.
Personally, I like "chassis" for the main box.
Hey, there are ants all over the world (and the plants in my back garden), who farm aphids like cows, right down to "milking" them, and herding them from place to place. I haven't observed them engaged in selective aphid breeding programmes, like humans eventually stated doing to cows, but it's probably only a matter of time :-).
Personally, I don't give a crap about any gods, so I'm not worried about "playing god". After all, it's what people do. We modify our environment ot suit our needs, rather than just putting up with it, and we're getting better at it.
In Sun Java 2 on Win32, there's a Java Bean <-> COM/ActiveX bridge, so it's perfectly possible to do Java/COM interop the "Sun" way (which, I suppose, might mean some code changes, but it still works, and it's FAR cleaner than the MS way.) . In fact, this bridge is the way the Java 2 Plugin works with new versions of IE.
Geez. Talk about flamebait topic. Personally (and personal opinion only, here), I'd say, Qt is better designed, clearer, and easier from a programming standpoint - but it's actually not clean C++, what with its dodgy signals/slots stuff, that gtk-- manages to do within the bounds of the language.
If you're writing commercial, proprietary software, then you have to pay to use Qt - but Trolltech provide a thoroughly professionally supported toolkit to you for your money.
The Qt class library is actually more akin to the standard set of Java classes than just a widget set - there's decent cross-platform support for sockets, xml, threads, unicode, etc. It really makes C++ programming very easy.
OF course, there's other cross-platform C++ tollkits like FLTK... The gui toolkit page lists many more.
There's one extra proviso, too, at least here in Oz: the professional bodies (eg IEEE) can *revoke* certification of a university course if they believe it no longer provides the appropriate level of knowledge and experience.
Yeah - same in Britain + Ireland. It's very seldom that univerities do actually lose the certification though, since IMechE, IEEE, etc. send inspectors every so often and tell them if they're making the exams/projects too easy or whatever, before the situation gets to the stage where they'd have to consider de-endorsing the course.
The way a "real" engineering discipline works:
I am a mechanical engineer (MEng Mech Eng.). I passed lots of tests (barely, I only got a 2.2). But even to get that qualification, I _also_ had to complete team and individual industrial-style projects + have them reviewed. (Designing a recumbent pedal vehicle, and a streamlined body for a vehicle.)
Even so, I'm not really a fully qualified mechanical engineer - I'm not chartered. (I probably never will be, since I started developing software instead, but that's another story.)
I don't know how it works in America, but the way you fully qualify as an engineer (get your charter) in Britain and Ireland _is_ by the mechanical engineering equivalent of writing several programs and submitting them to a review group - the IMechE. After a few years as a "rookie" mechanical engineer in the industry (usually with a "mentor", an engineering guru to guide you on your way), you submit details of the projects you have worked on for review, and have an unfun interview. If they're up to scratch, you get a charter. The academic tests don't really mean much, beyond a certain basic level of competence, unless you're sticking in academia to do research.
Just as I can happily write programs without being a qualified software engineer, plenty of people can happily design machines without being a mechanical engineer. But qualified mechanical engineers will probably do a better job, and be allowed do it where people's lives are at stake - note how most software says things like "not to be used to run a nuclear reactor" in the license?
Also, mechanical engineers don't go off and reinvent the wheel from scratch either - we don't re-derive the Navier-Stokes equations each time we use them, and, when we're designing something, we used a (gasp!) "component-based approach" - ordering off-the-shelf parts and slotting them together. It keeps the cost down that way, and is a lot like component/ OO programming with a rich standard API. Kinda like writing Java applications, in fact (what I've actually spent the past while doing). Building and Civil engineers use a similar approach for... building houses...
Programming _is_ like building a house. Generally, you're slotting together lots of components that people have already designed. A builder doesn't make his own bricks - bricks come in a selection of standard sizes from the brick factory.
So, why not a similar approach for life-critical Software Engineering?
Oh. I thought they'd finished the icon server.
It's not particularly interesting - they've just centralised the icon database into a server, so that all the applications don't perform the same searches of (possibly very long and crowded on the system of someone who likes eye-candy) icon directories - now the server only has to walk the search path once, and applications ask it for the icons.
You've got a good manager. What if your manager is country club or golf buddies with the local microsoftie, and just tells you to go microsoft regardless? Microsoft are GOOD at manipulating the opinions of the technically-clueless, by "networking". Happens all the time in Ireland+England, anyway. The subverted manager will just ignore what you say, and, when you quit*, they'll just hire a drooling-idiot MCSE to be their yes-man to back up their decisions to their bosses.
*of course, chances are, an already-subverted manager means that you woulnd't have been hired.
If you really want to get rid of MS stuff, you have to buy a few shares in the company, then go to the shareholder meetings, and vociferously question their IT overspend relative to a linux or bsd solution.
I dunno - I quite like OpenGL, but for realistic rendering, raytracing is pretty cool... Imagine having HW capable of raytrace-rendering 100s of renderman frames per second, and using that to animate in real time.
Now that would really be cool.
(a) mainframes are still around. If anything they're experiencing massive growth, thanks to IBM remarketing them as ultra-reliable linux virtual server solutions.
(b) As a mechanical engineer and computational fluid dynamicist, I assure you, the workstations are not "dominated by windows" - most people are still on SGIs, and the majority of those that aren't are moving to Linux, not Windows NT, under the advice of the application vendors, who find supporting their apps on linux much less of a pain than on WinNT.
Unix Clusters aren't going away either. Just because you can do on one computer what took a cluster two years ago, doesn't mean that people like me won't just find more complex problems to do. Depending on the application, there's a spectrum of cost/performance solutions that may be worthwhile - if you're simulating a nuclear explosion, and CPUs get more powerful, you don't necessarily downsize, you might make the simulation more accurate by using roughly the same amount of computers to do much more. Human's AREN'T able to simulate the physical world with complete accuracy - but the more calculations, the better (assuming perfect programming), at least until you hit quantum limits, and then it takes EVEN MORE power to do probabilistic predictions via monte-carlo or sum-over-histories....
That is why DirectInput was invented. To give a OO, abstracted view of the input devices connected to your machine.
:-) Sorry, just anobligatory dig at Microsoft's misleading naming schemes...
Abstracted? OO? So, in fact, it's the exact opposite of "direct".
HURD, and AmigaOS ahd a similar system called "assignments".
Simple Directmedia Layer. It, and associated add-on SDL_* libraries, provide simple, easy to understand and use, pure C APIs to the basics a game developer would want. It handles input/output, and acts as a gate to OpenGL for 3D.
(from SDLsite:)
Simple DirectMedia Layer is a cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power." Simple DirectMedia Layer supports Linux, Win32, BeOS, MacOS, Solaris, IRIX, and FreeBSD.
SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, Eiffel, ML, Perl, PHP, Python, and Ruby.
Pretty much all commercial games on linux use SDL, as well as most new little games on linux, and a fair proportion of them on windows and MacOS
See here for more details.
Yes, well, the way OpenGL development works is that the features first show up as a "Vendor Extension", then if they're any good, the Architecture Review Board sits down and folds them into the main specification. You're just seeing the middle of this process. But, hey, the process works, and it's picking up speed again,
after a whole load of (largely MS-related) shenanigans involving the ARB and SGI (MS basically did the same to SGI as they did to IBM with OS/2 and WNT, with a project called "Fahrenheit" - which wasted lots of SGI's time and money. SGI should have known better than to deal with MS)
Since Apple and BSD, commercial unix and Linux are now all firmly on the OpenGL path, it's unlikely OpenGL will go away...
OpenGL is unlikely to go - after all, DirectX only exists on Wintel/XBox. Scientific and industrial visualisation applications are pretty much all OpenGL, and are pretty much all designed for Unix and Linux (there are rickety ports to WNT from Unix), and depend on the design for high-poly-count and easy C and FORTRAN compatibility of OpenGL. The fancy-texturing facilities of DirectX are largely irrelevant, and the requirement to use C++ or (bleurgh!) a COM interface in other languages, makes it difficult to use DirectX for anything "serious".
The margins for software and hardware vendors in this market are much larger, and more secure, than in the games software market (where most products barely break even) - you can get away with charging £20000 a year for a license to many specialised programs.
Schools are, or should be, for teaching children how to learn for themselves. "Learning how to learn" is the single most important part of schooling, and one that is (some conspiracy theorists would say deliberately) not sufficiently stressed in the majority of present state-funded educational systems in western society.
In contrast, most schools are just "teaching" the kids to "use the tools most prevalent in the business world", all nice 'n' ready for their career-chip implantation as another mindless corporate drone.
Computing classes should teach people the principles of computing, so they can handle _any_ language and _any_ platform. Only some schools do - here, in Ireland, we have a complete joke of a school qualification called the "ECDL" which schools essentially implement as a certification of ability to use Microsoft Office. That's just wrong. The kids aren't learning how to use computers, they're getting vocational training on how to be secretaries. Kids who are actually interested in computers and computing are _not_ being served by the educational system.