Stick with strict HTML, limit Javascript, use tables for layout instead of DIV.
Don't do too many fancy stuff with style sheets.
While I agree to some degree using tables for layout (unless you're displaying tabular data) and limiting CSS is *precisely* what you should not do.
Some browsers are not up to the latest standards, but many are, *because* people are using these features.
Styling a site with CSS will reduce your work (and hence cost) significantly and allows you to keep markup semantic.
Using DHTML/JavaScript where it makes sense provides for a much better user experience.
I do not think Ajax is vaporware.
The IT industry evolves in cycles.
We had
Mainframes (powerful server and many dump terminals)
Client/Server (smarter clients)
Dynamic -Server Generated- Web content (which in essence is the Mainframe with a dump display only terminal all over again).
DHTML/JavaScript (Ajax), back to the client/server model, where the Browser becomes a smarter client again.
For UI based applications DHTML/JavaScript/... is actually quite a nice platform. One has to spend some though, to fully understand JavaScript, that it is a functional language with Lambda functions, closures, prototype inheritance, etc. One also has to understand that Ajax is part of the presentation layer of an application, just like Swing/AWT/SWT.
Google, Yahoo, SalesForce, Oracle, Siebel, NetSuite, etc, etc, are using Ajax technologies now; and I think browsers will be getting better at it (at least the open browsers).
Ironically J2SE 5.0 (or 1.5 or whatever) now supports Applets well enough to be quite usable (in part due to Class-Data-Sharing and other speed improvements, and in part due to faster client machines)... A few years too late.
That is simply not true. Struts delivers web contents and employs the MVC concept. There is no reason why an Ajax component cannot update or retrieve Struts generated content.
Some simple examples can be found here
And here is an article about using Ajax with JSF.
It's funny, I have been using Ajax stuff for quite a while (before the term "Ajax" was coined), but it seems it needed a name to take off.
Renaming things to circumvent or change the laws regarding the renamed thing seems to be in fashion. (Somewhat off topic)
"Enemy Combatant" instead of "Prisoner of War"
"Act of War" instead "Terrorist Attack"
"Terrorist" instead of "Criminal" (happened in some cases)
"Information Service" instead of "Telecommunication"
and so on, I wonder what's next
Renaming is convenient, you do have to go through all the trouble of actually changing the law, finding majorities and such.
Just name things differently and the law does not apply anymore (or so it seems these days). It's that easy.
While I agree with that modifying the DOM tree is always better than using innerHTML there are important performance differences.
For a recent project some initial tests showed that (especially on IE) generating an HTML string (preferrable building the string into an array and getting the result string with array.join('')), was 100-1000 times (!) faster than modifying the DOM tree. Marking the difference between something that works and something that's unusable.
No Mr. Anonymous Coward I am not....campaigns, fanaticism, research, "this may be what"... Better?
Thanks for pointing that out (seriously).
If you look at the history of my postings you'll see that in general I'm not doing a good job proofreading before I submit.
1. Funding slashed for public education. 2. Lawyers fighting trivial patent battles (instead of that money being used to innovate). 3. Companies suing their own customers for copyright infringement 4. "Infotainment" instead of informed news. Fox News anybody? 5. Controlfreak-behavior everywhere. Controlling what people with their information, controlling foreigners/terrorists/everything, etc. 6. Manipulated Science Papers to receive funding. 7. Polically motivated resaerch to bring a certain politically favoured outcome. 8. Removing of non-PC topics from school books (like "fanatism", "racial issues", in some cases "evolution theory"). 9. Huge defense budget (instead of using the money otherwise). 10. Religious (christian) fundamentalism. 11. Campains to make the US the most disliked country on this planet, even by its allies. 12. etc/etc/etc
Honestly, who is surprised? This maybe what currently the majority of the (US) people want, but these same people should realize that actions have consequences.
What's more is that this showed severe problems with the democratic processes in the EU.
In September 2003 the EU parliament voted for a version of the directive that would have prevented software patents *and* provide a clear legal framework.
As the parliament is the only elected entity in the EU that shouls have been the end of it! The fact that it wasn't shows that something is *fundamentally* wrong in the EU.
I was always pro-EU but after this sobering experience I thank France and the Netherland to stop this madness - at least until the EU is ready.
It doesn't matter what happens now with the directive the damage is already done.
I always thought this measure was just like the US one that allows the crazy patents. Maybe it isn't evil after all.
The problem with this bill is that it suggests software as such cannot be patented.
Just consider Articel 4A of the directive:
"A computer program as such cannot constitute a patentable invention."
Sounds good, doesn't it? At least until you realize that a "program as such" is a specific creation - like a book or film - which is already protected by copyright. The wording is ambiguous, either by mistake or as consciencous effort to fool the MEPs to vote for this directive.
I do agree that rejecting the directive is bad.
As mere mortal I do not understand the whole problem to begin with. In September 2003 the EU parliament - the only elected entity - voted for its version of the directive which clearly prevented software patents. So... The people have spoken. Why do we still have to debate this?!!!!
I have written to many of the MEP's involved. Most don't even respond. Others appear to be either blonde or bought...
Really? I wrote to many of my country's MEPs and got responses on about 75% of them. Some were from secretaries with detailed outlines of the MEPs position (which did not always coincide with mine) and reasons for the position, some where signed by the MEP him/herself asking for additional questions.
My mails where always polite and cited examples - in one mail I outlined multiple algorithms for faculties (n!) and how patents and copyright differ and what it all means for an average software engineer like me - and also cited specific problems with the directive - definitoin of technicity, that "computer programs as such are not patentable" does not add anything, etc.
I am not implying that your communications to the MEPs weren't polite, just that all-in-all I was lucky and had a very positive experience with my MEPs.
Every hashsum necessarily has collisions.
There are two reasons why cryptographic hashes work anyway:
1. The value distribution (a small change in the input leads to a completely different hashsum).
2. The large set of possible hashes.
MD5 is 128 bits. That allows roughly for 3x10^38 values. That is huge number.
SHA-256 is 256 bits which allows for roughly 10^77 hashes. That is only within orders of magnitude of the estimated number of atoms in the observable universe (between 4×10^78 and 6×10^79).
So I think it is safe to say that nobody will ever see or be able to generate a collision with SHA-256 or higher (unless there is a flaw in the algorithm).
While it is true that any hashing has collisions, the law of big numbers applies here.
Up to recently nobody has found a collision in 128 bit hashes like MD5. 128 allows for roughly 3x10^38 different hashes. SHA-256 allows for roughly 10^77 different hashes, which is close to number of atoms in the observable universe (estimated to be between 4×10^78 and 6×10^79). So, unless you present the algorithm with a lot of different input you'll never find a collision.
It is probably safe to say that nobody will *ever* be able to find (or generate) *any* collision in SHA-256 and higher.
That's *exactly* the problem with software patents. It does not matter whether you wrote the code locked up in a room, and use no binary drivers, etc.
If you happened use a patented algorithm you *are* liable. Period. And that's why the whole system is flawed.
The US always relied on importing the best and brightest from other countries through universities and still comparatively easy to get visas.
This legislation has it entirely backwards. Instead of protecting the - oh so valuable - information taught at US universities it will lead to reduced influx of smart folks from other countries, who will instead prefer to go to Europe or feel growing incentive to advance their own academic systems.
Go on like this and the US will soon loose their edge - if we haven't already.
If OSS it is about freedom, why do they make it difficult for us to choose a non free development method?
Which is more free?
1) A society that allows you to vote for the end of elections, or 2) a society that protects you from doing so?
The principle holds here. Freedom does not necessarily lie in maximizing the number choices.
Surely nobody worries about the size of the source tarball.
Drivers that are not compiled are not taking any additional space. Drivers that are not used all the time can be compiled as modules...
So I guess I do not understand the criticism here.
ok, how about using their non-isam option. Ok, now we've got the kind of data integrity we've taken for granted since about 1981. But, reads are very slow, often 1/10th the speed of myisam.
Really? Where did you this number (1/10) from? In - unscientific - tests that I have done I found *no* significant difference in read performance between MyISAM and InnoDB.
What I tested (on 5.0.3) were simple selects from a single table, graphs flattened into two tables, generating transitive closures with a stored procedure, mass inserts, mass connection tests, etc. As I said no significant performance difference.
At the same time I did the same test with PostgreSQL 8.0.1, the performance differences were all < 5%.
So I say: MyISAM performance is a myth, InnoDB being much slower is a myth, PostgreSQL being much slower is a myth too. On Linux (even with NPTL) faster connection setup with MySQL as compared to PostgreSQL is also a myth.
In the end it boils down what model you prefer. PostgreSQL and MySQL are both converging towards the same target: A performing full featured database. MySQL has a central company to provide support and services and to organize the releases. PostgreSQL is more losely organized, but on the other free to do whatever you want with it.
If MySQL AB can keep the inflow of money up, MySQL will probably get an edge at some point, because developers can be hired to work exlusively on MySQL. Currently PostgreSQL still has the edge with its powerful features like rules, etc.
Or should I just stick with PostgreSQL's "do it yourself" updateable views?
Using Rules/Triggers in PostgreSQL (which I guess is what you refer to with "do it yourself") to implement updatable views is actually much more powerful that "classical" updatable views, as it allows to make all kinds of views (even unions and intersections) updatable - as long as you can write a procedure that updates the involved base tables correctly for your application.
But, yes, MySQL implements updatable views in 5.0.x and for the basic testing I did it works just fine.
If you look at the public struggles between creationists and evolutionists, the creationists who represent the mainstream Evangelical thought are not trying to remove evolution, they would just like the teaching of evolution to acknowledge that it is not a proven fact, and that there are other schools of thought, an in particular, the possibility of intelligent design.
Everything is possible. I demand our children to be taught about the possibility that the earth is a golf ball and the universe is a gold course and that we're all just illusioned that we do not see it... Because that's what I believe. I also believe that humans are offsprings of aliens from Alpha Centauri and placed on earth as a biological experiment, I demand that this is considered a possibility when we learn about other theories.
Nothing is a proven fact, we *could* all be delusioned by our brains, eyes, ears, etc. Can you prove that you exist? Maybe it's all a dream. We can simply not point out all the other - however farfetched - theories.
We humans have the great gift of a brain and cognitive abilities. Maybe it's given by God, maybe it's the result of evolution, but since we have it, we should use it. So let's stick with the theory that is backed by *observable* evidence, the most logical, *explains* the most phenomenons and (most importantly) leads to new discoveries.
Do you think God would have given us a brain, cognitive abilities, and curiosity if (s)he didn't want to us to use them to determine our origins?
Take the law of gravity. It is more useful to know that F = G * M1 * M2 / Distance ^ 2, than saying God made gravity.
It is of literally no importance who made it and when, just that it is there and that we are intelligent enough to understand how it works.
Also consider the common argument that God designed the world so that intelligent beings can exist. Well... If the universe would not be the way it is we would not be here and able to wonder about it so we should not be suprised that it is the way it is.
(That is called the weak anthropological principle)
As an agnostic person I *do* want religion taught in schools. But *all* religion including christianity, islam, ancient greek mysticism, judaism, hinduism, and buddhism (which isn't actually a religion anyway), etc, etc. No religion has any exclusive rights on being *the* religion.
While I agree to some degree using tables for layout (unless you're displaying tabular data) and limiting CSS is *precisely* what you should not do.
Some browsers are not up to the latest standards, but many are, *because* people are using these features.
Styling a site with CSS will reduce your work (and hence cost) significantly and allows you to keep markup semantic.
Using DHTML/JavaScript where it makes sense provides for a much better user experience.
- Mainframes (powerful server and many dump terminals)
- Client/Server (smarter clients)
- Dynamic -Server Generated- Web content (which in essence is the Mainframe with a dump display only terminal all over again).
- DHTML/JavaScript (Ajax), back to the client/server model, where the Browser becomes a smarter client again.
For UI based applications DHTML/JavaScript/... is actually quite a nice platform. One has to spend some though, to fully understand JavaScript, that it is a functional language with Lambda functions, closures, prototype inheritance, etc. One also has to understand that Ajax is part of the presentation layer of an application, just like Swing/AWT/SWT.Google, Yahoo, SalesForce, Oracle, Siebel, NetSuite, etc, etc, are using Ajax technologies now; and I think browsers will be getting better at it (at least the open browsers).
Ironically J2SE 5.0 (or 1.5 or whatever) now supports Applets well enough to be quite usable (in part due to Class-Data-Sharing and other speed improvements, and in part due to faster client machines)... A few years too late.
That is simply not true. Struts delivers web contents and employs the MVC concept. There is no reason why an Ajax component cannot update or retrieve Struts generated content.
Some simple examples can be found here
And here is an article about using Ajax with JSF.
It's funny, I have been using Ajax stuff for quite a while (before the term "Ajax" was coined), but it seems it needed a name to take off.
If you need something, either write it yourself and fund its development.
- "Enemy Combatant" instead of "Prisoner of War"
- "Act of War" instead "Terrorist Attack"
- "Terrorist" instead of "Criminal" (happened in some cases)
- "Information Service" instead of "Telecommunication"
- and so on, I wonder what's next
Renaming is convenient, you do have to go through all the trouble of actually changing the law, finding majorities and such.Just name things differently and the law does not apply anymore (or so it seems these days). It's that easy.
for a little order will lose both, and deserve neither."
-Thomas Jefferson
Or
"Those who are willing to trade freedom for security deserve neither freedom nor security."
-Benjamin Franklin
For a recent project some initial tests showed that (especially on IE) generating an HTML string (preferrable building the string into an array and getting the result string with array.join('')), was 100-1000 times (!) faster than modifying the DOM tree. Marking the difference between something that works and something that's unusable.
Personally, I do not trust them further than I can throw their cellphones.
No Mr. Anonymous Coward I am not. ...campaigns, fanaticism, research, "this may be what"... Better?
Thanks for pointing that out (seriously).
If you look at the history of my postings you'll see that in general I'm not doing a good job proofreading before I submit.
In no particular order:
1. Funding slashed for public education.
2. Lawyers fighting trivial patent battles (instead of that money being used to innovate).
3. Companies suing their own customers for copyright infringement
4. "Infotainment" instead of informed news. Fox News anybody?
5. Controlfreak-behavior everywhere. Controlling what people with their information, controlling foreigners/terrorists/everything, etc.
6. Manipulated Science Papers to receive funding.
7. Polically motivated resaerch to bring a certain politically favoured outcome.
8. Removing of non-PC topics from school books (like "fanatism", "racial issues", in some cases "evolution theory").
9. Huge defense budget (instead of using the money otherwise).
10. Religious (christian) fundamentalism.
11. Campains to make the US the most disliked country on this planet, even by its allies.
12. etc/etc/etc
Honestly, who is surprised? This maybe what currently the majority of the (US) people want, but these same people should realize that actions have consequences.
Europe isn't much better either.
What's more is that this showed severe problems with the democratic processes in the EU.
In September 2003 the EU parliament voted for a version of the directive that would have prevented software patents *and* provide a clear legal framework. As the parliament is the only elected entity in the EU that shouls have been the end of it! The fact that it wasn't shows that something is *fundamentally* wrong in the EU.
I was always pro-EU but after this sobering experience I thank France and the Netherland to stop this madness - at least until the EU is ready.
It doesn't matter what happens now with the directive the damage is already done.
The problem with this bill is that it suggests software as such cannot be patented.
Just consider Articel 4A of the directive:
"A computer program as such cannot constitute a patentable invention."
Sounds good, doesn't it? At least until you realize that a "program as such" is a specific creation - like a book or film - which is already protected by copyright. The wording is ambiguous, either by mistake or as consciencous effort to fool the MEPs to vote for this directive.
I do agree that rejecting the directive is bad.
As mere mortal I do not understand the whole problem to begin with. In September 2003 the EU parliament - the only elected entity - voted for its version of the directive which clearly prevented software patents. So... The people have spoken. Why do we still have to debate this?!!!!
Really? I wrote to many of my country's MEPs and got responses on about 75% of them. Some were from secretaries with detailed outlines of the MEPs position (which did not always coincide with mine) and reasons for the position, some where signed by the MEP him/herself asking for additional questions.
My mails where always polite and cited examples - in one mail I outlined multiple algorithms for faculties (n!) and how patents and copyright differ and what it all means for an average software engineer like me - and also cited specific problems with the directive - definitoin of technicity, that "computer programs as such are not patentable" does not add anything, etc.
I am not implying that your communications to the MEPs weren't polite, just that all-in-all I was lucky and had a very positive experience with my MEPs.
Every hashsum necessarily has collisions. There are two reasons why cryptographic hashes work anyway: 1. The value distribution (a small change in the input leads to a completely different hashsum). 2. The large set of possible hashes. MD5 is 128 bits. That allows roughly for 3x10^38 values. That is huge number. SHA-256 is 256 bits which allows for roughly 10^77 hashes. That is only within orders of magnitude of the estimated number of atoms in the observable universe (between 4×10^78 and 6×10^79). So I think it is safe to say that nobody will ever see or be able to generate a collision with SHA-256 or higher (unless there is a flaw in the algorithm).
While it is true that any hashing has collisions, the law of big numbers applies here.
Up to recently nobody has found a collision in 128 bit hashes like MD5. 128 allows for roughly 3x10^38 different hashes. SHA-256 allows for roughly 10^77 different hashes, which is close to number of atoms in the observable universe (estimated to be between 4×10^78 and 6×10^79).
So, unless you present the algorithm with a lot of different input you'll never find a collision.
It is probably safe to say that nobody will *ever* be able to find (or generate) *any* collision in SHA-256 and higher.
That's *exactly* the problem with software patents. It does not matter whether you wrote the code locked up in a room, and use no binary drivers, etc.
If you happened use a patented algorithm you *are* liable. Period. And that's why the whole system is flawed.
I realize Nokio is a big company with many more or less independent departments; but this strikes me as "riding the horse both ways".
This legislation has it entirely backwards. Instead of protecting the - oh so valuable - information taught at US universities it will lead to reduced influx of smart folks from other countries, who will instead prefer to go to Europe or feel growing incentive to advance their own academic systems.
Go on like this and the US will soon loose their edge - if we haven't already.
Which is more free? 1) A society that allows you to vote for the end of elections, or 2) a society that protects you from doing so?
The principle holds here. Freedom does not necessarily lie in maximizing the number choices.
Most of the gotchas are non-existant when you run MySQL in STRICT or TRADITIONAL compliance mode (this is new with 5.0)
Drivers that are not compiled are not taking any additional space. Drivers that are not used all the time can be compiled as modules...
So I guess I do not understand the criticism here.
Really? Where did you this number (1/10) from? In - unscientific - tests that I have done I found *no* significant difference in read performance between MyISAM and InnoDB. What I tested (on 5.0.3) were simple selects from a single table, graphs flattened into two tables, generating transitive closures with a stored procedure, mass inserts, mass connection tests, etc. As I said no significant performance difference.
At the same time I did the same test with PostgreSQL 8.0.1, the performance differences were all < 5%.
So I say: MyISAM performance is a myth, InnoDB being much slower is a myth, PostgreSQL being much slower is a myth too. On Linux (even with NPTL) faster connection setup with MySQL as compared to PostgreSQL is also a myth.
In the end it boils down what model you prefer. PostgreSQL and MySQL are both converging towards the same target: A performing full featured database. MySQL has a central company to provide support and services and to organize the releases. PostgreSQL is more losely organized, but on the other free to do whatever you want with it.
If MySQL AB can keep the inflow of money up, MySQL will probably get an edge at some point, because developers can be hired to work exlusively on MySQL. Currently PostgreSQL still has the edge with its powerful features like rules, etc.
Do these have to pay the same taxes aswell?
Or should I just stick with PostgreSQL's "do it yourself" updateable views?
Using Rules/Triggers in PostgreSQL (which I guess is what you refer to with "do it yourself") to implement updatable views is actually much more powerful that "classical" updatable views, as it allows to make all kinds of views (even unions and intersections) updatable - as long as you can write a procedure that updates the involved base tables correctly for your application.
But, yes, MySQL implements updatable views in 5.0.x and for the basic testing I did it works just fine.
Everything is possible. I demand our children to be taught about the possibility that the earth is a golf ball and the universe is a gold course and that we're all just illusioned that we do not see it... Because that's what I believe. I also believe that humans are offsprings of aliens from Alpha Centauri and placed on earth as a biological experiment, I demand that this is considered a possibility when we learn about other theories.
Nothing is a proven fact, we *could* all be delusioned by our brains, eyes, ears, etc. Can you prove that you exist? Maybe it's all a dream. We can simply not point out all the other - however farfetched - theories.
We humans have the great gift of a brain and cognitive abilities. Maybe it's given by God, maybe it's the result of evolution, but since we have it, we should use it. So let's stick with the theory that is backed by *observable* evidence, the most logical, *explains* the most phenomenons and (most importantly) leads to new discoveries.
Do you think God would have given us a brain, cognitive abilities, and curiosity if (s)he didn't want to us to use them to determine our origins?
Take the law of gravity. It is more useful to know that F = G * M1 * M2 / Distance ^ 2, than saying God made gravity. It is of literally no importance who made it and when, just that it is there and that we are intelligent enough to understand how it works.
Also consider the common argument that God designed the world so that intelligent beings can exist. Well... If the universe would not be the way it is we would not be here and able to wonder about it so we should not be suprised that it is the way it is. (That is called the weak anthropological principle)
As an agnostic person I *do* want religion taught in schools. But *all* religion including christianity, islam, ancient greek mysticism, judaism, hinduism, and buddhism (which isn't actually a religion anyway), etc, etc. No religion has any exclusive rights on being *the* religion.