How i would like to program:
Be able to create function specifications that completely describes the relationship between it's input and output.
function sort
Input: List of a
Output: List of a
Relationship:
- output's list must be sorted (not enough, [] is sorted)
- every a in input must be in the output's list (not
enough, we might have duplicated elements)
in the same number as they appear in the
input's list
That would be great... Now anyone could invent yet another sorting algorithm and prove it to follow these rules.
Btw, the function signature should make the compiler check if the specification makes it really a function, not a relationship or a partial function.
People are still 'fighting' Microsoft's imperialism while the real danger now is from web companies, mainly impersonated by Google.
We need an open source license that obliges whoever changes it's code to publish it publicaly in the Internet. To certify that they will play by the book, there should be an organization to arrange for the permanent publicity of such code.
Sun is known for his long time hatred of Microsoft, but what makes me blog about this is it's relationship to Hannibal's life...
Hannibal's father made him and his brothers swore to destroy Rome when he was young, till his death he was still very much enraged against Rome looking for oportunities to attack it.
Neverthless Hannibal did win lots of battles against Rome and became quite famous for his daring adventure in Italy. But he never was able to doom Rome. Maybe if .... Now, Sun did win the languages battle, but was not able to deal the fatal blow with it. Is it doomed to the same fate of Hannibal, a "slow" "agonizing" (in the sense that he never realized his objectives and had all his family members killed by the Romans) death?
Now the evil empire will revive from the threats...
How long will it take for the barbarians to come?
Strong Types
My previous programming experience (PHP, TCL, Java, C, C++) had made me believe that Types were evil, they were there just to add more characters to be typed without any real value. The errors in all these languages (not C and C++ that done have GC, tend to have much more bugs and more complicated to find out) tend to be in places where the type system didnt help anything.
And then i learned Haskell: now i believe strong typing is FANTASTIC as long as you have a good type system! Actually i wish Haskell had even more typing facilities (there is ongoing research on that) as they help so much you to get the right code for the problem...
Even if i dont stick to Haskell (maybe there is another language with a even stronger type system?), it certainly has taught me a lot of things, a mind expanding experience...
Which CMS? Which FrameWork?
Java, PHP or Python... The same questions, with the same multitude of answers. Why nobody is able to agree on what should be done? Is it so hard? Or something inherently human...
We need a language where there is only 1 way to do things. Or at least that all possible ways can be shown to be equivalent.
Open Source Java CMS? Where?
I got the unfortunate task of surveying the Open Source Java CMSes out there. It's interesting to compare how much harder they are to install then PHPs. Many have incompatibilities with certain versions of Tomcat or some of the libraries being used etc etc... Quite a pain...
Anyways, from the ones i was able to install, Lenya appeared to be the most professional of all of them although it was missing lots of features comparing to common stuff in PHP CMSes. Anyways it had good support for workflow and other interesting features for corporative use, but where is the dynamic content generation? It seemed more like a site editor than a dynamic application.
OpenCMS seems to be relatively stagnant, or maybe it's just my ignorant view. Anyways it was missing all interesting modules in its new version.
Some of the CMSes out there are laughable like JBoss Nukes. They didnt even consider asking PN developers what did they think was badly done/designed before copying everything? What were they thinking?
One CMS that seems interesting from docs/site is WebMan but i wasnt able to install it, first i needed to fix lots of missing ';' in the postgresql instalation sql schema which is a sign that they didnt even bother to test. And after that it doesnt work and yet doesnt give any errors... Very helpful.
It's interesting how Java developers downplay PHP ones, still they are producing quite the same crap.
I dont believe there is still people trying to do their own PHP Templating Engine, its amazing. We have already 100+, mostly half-solutions. Some months ago there was lots of discussions because someone wanted to put another Templating Engine in PEAR (a 'standard' library for PHP) besides the 4 already existent.
There is a pearl of wisdom i have read somewhere (certainly a book on philosophy/history of physics, but i cant remember which one) which i think applies perfectly to this:
If a question raises too much debate, it is a signal that it is the wrong question.
Meaning: people are building solutions (Templating Engines) to the wrong problem, that's why they never agree what's the best way to do it.
I have fallen in love with FlowDesigner.
I have been thinking about making a framework in php. If following that road, i would like it to be able to generate code from a flow diagram a lot like that from FlowDesigner. Besides that use a O/R Mapper, type hints for the inputs in the flow designer, as well some post checks on the outputs.
Something also useful would be an automatic population of nodes from functions found in the framework directories.
Have put a stop on programming for a while. Dropped out of the math course, so i am studying to get in the Computer Science course. Here in Brazil, the best courses are on public universties which are non-paid, and so there is a lot of competition to get in them.
Been doing good on tests, will pass without much problems... But i want to keep studying to see how well i am able to do...
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!