Older blog entries for nuncanada (starting at number 28)

5 Dec 2008 (updated 5 Dec 2008 at 03:10 UTC) »
Dynamic Programming is a nice general procedure to attack some specific exponential algorithms and reduce them to polynomial time. But beware, they aren't usually created taking in mind the symmetries of the problem in question, so they may leave a lot to desire to come close to a algorithm designed with the given problem in mind.

So for instance, matrix chain multiplication which is a textbook example for dynamic programming will give out a O(n^3) algorithm. There are much better algorithms for this problem out there, specifically a O(n*log n) one.

Just after i first was taught about the chain matrix multiplication problem and it's dynamic programming solution i couldn't believe that was the best algorithm that could be done for it. Some days later after trying first to find an algorithm and then looking a lot around the internet i finally found this paper. Thanks Hu and Shing for the great work and taking out my obsession with this problem.

24 Sep 2008 (updated 24 Sep 2008 at 00:46 UTC) »

Am I crazy?

* I believe formal methods (typed lambda calculus, example: Coq) is the path for the future of programming, not all the fashion industry that comes from Software Engineering and business.

* I believe deep down time is discrete (maybe because i have been programming since being 6 years old, and that scrambled my head to disbelieve the continuum?). Even being a maverick in math and physics during school i never liked geometry, I felt uncomfortable with continuity since early on.

* I believe democracy with capitalism and inheritance has always failed, its inefficiency and unfairness in all levels is just absurd. There must be a better social arrangement, and merit has to play a big part of it, not which family you grew into.

* I haven't been able to make myself believe that the discrete logarithm problem doesn't have a polynomial solution. Didn't find an algorithm but the problem just seems to have too much "symmetry".

See? I told you that I am crazy.

13 May 2008 (updated 14 May 2008 at 20:16 UTC) »
A new world for open source is blooming!

Almost everyone is unaware but the seeds of change have been planted! To a better open source community we are going to!
Open Source is a lot of times regarded as an example of Meritocracy in action, but if you read Amartya Sen's article about Meritocracy, you will recognize that most of Open Source projects fit more in his description of a 'static' meritocracy than a 'dynamic' one (my words to resume his thoughts), and Sen shows how what should be regarded as a real meritocracy is the dynamic qualities.
To our rescue comes the knight in his shinning armor, not other than the famous Linus Torvalds! I guess most readers think i am crazy by now, but keep up and maybe it will make sense.
DVCS have been around longer than git but not only by creating a functional open source DVCS, but by evangelizing the benefits of a distributed system he has planted the seeds that will change the future (interestingly for all the democracy and meritocracy fanatics, this necessity came from a "dictatorship").
And GitHub is sign of the changes to come, once oss developers start to rethink forking not as deviating from the community but as a common fact of producing software, the whole community structure will change!
No longer the "core group" will have the overwhelming power, nor will it matter much, probably such a notion will end up existing mostly. We will have the real possibility for the community to choose what to follow from whom, github is a start in that direction.
I am waiting anxiously for the future, a dynamicly meritocratic one for OSS.
13 Dec 2007 (updated 13 Dec 2007 at 16:01 UTC) »

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.

GPLv3, solving yesterdays fight!

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.

8 Mar 2007 (updated 31 Dec 2007 at 23:17 UTC) »

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?

16 Dec 2006 (updated 16 Dec 2006 at 14:43 UTC) »

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.

24 Feb 2005 (updated 27 Feb 2005 at 21:19 UTC) »

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.

27 Sep 2004 (updated 24 Feb 2005 at 21:00 UTC) »

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.

19 older entries...