2008


16
Nov 08

Codebits 2008

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Codebits 2008
Date: Sun, 16 Nov 08 22:03:21 GMT

Another Codebits has gone by. Its always some nice time
off from your standard daily life, but age is starting to
get to me. Like Savatage says: “And though we still stay
up all night, the mornings arent quite as bright”. Plus
the novelty is starting to wear off and I dont find it as
interesting anymore. Add to that the fact that beyond a
certain point you just start to look ridiculous, like those
parents who go with their kids to nightclubs, and the fact
that it becomes pretty obvious that the kids really dont feel
comfortable with you being there. Its very likely that I wont
be there next year…

Anyway, once again a nice hacking/programming contest. The
number of bozos, clowns and wannabes has gone up but the jury
was able to go through 81 projects and find a few valuable ones.

Out of all of them, some definitely stand out, although they’re
not “investment” grade:

– Project 2 (the “Quiz Show” setup, using hacked Buzz controllers)
and Project 20 (the winner, code and demo for using the Open Moko
accelerometer) deserve major kudos for hack value. I wouldnt
invest in them though.

– Project 43 (”Million Dollar World”, a selling pixel space in a
world map project cloning the Million Dollar Page 1×1 pixel
ad space sellout) and Project 58 (”FotoLOL”, a mashup of random
fotos and random post titles that generates some funny situations)
have some money-making value, but always dependent on ad based
revenue and not much of a business model. I definitely wouldnt
invest in them but their authors should go forward with the
implementation, before someone else does it. Hell *I* would clone
the “Million Dollar World” this week, if it wasnt for the fact
that I have some principles (unlike others who feed on others
ideas and dont even credit them back)

The ones that stood out where I would think about putting money
in (after discussing several issues, including business model):

– Project 1, “Na Taxa Verde”, from Codebits07 winners, has some
potential. Its basically an invoice tracker for freelancers that
could get some traction and income with aditional features (like
expense tracking and tax advisory)

– Project 12, “FeedBits”, is a feedreader which includes a
Bayesian filter. Lots of talk around something like this and even
similar projects, but nothing that really does it well. Could solve
a personal itch of mine and could even sell some copies (maybe
through the iphone/android app markets, at a small price)

– Project 13, “GoodActions”, is sort of a social network for
do-gooders to track their nice deeds and to get suggestions. It
has enough “touchy feely”, “new age”, “social responsibility”
involved that might just make it gain a following within the
socialist vegetarian animal lover crowd. Not my sorta people but
hey… as long as they have money to spend (and it seems they
are the upcoming psychosocial segment) I’m with it bro…

– Project 33, “World Wide Apps”, is from a friend of mine that
wants every site to be wikipedia-like and have both content *and*
source code editable. Its wacky enough to interest a fringe of
users (and companies… yum) and to generate its own plataform and
ecosystem. Curiously enough a few hours later after discussing the
project and seeing it presented I found out something very much
like it implemented in serverside Javascript, no less (SSJS is a
personal fave right now). See http://reasonablysmart.com/

– Project 70, “Sapo Quest”, is a set of quest/games/challenges
to be done in real life by completing a set of steps or stages
while being tracked (using RFID at Codebits). The idea could very
well have some nice applications for alternate reality games
(which are played using your real environment), namely by using
other types of tracking (GPS, mobile). I have some business model
ideas around thus type of alternate reality game that dont
involve your typical game and gamer that could generate some nice
cash flows.

All in all, I hope that Codebits happens again next year. A big
thumbs up for Celso and for all the people at Sapo team that make
Codebits happen. Maybe someday the portuguese web community will
live up to your standards and deserve all the personal sacrifices.

I’m sad to say
It’s time to go
But until we meet again along the road
Remember this, on your journey home
When you hear the thunder roar, you’re not alone
We wish you well
We wish you well
In times of trouble, may your heart be strong
We wish you well
We wish you well
Until we meet again
We wish you well
- Whitesnake, “We Wish You Well”

— MV


27
Sep 08

Golden Oldies

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Golden Oldies
Date: Sat, 27 Sep 08 19:31:21 GMT

A long, long time ago, around 1978, I started listening
to music. My first memories of music is stuff like Patrick
Hernandez Born to be Alive, Boomtown Rats Tell Me Why I Dont
Like Mondays, Pink Floyds The Wall and Kiss I Was Made for
Loving You.

But the very very very first set of records that I listened
to was a Readers Digest box set, bought by my parents, called
the Golden Hit Parade:

http://www.discogs.com/release/991081

Lots of good stuff in the playlists, true classics, one
hit wonders and standard top 40 fare. But, amidst it all,
my favourites were the “weird” songs, stuff that you have
probably never heard about and, if you hear it, might not
want to hear ever again :-)

So here’s some wacko songs that I still find great fun
to listen to…

Lord Rockingham’s XI – Hoots Mon
http://www.youtube.com/watch?v=Z7Ymov6JhRE

The Marcels – Blue Moon
http://www.youtube.com/watch?v=bJavHuHAjgY

Jimmy Dean – Big Bad John
http://www.youtube.com/watch?v=mR9dDdUmdtU

The Sweet – Ballroom Blitz
http://www.youtube.com/watch?v=ZrBDivsSe3k

Focus – Sylvia
http://www.youtube.com/watch?v=4V26-oscwDU

Heinz – Just like EDDIE
http://www.youtube.com/watch?v=hqRLR-EtlEk

Jet Harris and Tony Meehan– Diamonds
http://www.youtube.com/watch?v=XZbfzm6voVk

Yep, I AM a geezer, I’ll nick ya…

— MV


27
Aug 08

Serverside Javascript Tracemonkey Performance – Part V

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

Finally had some time free to run the Sunspider tests on
serverside Javascript 1.6 and JS1.8tracemonkey. The results are
listed below.

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

Performance wise there’s not much of notice. Results are
basically in line with Brendan Eich’s results for browserside
tests.

http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html

One thing is of notice though: JS1.8 throws a segfault in
at least 5 of the tests. I dont have much time to debug right
now, but a strace shows that the last system call was a call
to gettimeofday, after a bunch of read()s containing js source
code lines. Maybe a call to date functions… or the fact that
I patched and compiled in the not-recomended jsfile.c File object
support ;-)… Will have to look into it later…

—————————————
3d-cube.js
JS 1.6
real 0.59
user 0.55
sys 0.01

JS 1.8
real 0.08
user 0.06
sys 0.01
—————————————
3d-morph.js
JS 1.6
real 0.69
user 0.61
sys 0.04

JS 1.8
real 0.06
user 0.04
sys 0.02
—————————————
3d-raytrace.js
JS 1.6
real 0.47
user 0.41
sys 0.02

JS 1.8
./perftest: line 1: 13589 Segmentation fault js18 -j $f
real 0.01
user 0.01
sys 0.00
—————————————
access-binary-trees.js
JS 1.6
real 0.27
user 0.22
sys 0.03

JS 1.8
real 0.10
user 0.08
sys 0.01
—————————————
access-fannkuch.js
JS 1.6
real 0.97
user 0.93
sys 0.00

JS 1.8
./perftest: line 1: 13593 Segmentation fault js18 -j $f
real 0.03
user 0.02
sys 0.00
—————————————
access-nbody.js
JS 1.6
real 0.60
user 0.44
sys 0.06

JS 1.8
real 0.07
user 0.05
sys 0.01
—————————————
access-nsieve.js
JS 1.6
real 0.56
user 0.50
sys 0.00

JS 1.8
real 0.03
user 0.03
sys 0.01
—————————————
bitops-3bit-bits-in-byte.js
JS 1.6
real 0.26
user 0.26
sys 0.00

JS 1.8
real 0.00
user 0.00
sys 0.00
—————————————
bitops-bits-in-byte.js
JS 1.6
real 0.40
user 0.38
sys 0.00

JS 1.8
real 0.01
user 0.01
sys 0.00
—————————————
bitops-bitwise-and.js
JS 1.6
real 0.34
user 0.29
sys 0.00

JS 1.8
real 0.03
user 0.01
sys 0.01
—————————————
bitops-nsieve-bits.js
JS 1.6
real 0.66
user 0.56
sys 0.00

JS 1.8
real 0.04
user 0.00
sys 0.00
—————————————
controlflow-recursive.js
JS 1.6
real 0.14
user 0.12
sys 0.00

JS 1.8
real 0.07
user 0.07
sys 0.00
—————————————
crypto-aes.js
JS 1.6
real 0.46
user 0.32
sys 0.04

JS 1.8
./perftest: line 1: 13609 Segmentation fault js18 -j $f
real 0.01
user 0.00
sys 0.00
—————————————
crypto-md5.js
JS 1.6
real 0.38
user 0.27
sys 0.01

JS 1.8
./perftest: line 1: 13611 Segmentation fault js18 -j $f
real 0.02
user 0.02
sys 0.00
—————————————
crypto-sha1.js
JS 1.6
real 0.35
user 0.25
sys 0.01

JS 1.8
real 0.02
user 0.02
sys 0.00
—————————————
date-format-tofte.js
JS 1.6
real 1.03
user 0.69
sys 0.09

JS 1.8
./perftest: line 1: 13615 Segmentation fault js18 -j $f
real 0.08
user 0.07
sys 0.00
—————————————
date-format-xparb.js
JS 1.6
real 1.74
user 1.37
sys 0.17

JS 1.8
real 0.19
user 0.15
sys 0.02
—————————————
math-cordic.js
JS 1.6
real 0.63
user 0.51
sys 0.00

JS 1.8
real 0.05
user 0.04
sys 0.00
—————————————
math-partial-sums.js
JS 1.6
real 0.42
user 0.36
sys 0.02

JS 1.8
real 0.03
user 0.03
sys 0.00
—————————————
math-spectral-norm.js
JS 1.6
real 0.28
user 0.21
sys 0.04

JS 1.8
real 0.02
user 0.01
sys 0.00
—————————————
regexp-dna.js
JS 1.6
real 0.60
user 0.50
sys 0.05

JS 1.8
real 0.37
user 0.33
sys 0.01
—————————————
string-base64.js
JS 1.6
real 1.10
user 0.94
sys 0.07

JS 1.8
real 0.03
user 0.01
sys 0.02
—————————————
string-fasta.js
JS 1.6
real 0.77
user 0.66
sys 0.05

JS 1.8
real 0.23
user 0.20
sys 0.02
—————————————
string-tagcloud.js
JS 1.6
real 0.63
user 0.58
sys 0.00

JS 1.8
real 0.23
user 0.19
sys 0.02
—————————————
string-unpack-code.js
JS 1.6
real 0.54
user 0.48
sys 0.01

JS 1.8
real 0.33
user 0.28
sys 0.04
—————————————
string-validate-input.js
JS 1.6
real 0.43
user 0.35
sys 0.04

JS 1.8
real 0.10
user 0.07
sys 0.02

— MV


25
Aug 08

Serverside Javascript Tracemonkey Performance – Part IV

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Serverside Javascript Tracemonkey Performance – Part IV
Date: Mon, 25 Aug 08 02:06:21 GMT

Before starting in on the Dromaeo and Sunspider tests, I decided
to run some tests to compare JS1.8tracemonkey with other languages.

For C, I created a couple of tests similar to Mike Shaver’s simple loop
but using instead the loop-sum and the function-sum tests from Sunspider
ubench tests.

http://shaver.off.net/diary/2008/08/22/the-birth-of-a-faster-monkey/

As you can see from the output below, JS1.8tracemonkey only comes close
to unoptimized gcc in a simple for loop. If the loop contains some
statements, as is the case, Tracemonkey is slower 2x/3x than compiled C.

To compare with other languages, I also created a direct copy of Tim Bray’s
Ruby code for his Wide Finder project, but with dismal results. My script clocks
in at nearly 5 secs using his o10k.ap 2Mb file sample (which would mean >500secs
with the o1000k.ap 200Mb file).

http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder
http://mvalente.eu/Projects/wf1.js

It seems that the only language missing an entry in the Wide Finder challenge
is Javascript. I believe that the only reason for that is that people
just arent used to use Javascript to perform these type of tasks, due to the
misconception that “its for the browser and you cant access files”. I’m
curious to find out if with JS1.8tracemonkey we can get similar performance
to the other languages/contestants…

Tomorrow I hope to try and reproduce Santiago Gala’s and Fredrik Lundh
techniques and have a script that is more in line with the general results
for other languagues (meaning a ballpark 5-8 seconds for the 200Mb sample
or 50-80ms for the 2Mb sample). Or someone more versed in generators,
iterators, map/reduce and all that shiny new stuff might be kind enough
to send in the script :-)…

http://effbot.org/zone/wide-finder.htm
http://www.tbray.org/ongoing/When/200x/2007/10/30/WF-Results

—————————————-

[root@localhost perfjsvsc]# cat loop-sum.js; js18 -j loop-sum.js; time -p js18 -j loop-sum.js
var count = 99999999;
var sum = 0;
for (var i = 0; i < count; i++) {
sum = i + count;
}

real 0.84
user 0.19
sys 0.00

—-

[root@localhost perfjsvsc]# cat loop-sum.c; gcc -o loop-sum loop-sum.c; ./loop-sum; time -p ./loop-sum
int count = 99999999;
int i, sum = 0;

main()
{
for (i = 0; i < count; i++)
{
sum = i + count;
}
}
real 0.39
user 0.09
sys 0.00

—-

[root@localhost perfjsvsc]# cat function-sum.js; js18 -j function-sum.js; time -p js18 -j function-sum.js
function f(x, y, z)
{
return x + y + z;
}

for (var i = 0; i < 99999999; ++i)
f(1, 2, 3);

real 1.76
user 0.41
sys 0.00

—-

[root@localhost perfjsvsc]# cat function-sum.c; gcc -o function-sum function-sum.c; ./function-sum; time -p ./function-sum
int f(int x, int y, int z)
{
return x + y + z;
}

main()
{
int i;

for (i = 0; i < 99999999; ++i)
f(1, 2, 3);
}

real 0.69
user 0.17
sys 0.00

—————————————-

— MV


24
Aug 08

Serverside Javascript Tracemonkey Performance – Part III

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

As expected the Sunspider ubench Javascript performance tests
on serverside JS 1.6 and JS 1.8 (tracemonkey) run much faster
when on a halfway decent machine. Below you can find the tests
when running on a Xen VM (underlying hardware is some kind of
quad-core machine).

In this case JS1.6 now takes 9.940ms to complete all tests
(a small decrease from the 11s on the UML VM and about double
the 4.1982ms of the browserside testes) while JS1.8tracemonkey
now takes 0.300ms (halving the previous serverside tests at the
UML VM and coming close to the 185ms on the browserside tests.
Huge difference, now around a +-30X increase!

If someone wants to and can run these tests in a bare metal
Linux machine and needs the files, let me know. The browserside
tests made by Brendan Eich dont mention the hardware used to run
the tests but I would like to see some serverside tests in a
decent machine which I’m sure would beat the browserside times.

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

real 0m0.399s
user 0m0.340s
sys 0m0.030s

JS 1.8

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

real 0m1.869s
user 0m1.760s
sys 0m0.000s

JS 1.8

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

real 0m1.609s
user 0m1.600s
sys 0m0.000s

JS 1.8

real 0m0.047s
user 0m0.040s
sys 0m0.000s
—————————————
function-sum.js
JS 1.6

real 0m1.769s
user 0m1.620s
sys 0m0.000s

JS 1.8

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

real 0m0.392s
user 0m0.350s
sys 0m0.000s

JS 1.8

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

real 0m1.865s
user 0m1.820s
sys 0m0.000s

JS 1.8

real 0m0.050s
user 0m0.040s
sys 0m0.000s
—————————————
loop-sum.js
JS 1.6

real 0m2.027s
user 0m1.950s
sys 0m0.010s

JS 1.8

real 0m0.052s
user 0m0.050s
sys 0m0.000s

— MV


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 shitty 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