The summary is misleading. In fact, the conclusion is that software is patentable:
19. The Government's conclusion is thus to reaffirm the principle that patents are for technological innovations. Software should not be patentable where there is no technological innovation, and technological innovations should not cease to be patentable merely because the innovation lies in.
Indeed, the government rejected appeals from Open Source advocates:
16. The Government does not, however, accept the view - asserted by some respondents - that Open Source software is threatened by the existing extent of patentability. This seems to fly in the face of the facts, notably that during the last decade Open Source software has flourished.
The only commitment made is to try to define the boundaries of 'technological innovation' more specifically:
20. However, the Government agrees with those respondents who said that at present the law is not clear enough, and that this is damaging. Clarification is needed. This raises complex and technical questions, but the central difficulty can be expressed simply: how to define the boundary determining when software is, and is not, part of a technological innovation, so that what is patentable will be clear in specific cases in future. The Government intends to take this matter up with its partners in the European Union and the European Patent Convention as a matter of urgency.
To connect Access to MySQL use MyODBC, which is available from the MySQL web site. Just follow the included documentation--it is extremely simple.
Once the ODBC driver is installed, you simply create 'links' in Access, which look exactly like normal Access tables, but are actually portals to the remote database. You can use links everywhere that you'd usually use the data from a table--creating a query, a bound form, or writing VBA code.
However, you can't change the table structure or create new tables through the usual Access methods. To manipulate the structure, you can issue Pass-Through SQL commands through Access which are not parsed by ODBC, but are sent directly to MySQL, or you can use VBA code, or you can use the normal MySQL client.
I use MySQL + Access frequently, and it works perfectly. I run my Access front-end in Australia, and the DB server is in the US, and I work over a modem! It really works very well.
Having said all that, if you've got the money you might want to look into MS SQL Server, since it is nicely integrated into Access and has a great Admin front-end nowadays.
The patent describes actions that a browser can take in synch with musical content that is played from a CD player. So, for example, the streaming of music lyrics to a Java applet, the synching of a music video to the music from the CD, or actions in a chat room
No, that's not what is claimed at all. That's what it sounds like from the abstract, but you must read the claims (scroll down page to see them) to get to the legally important bits. For instance, they claim:
A method of searching for a match in a database of a plurality of records, where the records in the database include length information and number of segments for recordings corresponding to the records
A method... wherein said determining obtains a value indicative of a difference in length between corresponding segments of the selected recording and the at least one approximately matching record in the database
This patent absolutely covers FreeDB's technology. Furthermore, I don't remember any prior art before CDDB was around. Finally, the concept is non-obvious, except with the benefit of hindsight (now that it exists, it seems obvious).
I don't agree that this should be patentable, mind you (at least not for the length of time that software patents last), but I wouldn't count on it being thrown out of court.
You can use fastmail.fm. They don't have everything you want just yet, but they certainly have a good secure web-mail service, and I understand secure POP/IMAP is coming in the next month.
Their primary servers are in the US, and secondaries in Australia, so it would be an impressive disaster that made mail undeliverable! fastmail.fm uses Postfix and Cyrus, which are widely considered the most robust mail servers, and are rarely installed at ISPs due to the technical challenge in installing them.
You'll see that their pages have no graphics or ads at all, so they certainly don't look like your average commercially driven entity!
And besides, Hotmail blows on GNU/Linux anyway; sure netscape works, haven't tried mozilla with it (how do you get SSL working on mozilla? er nm I'll be flamed for that question...), but Lynx/SSL doesn't at all. Anyone know what's up with that? (Lynx and hotmail)
I didn't know Lynx had a SSL capability. Where does that come from?
BTW, http://www.fastmail.fm works pretty well with Lynx (although I haven't tried its SSL mode, of course...)
Q: My understanding is that Microsoft is 'embracing' ActiveState's Perl. They will be shipping Perl with their "Services for UNIX 2.0". Do you see any chance for Perl to compete on a Windows Platform as a replacement for Visual Basic? In particular, as application "glue"?
LR: Why not? Perl is superior to Visual Basic in every way imaginable.
Maybe a push from Microsoft will help overcome the barrier of acceptability that I focused on above. ActiveState's support of Perl has been increasingly bothering me other the last 12 months... am I just being paranoid?
ActiveState's work in bringing Perl to Win32, and supporting OLE effectively, has been a very important piece of work (and done very well to). But having achieved that, they now seem to moving towards the embrace, extend, extinguish paradigm that some might have noticed from a certain other company.
For instance:
Packages are distributed in PPM format, which as far as I can see are quite separated from the CPAN model which has been so effective for the Perl community
The Perl Power Contest (sponsored by ActiveState) requires the use of ActivePerl, rather than encouraging generic Perl solutions
With Gurusamy Sarathy (of ActiveState) looking after the Perl 5.6 release (and doing a great job, I might add), the 'official' binaries for both Win32 and Linux are now ActivePerl packages
They are partnering with M$oft in many projects. This just makes me uneasy, given M$'s history.
I don't mean to put down the many good things ActiveState has done... But I do feel that the Perl community should be a little cautious about being pulled along by them. Other than the flexibility and power of the language, the things I most like about Perl are:
Scripts I write will run on almost any platform I come across, as long as I avoid direct system calls and avoid assumptions about file system structure
I know that if a problem has been tackled in Perl, it's solution will be available on CPAN. And furthermore, I know that I can use the CPAN module to install it with just one command.
It seems to me that it would be all too easy to lose these benefits if the MS/ActiveState version of Perl forks much more from 'normal' Perl, and if ActiveState develops its own community around PPM rather than using CPAN.
The two utilities you mention are for Outlook Express, not Outlook. Outlook has a completely different file format when it is working in 'Corporate Mode', which is the mode required to connect to Exchange servers.
Decoding Outlook's PST format wouldn't do much good anyway. What's required to interact with Outlook is to work out how to:
Talk to an Exchange server to retrieve messages
Decode TNEF attachment format (nearly done--see the Convert::TNEF module on CPAN)
Parse the MS Schedule format meeting requests that Outlook uses to send meeting notifications.
Perls OO is like MacDonalds food. Fast, cheap, and great if you aren't used to anything else. Kids love it. But utterly disgusting for lovers of gourmet food.
Conway himself falsifies this statement. He's a very accomplished C++/Java/Smalltalk/etc programmer and computer scientist, and he loves OO Perl. I love OO Perl too, and I've written plenty of OO programs in other, more 'traditional' OO languages.
The great thing about Perl is its flexibility. If I want data hiding, I can have it. If I want derived class data, I can have it. Perl doesn't limit what you can do, it just makes the common things easy. If you want to be sure of avoiding data item clashes, you can get a module to do this. Yes, it's not part of the base distribution, but the CPAN module archive is a core part of the utility of Perl--get what you need, when you need it.
If you can't accept a paradigm other than <insert favorite language here>, then I'm not going to convince you. Creating good OO designs implemented in Perl means doing things the Perl way. Conway shows in his book what the full toolkit of OO techniques is--you can then select what you need for the job.
Empirically, I think there's ample evidence that Perl is a great language for OOP. Personally, I've written a complete UI toolkit for web applications, that includes a substantial inheritance tree, error handling (passed up the inheritance tree), contained objects, etc. I haven't found myself frustrated about any limitations of Perl at all.
Now redundant memory usage is a real problem, and a big one. mmap helps (a lot) on this, but this is a big loss for Perl. No, it won't be solved soon.
Well, it will certainly be much improved soon. The development version of mod_perl, which works with Perl 5.6 / Apache 2, allows multiple interpreter threads without the overhead of multiple shared memory blocks. This means that mod_perl enabled httpd processes will be around 3 times smaller than they are currently.
It doesn't scale very well though, even with mod_perl. And the object model isn't quite as elegant as in other languages.
I think others have covered the mod_perl debate reasonably well already, so I'll cover the object model issue.
Many people seem to confuse the minimal number of additional keywords for OO in Perl 5 (mainly the bless keyword, plus a few magic variable names), as being an indication of patchy support for OO.
I strongly suggest reading Damien Conway's Object Oriented Perl; I bet you wouldn't keep these beliefs about Perl after reading it. Conway is a computer science professor who has spent a lot of time with C++, Java, Smalltalk, etc, and he shows how Perl allows a marvellous OO design without the inflexibility and complexity that these other languages display.
Perl provides encapsulation, (multiple) inheritance, polymorphism (both interface and inheritance), and persistance. It also allows operator overloading, and reimplementation of basic types (using 'tie'). Many CPAN packages are available to simplify creating common object types (e.g. Class::MethodMaker).
Personally, I've used mod_perl to create a large, complex, fully OO web application, and I loved every minute of it. Because it's a "Swiss Army Chainsaw", you can quickly prototype functionality as basic CGI scripts, and it's then a piece of cake to incorporate them into the mod_perl app when you're ready.
Sybase is probably right up your alley. All the power of an enterprise RDBMS (it absolutely DOMINATES all of Wall St. and other Financial Svcs. companies) and it is a lot easier to configure, administrate and program than Oracle (much, much, much easier.) After all, Sybase and MS SQLServer used to be one and the same product Yes, I have used it... unfortunately. SQL Server was a horrible product through to version 6.5, when it was based on Sybase. For version 7.0, it was pretty much rewritten from the ground up, and it's now orders of magnitude better.
I can't think of a single reason to use Sybase over almost any other RDBMS... It's very buggy, for instance there's no ODBC drivers available that actually work properly.
This is not to put down all things Sybase--Sybase IQ, on the other hand, is wonderful. It's a DB for data warehousing which has stellar performance.
MySQL has big holes, but it fills a niche
on
Why Not MySQL?
·
· Score: 2
MySQL's holes are certainly annoying. Think of what these three mean, for instance:
No subselects
No updates or deletes on a query with a join
No views
This means that if you want to delete/update in one table based on information in another, there is no option but to do it programmatically (rather than with just a fixed series of SQL statements). Another example of this problem is that MySQL doesn't let you insert into the same table you're selecting from, again requiring fiddly and time-consuming workarounds that just shouldn't be necessary.
Despite it's many short-comings, MySQL fills an important niche--there are no other DB servers I know that provide reasonable SQL capabilities while compromising on 'ACIDity'. Yet this compromise is actually ideal in many situations... Take Slashdot for instance, where the occassional lost comment is acceptable for an enormous speed increase. It does mean being more careful with your coding to not end up with orphaned records, but on the other hand the inefficiency of Oracle/SQL Server/etc in having to check for transactions, triggers, referential integrity, etc on every update is not always ideal.
I do find the Open Source/Free Software community's infatuation with MySQL most perplexing though (like the authors of this article). It's neither free speech nor free beer (unless you use it for no commercial purpose--even if you just consult you have to purchase it).
My dream database for non-critical systems (like running web discussion boards!) would take the same design premises as MySQL, but provide the same power and flexibility as MS Access and SQL Server. Yes, I said the M word! MS's databases provide almost no obstruction to using SQL any way you like... Updates and deletes can be done on pretty much any query where it makes logical sense (e.g. not on a group by!), and complex selects can be written with highly nested views and easy to write VBA user-defined functions. Furthermore, their linkage with very easy-to-use OLAP tools (OLAP Services and Excel PivotTables) is extremely useful when you want to get stuff out of your DB, rather than just put it in.
I believe that internet explorer allows you to set the 'doubleclick' domain to be in its own security zone, and then set that zone to not accept cookies
That's not necessary. Just click here, which places a special cookie on your computer telling Doubleclick not to give you a personalised cookie.
I've started blocking web ads a while ago, replacing them by one-pixel blank gifs
One problem with this is that it makes some sights' design look wrong, since it assumes the ad exists. You might consider replacing the ads with a blank gif the same size as the original.
Also, consider offering two proxies, one which doesn't block ads, so that users can exercise choice.
It's amazing and terrifying what people are doing with C++ templates today. Basically, some people discovered that you can force the template mechanism to instantiate templates recursively, and in this way get iteration at compile time. This makes general computation at compile time possible, although in an incredibly slow and awkward way
I agree with all of your comments. However, at this stage I am not aware of a 'better way'. You either do the work at compile time (in which case compilation is slow and debugging difficult) or run time (in which case performance suffers with each extra layer of abstraction).
Is that a fundamental compromise? Are there any languages the negotiate it better?
A lot of people would say that the speed issue due to increased abstraction is unimportant with today's powerful computers. However, I do a lot of work with optimisation (GAs, neural nets, LP, etc) where every bit of speed really helps. Furthermore, adding layers of abstraction often increases run time exponentially, so it has to be carefully controlled.
What a great article! There's a lot to get through there, so I thought I'd add a bit of extra info about one bit I know well.
Tim mentions how much more clear it is to use direct assignment (A=B+C) for all types (including lists) than having to worry about the details of the specific classes. This issue is part of the study of generic programming. This is generally quite easy to do with functional languages (e.g. have a look at some Mathematica programs to see what I mean).
A lot of effort is going into making this available in C++, with a particularly success being achieved by the STL. The STL gets over the problem of speed through using templates, which (as Tim mentions) are dealt with at compile time rather than run time. Although Tim apparently has no time for templates, they certainly achieve good results in the STL.
Those of you with their thinking hats on will be wondering "but what happens if I write A=B+C+D?". The STL would create two loops and two memory copies, since it thinks of it as ((B+C)+D). Some very interesting work to avoid this problem is being implemented in class libraries such as POOMA and Blitz++ which implement the fiendishly clever concept of expression templates to actually create and traverse a parse tree of the expression at compile time. Of course, this can lead to very long compilation times. An amazing side effect of this approach is that if you never actually use a value in A (having assigned B+C to it), then it will never get evaluated (e.g. the classes use 'lazy evaluation').
If you're interested in trying out some of these ideas in a strongly typed language, it's worth looking at C++. You'll need a good compiler though--if you're using GCC make sure it's the latest version, or for better results still try KAI C++. If you're a complete newcomer try out a functional language--I particularly recommend Mathematica, although you can use the functional concepts in Python (e.g. Map()) and Perl to make a start.
It seems that the tests results completly belie the conclusions drawn
No, they didn't. Although RH had better write performance (although only slightly better with cached writes), on many of the more qualitative tests RH came out behind. These qualitative tests were based on the appropriateness of the system for serving up files and printers.
When you're looking after the file server for a hundred people, do you really want the flexibility of scripts and configuration files for the simple tasks you do every day? Have you even looked at Win2k? Using both RH and Win2k every day, I can support the authors' conclusions that the MMC tools in W2k are both fast and powerful for common day to day tasks.
Those who suggest that W2k doesn't have good scripting capabilities are also on the wrong track, IMHO. Windows Scripting Host provides access to much of the administrative interface, and Perl for Win32 can be used to automate pretty much everything (since it can access the COM objects that run the show). You'll also find almost all the GUI tools also have an associated text tool (e.g. try typing 'routemon' into a W2k machine sometime to see how to configure routing and tunnelling from the command line). If you want powerful shell scripting, grab the Cygwin tools which include bash, make, gcc, etc.
The article is also right that W2k's documentation is fantastic. Commonly used tasks get dozens of examples and step by step instructions (e.g. look up 'routing and remote access' in the help) and more arcane commands and options still contain a thorough explanation (e.g. look up 'routemon' in the help).
Before people here start making judgement on Win2k, please use it. And that means try it on a machine you actually use, for a few months--give it the same air time that you'd ask somebody trying out Linux for the first time to give.
Having said all that, I should balance this by mentioning what a great OS Linux is too (really--I like both Linux and W2k!). For serving up web pages it's got the wonderful Apache (which on Win32 is still immature), and the benefits of Open Source can not be understated. The mass of information in the HOWTOs makes complex tasks tractable, whereas with W2k if you go past the scope of the documentation you are often SOL.
Anyone for a ride on a warship running linux? I sure wouldn't. I'd want its own OS, and i'm sure its builders would too.
While I agree that standard Linux isn't a great choice for life-or-death systems, your argument doesn't support the conclusion that such systems should have their own OS.
Through an open source development environment, such projects could be far more reliable, and feature rich. The standard arguments still hold--more eyes peering at the code seems particularly important for critical applications.
...developers also want to feel that they can 'own' the entire device...
Thanks for the info--Scoop looks like it could be a wonderful thing! I've created an accout and I'll keep an eye on it. Please make it easy for us to help you! I'm no Perl guru, but I'm learning, and I'd love to help out on something like Scoop. If you added some detailed info on how to contribute and how the code is structured, and put it on the front page, I'm sure you'd get more volunteers.
You might be interested in PHPSlash, which is another attempt at creating a Slashdot-like system under the GPL. You may have a preference for Perl over PHP, and there's nothing wrong with a bit of healthy competition! On the other hand, there's a few volunteers working on PHPSlash already, and because it comes from the developers of PHPLib you'd expect the quality to be high.
Don't give up, kuro5hin. Many have predicted the death of Slashdot, but it's still here.
It is sick though.
As Robin's user info explains, he came along to help out with management. But then he started posting... then he starting writing... now he's started thinking he can patronise net luminaries. The new crowd is moving in, and things just ain't the same around here.
Don't forget though, Rob M and Jeff still have editorial control (their contract demands it). It was Rob's 'good nose for stories' that made/. the success it is, and I'm sure he's as disappointed as anyone to see what's happening to his baby. Jeff has also added a lot with his crisp intros and insightful (and often amusing) comments, and he too no doubt doesn't want/. to lose it's spunk.
So what to do? I'm not sure, but we should be discussing this rather than giving up. Here's a few random thoughts:
How can we start a more direct communication with Rob and Jeff to give honest feedback and discuss the problems?
How can we encourage Robin to do what he's good at (management) without making him defensive about his editorial and writing skills?
Is there a need for 'new blood' to keep thinks interesting? Why? What qualifications should such a person bring?
Where can this be discussed? It seems a bit weird doing it on Slashdot (I find it uncomfortable discussing the actions of people who run the sight, besides which discussions get locked after a while).
I'm surprised I care about this./. is only a website after all. But, it's given me pleasure over the years, and I'd certainly be disappointed if it were no more. To those that are thinking of just moving on, I ask that you first consider how Slashdot's slide can be halted, or if you find or create something better, please let me know!
(For those wondering what this is all about, see this story.)
I'm astonished that you're still not apologising about this, Robin.
I'd point you to the original story to show why Bruce had every right to criticise, but of course I can't. Why not? Because you changed the story header after the criticism, rather than adding an 'Update' after the story without editing the original (as has been customary at Slashdot for a long time).
The original story was certainly sensationalist, and Bruce is exactly right that since the 'discover' of this 'hole' was not a noted license reviewer, and since his 'discovery' was not supported by anyone, it was not news.
I've got no strong interest here, so you can't fob off my criticism like you fobbed off Bruce's. I had the same reaction to your story as Bruce (before reading any comments), even although I don't hold the GPL in such high regard as he does (although I do find it an intruiging document worthy of discussion).
OK, 'Plain Old Text' doesn't mean plain old text... Wouldn't you know it, the one time I accidently click submit rather than preview, is the time I am testing embedded SMELL tags.
Sorry Slashdotters--see my other post above to see what this is meant to look like.
My browser/smeller is now causing all text in the rest of the page to smell according to the "fruit:apple:rotten" class, and your last sentence smells of rotten apples with a generous helping of runny fresh dog turd heaped on.
For those Slashdotters whose browser does not automatically close SMELL tags, I'll fix this as a service to the community: </SMELL></SMELL>
The summary is misleading. In fact, the conclusion is that software is patentable:
19. The Government's conclusion is thus to reaffirm the principle that patents are for technological innovations. Software should not be patentable where there is no technological innovation, and technological innovations should not cease to be patentable merely because the innovation lies in.
Indeed, the government rejected appeals from Open Source advocates:
16. The Government does not, however, accept the view - asserted by some respondents - that Open Source software is threatened by the existing extent of patentability. This seems to fly in the face of the facts, notably that during the last decade Open Source software has flourished.
The only commitment made is to try to define the boundaries of 'technological innovation' more specifically:
20. However, the Government agrees with those respondents who said that at present the law is not clear enough, and that this is damaging. Clarification is needed. This raises complex and technical questions, but the central difficulty can be expressed simply: how to define the boundary determining when software is, and is not, part of a technological innovation, so that what is patentable will be clear in specific cases in future. The Government intends to take this matter up with its partners in the European Union and the European Patent Convention as a matter of urgency.
To connect Access to MySQL use MyODBC, which is available from the MySQL web site. Just follow the included documentation--it is extremely simple.
Once the ODBC driver is installed, you simply create 'links' in Access, which look exactly like normal Access tables, but are actually portals to the remote database. You can use links everywhere that you'd usually use the data from a table--creating a query, a bound form, or writing VBA code.
However, you can't change the table structure or create new tables through the usual Access methods. To manipulate the structure, you can issue Pass-Through SQL commands through Access which are not parsed by ODBC, but are sent directly to MySQL, or you can use VBA code, or you can use the normal MySQL client.
I use MySQL + Access frequently, and it works perfectly. I run my Access front-end in Australia, and the DB server is in the US, and I work over a modem! It really works very well.
Having said all that, if you've got the money you might want to look into MS SQL Server, since it is nicely integrated into Access and has a great Admin front-end nowadays.
No, that's not what is claimed at all. That's what it sounds like from the abstract, but you must read the claims (scroll down page to see them) to get to the legally important bits. For instance, they claim:
-
A method of searching for a match in a database of a plurality of records, where the records in the database include length information and number of segments for recordings corresponding to the records
-
A method
... wherein said determining obtains a value indicative of a difference in length between corresponding segments of the selected recording and the at least one approximately matching record in the database
This patent absolutely covers FreeDB's technology. Furthermore, I don't remember any prior art before CDDB was around. Finally, the concept is non-obvious, except with the benefit of hindsight (now that it exists, it seems obvious).I don't agree that this should be patentable, mind you (at least not for the length of time that software patents last), but I wouldn't count on it being thrown out of court.
You can use fastmail.fm. They don't have everything you want just yet, but they certainly have a good secure web-mail service, and I understand secure POP/IMAP is coming in the next month.
Their primary servers are in the US, and secondaries in Australia, so it would be an impressive disaster that made mail undeliverable! fastmail.fm uses Postfix and Cyrus, which are widely considered the most robust mail servers, and are rarely installed at ISPs due to the technical challenge in installing them.
You'll see that their pages have no graphics or ads at all, so they certainly don't look like your average commercially driven entity!
And besides, Hotmail blows on GNU/Linux anyway; sure netscape works, haven't tried mozilla with it (how do you get SSL working on mozilla? er nm I'll be flamed for that question...), but Lynx/SSL doesn't at all. Anyone know what's up with that? (Lynx and hotmail)
I didn't know Lynx had a SSL capability. Where does that come from?
BTW, http://www.fastmail.fm works pretty well with Lynx (although I haven't tried its SSL mode, of course...)
LR: Why not? Perl is superior to Visual Basic in every way imaginable.
Maybe a push from Microsoft will help overcome the barrier of acceptability that I focused on above.
ActiveState's support of Perl has been increasingly bothering me other the last 12 months... am I just being paranoid?
ActiveState's work in bringing Perl to Win32, and supporting OLE effectively, has been a very important piece of work (and done very well to). But having achieved that, they now seem to moving towards the embrace, extend, extinguish paradigm that some might have noticed from a certain other company.
For instance:
- Packages are distributed in PPM format, which as far as I can see are quite separated from the CPAN model which has been so effective for the Perl community
- The Perl Power Contest (sponsored by ActiveState) requires the use of ActivePerl, rather than encouraging generic Perl solutions
- With Gurusamy Sarathy (of ActiveState) looking after the Perl 5.6 release (and doing a great job, I might add), the 'official' binaries for both Win32 and Linux are now ActivePerl packages
- They are partnering with M$oft in many projects. This just makes me uneasy, given M$'s history.
I don't mean to put down the many good things ActiveState has done... But I do feel that the Perl community should be a little cautious about being pulled along by them. Other than the flexibility and power of the language, the things I most like about Perl are:- Scripts I write will run on almost any platform I come across, as long as I avoid direct system calls and avoid assumptions about file system structure
- I know that if a problem has been tackled in Perl, it's solution will be available on CPAN. And furthermore, I know that I can use the CPAN module to install it with just one command.
It seems to me that it would be all too easy to lose these benefits if the MS/ActiveState version of Perl forks much more from 'normal' Perl, and if ActiveState develops its own community around PPM rather than using CPAN.Decoding Outlook's PST format wouldn't do much good anyway. What's required to interact with Outlook is to work out how to:
Perls OO is like MacDonalds food. Fast, cheap, and great if you aren't used to anything else. Kids love it. But utterly disgusting for lovers of gourmet food.
Conway himself falsifies this statement. He's a very accomplished C++/Java/Smalltalk/etc programmer and computer scientist, and he loves OO Perl. I love OO Perl too, and I've written plenty of OO programs in other, more 'traditional' OO languages.
The great thing about Perl is its flexibility. If I want data hiding, I can have it. If I want derived class data, I can have it. Perl doesn't limit what you can do, it just makes the common things easy. If you want to be sure of avoiding data item clashes, you can get a module to do this. Yes, it's not part of the base distribution, but the CPAN module archive is a core part of the utility of Perl--get what you need, when you need it.
If you can't accept a paradigm other than <insert favorite language here>, then I'm not going to convince you. Creating good OO designs implemented in Perl means doing things the Perl way. Conway shows in his book what the full toolkit of OO techniques is--you can then select what you need for the job.
Empirically, I think there's ample evidence that Perl is a great language for OOP. Personally, I've written a complete UI toolkit for web applications, that includes a substantial inheritance tree, error handling (passed up the inheritance tree), contained objects, etc. I haven't found myself frustrated about any limitations of Perl at all.
And that's the real test, isn't it?
Now redundant memory usage is a real problem, and a big one. mmap helps (a lot) on this, but this is a big loss for Perl. No, it won't be solved soon.
Well, it will certainly be much improved soon. The development version of mod_perl, which works with Perl 5.6 / Apache 2, allows multiple interpreter threads without the overhead of multiple shared memory blocks. This means that mod_perl enabled httpd processes will be around 3 times smaller than they are currently.
It doesn't scale very well though, even with mod_perl. And the object model isn't quite as elegant as in other languages.
I think others have covered the mod_perl debate reasonably well already, so I'll cover the object model issue.
Many people seem to confuse the minimal number of additional keywords for OO in Perl 5 (mainly the bless keyword, plus a few magic variable names), as being an indication of patchy support for OO.
I strongly suggest reading Damien Conway's Object Oriented Perl; I bet you wouldn't keep these beliefs about Perl after reading it. Conway is a computer science professor who has spent a lot of time with C++, Java, Smalltalk, etc, and he shows how Perl allows a marvellous OO design without the inflexibility and complexity that these other languages display.
Perl provides encapsulation, (multiple) inheritance, polymorphism (both interface and inheritance), and persistance. It also allows operator overloading, and reimplementation of basic types (using 'tie'). Many CPAN packages are available to simplify creating common object types (e.g. Class::MethodMaker).
Personally, I've used mod_perl to create a large, complex, fully OO web application, and I loved every minute of it. Because it's a "Swiss Army Chainsaw", you can quickly prototype functionality as basic CGI scripts, and it's then a piece of cake to incorporate them into the mod_perl app when you're ready.
Sybase is probably right up your alley. All the power of an enterprise RDBMS (it absolutely DOMINATES all of Wall St. and other Financial Svcs. companies) and it is a lot easier to configure, administrate and program than Oracle (much, much, much easier.) After all, Sybase and MS SQLServer used to be one and the same product
Yes, I have used it... unfortunately. SQL Server was a horrible product through to version 6.5, when it was based on Sybase. For version 7.0, it was pretty much rewritten from the ground up, and it's now orders of magnitude better.
I can't think of a single reason to use Sybase over almost any other RDBMS... It's very buggy, for instance there's no ODBC drivers available that actually work properly.
This is not to put down all things Sybase--Sybase IQ, on the other hand, is wonderful. It's a DB for data warehousing which has stellar performance.
- No subselects
- No updates or deletes on a query with a join
- No views
This means that if you want to delete/update in one table based on information in another, there is no option but to do it programmatically (rather than with just a fixed series of SQL statements). Another example of this problem is that MySQL doesn't let you insert into the same table you're selecting from, again requiring fiddly and time-consuming workarounds that just shouldn't be necessary.Despite it's many short-comings, MySQL fills an important niche--there are no other DB servers I know that provide reasonable SQL capabilities while compromising on 'ACIDity'. Yet this compromise is actually ideal in many situations... Take Slashdot for instance, where the occassional lost comment is acceptable for an enormous speed increase. It does mean being more careful with your coding to not end up with orphaned records, but on the other hand the inefficiency of Oracle/SQL Server/etc in having to check for transactions, triggers, referential integrity, etc on every update is not always ideal.
I do find the Open Source/Free Software community's infatuation with MySQL most perplexing though (like the authors of this article). It's neither free speech nor free beer (unless you use it for no commercial purpose--even if you just consult you have to purchase it).
My dream database for non-critical systems (like running web discussion boards!) would take the same design premises as MySQL, but provide the same power and flexibility as MS Access and SQL Server. Yes, I said the M word! MS's databases provide almost no obstruction to using SQL any way you like... Updates and deletes can be done on pretty much any query where it makes logical sense (e.g. not on a group by!), and complex selects can be written with highly nested views and easy to write VBA user-defined functions. Furthermore, their linkage with very easy-to-use OLAP tools (OLAP Services and Excel PivotTables) is extremely useful when you want to get stuff out of your DB, rather than just put it in.
- Show empirically that the conjecture is true for some specific value o
- Find a logical argument that shows that anytime the conjecture is true for any value n, it must also be true for n+1
- If 1 & 2 are true, then the conjecture must be true every value greater than o.
Of course for this particular conjecture you would use n+2 in step two, since you are only interested in every second number.I believe that internet explorer allows you to set the 'doubleclick' domain to be in its own security zone, and then set that zone to not accept cookies
That's not necessary. Just click here, which places a special cookie on your computer telling Doubleclick not to give you a personalised cookie.
I've started blocking web ads a while ago, replacing them by one-pixel blank gifs
One problem with this is that it makes some sights' design look wrong, since it assumes the ad exists. You might consider replacing the ads with a blank gif the same size as the original.
Also, consider offering two proxies, one which doesn't block ads, so that users can exercise choice.
It's amazing and terrifying what people are doing with C++ templates today. Basically, some people discovered that you can force the template mechanism to instantiate templates recursively, and in this way get iteration at compile time. This makes general computation at compile time possible, although in an incredibly slow and awkward way
I agree with all of your comments. However, at this stage I am not aware of a 'better way'. You either do the work at compile time (in which case compilation is slow and debugging difficult) or run time (in which case performance suffers with each extra layer of abstraction).
Is that a fundamental compromise? Are there any languages the negotiate it better?
A lot of people would say that the speed issue due to increased abstraction is unimportant with today's powerful computers. However, I do a lot of work with optimisation (GAs, neural nets, LP, etc) where every bit of speed really helps. Furthermore, adding layers of abstraction often increases run time exponentially, so it has to be carefully controlled.
What a great article! There's a lot to get through there, so I thought I'd add a bit of extra info about one bit I know well.
Tim mentions how much more clear it is to use direct assignment (A=B+C) for all types (including lists) than having to worry about the details of the specific classes. This issue is part of the study of generic programming. This is generally quite easy to do with functional languages (e.g. have a look at some Mathematica programs to see what I mean).
A lot of effort is going into making this available in C++, with a particularly success being achieved by the STL. The STL gets over the problem of speed through using templates, which (as Tim mentions) are dealt with at compile time rather than run time. Although Tim apparently has no time for templates, they certainly achieve good results in the STL.
Those of you with their thinking hats on will be wondering "but what happens if I write A=B+C+D?". The STL would create two loops and two memory copies, since it thinks of it as ((B+C)+D). Some very interesting work to avoid this problem is being implemented in class libraries such as POOMA and Blitz++ which implement the fiendishly clever concept of expression templates to actually create and traverse a parse tree of the expression at compile time. Of course, this can lead to very long compilation times. An amazing side effect of this approach is that if you never actually use a value in A (having assigned B+C to it), then it will never get evaluated (e.g. the classes use 'lazy evaluation').
If you're interested in trying out some of these ideas in a strongly typed language, it's worth looking at C++. You'll need a good compiler though--if you're using GCC make sure it's the latest version, or for better results still try KAI C++. If you're a complete newcomer try out a functional language--I particularly recommend Mathematica, although you can use the functional concepts in Python (e.g. Map()) and Perl to make a start.
It seems that the tests results completly belie the conclusions drawn
No, they didn't. Although RH had better write performance (although only slightly better with cached writes), on many of the more qualitative tests RH came out behind. These qualitative tests were based on the appropriateness of the system for serving up files and printers.
When you're looking after the file server for a hundred people, do you really want the flexibility of scripts and configuration files for the simple tasks you do every day? Have you even looked at Win2k? Using both RH and Win2k every day, I can support the authors' conclusions that the MMC tools in W2k are both fast and powerful for common day to day tasks.
Those who suggest that W2k doesn't have good scripting capabilities are also on the wrong track, IMHO. Windows Scripting Host provides access to much of the administrative interface, and Perl for Win32 can be used to automate pretty much everything (since it can access the COM objects that run the show). You'll also find almost all the GUI tools also have an associated text tool (e.g. try typing 'routemon' into a W2k machine sometime to see how to configure routing and tunnelling from the command line). If you want powerful shell scripting, grab the Cygwin tools which include bash, make, gcc, etc.
The article is also right that W2k's documentation is fantastic. Commonly used tasks get dozens of examples and step by step instructions (e.g. look up 'routing and remote access' in the help) and more arcane commands and options still contain a thorough explanation (e.g. look up 'routemon' in the help).
Before people here start making judgement on Win2k, please use it. And that means try it on a machine you actually use, for a few months--give it the same air time that you'd ask somebody trying out Linux for the first time to give.
Having said all that, I should balance this by mentioning what a great OS Linux is too (really--I like both Linux and W2k!). For serving up web pages it's got the wonderful Apache (which on Win32 is still immature), and the benefits of Open Source can not be understated. The mass of information in the HOWTOs makes complex tasks tractable, whereas with W2k if you go past the scope of the documentation you are often SOL.
Anyone for a ride on a warship running linux? I sure wouldn't. I'd want its own OS, and i'm sure its builders would too.
...developers also want to feel that they can 'own' the entire device...
While I agree that standard Linux isn't a great choice for life-or-death systems, your argument doesn't support the conclusion that such systems should have their own OS.
Through an open source development environment, such projects could be far more reliable, and feature rich. The standard arguments still hold--more eyes peering at the code seems particularly important for critical applications.
Yes, I think that's the real reason!
Thanks for the info--Scoop looks like it could be a wonderful thing! I've created an accout and I'll keep an eye on it. Please make it easy for us to help you! I'm no Perl guru, but I'm learning, and I'd love to help out on something like Scoop. If you added some detailed info on how to contribute and how the code is structured, and put it on the front page, I'm sure you'd get more volunteers.
You might be interested in PHPSlash, which is another attempt at creating a Slashdot-like system under the GPL. You may have a preference for Perl over PHP, and there's nothing wrong with a bit of healthy competition! On the other hand, there's a few volunteers working on PHPSlash already, and because it comes from the developers of PHPLib you'd expect the quality to be high.
Don't give up, kuro5hin. Many have predicted the death of Slashdot, but it's still here.
It is sick though.
As Robin's user info explains, he came along to help out with management. But then he started posting... then he starting writing... now he's started thinking he can patronise net luminaries. The new crowd is moving in, and things just ain't the same around here.
Don't forget though, Rob M and Jeff still have editorial control (their contract demands it). It was Rob's 'good nose for stories' that made
So what to do? I'm not sure, but we should be discussing this rather than giving up. Here's a few random thoughts:
I'm surprised I care about this.
(For those wondering what this is all about, see this story.)
I'm astonished that you're still not apologising about this, Robin.
I'd point you to the original story to show why Bruce had every right to criticise, but of course I can't. Why not? Because you changed the story header after the criticism, rather than adding an 'Update' after the story without editing the original (as has been customary at Slashdot for a long time).
The original story was certainly sensationalist, and Bruce is exactly right that since the 'discover' of this 'hole' was not a noted license reviewer, and since his 'discovery' was not supported by anyone, it was not news.
I've got no strong interest here, so you can't fob off my criticism like you fobbed off Bruce's. I had the same reaction to your story as Bruce (before reading any comments), even although I don't hold the GPL in such high regard as he does (although I do find it an intruiging document worthy of discussion).
And let me remind you again that this kind of behaviour from you is doing Slashdot a disservice.
I'm glad to see I'm not the only one who made this mistake!
Does anyone know a way of displaying HTML tags in Slashdot without lots of ampersand-lt's all over the place? PRE doesn't seem to work...
OK, 'Plain Old Text' doesn't mean plain old text...
Wouldn't you know it, the one time I accidently click submit rather than preview, is the time I am testing embedded SMELL tags.
Sorry Slashdotters--see my other post above to see what this is meant to look like.
You forgot to close your second tag.
My browser/smeller is now causing all text in the rest of the page to smell according to the "fruit:apple:rotten" class, and your last sentence smells of rotten apples with a generous helping of runny fresh dog turd heaped on.
For those Slashdotters whose browser does not automatically close SMELL tags, I'll fix this as a service to the community:
</SMELL></SMELL>