Thursday, July 30, 2009

Gmail wizardry!

Need to find that one email in your inbox of 4k? Well, you can search for it, or you can sort your inbox :D
With gmail, thats not as retarded as it sounds! The trick is filters, there are millions of pages descibing those, so ill just show some examples before we leave the well traveled path and stumble into the dark woods.

Next to the search box in gmail you can click create filter, click it.
Try these:
Matches: from:(*@*.paypal.* | *@neteller.com | *@visma.se | cashier*)
Do this: Apply label "banking", Never send it to Spam

Matches: ((to:solenskiner+important | to:solenskiner+urgent) | to:solenskiner (subject:important | subject:urgent))
Do this: Apply label "urgent", Never send it to Spam

Oooh whats that gleaming in the woods, i gotto check it out..
Matches: from:(support | support_registration | bugs | bounces | no-reply | noreply | alert | alerts | info | account | accounts | do-not-reply | donotreply | bounce | bounces | service | forum | apache | site | support1 | admin | feedback | chief | password | team) ((email | nickname | username | login | användarnamn | postadress | mobilnummer | smeknamn | loginnamn | användar) ***** (password | lösenord) -verification -removed -cancel -instruktioner -confirm -regards -unsubscribe)
Do this: Apply label "account information", Never send it to Spam

What a pretty ring..
Matches: -{label:family | label:friends | label:social-networks | label:blogging | label:banking | label:work | label:school | label:authorities | label:urgent | label:account-information}
Do this: Skip Inbox, Apply label "unimportant"

I feel.. powerful!
Matches: whatever you like
Do this: Apply label "set1"

Matches: whatever else
Do this: Apply label "set2"

Matches: label:set1 | label:set2
Matches: label:set1 label:set2
Matches: label:set1 | label:set2 -( label:set1 label:set2)
Matches: label:set1 -label:set2
matches: label:set2 -label:set1

Submit to my will or feel the fiery touch of my whip!

Tuesday, July 7, 2009

Jobbportalen

Sprider bara en liten mashup ja gjorde i torsdags.. Den blir bara så bra som vi gör den till, så hjälp gärna till genom att utöka den med fler annonser! kontakta mig för inloggningsuppgifter.

Sunday, July 5, 2009

Nearly the silver bullet for software design or -A wise man has learned from his mistakes, a smart man learns from others.

If we study the world the best method to develop the most widespread complex product seems to be evolution. Genetic individual evolution is familiar to most, the individual receiving the highest progeny spread their genes most. Quite selfevident.
Genetic cooperative evolution is the theory that a behavior or characteristics that benefit the group as a whole, spreads even tho it penalizes the individual.
Then we have memes. A meme is an idea, and as everyone knows an interesting idea is spread more than an uninteresting. As the smallest child knows, someones word is not spread as a perfect copy. Memes therefore possess the three characteristics required for evolution, a method of replication, a replication value and mutation.

A complex very successful example of cooperative genetic and memetic evolution is religion. If there were an original religion, it probably rose from genetic cooperative evolution, as to spend a seveth of the weeks idle, or to not eat meat, certainly is a disadvantage the individual. (Here's a small logical trap, the assumption that religion is a disadvantage to the individual is based on today's religions.)
Religion is also apparently a victim of memetic evolution, as we no longer believe in Zeus, Athena and Apollo, or, for that matter, Odin and Loki. The idea of eternal life is found in most major religions in some form, which is trivial to explain with memetic evolution.

Evolution happens faster the larger the population, as a larger population allows more mutations and a smaller population quickly becomes homogeneous due to the commonization of the, at the moment, 'best' genes.

What the hell has this to do with software? Yeah.. Evolution can be compared with:
The development of parallel products that compete for the user base. Capitalism.
Iterative design, release a close to viable product and expand and refactorize continually.
Open Source, or software communism. As the software is a product of the developers, more developers are equivalent to larger population.

Are there any projects that live by these guidelines? Yes, many! One example is that 40 years ago, an operating system was created to port a game to the PDP-7. It was written in a few weeks, and was worthless as real operating system. But the virus was released, AT & T sent the source code to universities, companies and the U.S. government. It was called Unix. Today Unix is more or less a niche product, but before its 'death' it gave birth to several offsprings, and a bastard, Linux.
The only thing I know, that prevents Linux from being a fully-fledged Unix, as it follows the posix standard, is that the certification is pricy as hell, and applies to the entire operating system, ie each distrubition need separate certificate.
On the top500 list of the world's fastest super computers, more than 85% are running linux, on top 10 on the list 100% are linux-based. Although computers are sold with Windows preinstalled, Linux is the choice for about 4% of users. It is also popular on everything from netbooks, mobile phones to integrated solutions.

Which is a great testament to the soundness of the evolutionary software design principles.

However, the open source model is driven by meritocracy, which means that an optimal solution converges slowly, as either very influential and many developers have to understand both the problem and the solution well. If it converges at all, since the iterative design allows applications to build on 'unfinished' solutions, the problem of switching infrastructure can become to great to be practicly doable. X is a great example..
But perhaps the question is irrelevant? I cannot see how a centrally controlled and marketing-driven software production can create better solutions.