Thanks for the clarification. I'm not much of a fan of Tolkien books, but working in an office full of fantasy buffs I've been exposed to a lot of "Lord of the Rings" trivia. One of my colleagues told me about the Finnis-Elvish link, which piqued my interest and as a result I read up on Tolkien himself. It sounds like he was a fascinating individual, so while I don't rate his books, I admire his thoroughness in creating believable languuages and mythologies.
I read somewhere that Tolkien based his Elvish language on Finnish rather than Welsh. If so then Elvish probably makes an explicit distinction between front and back vowels, resulting in eight vowels (a, a (auml), e, i, o, o (ouml), u and y).
This is not a troll, but does Cubase actually stay up for any decent length of time these days? I gave up on it about three years ago, because I was always saving after anything more than the most trivial change to a composition. It became a reflex action - "modify, save, modify, save".
Because so many people pirate Cubase, and it is in a niche market, I eventually came to the conclusion that Steinberg were constantly adding new features to Cubase in order to charge for upgrades and ensure a steady income. The net result is a very buggy, over featured piece of software. That's why Rosegarden appeals to me so much, as its developers are driven by the need to make something that works reliably not ensure a revenue stream.
Another thing that adds to the recording costs of major label artists is that they frequently go into the studio with no completed material. The label demands a new album when the band has just finished touring to support the last one. Enthusiasm and energy are at a low ebb, and the band spend ages knocking new material together. This often gets written off as "pre-production".
Most rock music with any budget would be done with a decent mic such as a U87
Again, it depends on the budget. I have recorded on top flight digital stuff as well as two inch analogue tape, and the difference in quality was not noticable to the human ear. The overall quality of the recording is rarely down to the equipment used, more often it depends on the ability of the engineer / producer.
Another "killer app" is Rosegarden, which is rapidly becoming a suitable replacement for Steinberg Cubase. The Hydrogen sample based drum machine is also worth a mention. The exciting thing is that JACK allows easy multiplexing of things like Rosegarden and Hydrogen, and has kickstarted a whole load of audio and MIDI projects.
My only regret is that my preferred operating system lacks an ALSA compatability layer, so things like JACK and Rosegarden are Linux only at the moment.
Software is a trivial cost in the grand scheme of things
That really depends on what you are trying to acheive. If you want a respectable home setup, then software is likely a major part of the cost. Most amateur and semi-pro setups now consist largely of direct to disk recorders and editing suites. Effects, synths and samplers implemented in software are increasingly replacing standalone hardware.
a decent vocal microphone such as a Neumann U87 will set you back around $3000
That's not a "decent" vocal mic, it's an exceptional one. For most people recording popular music styles (be it rock or dance stuff) will not need anything more sophisticated than a Shure SM mic which will set them back $100.
in most places (Europe, for example) they can hold you for a few days until you produce some
United Kingdom: no
France: no
Germany: no
Italy: no
Well, that covers over half the European population. Get your facts straight next time.
Chris
Re:Best learner's C++?
on
Practical C++
·
· Score: 1
First a disclaimer. I find a few features of C++ to be the most ill conceived ideas since someone exclaimed "hey, Pascal could be used for real programming". However, I do program in C++ on a regular basis, and there is a great language hidden within the excess of duplicated syntax.
The *only* C++ book I can recommend is "C++ Primer" by Lippman and Lajoie. It's far from perfect, as it jumps around from topic to topic too much, but that could be a consequence of C++'s elephantine bulk and inconsistency.
Finally, a warning. Anyone who recommends Stroustrup's "C++ Programming Language" is commiting a grave disservice. Stroustrup's book is no K&R. He may be a great computer scientist, but he's a poor techincal writer and his books are only of interest to compiler writers or masochists.
With lugholes that big they must go through a lot of ear buds.
Chris
Re:Trollish comment in the article
on
KDE 3.2.0 Released
·
· Score: 2, Interesting
Cubase would not run under Linux.
The latest versions of Rosegarden (http://www.all-day-breakfast.com/rosegarden/) have proved as stable as Cubase in my experience[1], and the feature set is getting very impressive. Well worth checking out.
[1] Rosegarden is officially unstable, whereas Steinberg ship unstable code as full customer releases.
While I applaud the goal of ensuring that the Debian userland is a bit more portable, in the long run it is doubtful that it can be as well integrated as a normal NetBSD system. As someone who uses NetBSD as his preferred platform, I can attest to the growing "Linuxisms" in open source software.
My favourite Honda is the 2.2VTEC Prelude. Having avoided owning a Japanese car because of their blandness and rust problems in the 1980's, I finally relented and bought a 1994 Prelude last year. It's simply the best car I've ever owned - fast, reliable, handles like a dream. Despite the complexity of the four wheel steering and engine it has gone through its regular services with no nasty suprises, even though I do around 500 miles a week in it. The joke used to be that Japanese cars were built around the stereo, but that's the only thing that has become unreliable in mine (not that you can really complain when thea ten year old autochanger gets choosy about which discs it likes).
I see a lot of discussion about case-insensative code being ambiguous, but how can you expect someone else to understand code written with $xxx $xXx $Xxx and $XXx all on the same line without developing a drinking problem?
If someone coded in a case-insensitive langauge and were sloppy enough to use those four identifiers for mean the same thing, then I would soon be resorting to a global search and replace in the hope of making things a little more consistent. The fact that identifiers were so inconsistent would suggest to me the overall code quality make a rewrite likely anyway...
In languages like Java (which the article submitter cited as an example), Foo and foo are useful as distinct identifiers. Consider the following example:
Foo foo = new Foo();
This is a very common idiom, not just in Java or C++, and preferable to:
Foo my_foo = new Foo();
In fact, my employer has an American subsidiary where the programmers (ex-VB and Windows people) do use the second style of syntax - instances never have a lowercased or camelCased version of the Class name. They also prefix data members with "_", perhaps a hangover from VB (does VB allow local variables that mask those with a higher level scope? I've never used VB myself, but it would explain the practice). This style makes their code very tiring to read.
Unfortunately PHP isn't the same way. Sometimes I might slip and type $MyvAr instead of $MyVar,and the code will compile fine but generate bad output because "$MyvAr" is a perfectly valid variable. Then I have to wade through page after page of code to find it because notepad's "Search" function isn't case sensative!
You use notepad? Get a decent editor for fscks sake. Don't try to blame your shortcomings as a programmer, or your use of inappropriate tools on the programming language.
And for the record, VB doesn't "fix" syntax. It'll highlight it, and it will provide syntax help as you type
I just inferred that that VB auto-fixed things from the wording of the article. As I say, I've never used it myself.
The sad thing is that the vast majority of coders seem to be sloppy, at least in a corporate environment. Staff turnover has been so high in the IT industry, that many people don't take pride in their work - it's the "I wont be around when it needs fixing or extending" mentality. While I'm not the most sophisticated programmer in the world, I put in the extra effort to ensure that my code is as clear and concise as possible. I don't comment my code extensively, just a brief description of a function or methods purpose and those sections where a quick read of the code doesn't make it obvious what I'm trying to accomplish. I'm also a big fan of Doxygen for C/C++, as well as JavaDoc and Checkstyle (http://checkstyle.sourceforge.net/) for Java.
Now lets think...what would happen if it didn't error out because of case sensitive erors? Wouldn't that make it "easier" to make mistakes?
This set me thinking. The guy who posted the article would probably prefer Perl to Java. It is case sensitive, but will let him get away with his sloppy coding practices by simply creating a new variable every time it encounters one which only differentiates from another in case. Then once he's learnt the error of his ways, he'll either return to Java with a greater appreciation of it's reasonably strict syntax, or become a fan of "use strict;"...
I remember reading the Jargon File entry on "discipline and bondage" programming languages, which was quite disparaging about them. I found myself in wholehearted disagreement with that attitude, as most programmers I work with need to have discipline imposed on them - coding standards, style checkers and peer review help, but the quality of C code seems to generally better than Perl or C++ simply because the language is much smaller and narrowly defined.
Having had the pleasure of maintaining some Fortran code that was decidedly haphazard when it came to case consistency, all I can say is thank God C and Java are case-sensitive. The only reason languages like Fortran are case-insensitive is because punch cards and many early terminals only had uppercase characters. This enforced a consistency in case, but once terminals with full character sets became common I'm sure legibility of code became an issue.
Relying on an IDE to correct your sloppy coding by enforcing case consistency is a dubious idea. An IDE can have many positive features - syntax highlighting of errors, automatic indenting - but it shouldn't automatically "fix" errors. Sooner or later the IDE will make the wrong decision about how to fix a programmers syntax error, leading to potentially subtle and hard to find bugs.
MACH was developed at CMU, and is unrelated to BSD
For f*cks sake. Read the daemon book ("Design and Implementation of the 4.4BSD Operating System"), written by key developers of BSD Unix. On page 10 it clearly states:
The current 4.4BSD virtual-memory system was adapted from MACH, which was itself an offshoot of 4.3BSD
Just because MACH came from Carnegie-Mellon rather than Berkeley doesn't mean it wasn't based on BSD Unix
Well, there's got to be a reason why they [Apple] chose to use BSD rather than Linux; my money is on the licensing.
Maybe it's because MacOS X is a continuation of NeXTstep, the operating system that Steve Jobs previous company developed. NeXTstep was built on top of the Mach kernel, which was a fork of the BSD kernel.
Thanks for the clarification. I'm not much of a fan of Tolkien books, but working in an office full of fantasy buffs I've been exposed to a lot of "Lord of the Rings" trivia. One of my colleagues told me about the Finnis-Elvish link, which piqued my interest and as a result I read up on Tolkien himself. It sounds like he was a fascinating individual, so while I don't rate his books, I admire his thoroughness in creating believable languuages and mythologies.
Chris
I read somewhere that Tolkien based his Elvish language on Finnish rather than Welsh. If so then Elvish probably makes an explicit distinction between front and back vowels, resulting in eight vowels (a, a (auml), e, i, o, o (ouml), u and y).
Chris
GET /...shellcode.../bin/passwd HTTP/1.0 or your favorite buffer overflow exploit.
Any valid reason why you wouldn't be running the httpd daemon in a chroot jail?
Chris
This is not a troll, but does Cubase actually stay up for any decent length of time these days? I gave up on it about three years ago, because I was always saving after anything more than the most trivial change to a composition. It became a reflex action - "modify, save, modify, save".
Because so many people pirate Cubase, and it is in a niche market, I eventually came to the conclusion that Steinberg were constantly adding new features to Cubase in order to charge for upgrades and ensure a steady income. The net result is a very buggy, over featured piece of software. That's why Rosegarden appeals to me so much, as its developers are driven by the need to make something that works reliably not ensure a revenue stream.
Chris
Another thing that adds to the recording costs of major label artists is that they frequently go into the studio with no completed material. The label demands a new album when the band has just finished touring to support the last one. Enthusiasm and energy are at a low ebb, and the band spend ages knocking new material together. This often gets written off as "pre-production".
Chris
Most rock music with any budget would be done with a decent mic such as a U87
Again, it depends on the budget. I have recorded on top flight digital stuff as well as two inch analogue tape, and the difference in quality was not noticable to the human ear. The overall quality of the recording is rarely down to the equipment used, more often it depends on the ability of the engineer / producer.
Chris
Another "killer app" is Rosegarden, which is rapidly becoming a suitable replacement for Steinberg Cubase. The Hydrogen sample based drum machine is also worth a mention. The exciting thing is that JACK allows easy multiplexing of things like Rosegarden and Hydrogen, and has kickstarted a whole load of audio and MIDI projects.
My only regret is that my preferred operating system lacks an ALSA compatability layer, so things like JACK and Rosegarden are Linux only at the moment.
Chris
Software is a trivial cost in the grand scheme of things
That really depends on what you are trying to acheive. If you want a respectable home setup, then software is likely a major part of the cost. Most amateur and semi-pro setups now consist largely of direct to disk recorders and editing suites. Effects, synths and samplers implemented in software are increasingly replacing standalone hardware.
a decent vocal microphone such as a Neumann U87 will set you back around $3000
That's not a "decent" vocal mic, it's an exceptional one. For most people recording popular music styles (be it rock or dance stuff) will not need anything more sophisticated than a Shure SM mic which will set them back $100.
Chris
The only thing I worry about is how it will be on my knees.
Ask Monica Lewinsky.
Chris
in most places (Europe, for example) they can hold you for a few days until you produce some
United Kingdom: no
France: no
Germany: no
Italy: no
Well, that covers over half the European population. Get your facts straight next time.
Chris
First a disclaimer. I find a few features of C++ to be the most ill conceived ideas since someone exclaimed "hey, Pascal could be used for real programming". However, I do program in C++ on a regular basis, and there is a great language hidden within the excess of duplicated syntax.
The *only* C++ book I can recommend is "C++ Primer" by Lippman and Lajoie. It's far from perfect, as it jumps around from topic to topic too much, but that could be a consequence of C++'s elephantine bulk and inconsistency.
Finally, a warning. Anyone who recommends Stroustrup's "C++ Programming Language" is commiting a grave disservice. Stroustrup's book is no K&R. He may be a great computer scientist, but he's a poor techincal writer and his books are only of interest to compiler writers or masochists.
Chris
I bet he used to pull the wings off flies when he was younger.
Chris
With lugholes that big they must go through a lot of ear buds.
Chris
Cubase would not run under Linux.
The latest versions of Rosegarden (http://www.all-day-breakfast.com/rosegarden/) have proved as stable as Cubase in my experience[1], and the feature set is getting very impressive. Well worth checking out.
[1] Rosegarden is officially unstable, whereas Steinberg ship unstable code as full customer releases.
Chris
You can run Debian userland on the NetBSD kernel:
http://www.debian.org/ports/netbsd/
While I applaud the goal of ensuring that the Debian userland is a bit more portable, in the long run it is doubtful that it can be as well integrated as a normal NetBSD system. As someone who uses NetBSD as his preferred platform, I can attest to the growing "Linuxisms" in open source software.
Chris
have you ever seen a Honda del Sol?
My favourite Honda is the 2.2VTEC Prelude. Having avoided owning a Japanese car because of their blandness and rust problems in the 1980's, I finally relented and bought a 1994 Prelude last year. It's simply the best car I've ever owned - fast, reliable, handles like a dream. Despite the complexity of the four wheel steering and engine it has gone through its regular services with no nasty suprises, even though I do around 500 miles a week in it. The joke used to be that Japanese cars were built around the stereo, but that's the only thing that has become unreliable in mine (not that you can really complain when thea ten year old autochanger gets choosy about which discs it likes).
Chris
I see a lot of discussion about case-insensative code being ambiguous, but how can you expect someone else to understand code written with $xxx $xXx $Xxx and $XXx all on the same line without developing a drinking problem?
If someone coded in a case-insensitive langauge and were sloppy enough to use those four identifiers for mean the same thing, then I would soon be resorting to a global search and replace in the hope of making things a little more consistent. The fact that identifiers were so inconsistent would suggest to me the overall code quality make a rewrite likely anyway ...
In languages like Java (which the article submitter cited as an example), Foo and foo are useful as distinct identifiers. Consider the following example:
Foo foo = new Foo();
This is a very common idiom, not just in Java or C++, and preferable to:
Foo my_foo = new Foo();
In fact, my employer has an American subsidiary where the programmers (ex-VB and Windows people) do use the second style of syntax - instances never have a lowercased or camelCased version of the Class name. They also prefix data members with "_", perhaps a hangover from VB (does VB allow local variables that mask those with a higher level scope? I've never used VB myself, but it would explain the practice). This style makes their code very tiring to read.
Unfortunately PHP isn't the same way. Sometimes I might slip and type $MyvAr instead of $MyVar,and the code will compile fine but generate bad output because "$MyvAr" is a perfectly valid variable. Then I have to wade through page after page of code to find it because notepad's "Search" function isn't case sensative!
You use notepad? Get a decent editor for fscks sake. Don't try to blame your shortcomings as a programmer, or your use of inappropriate tools on the programming language.
And for the record, VB doesn't "fix" syntax. It'll highlight it, and it will provide syntax help as you type
I just inferred that that VB auto-fixed things from the wording of the article. As I say, I've never used it myself.
Chris
The sad thing is that the vast majority of coders seem to be sloppy, at least in a corporate environment. Staff turnover has been so high in the IT industry, that many people don't take pride in their work - it's the "I wont be around when it needs fixing or extending" mentality. While I'm not the most sophisticated programmer in the world, I put in the extra effort to ensure that my code is as clear and concise as possible. I don't comment my code extensively, just a brief description of a function or methods purpose and those sections where a quick read of the code doesn't make it obvious what I'm trying to accomplish. I'm also a big fan of Doxygen for C/C++, as well as JavaDoc and Checkstyle (http://checkstyle.sourceforge.net/) for Java.
Chris
Now lets think...what would happen if it didn't error out because of case sensitive erors? Wouldn't that make it "easier" to make mistakes?
This set me thinking. The guy who posted the article would probably prefer Perl to Java. It is case sensitive, but will let him get away with his sloppy coding practices by simply creating a new variable every time it encounters one which only differentiates from another in case. Then once he's learnt the error of his ways, he'll either return to Java with a greater appreciation of it's reasonably strict syntax, or become a fan of "use strict;" ...
I remember reading the Jargon File entry on "discipline and bondage" programming languages, which was quite disparaging about them. I found myself in wholehearted disagreement with that attitude, as most programmers I work with need to have discipline imposed on them - coding standards, style checkers and peer review help, but the quality of C code seems to generally better than Perl or C++ simply because the language is much smaller and narrowly defined.
Chris
Having had the pleasure of maintaining some Fortran code that was decidedly haphazard when it came to case consistency, all I can say is thank God C and Java are case-sensitive. The only reason languages like Fortran are case-insensitive is because punch cards and many early terminals only had uppercase characters. This enforced a consistency in case, but once terminals with full character sets became common I'm sure legibility of code became an issue.
Relying on an IDE to correct your sloppy coding by enforcing case consistency is a dubious idea. An IDE can have many positive features - syntax highlighting of errors, automatic indenting - but it shouldn't automatically "fix" errors. Sooner or later the IDE will make the wrong decision about how to fix a programmers syntax error, leading to potentially subtle and hard to find bugs.
Chris
Well, there's definitely prior art for that one. From SGML editors like SoftQuad's Author/Editor to XML editors like XML Spy.
Chris
Mach is its own kernel
Yup, but it was a fork of the 4.3BSD kernel.
Chris
MACH was developed at CMU, and is unrelated to BSD
For f*cks sake. Read the daemon book ("Design and Implementation of the 4.4BSD Operating System"), written by key developers of BSD Unix. On page 10 it clearly states:
The current 4.4BSD virtual-memory system was adapted from MACH, which was itself an offshoot of 4.3BSD
Just because MACH came from Carnegie-Mellon rather than Berkeley doesn't mean it wasn't based on BSD Unix
Chris
Well, there's got to be a reason why they [Apple] chose to use BSD rather than Linux; my money is on the licensing.
Maybe it's because MacOS X is a continuation of NeXTstep, the operating system that Steve Jobs previous company developed. NeXTstep was built on top of the Mach kernel, which was a fork of the BSD kernel.
Chris
Too bad it still has perl 5.6 while almost every other operating system (including the other two BSDs) have switched to 5.8
NetBSD has not switched. The default Perl is still 5.6 because of portablilty issues in 5.8 from what I understand.
Chris