tag:blogger.com,1999:blog-74925822007-04-17T02:10:27.723+02:00The Schedule 7 ExperienceChris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comBlogger44125tag:blogger.com,1999:blog-7492582.post-1098125127286145882004-10-18T20:28:00.000+02:002004-10-21T00:00:46.756+02:00Intelligent Design<a href="http://blog.schedule7.com/2004/07/genetic-algorithms-vs-natural.html">My recent article</a> about the limitations in the current theory of evolution caused something of a stir. I've been reading up on the matter a bit, and it turns out that this "anti-Darwin"ism has a name, so-called Intelligent Design. This is the new, hipper, term for creationism, that carefully avoids using the bible, but still argues that natural selection is wrong, and that an "intelligent being" (God or Aliens) must be responsible. <br /> <br />It does seem that many of my naive criticisms of Darwinian theories of natural selection fall under the Intelligent Design camp, which is probably not a good thing. (Intelligent Design is essentially a pseudoscience). What has troubled me, however, is the assertion by many scientists, who should be in the know, that natural selection can explain all my concerns, yet they seem unable to back up their claims. So I did some reading. As I've been discovering more and more lately, <a href="http://en.wikipedia.org/wiki/Irreducible_complexity">wiki</a> is a great place to start. That article goes some way to exploring possible explanations for "irreducible complexity". This <a href="http://www.asa3.org/evolution/irred_compl.html">article</a> is a well written case study of how a particular example of irreducible complexity (hemoglobin) may have arisen through natural selection. It's not totally convincing, and lacking in hard data, but it's definitely plausible. <br /> <br />A <a href="http://www.wired.com/wired/archive/12.10/evolution.html">recent article </a>in Wired magazine highlights the ongoing battles the Intelligent Design camp are having to get alternative theories to evolution discussed in American schools. It's an exceptionally one-sided article, but has good breadth and discusses many of the role players in the current debate and as such is well worth a read. <br /> <br /><span style="font-weight: bold;">Update</span>: This <a href="http://www.talkdesign.org/faqs/icdmyst/ICDmyst.html">article at talkorigins</a> discusses Irreducible Complexity (IC) in some detail, and essentially dismisses it, establishing that either systems are not IC, or demonstrates ways in which known IC systems could have evolved by means of natural selection. <br /> <br />It identifies possible ways in which IC systems could have evolved: <br /><ul> <li> Previously using more parts than necessary for the function</li> <li> The parts themselves evolve</li> <li> Deployment of parts (gene regulation) evolves</li> <li> New parts are created (gene duplication) and may then evolve.</li> </ul> For instance, the swimming mechanism of flagella may well have involved an arm waving about in earlier forms. This arm may have been insufficient to propel the flagellum, but it would have disturbed the water around it, which in itself is a useful function, in terms of bringing food within range. <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1094655509851491782004-09-08T16:58:00.000+02:002004-09-08T16:58:29.850+02:00Why Your Anti-spam Solution Won't Work<a href="http://craphound.com/spamsolutions.txt">The Last Word</a>Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1094623063769472532004-09-08T07:57:00.000+02:002004-09-08T07:57:43.770+02:00Skype ReviewedPeople keep asking me about Skype, and whether they should try it out. This <br /><a href="http://www.masternewmedia.org/news/2004/09/07/skype_reviewed.htm">review</a> of Skype is well balanced, pointing out some of the obvious and not-so-obvious flaws. <br /> <br />From my own experience, my broadband connection, which makes use of Wifi technology, suffers from very high latency, and hence renders Skype unusable. <br /> <br />If it's usable on dialup, I'd be interested in hearing about that.Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1094039802121854492004-09-01T13:38:00.000+02:002004-09-01T13:56:42.120+02:00Stored Procedures, what are they good for?<span class="txt">We're all familiar with the traditional benefits of stored procedures. For instance, <a href="http://www.devshed.com/c/a/fMySQL/A-DIY-Approach-to-Stored-Procedures-in-MySQL/">this site</a>, which talks about implementing stored procs in mySQL, lists them nice and succinctly: <br /><ol><li><strong> Better performance </strong>Stored procedures are faster because they are pre-compiled SQL code. This reduces the “Compile and Execute” step to just “Execute’ in most cases. Also, only the call to the stored procedure needs to be sent to the server instead of chunks of information – this reduces the information that needs to be sent to the server and acts like a call to a remote procedure. This is an advantage when it comes to code that is called repeatedly. However, the load on the server is another point to consider since most of the processing will now be done on the server. <br /> <br /> </li> <li><strong>Easier to maintain </strong>Since all the SQL can now be stored on the server, it is easier to make changes to the stored procedure than to a bunch of SQL statements distributed all over the application. <br /> <br /></li><li><strong>Security</strong> Although the use of stored procedures is not by itself a guarantee of security, it can be used to create an environment where applications and users can only access database tables through the stored procedures, instead of giving them direct access to the tables. The benefit is a layer of abstraction. <br /> <br /></li><li><strong>Optimization </strong> When a SQL statement is parsed by the server, it is optimized internally by the server. If a bunch of SQL statements are sent to the server, repeatedly, they have to be optimized each time. The SQL statements in the stored procedure that is in memory have to only be optimized once and an execution plan is created for the SQL statements in the stored procedure.</li></ol>But, is it as simple as that? Not if you believe <a href="http://weblogs.asp.net/fbouma/archive/2003/11/18/38178.aspx">Frans</a>. He argues that dynamic SQL is the way to go. He makes some good arguements, for instance, pointing out that for MS SQL Server in particular, stored procs have no special priority over other SQL code, and are in fact compiled at run time (thus countering, to some extent, the performance arguement, although he does ignore the benefit of reduced network traffic). <br /> <br />He also objects to the API that you effectively create with stored procs, which can be a problem when the underlying table changes, as this forces the CRUD procs (at least) to change accordingly, breaking any existing client code. <br /> <br />My take? Having worked on many systems where the DB layer was accessed by many systems and languages, I'd say a fixed API was a good thing. Also, it limits the rewriting of identical (byt error prone) code over and over again. <br /> <br />Aside: many of the arguements for and against ORM tools apply equally well in this case. <br /></span>Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1094037380503988742004-09-01T13:16:00.000+02:002004-09-01T13:16:20.503+02:00Everything you wanted to know about blogging but were afraid to askFascinating list of blogging tips. I especially like the frequent reminders that this a time vacuum that suck up more time the more popular it gets <br /> <br /><a href="http://simonworld.mu.nu/archives/037779.php">Simon World :: Everything you wanted to know about blogging but were afraid to ask</a>: "Everything you wanted to know about blogging but were afraid to ask"Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1093855070686626312004-08-30T10:37:00.000+02:002004-08-30T10:37:50.686+02:00Making Money From Open SourceThis is the first reasonably coherent effort I've found to explain how one makes money by releasing open source software. I'm not sure it really applies to the little guy, but it seeks to explain how people like IBM and Sun can make money by giving away products like <a href="http://www.eclipse.org/">Eclipse</a> and <a href="http://lg3d.dev.java.net/">Project Looking Glass</a> <br /> <br /><a href="http://www.webmink.net/free/Publish-ix.htm">Making Money From Open Source</a>Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1093510195856156582004-08-26T10:49:00.000+02:002004-08-26T10:49:55.856+02:00The End of PC's As We Know ThemSmaller and smaller computers is the current trend (palmtops, cell phones and so forth). The only thing holding them back from being utterly dominant is the awkward user interface - the keyboard/selection devices become hopelessly unusable, and the screens become unreadable. <br /> <br />However, <a href="http://www.mobile-weblog.com/archives/virtual_keyboard.html">check out this technology</a> <br /> <br />There's no reason they couldn't eventually do this for screens as well. <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1093449386598671272004-08-25T17:56:00.000+02:002004-08-25T17:56:26.596+02:00Java Faster than C/C++This fascinating article refers to numerous benchmarks and provides sensible academic reasons why Java is as fast or faster than C/C++ in most cases. The most compelling reason is that the JIT compiler knows precisesly what machine it is running on, and can thus tune the code much more effectively than a normal commercial c/c++ compiler. It's almost unfair, really <br /> <br /><a href="http://www.idiom.com/%7Ezilla/Computer/javaCbenchmark.html">Java pulling ahead? Java versus C benchmarks</a>Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1093209341857305032004-08-22T23:08:00.000+02:002004-08-22T23:15:41.856+02:00Copyright vs P2PIn a remarkable decision for Peer to Peer developers and users, the USA Ninth Circuit recently ruled in favour of Grokster in <span style="font-style: italic;">MGM vs Grokster</span> <br /> <br />from <a href="http://www.eff.org/deeplinks/archives/001834.php">EFF</a>: <br /> <br />...the Court observed that, in the long run, a competive, unfettered market for innovation ends up helping copyright owners (even if it doesn't help <i>today's</i> entertainment industry oligopolists). In fact, today's ruling will likely be remembered as yet another example of the courts rescuing the entertainment industry from its own short-sightedness. In the words of the Court, "Further, as we have observed, we live in a quicksilver technological environment with courts ill-suited to fix the flow of internet innovation. The introduction of new technology is always disruptive to old markets, and particularly to those copyright owners whose works are sold through wellestablished distribution mechanisms. Yet, history has shown that time and market forces often provide equilibrium in balancing interests, whether the new technology be a player piano, a copier, a tape recorder, a video recorder, a personal computer, a karaoke machine, or an MP3 player." <br /> <br />There is an absolutely fascinating one hour mp3 of the oral arguements from both MGM and Grokster/EFF available <a href="http://www.eff.org/IP/P2P/MGM_v_Grokster/20040203_oral_arg.mp3">here</a>. The arguements are very persuavive from both sides, and very clearly spelt out. It really does make all those endless courtroom dramas you see on TV quite dull by comparison, I strongly recommend downloading and listening to it. <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1093118425098427442004-08-21T21:52:00.000+02:002004-08-21T22:00:25.096+02:00Chess Legend Bobby Fischer ArrestedOK, this isn't exactly new <a href="http://www.reuters.co.uk/newsPackageArticle.jhtml?type=worldNews&amp;storyID=560586%A7ion=news">news</a>, it happened about a month ago. But its taken a few twists and turns along the way. <br /> <br />First, lets recap. Back in 1992, Bobby and Boris Spassky had a rematch of their famous 1972 battle. This was held in Yugoslavia. At the time, the USA had imposed sanctions against Yugoslavia, and as a result, issued a warrant for Fischer's arrest. He vanished for a long time, only to resurface in the Philippines after 9/11, to express his delight at the attack at the WTC attack. Not exactly endearing himself to Uncle Sam, then. <br /> <br />Anyway, he was recently arrested in Japan, attempting to travel on his apparently invalid USA passport. Appeals against his deportation are currently underway, although he is now attempting to renounce his US citizenship. <br /> <br />In a recent bizarre <a href="http://chessbase.com/newsdetail.asp?newsid=1843">development</a>, Boris Spassky has written to President Bush, asking that he too be arrested, and placed in Fischer's cell (along with a chess set). <br /> <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1093115203365062402004-08-21T20:58:00.000+02:002004-08-21T21:06:43.366+02:00The End of Secure Transactions Over the Internet?Some of you may have heard that someone "cracked the system used by secure sites". In fact, what has happened is that someone has managed to produce a "collision" on SHA-0. This means they have managed to generate two different messages that, when they have the SHA-0 hashing algorithm applied, generate the same hash result. The implications are not fully known yet, but note that they are not able to produce a collision message against a particular message. In other words, they can produce a message M and M' where H(M) = H(M'), but <span style="font-weight: bold;">can't</span> currently produce a message M1 against <span style="font-style: italic;">your message</span>, where H(M1)=H(<span style="font-style: italic;">your message</span>) <br /> <br />This <a href="http://www.rtfm.com/movabletype/archives/2004_08.html#001059">site</a> explains it as clearly as I've seen so far. It also suggests some of the implications of the results. <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1091179942156310362004-07-30T11:26:00.000+02:002004-08-02T14:22:36.590+02:00Great Hacking vs Great WritingThe java blog world is up in arms about Paul Graham's anti-java tone in his <a href="http://www.paulgraham.com/gh.html">recent</a> controversial post. <br /> <br />See <a href="http://epesh.blog-city.com/read/750419.htm">here</a>&nbsp;and <a href="http://tim.littlebluefrog.com/archives/000292.html">here</a>&nbsp;for instance. <br /> <br />If you are a passionate programmer, Paul's writing can be very inspirational. His ongoing anti-java bias is, however,&nbsp;very offputting. Regardless of your preferred language, at the end of the day, we're programming finite state automata. Different languages give us more or less abstraction levels, possibly allowing certain concepts to be&nbsp;expressed more succinctly, but nothing can change the fact that all we are doing is manipulating bytes, comparing bytes&nbsp;and diverting to other memory locations based on those comparisons. <br /> <br />Update: <br /> <br /><a href="http://www.manageability.org/blog/stuff/architecture-of-participation-and-hacking">Here</a>&nbsp;is a well written response, the last sentence in particular is very telling. <br /><a href="http://jroller.com/page/fate?anchor=paul_graham_is_a_tedious">Here</a>, on the other hand, is a cutting response, and the comments are even better - check out Starsky McFlirt's comments: "&nbsp;Oh sorry, I forgot, he also applied a basic statistical concept to email filtering as well that worked for like at least one year. Somebody give the man a f**kin Nobel prize tout suite. " still has me chuckling. <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1090934351819735782004-07-27T15:16:00.000+02:002004-07-27T15:19:11.820+02:00Open Source Databases ComparedMySQL, PostgreSQL and Firebird: well-known databases to be sure. But which one to choose? <a href="http://www.geocities.com/mailsoftware42/db/">This</a>&nbsp;site provides an excellent comparison and checklist of which features each database supports. <br /> <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1090478409327692672004-07-22T08:34:00.000+02:002004-07-22T08:40:09.326+02:00MySQL GotchasThis <a href="http://sql-info.de/mysql/gotchas.html">site</a>&nbsp;contains a very detailed list of gotcha's with MySQL (i.e. unusual behaviour not consistent with the majority of other databases out there). They are not necessarily bugs. It's quite hard core and very detailed, but could be useful if you're ever scratching your head wondering why something odd is going on with your MySQL queries. <br />&nbsp; <br />Topics include <br /><ul><li>Strange null behaviour</li><li>Varchar fields are non-case sensitive by default</li><li>Peculiar comment behaviour</li><li>Division by zero gives null rather than an error</li></ul><p>and dozens more</p>Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1090322440184144992004-07-20T12:55:00.000+02:002004-07-20T21:20:08.356+02:00Genetic Algorithms vs Natural SelectionA recent <a href="http://www.mail2web.com/cgi-bin/redir.asp?lid=0&amp;newsite=http://quintonh.blogspot.com/2004/07/software-that-evolves.html">post by quinton</a> got me thinking about genetic algorithms, and more specifically, about the fact that the algorithm is essentially based on Darwin's theory of natural selection. It's a great technique for solving certain classes of problems, but it troubles me somewhat that the process of evolution (upon which the algorithm is based) is not properly established. <br /> <br />In general, I think the evidence for evolution is very strong. However, the mechanics of how it works still needs proper explanation - at the present time natural selection seems unable to explain things properly. Let me outline a few objections to the theory of natural selection: <br /> <br />1) How the first replicator could arise is not at all explained. (The first replicator is the first entity able to reproduce itself). There are any many suggested theories, none satisfying. Currently, the first replicator mechanism is not explained, not proved and not reproducable. <br /> <br />2) The fossil subset is very poor. Only a tiny fraction of species show intermediate forms, and <strong>no</strong> species show smooth transitions. Darwin himself thought that the lack of fossil records was the biggest threat to his theory, but was confident that in the fullness of time, sufficient fossil data would come to light. Good hominid fossil records have been found in recent times (presumably because human evolution is more interesting), but that aside, it's arguable that over 100 years after his death, the fossil records are even poorer (as some promising fossil records from his time were proved to be incorrect). <br /> <br />3) Irreducible complexity. This is a popular weapon of creationists, typically they refer to complex components such as the eye. More compelling are some of the metabolic pathways present in organisms - the fact that complex molecules are synthezed in 12 or more steps, with no useful by-products. Hence the whole process would have to have been discovered "at once". <br /> <br />4) Staggeringly variable rates of evolution. Certain species seem to have "forgotten" to evolve despite being subject to the same evolutionary stresses. <br /> <br />5) Problems with DNA itself. Despite the genome mapping project, it is becoming increasingly difficult to see how DNA could contain enough information to define a complex phenotype. <br /> <br />6) The timescales present major difficulties, perhaps even the most significant objection. The timescales to evovle from hominoid to hominid seem too short by many orders of magnitude. <br /> <br />Now, the bulk of these objections can be overcome by either (a) substantially increasing the time available or (b) coming up with a better mechanism than natural selection. <br /> <br />Let me stress again that I have no time for creationists, who for me fall into the same category as astrologists, homeopaths and psychics (i.e. people who believe in things despite the absence of scientific evidence). However, based on the points above, I think the theory of natural selection is currently inadequate to explain evolution properly. And as such, its use as a basis for a computer algorithm is suspect. <br /> <br />Thanks to Alex for his input in structuring this article. <br /> <br /> <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1090216991661769752004-07-19T08:00:00.000+02:002004-07-19T08:03:11.660+02:00Struts TutorialI've found what seems to be a well put together HTML-based tutorial for Struts. Part 1 is <a href="http://www.johntopley.com/archive/2004/06/23/index.html">here</a> and Part 2 is <a href="http://www.johntopley.com/archive/2004/07/17/index.html">here</a>Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089900488889602042004-07-15T15:47:00.000+02:002004-07-15T16:26:15.200+02:00How Can Challenge Response Deal with Spoofing?The original premise of C-R is that when spam is sent, you will effectively double the resulting internet traffic, because every spam will result in a challenge (which presumably will be ignored, or at least that's the premise upon which the C-R solution is based). However, if the spammer spoofs a legitimate email address, which I believe is very common, then the situation is much worse, as I illustrate below. <br /> <br />Let's say Spammer Sam sends a spam email to Alice (who uses a C-R system), but spoofs Bob's email address. There are two cases to consider: <br /> <br />1. Bob does not use a C-R system <br /> <br />- Sam sends email to Alice <br />- Alice's C-R system sends challenge to Bob <br />- Bob gets puzzling challenge mail and sends angry mail to Alice <br />- Alice receives this angry mail as well as the orginal spam, as Bob's mail has now passed the challenge responded to the challenge <br /> <br />Two extra emails have been generated (effectively tripling the email load of the original spam), and confusion for Alice and Bob is the result. Alice has also received the spam. <br /> <br />2. Bob also uses a C-R system <br />- Sam sends email to Alice <br />- Alice's C-R system sends challenge to Bob <br />- Bob's C-R system sends challenge to Alice <br />- this may carry on indefinitely, but one would hope the C-R systems would be smart enough to recognize duplicates and ignore subsequent emails <br /> <br />In this case, neither Alice nor Bob receive any confusing mail, Alice does not receive her spam, but again the original spam has been tripled. <br />Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089891543310497692004-07-15T13:30:00.000+02:002004-07-15T13:39:03.310+02:00Challenge-Response Dashed Upon the RocksWell, wasn't that a short-lived moment? <br /> <br /><a href="http://www.freedom-to-tinker.com/archives/000389.html">This</a> article makes the important point that a critical part of the C-R system is that the challenge e-mail (that gets sent from the recipient to the sender) <b>MUST</b> reach the sender. If the sender's anti-spam system blocks it, then the whole process falls over. Therefore, all spammers need to do is to construct their drivel in the same way as a challenge e-mail. Game over. <br /> <br />My good friend <a href="http://blogant.mimetes.com/">rant</a> came up with an even more damning problem: spammers use real emails which belong to others. <br /> <br />So the spammer sends you an email, you send a challenge back...that challenge goes to a spoofed email address...that spoofed user gets annoyed and writes you an angry email, or more likely (and much worse), gets flooded by thousands of challenge emails.Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089880366985595092004-07-15T10:12:00.000+02:002004-07-15T10:32:46.986+02:00Dealing with Spam - GreylistsYet another anti-spam methodology is gathering momentum, so-called Grey Lists. This is a server-based method for dealing with spam that sounds intriguing. The basic idea is to block unrecognized mail for a short period with a <i>temporary</i> failure method. The premise being that typical spam tools don't deal with timeouts and temporary failures gracefully, they just blitz the internet with their evil content and terminate (fire-and-forget). Legitimate (but unrecognized) mail with still get through, as mail servers are designed to deal gracefully with temporary failures. <br /> <br />One obvious concern is that you'd be increasing the traffic on the internet by some degree, as you're asking all unrecognized mail to be sent twice. On the other hand, the majority of your mail (I hope) is from people you know already (and would thus be on your white list - these would not be considered for grey listing). <br /> <br />Further articles can be found <a href="http://projects.puremagic.com/greylisting/whitepaper.html">here</a> and <a href="http://www.sauria.com/blog/2004/07/05#1004">here</a>. <br /> <br />Further to my <a href="http://blog.schedule7.com/2004/07/new-plan-for-spam.html">recent post</a> regarding simplified Challenge-Response systems in the ongoing battle against spam, one concern that has cropped up is when you register with internet sites and mailing lists - you typically get a confirmation e-mail to which you are expected to reply. I'm not sure how these would get through the Challenge Response system proposed.Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089876098811914702004-07-15T09:19:00.000+02:002004-07-29T09:09:24.143+02:00.htaccess ExplainedWell, I'm not going to explain it, I'll leave it to <a href="http://wsabstract.com/howto/htaccess.shtml">this site</a>. They provide a brief, clear but comprehensive explanation of what .htaccess can do for you and provide good examples in each case. <br /> <br />Topics include: <br /> <br />- Error Documents <br />- Password protection <br />- Enabling SSI via htaccess <br />- Deny users by IP <br />- Change your default directory page <br />- Redirects <br />- Prevent viewing of htaccess <br />- Adding MIME types <br />- Preventing hot linking of your images <br />- Preventing directory listing <br /> <br /> Update: <a href="http://www.freewebmasterhelp.com/tutorials/htaccess/">Here's</a> another tutorial (please ignore the spelling errors) <br /> Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089875223243616472004-07-15T08:52:00.000+02:002004-07-15T09:07:03.243+02:00Byte Code EnhancementI recently posted <a href="http://blog.schedule7.com/2004/07/jdo-concerns.html">some concerns</a> about byte code enhancements (BCE). I've tried to do a little research on the matter, but there isn't much information about it on the internet. However, having thought about the issue a little further, I've realized that, conceptually at least, there is no difference between trusting byte code enhanced classes and trusting a 3rd party library. If a 3rd party has written poor code, you're going to get bugs either way, and both cases are out of your control. Just something to be aware of, though: if there are errors in your enhanced classes, your class is still going to appear in the exception call stack - so be ready with your explanations when irate users or developers moan at you!Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089873395563030212004-07-15T08:35:00.000+02:002004-07-15T08:43:29.486+02:00Writing Your Own Firefox ExtensionsEver fancied writing your own extension? Seems it's easier than you may have thought. Mostly it's just some javascript that needs to be packaged up in the right format. <a href="http://extensions.roachfiend.com/howto.html">Here</a> is a clear and well-written introduction.Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089804883417251272004-07-14T13:19:00.000+02:002004-07-14T13:34:43.416+02:00JDO ConcernsJDO is largely a very impressive specification. Some issues remain troubling, however. <br /> <br />Firstly, and most importantly, I'm concerned about adopting JDO wholeheartedly. I know from experience that any successful database is going to attract users who may not use java. They may find it very difficult to plug their excel-ODBC or php web pages on a JDO-created database. <br /> <br />Secondly, the issue of byte-code enhancement. In theory, there's nothing wrong with byte-code enhancement. But the grim reality in the real world is that sometimes you have to deploy your code on less-then-perfect JVM's (HPUX anyone?) When the code falls over, you want to be sure it's your code, not the enhanced code. <br /> <br />Answers anyone? <br /> <br /><a href="http://www.jdocentral.com/JDO_Commentary_AbeWhite_1.html">Here's </a> a good article on using JDO with legacy database.Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089709618753828912004-07-13T11:01:00.000+02:002004-07-13T11:06:58.753+02:00A "new" Plan for Spam?This <a href="http://beust.com/challenge-response.html">article</a> on a new plan for spam makes for an interesting read. The author asserts that Bayesian filters are becoming less and less effective, and that a radically simplified challenge-response system is the key to really killing off spam. <br /> <br />Personally I'm finding that Popfile (a Bayesian filter) combined with an anti-virus checker works very well. However, I accept that some of the anti-Bayesian devices he describes may become more common in the future. His simple challenge-response approach essentially revolves around asking the unknown sender (for it is only unknown senders that are an issue) to send a second mail. I think it has a lot of merit, with one important caveat that he doesn't mention - you will <i>still</i> need a virus checker, as many e-mail viruses rely on sending mails from trusted/known individuals.Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.comtag:blogger.com,1999:blog-7492582.post-1089647143400988762004-07-12T17:42:00.000+02:002004-07-12T17:59:37.490+02:00Web Services and CORBAA <a href="http://primates.ximian.com/~miguel/archive/2004/Jun-27.html">sobering article</a> about how web services are evolving to reach the same complexity as CORBA. As someone who has used CORBA for many years (and still does in fact), I can tell you it solves the multi-language RPC problem very very well, but it's a large and complex beast. Web Services should be very wary of going down this route. Note that CORBA spent many years evolving under the guidance of the OMG - are Web Services as well controlled?Chris Welshhttp://www.blogger.com/profile/18039646558853532560noreply@blogger.com