2009-12-31

Tweets of the month

# Hacked Wiimote Makes Super Scientific Sensor http://www.wired.com/wiredscience/2009/12/wiimote-science/ quarta-feira, 16 de Dezembro de 2009 09:47:05

Amazing electronic postcards: http://www.jacquielawson.com/ terça-feira, 15 de Dezembro de 2009 19:46:07

@AnaPardal Um abraço irmã! terça-feira, 15 de Dezembro de 2009 19:45:47 in reply to AnaPardal

Working in my "new" office - thanks @joanappardal for the new gear terça-feira, 15 de Dezembro de 2009 13:59:49

@AnaPardal Frio, qual frio!? Isto antes dos 0 não dá luta ;-) segunda-feira, 14 de Dezembro de 2009 21:25:01 in reply to AnaPardal

Working while listening to Up!'s score by Michael Giacchino segunda-feira, 14 de Dezembro de 2009 15:28:57

@Patecas @pedrocustodio Muitos parabéns aos tios babados! segunda-feira, 14 de Dezembro de 2009 11:22:42 in reply to Patecas

"Speed, quality, price. Pick any two." -- James M. Wallace quinta-feira, 10 de Dezembro de 2009 12:40:26

@pedrocustodio @Patecas Boas compras e boa viagem! quarta-feira, 9 de Dezembro de 2009 19:40:49 in reply to pedrocustodio

@nfma As melhoras! quarta-feira, 9 de Dezembro de 2009 10:37:00 in reply to nfma

# mpanao Será Copenhaga um sinal? http://cienciareligiao.blogspot.com/2009/12/copenhaga-um-sinal.html terça-feira, 8 de Dezembro de 2009 06:33:26 Retweeted by you

Herzlichen Glückwunsch zum Geburtstag Joana! domingo, 6 de Dezembro de 2009 19:29:14

Visiting Berlin sábado, 5 de Dezembro de 2009 22:52:52

"I hear and I forget. I see and I remember. I do and I understand." -- Chinese proverb quinta-feira, 3 de Dezembro de 2009 11:44:39

"Naquele tempo não havia dor..." -- Xutos & Pontapés, Classe de 79 :-) quinta-feira, 3 de Dezembro de 2009 10:06:46

Had a surprising chinese dinner last night. Thanks dear friends C & H ! quarta-feira, 2 de Dezembro de 2009 09:59:21

2009-12-26

Earth Race over Earth Day

A very interesting article by Thomas L. Friedman about the Copenhagen conference.

The only engine big enough to impact Mother Nature is Father Greed: the Market. Only a market, shaped by regulations and incentives to stimulate massive innovation in clean, emission-free power sources can make a dent in global warming.

Because once we get America racing China, China racing Europe, Europe racing Japan, Japan racing Brazil, we can quickly move down the innovation-manufacturing curve and shrink the cost of electric cars, batteries, solar and wind so these are no longer luxury products for the wealthy nations but commodity items the third world can use and even produce.

Read the full article on the NY Times.

2009-12-22

Happy Holidays!

Dear Friends, Happy Holidays!

Merry CHRISTmas and a Happy New Year!



This image is part of a Jacquie Lawson animated postcard. Check out http://www.jacquielawson.com for more amazing art. Thanks to M Swift for this finding!

2009-12-17

Steps for a performance evaluation study

1. State the goals of the study and define the system boundaries
2. List system services and possible outcomes
3. Select performance metrics
4. List system and workload parameters
5. Select factors and their values
6. Select evaluation techniques
7. Select the workload
8. Design the experiments
9. Analyze and interpret the data
10. Present the results. Start over, if necessary.

Read more about this in the book The Art of Computer Systems Performance by Raj Jain

2009-12-15

Erlang at Facebook

These are some excerpts from a presentation about the Facebook chat implementation.



System challenges
- How does synchronous messaging work on the Web?

- "Presence" is hard to scale
-- Need a system to queue and deliver messages
-- Millions of connections, mostly idle
-- Need logging, at least between page loads

(...)




Architectural details of Channel servers
- Distributed design
- User id space is partitioned (division of labor)
-- Each partition is serviced by a cluster (availability)
- Presence aggregation
-- Channel servers are authoritative
-- Periodically shipped to presence servers
- Open source: Erlang, Mochiweb, Thrift, Scribe, fb303, et al

(...)

Key Erlang Features we love:
- Concurrency (based on user-mode threads)

- Distribution Connected network of nodes
-- Remote processes look like local processes
-- Any node in a channel server cluster can route requests
-- Naive load balancing

- Fault Isolation

- Error logging
-- Stacktraces point the way to bugs (functional languages win big here)

- Hot code swapping

- Monitoring and Error Recovery
-- Supervision hierarchies
-- Organize (and control) processes
-- Organize thoughts
-- Systematize restarts and error recovery
-- simple_one_for_one for dynamic child processes

- net_kernel (Distributed Erlang)
-- sends nodedown, nodeup messages
-- any process can subscribe
-- heart: monitors and restarts the OS process

- Remote Shell
-- Ad-hoc inspection of a running node
-- Command-and-control from a console
-- Combines with hot code loading

- Erlang top (etop)
-- Shows Erlang processes, sorted by reductions, memory and message queue
-- OS-like functionality ... for free

- Hibernation

- Symmetric MultiProcessing (SMP)
-- Take advantage of multi-core servers
-- erl -smp runs multiple scheduler threads inside the node
-- SMP is emphasized in recent Erlang development

- hipe_bifs
-- hipe_bifs:bytearray_update() allows for destructive array assignment
-- Cheating single assignment because in Erlang is destructive assignment is hard because it should be

Reference: Erlang at Facebook by Eugene Letuchy on Apr 30, 2009

Excerpts from RDF Primer

RDF was based on the idea of expressing simple statements about resources, where each statement consists of a subject, a predicate, and an object. In RDF, the English statement:

http://www.example.org/index.html has a creator whose value is John Smith

could be represented by an RDF statement having:
  • a subject http://www.example.org/index.html
  • a predicate http://purl.org/dc/elements/1.1/creator
  • and an object http://www.example.org/staffid/85740

(...)

Taken as a whole, RDF is basically simple: nodes-and-arcs diagrams interpreted as statements about things identified by URIrefs.



(...)

However, in addition to the basic techniques for describing things using RDF statements discussed so far, it should be clear that people or organizations also need a way to describe the vocabularies (terms) they intend to use in those statements, specifically, vocabularies for:
  • describing types of things (like exterms:Person)
  • describing properties (like exterms:age and exterms:creation-date), and
  • describing the types of things that can serve as the subjects or objects of statements involving those properties (such as specifying that the value of an exterms:age property should always be an xsd:integer).

Reference: http://www.w3.org/2007/02/turtle/primer/

Interview with MATLAB creator Cleve Moler

What do you wish would be taught more in universities?

We’re on the intersection between mathematics, engineering and computer science. In many universities, those three disciplines just concentrate on their own little field. The mathematicians don’t want to dirty their hands with engineering, the engineers are afraid of mathematics, it’s the interdisciplinary, the combination of all three of those that students should have a chance to appreciate.

Read the full Cleve Moler interview at Computer World magazine's web site.

A small curiosity: did you know that MATLAB stands for ‘matrix laboratory’? I didn't :-)

2009-12-10

Common mistakes in performance evaluation

1. No goals
2. Biased goals
3. Unsystematic approach
4. Analysis without understanding the problem
5. Incorrect performance metrics
6. Unrepresentative workload
7. Wrong evaluation technique (measurement / simulation / analytical modeling)
8. Overlooking important parameters
9. Ignoring significant factors
10. Inappropriate experimental design
11. Inappropriate level of detail
12. No analysis (only measurements)
13. Erroneous analysis
14. No sensitivity analysis (to find the relative importance of various parameters)
15. Ignoring errors in input
16. Improper treatment of outliers
17. Assuming no change in the future
18. Ignoring variability
19. Too complex analysis (start simple!)
20. Improper presentation of results
21. Ignoring social aspects
22. Omitting assumptions and limitations

Read more about this in the book The Art of Computer Systems Performance by Raj Jain

2009-12-03

Computer performance definitions

Cost-performance trade-off

Select:
- the right measures of performance
- the right measurement environment
- the right techniques

Metrics - criteria used to evaluate the performance of the system (examples: response time, transactions per second)

Workloads - requests made by the users of the system

Factors - system parameters that are varied in the study. Other parameters should fixed or typical values.

2 tools are required to measure the performance of a computer system:
- load generator - to load the system;
- monitor - to measure the results.

Read more about this in the book The Art of Computer Systems Performance by Raj Jain