2008


24
Aug 08

Serverside Javascript Tracemonkey Performance – Part II

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Serverside Javascript Tracemonkey Performance – Part II
Date: Sun, 24 Aug 08 18:01:21 GMT

I just ran the Sunspider ubench Javascript performance tests
on serverside JS 1.6 and JS 1.8 (tracemonkey).

http://svn.webkit.org/repository/webkit/trunk/SunSpider/tests/ubench/

The results are listed below. Summarizing, JS1.6 takes 11.408ms to
complete all tests while JS1.8tracemonkey takes 0.705ms. Huge difference,
around the ballpark +-20X increase seen in browserside tests. Keep in
mind that the results below were performed in a usermodelinux virtual
machine, running within a Xen VM, and as such performance is worse than
the browserside tests available on the web (ex. John Resig’s site)

[root@localhost ubench]# less ubench.out
—————————————
function-closure.js
JS 1.6

real 0m0.799s
user 0m0.080s
sys 0m0.010s

JS 1.8

real 0m0.066s
user 0m0.000s
sys 0m0.000s
—————————————
function-empty.js
JS 1.6

real 0m2.008s
user 0m0.500s
sys 0m0.000s

JS 1.8

real 0m0.122s
user 0m0.010s
sys 0m0.000s
—————————————
function-missing-args.js
JS 1.6

real 0m2.019s
user 0m0.470s
sys 0m0.000s

JS 1.8

real 0m0.109s
user 0m0.010s
sys 0m0.000s
—————————————
function-sum.js
JS 1.6

real 0m1.896s
user 0m0.450s
sys 0m0.000s

JS 1.8

real 0m0.112s
user 0m0.000s
sys 0m0.000s
—————————————
loop-empty-resolve.js
JS 1.6

real 0m0.494s
user 0m0.100s
sys 0m0.000s

JS 1.8

real 0m0.085s
user 0m0.000s
sys 0m0.000s
—————————————
loop-empty.js
JS 1.6

real 0m2.000s
user 0m0.520s
sys 0m0.000s

JS 1.8

real 0m0.102s
user 0m0.010s
sys 0m0.000s
—————————————
loop-sum.js
JS 1.6

real 0m2.192s
user 0m0.520s
sys 0m0.010s

JS 1.8

real 0m0.109s
user 0m0.010s
sys 0m0.000s

— MV


24
Aug 08

Serverside Javascript Tracemonkey Performance – Part I

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Serverside Javascript Tracemonkey Performance – Part I
Date: Sun, 24 Aug 08 15:11:21 GMT

Last night I finally got the 1.8 release of the
C Spidermonkey Javascript interpreter/compiler/VM to
run serverside (the so-called Tracemonkey version).

I intend to run some performance tests between JS 1.6
and JS 1.8 (tracemonkey), namely using the Sunspider and
Dromaeo benchmarks. Not an easy task since they are setup
for browser side testing, but I’ll get there.

Meanwhile, here’s the performance with the “perfect.js”
test that comes bundled in Spidermonkey:

———————————————————
[root@localhost src]# time js perfect.js

A number is ‘perfect’ if it is equal to the sum of its
divisors (excluding itself).

The perfect numbers up to 50000 are:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064
That’s all.

real 0m4.053s
user 0m0.720s
sys 0m0.020s
———————————————————

———————————————————
[root@localhost src]# time js18 -j perfect.js

A number is ‘perfect’ if it is equal to the sum of its
divisors (excluding itself).

The perfect numbers up to 50000 are:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064
That’s all.

real 0m3.622s
user 0m0.570s
sys 0m0.010s
———————————————————

— MV


10
Aug 08

A Taxonomy of Computer Mediated Communication aka Social Software

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: A Taxonomy of Computer Mediated Communication aka Social Software
Date: Sun, 10 Aug 08 17:51:21 GMT

As part of my research/work on my masters thesis [1] and as
a result of my “40 year old” extendend spring cleaning, I got
to sort of re-read the cult bible for computer/network hacking
geezers: John Quarterman’s “The Matrix” [2]

[1] http://mvalente.eu/Files/MV%20Master%20Thesis%20Proposal%20Social%20Software.pdf
[2] http://www.amazon.com/Matrix-Computer-Networks-Conferencing-Worldwide/dp/1555580335

Just in case you’re wondering, that is indeed the book where
the Wachowski brothers got the name for the 1999 movie, although
John Quarterman got the title from what the worlwide network was
referred to in Fidonet circles [3]. The Internet was just a chapter
(a large one :) on the book which did get to become one of the
holy books of the telecoms world (although largely unknown, as it
should be with all holy books) [4].

[3] http://www.catb.org/~esr/jargon/html/M/Matrix.html
[4] http://cgi.gjhost.com/~cgi/mt/netweaverarchive/000245.html

In “The Matrix” John Quarterman has an early attempt at
creating a taxonomy of what he calls “computer mediated
communication” (mainly email, news, etc, at the time), a
classification scheme for what today we’d call social software.

This got me to go out and look for other taxonomy/classification
schemes for CMC/socialsoftware and I’ve found few though very
interesting sources and drawn some potentially interesting ideas
or conclusions (interesting not only in an academic terms but also
in a business kind of way :-)

Chris Jay makes a very simple classification scheme, taking
into account the synchronicity and the privacy of the communication:

http://chrisfjay.blogspot.com/2007/11/web-communication.html

I think that the synchronicity aspect is definitely a facet to
take into account but I’m a bit more skeptic about the private/public
aspect. Not that I think its not important; its just that privacy
is orthogonal to the other aspects (ie. you can have a public CMC
system and make it private by adding authorization/authentication)

Tim Bray also uses the synchronicity aspect (he calls it immediacy)
and brings in a couple of aditional aspects, lifespan and audience:

http://www.tbray.org/ongoing/When/200x/2007/11/23/Communication

These I believe are of utmost importance in understanding the
different CMC systems out there. More than that, in understanding
past CMC systems, current evolvements and potential future
developments in CMC and social software. Below I will use these
aspects in a slightly different way.
Like Tim says right at the bottom of his article, using these
facets and “if you draw the right graph, maybe you’ll see the gaping
hole in it, the Next Big Thing.”

Finally, Susan Herring’s more complete and academic paper uses
a *lot* of different aspects for classification, including
classification not only for the medium (the system/software in
this case) but also for the situation (the use being made of
the system/software):

http://www.languageatinternet.de/articles/2007/761

Once again the sychronicity aspect shows up, as well as the
persistence (Bray) and the privacy (Jay), along with a few
others. The “audience” aspect (number of participants) shows
up not in the medium classification factors but in the
situation factors. I personally feel that this should not be
the case, since either the medium (ie. the software or system)
allows for it or not and thus its a medium facet.

So here is my take on all of this: I believe that the
synchronicity or immediacy aspect is definitely one to take
into account; the audience or participation structure is also
very important, but I will refer to it as arity.

http://en.wikipedia.org/wiki/Arity

The third aspect that I will use is different from the 3 past
classification schemes and is, I think, an agregator for some
of the facets used in those.
I will use only 3 dimensions because that is all I can deal with
both mentally and in written form; one can draw a cube or two matrices,
more than that and its quantum physics :-)

I think that the facets referred to as private/public by Jay, as
lifespan by Bray and as persistence by Herring can be best addressed
as a “publishing method” issue: whether the information that you
intend to communicate is “published”/”pushed” to the intended
audience or if the intended audience “subscribes”/”pulls” the message
or information. Indeed if the publishing mode is different, namely
“pull”, the information or messages will have to be stored for later
retrieval, thus addressing the lifespan/persistence facet. The “pull”
would also have to be subjected to some kind of public/private
authorization scheme. Thus I believe that understanding CMC and social
software from this point of view does not preclude these other
facets, instead it subsumes them.

(While writing this last paragraph an article on TechCrunh just
showed up in my newsreader that addresses the matter of “audience”
and that ties in nicely to my analysis…)

http://www.techcrunch.com/2008/08/10/why-twitter-hasnt-failed-the-power-of-audience/

Up until recently the usual publishing method has been the “push”
or “publish” mode. By this I mean that the emitter creates some
piece of information (a message) and addresses it in some way
(a person or a group); the message is then delivered to some point
(a mailbox or a folder) to be retrieved by the message receptors; the
key point in this mode is that message delivery is initiated by the
emitter and the message is “pushed” as close as possible to the
receptor; the receptor doesnt have much choice on “receiving” the
message (other than ignoring, deleting or blocking).
Assuming this method of publication, lets analyse current CMC and
social software systems using a 2×2 matrix with arity on one axis and
synchronicity on the other:

Synchronicity

                        Sync                        Async
               +--------------------------+--------------------------+
               |                          |                          |
               |                          |                          |
               |          Chat            |                          |
               |    Instant Messaging     |          Email           |
               |         Phone            |          SMS             |
         1:1   |          F2F             |                          |
               |                          |                          |
               |                          |                          |
   A           |                          |                          |
   r           |                          |                          |
   i           |                          |                          |
   t           |                          |                          |
   y           |                          |                          |
               +--------------------------+--------------------------+
               |                          |                          |
               |                          |                          |
               |                          |                          |
               |        Room Chat         |       Usenet news        |
               |          IRC             |                          |
               |                          |                          |
         1:N   |                          |                          |
               |                          |                          |
               |                          |                          |
               |                          |                          |
               |                          |                          |
               +--------------------------+--------------------------+

In recent years we have seen a surge on the “subscribe”/”pull” mode
of publication. In this mode the emitter creates some piece of info
or some message but this is kept as close as possible to the source,
with the receptor having to explicitly subscribe or pull the message
from the source. There is usually no special need to address the
message to a particular receptor (or receptors) and the receptors
have a lot more say on who and what messages they want to read.
Assuming this method of publication, lets see which “new” pieces
of social software fit in the matrix quadrants:

Synchronicity

                        Sync                        Async
               +--------------------------+--------------------------+
               |                          |                          |
               |                          |                          |
               |                          |                          |
               |          ?               |           ?              |
               |                          |                          |
         1:1   |                          |                          |
               |                          |                          |
               |                          |                          |
   A           |                          |                          |
   r           |                          |                          |
   i           |                          |                          |
   t           |                          |                          |
   y           |                          |                          |
               +--------------------------+--------------------------+
               |                          |                          |
               |                          |                          |
               |                          |                          |
               |        Twitter           |         Blogs            |
               |                          |         Wikis            |
               |                          |         Feeds            |
         1:N   |                          |                          |
               |                          |                          |
               |                          |                          |
               |                          |                          |
               |                          |                          |
               +--------------------------+--------------------------+

(Please feel free to send me some email if you think that I have
misplaced some of the technologies or if I’m forgetting a relevant
one; I would appreciate some inputs….)

Now, given the above matrix it is, at least for me and for now,
easy to draw two conclusions:

– its easy to see why Twitter is so successfull; just like blogs
have replaced Usenet as the 1:N/Async tool of choice in the
“subscribe” world, so has Twitter replaced IRC and crappy group IM
as the 1:N/Sync tool of choice in the new world.

– its easy to see the “gaping hole, the next big thing”; what will
replace email/IM/phone as the 1:1/Sync and 1:1/Async tools of choice
in the “pull”/”subscribe” world? And, in the case of email, could
it/this be the definitive solution to the “spam” problem?

Food for thought and, paraphrasing Paul Graham, things that would
definitely invest in ;-)…..

— MV


26
Jul 08

Empreendedorismo III – Co-Fundadores

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Empreendedorismo III – Co-Founders
Date: Sat, 26 Jul 08 00:12:21 GMT

Para alem das ideias, existe uma outra peca fundamental
que o empreendedor tem de conseguir encontrar e reunir ao
seu projecto ou ideia: os cofundadores.

Se muitas vezes o trabalho de pensar e idealizar um
projecto e um trabalho solitario, o trabalho de planear
e implementar um projecto e algo que nao pode ser feito
por um lobo solitario. Torna-se necessario juntar as
capacidades e esforcos de varias pessoas.

Sempre tive presente como constituintes basicos de
uma organizacao as pessoas, os processos e a tecnologia.
Dai que tambem tenha tido sempre na ideia que o minimo
para comecar uma empresa sao 3 pessoas: o responsavel pelas
pessoas (administrativo/financeiro), o responsavel pelos
processos (marketing/operacoes) e o responsavel pela
tecnologia (desenvolvimento/producao).

Note-se que o numero minimo de elementos necessarios
para comecar uma empresa nao e um (1): isso e freelancing.
Nao e dois (2): isso e um casamento (pior…). O numero
certo e tres (3). Nao e quatro (4) porque 4 sao dois
casamentos…

No livro “Beermat Entrepeneur” sao recomendados cinco (5):

http://www.amazon.co.uk/Beermat-Entrepreneur-Really-Great-Business/dp/0273659294
http://www.cognac.co.uk/files/beermat.pdf

A saber:

– The Entrepreneur (CEO,idea/promotion guy)
– The Technical Innovator (CTO, tech, geek)
– The Delivery Specialist (COO, operacoes)
– The Sales Guy (CMO, marketing, vendas)
– The Finance Guy (CFO, administracao, financas,o chato)

Nao se pode dizer que nao seja uma boa ideia. Mas por
vezes e bastante dificil conseguir o commitment de 5
pessoas. Se isso for possivel perfeito; se nao for possivel
o minimo necesario sao 3 pessoas e mais tarde a empresa pode
adicionar os 2 elementos em falta.

Escuso-me a colocar como hipotese startups com mais de
5 founders: isso e o caos ou a democracia, e nenhum deles
da bons resultados. Podem escolher qualquer numero para
o numero de fundadores desde que o total seja 3 ou 5…

A principal dificuldade nesta fase, conforme descrito por
John Nesheim no capitulo 3 do livro “High Tech Startup”, e
de facto conseguir o commitment (compromisso, no sentido
de “palavra”, interesse, disponibilidade) dos (pelo menos)
dois cofounders (ou, mais dificil, de quatro)

http://www.amazon.co.uk/High-Tech-Start-up-Successful-Companies/dp/068487170X
http://is.gd/14mE

Sendo certo que esta e uma fase excelente de teste para a
ideia do empreendedor, uma vez que os cofounders tem de ser
convencidos a juntar-se ao projecto e isso implica explicar
e “vender” o projecto e a oportunidade, tambem e certo que
os obstaculos a vencer nao sao triviais.

A incapacidade e incerteza de verem como realizavel uma
ideia muitas vezes fora do comum elimina muitos potenciais
candidatos. Os que restam, as vezes mais convencidos pelo
retorno financeiro do projecto do que pela ideia em si, sao
tambem aqueles que, quando contrapoem a seguranca de um
emprego e de um salario certo, acabam por considerar uma
aventura arriscada participar na criacao de uma empresa.

Nao e tambem de menosprezar antagonistas de peso nesta
fase do empreendedorismo: a familia e a sociedade.
A primeira porque, tipicamente, considera uma loucura
alguem meter-se num negocio proprio, deixando um emprego
seguro (ou pelo menos a ilusao do mesmo). O empreendedor
tem muitas vezes de convencer nao um cofounder, mas o
marido/mulher, os pais, etc
A segunda porque, na Europa em geral e em Portugal em
particular, coloca um estigma enorme no falhanco e/ou
na possibilidade de falhar. Ao inves de se entender um
projecto falhado como uma fase da aprendizagem, ele e
usado como “nodoa” e “prova” de quem nao vale a pena
correr riscos. Como se isso nao bastasse, caso o projecto
tenha sucesso e traga algum, pequeno ou grande, nivel
de liberdade e riqueza, a sociedade europeia e crista
tende tambem a tratar os empreendedores com inveja e
com desdem, nao sendo raros os fenomenos de criacao de
rumores sobre a proveniencia dos lucros e a sua
legitimidade.

A estrategia de resolucao deste quadro passa pela
definicao de papeis a desempenhar na startup em vez
de pensar em pessoas especificas. O empreendedor pode
entao e assim procurar e contactar potenciais cofounders
de entre os seus conhecimentos, garantindo que tem
competencias para desempenhas os papeis em causa.
Atraves de multiplos contatos com os multiplos
candidatos, o empreendedor pode ir medindo e avaliando
qual a disponibilidade e commitment possiveis por parte
das varias pessoas possiveis.
Adicionalmente esta definicao previa de papeis permite
que, por um lado, nao se criem ideias fixas sobre este
ou aquele cofundador, nao ficando a criacao da startup
dependente deste ou daquele “genio”, muitas vezes
ilusorio. Por outro lado, abrindo a porta a varias
possibilidades, permite que a startup, no momento da
criacao ou no futuro, nao esteja dependente da criacao
de um “dream team”, muitas vezes dificil de conseguir
e/ou de manter.

— MV


17
Jun 08

Offline 2 More Weeks

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Offline 2 More Weeks
Date: Jun, 17 Jun 08 13:43:21 GMT

I’ve been “sort of” offline for the last couple of
months and I’ll be definitely offline for the next
two weeks. I’m leaving for an offline 2 week beach
holiday.

Although I’ve been active in other places (like
Twittter…), I really wanted to focus on other
stuff (like guitar playing :-), keep a 3 month
silence period regarding my previous role as CIO
for the portuguese Ministry of Justice and also
to think about life, the universe and everything
(aka what I want to do when I grow up).

Things are looking up, I’ve digested a lot of
stuff and, although I already have a clear view
on where I should be heading next, I’ll be making
final decisions during these next 2 weeks.

I expect to come back with a lot more action, both
in real life and online.

C U in 2 weeks!

— MV