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

2009-11-30

Tweets of the month

Loved the movie Julie & Julia http://www.imdb.com/title/tt1135503/ domingo, 29 de Novembro de 2009 01:13:50

Today I ate a delicious Caracol (snail-like) cake. Thanks @joanappardal! sexta-feira, 27 de Novembro de 2009 18:45:40

"If you don't publish it, it didn't happen" -- anonymous researcher (OK, it's me! ^.^) sexta-feira, 27 de Novembro de 2009 16:04:09

Dear US Friends, Happy Thanksgiving! :-) quinta-feira, 26 de Novembro de 2009 23:41:30

@nfma Not news indeed :-) Meanwhile my project is coming along, and automated tests like you suggested have been helpful. quinta-feira, 26 de Novembro de 2009 16:43:30 in reply to nfma

@nfma Not news indeed :-) Meanwhile my project is coming along, and automated tests like you suggested have been helpful. quinta-feira, 26 de Novembro de 2009 16:43:30 in reply to nfma

The weather today reminds me of Boston... :-) quinta-feira, 26 de Novembro de 2009 09:26:56

The weather today reminds me of Boston... :-) quinta-feira, 26 de Novembro de 2009 09:26:56

Going home for the day. Good progress today, but still late. quarta-feira, 25 de Novembro de 2009 20:19:49

Going home for the day. Good progress today, but still late. quarta-feira, 25 de Novembro de 2009 20:19:49

A rainy day at Taguspark with lots of work ahead! quarta-feira, 25 de Novembro de 2009 10:51:59

A rainy day at Taguspark with lots of work ahead! quarta-feira, 25 de Novembro de 2009 10:51:59

Reboot, new Windows 7 theme (Korea), new songs to listen - back to work! segunda-feira, 23 de Novembro de 2009 15:34:52

"When something's broke (...) fight to get it back again!" -- Pearl Jam - The Fixer sexta-feira, 20 de Novembro de 2009 18:52:35

We have one more MSc! Congratulations @guiperpt! I think 15 is a fair grade for your work. sexta-feira, 20 de Novembro de 2009 11:10:48

@nfma Do you recommend using hamcrest matchers for testing or is using plain Java code better? quinta-feira, 19 de Novembro de 2009 12:41:08

Just finished thanking all congratulations. Thanks to all my dear friends! quinta-feira, 19 de Novembro de 2009 10:03:54

@andrerib Parabéns! quinta-feira, 19 de Novembro de 2009 09:05:12 in reply to andrerib

Something Import-Ant for Java developers :-) http://sparrowflights.blogspot.com/2009/11/something-important-for-java-developers.html quarta-feira, 18 de Novembro de 2009 14:46:20

Rise and shine! At least 32 x 365 reasons to be thankful to God for all my life :-) quarta-feira, 18 de Novembro de 2009 07:37:46

@mpanao Uau! Obrigado. Foste a segunda pessoa a dar-me os parabéns! quarta-feira, 18 de Novembro de 2009 07:36:05 in reply to mpanao

Developing terça-feira, 17 de Novembro de 2009 14:06:15

RT @opensuse openSUSE 11.2 is out http://bit.ly/1W87tH sábado, 14 de Novembro de 2009 15:22:48

Well done Nuno: 17! sexta-feira, 13 de Novembro de 2009 13:29:25

Attending Nuno Miguel Viães Rodrigues MSc defense. Good luck! sexta-feira, 13 de Novembro de 2009 10:32:27

@mpanao Bem vindo ao Twitter! quinta-feira, 12 de Novembro de 2009 09:53:59 in reply to mpanao

Good night! RT @pedrocustodio The Berlin Wall, 20 years gone – The Big Picture http://tinyurl.com/y8669z4 quarta-feira, 11 de Novembro de 2009 00:02:17

For several reasons, last week was a productivity black hole. Today I'm (finally) back in business! terça-feira, 10 de Novembro de 2009 15:08:30

Blogging some of the most interesting findings from yesterday's Big Picture day. 2:14 PM Nov 3rd, 2009

Windows 7 is a significant improvement over Vista. 2:14 PM Nov 3rd, 2009

@nfma Thanks for the TDD lesson! I'm looking forward to try this approach in my next work. 1:22 PM Nov 2nd, 2009 in reply to nfma

2009-11-29

A life with Karol

A life with Karol by Cardinal Stanislaw Dziwisz



A first person account of the life and papacy of John Paul II. Inspiring. Indeed a great Pope, and a book that does him justice.

2009-11-28

The Lost Journal of Indiana Jones

The Lost Journal of Indiana Jones



I got this great gift in my birthday and I absolutely loved it! It is a reproduction of Indiana Jones' personal journal seen on the Young Indiana Jones TV show. It is so good it almost makes you believe Indiana Jones is an historical figure (OK, it's not *that* good, but is a nice collector's item).

You can read more about it in the Indiana Jones wiki.

2009-11-27

Julie and Julia

Julie and Julia



Paul Child: What is it you REALLY like to do?
Julia Child: Eat!

The Prince and Me

The Prince and Me



Queen: Being royal requires you to sacrifice who you are for who you must be.

2009-11-23

The Science of Indiana Jones

Why Did It Have To Be Snakes: From Science to the Supernatural, The Many Mysteries of Indiana Jones by Lois H. Gresh and Robert Weinberg



It is interesting to look a little more seriously to one of the most successful movie franchises of all times: Indiana Jones. It is a good read and doesn't take the fun out of the movies.

There are also many other books from the same authors.

Software testing: Mocks vs Stubs

Test Double as the generic term for any kind of pretend object used in place of a real object for testing purposes. The name comes from the notion of a Stunt Double in movies. (One of his aims was to avoid using any name that was already widely used.) Meszaros then defined four particular kinds of double:

* Dummy objects are passed around but never actually used. Usually they are just used to fill parameter lists.
* Fake objects actually have working implementations, but usually take some shortcut which makes them not suitable for production (an in memory database is a good example).
* Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside what's programmed in for the test. Stubs may also record information about calls, such as an email gateway stub that remembers the messages it 'sent', or maybe only how many messages it 'sent'.
* Mocks are what we are talking about here: objects pre-programmed with expectations which form a specification of the calls they are expected to receive.

Reference: http://martinfowler.com/articles/mocksArentStubs.html

2009-11-22

Theology of the Body

Theology Of The Body For Beginners

Let's talk about sex, Catholic-style !?

A surprising book that challenges preconceptions about the Church's view of sex, based on the teachings of Pope John Paul II.



(em Português)

2009-11-21

Good Bye Lenin!

Good Bye Lenin!



Dr. Wagner: You must protect her from any kind of excitement. And I do mean any kind, Mr. Kerner.
Alexander Kerner: Any kind of excitement.
Dr. Wagner: It would be life-threatening.
Alexander Kerner: And this here?
[Shows the doctor a newspaper reading "Good Luck, Germany. Yes to Reunification"]
Alexander Kerner: Wouldn't you call this exciting?

2009-11-18

Something ImportAnt for Java developers

:-)

ImportAnt is a library for the Apache Ant build tool, very popular for Java programming. It is an open-source project, released under the GNU LGPL license and hosted at SourceForge.



Recently it has been re-envisioned as a Wiki of build file snippets that can be copy-pasted to create custom build files.

Enjoy!

2009-11-17

300

300



Dilios: Immortals... we put their name to the test.

2009-11-15

We're no angels

We're no angels



Jim: [as Father Brown, he is asked to give a speech to the town. He reads from a brochure stuck in his Bible that says "An Encounter with a Bear"] Have you ever felt alone, with no one to rely on? Danger on every hand, in a world fraught with danger, and when I looked into my pocket, what did I find? What did I find?
[flips the brochure over - it's an ad for guns]
Jim: Nothing. There's nothing there. It's all in your head. Look, they can take the money from you. They can take the position from you. People turn their back on you. Everything happens to everybody! And you ain't gonna find nothing in your pocket to stave it off. Nothing can stave it off! Power doesn't do it. Because you never have enough. Money? I don't know. You know anyone who's got enough money?
[holds up his Bible]
Jim: Is God good? I don't know. All I know is... something may give you comfort. And maybe you deserve it. If it comforts you to believe in God, then you do it. That's your business.

2009-11-13

Mac VS PC accident



This is my PC telling what happened to him last week... Actually the culprit was the network cable, but the end result was the same.

Final Idea Factory quote


If anyone taught me how to be a good person it was by example!


The Idea Factory, Learning to think at MIT



This was a (long) series of quotes from this book. This series is dedicated to my kid brother, João. By the way, happy 18th birthday brother! ;-)

2009-11-07

To End All Wars

To End All Wars



Ernest Gordon: When you surrender in war, you're stripped of your dignity as a soldier. And all you've got left is your fellow comrades, many of whom you've just met.

2009-11-06

Idea Factory quote


Some kid is reading my thesis. In the Eiffel Tower of technology, I am a rivet.


The Idea Factory, Learning to think at MIT

2009-11-05

JUnit Pocket Guide



Excerpts from JUnit Pocket Guide:

Battery of tests

JUnit:
- Runs tests automatically
- Runs many tests together and summarizes the results
- Provides a convenient place to collect tests
- Provides a convenient place for sharing the code used to create the objects to test
- Compares actual results to expected results and reports differences

Each Test class:
- Has 0..1 setUp() (@Before in JUnit 4)
- Has 0..1 tearDown() (@After in JUnit 4)
- Has 1..N testX()

Write tests first! (test-driven development)

Tests are a practical way to think separately about interface and implementation.

Stubs can avoid the allocation of expensive resources (like remote servers).

Learn APIs with tests.

Document assumptions with tests.

Incorporate tests in your build process for maximum benefits.

--

This book is now a little bit outdated because of JUnit 4, but it still is a great introduction unit tests as a first-class concept in your programming, part of the build process.

Write tests first!

2009-11-04

Final Day Without Yesterday quote


The microwave background was discovered in 1941. Andrew McKellar, at the Dominion Observatory on Victoria Island, B.C., discovered an excitation temperature of 3K…. Factually speaking, this was just as clear cut a discovery of the background as that of 1965, but the world was not in an intellectual position to appreciate it, demonstrating the great importance of sociological factors in assessing the merits of scientific work.

Great credit accrues to those who make a scientific discovery when the world is already teetering on the edge of it, whereas the discoverer who is markedly too early scarcely earns a footnote in scientific history.

Fred Hoyle, “Final Remarks”
The Day Without Yesterday, Lemaître, Einstein and the birth of modern cosmology

--


These quotes are dedicated to Georges Lemaître and all other Scientists at heart, in search of the Truth.

2009-11-03

Test-driven Development

The principle of test-driven development is to program the tests before the main application.

The application implementation should start with the "simplest happy path". After this, tests can be part of the development cycle: code, compile, test, execute. Tests are executed in all builds.

Just like compilation errors, test errors should be fixed as soon as they are detected.

And what about errors in the test code? :-)

The test code should be so simple it's obvious it's right.

The test code can be so complicated it's obvious it's wrong.

--

Learn more about this on Nuno Marques's blog.

(em Português)

The Semantic Web

Excerpts from the article The Semantic Web, by Tim Berners-Lee, James Hendler, and Ora Lassila; published by Scientific American in 2001:

In general, computers have no reliable way to process semantics.

The Semantic Web is an extension of the current Web where information is given well-defined meaning. It should be universal and as decentralized as possible, even at the cost of not having total consistency.

The Semantic Web leverages Knowledge Representation techniques: structured collections of information and sets of inference rules.
Gӧdel's theorem: "Any system that is complex enough to be useful also encompasses unanswerable questions and paradoxes like 'This sentence is false'".
Semantic Web researchers accept that paradoxes and unanswerable questions are a price that must be paid to achieve versatility.

The challenge of the Semantic Web is to provide a language that expresses both data and rules for reasoning about the data and that allows rules from any existing knowledge-representation system to be exported onto the Web.
Adding logic to the web means: to use rules and make inferences, choose courses of action, and answer questions. The logic must be powerful enough to describe complex properties of objects but not so powerful that agents can be tricked by paradoxes.

The semantic web will enabled machines to comprehend semantic documents and data, not human speech and writings.

Ontologies are collections of information, a document or file, that formally define the relations among terms. E.g. a taxonomy and a set of inference rules.

XML provides hidden labels for data. RDF provides meaning, stated in triples: subject, verb, object. Each is universally identified by an URI.

The Semantic Web can also include physical objects identified by URIs and described by RDF.

Required work:
- Proof interchange format;
- Service discovery;
- Digital signatures to achieve trust.

--

The Semantic Web is indeed an ambitious and useful research goal. However, a question lingers in my mind: How will the Web be annotated to start with?

How can people be motivated to make the extra effort to annotate their contents using the mentioned "off-the-shelf software for writing Semantic Web pages"? Maybe using an approach similar to CAPTCHAs?

2009-11-02

Effective Information Visualization

1. Ask a specific question

2. Gather information

3. Apply a metric and represent it using: size, color, location, network, time.

Color is good for enormous sets of data.
Networks become a mess with more than 100 nodes.

Rule of thumb: Use 3 dimensions or less of information! Tell a story!



Reference: Matthias Shapiro, O'Reilly Ignite

(em Português)

2009-10-31

Tweets of the month

Upgrading to Windows 6.1 a.k.a. Windows 7 10:10 AM Oct 31st

Updated XO laptops to the latest OS version: 8.2.1. Nice! If you don't know it, you can think of the OLPC as a rugged netbook for kids. 9:39 AM Oct 29th

Just created twitter lists. Nice implementation :-) 9:30 AM Oct 29th

OO Wisdom from Head First Design Patterns http://bit.ly/13LmkU 4:51 PM Oct 24th

Yesterday, a great italian dinner at Paço de Arcos. Today, a very good sushi lunch at S.J. Deus. It can't get any better! 1:14 PM Oct 23rd

RT @nunodelisboa Novo Governo: http://bit.ly/ppJWE 7:24 PM Oct 22nd

Writing specs document because putting ideas on paper is usually a good idea! 7:20 PM Oct 22nd

This afternoon I'm working in a very nice office, with Van Gogh and Dali paintings 2:55 PM Oct 22nd

Visualize the invisible in RFID http://bit.ly/YcHJY 9:19 AM Oct 21st

It's raining. A lot! 8:40 AM Oct 20th

Tidying up my desktop - the physical one ;-) 9:57 AM Oct 19th

The STEP Framework is now updated to Java 6, Tomcat 6. It also has many small improvements. 12:25 AM Oct 18th

Working today to recover the time lost because of a JAX-WS bug! Moving forward now. 4:52 PM Oct 17th

@nfma Google wave... I also want an invitation! 11:09 AM Oct 16th in reply to nfma

Errands in the morning. The river Tejo is always a delight on a sunny day! 2:54 PM Oct 14th

Getting close to fixing a bug that has cost me almost 3 days of work (so far) 3:19 PM Oct 13th

Rissóis de Leitão ao almoço. Estranho mas bem saboroso! 1:30 PM Oct 13th

A solar-powered e-reader! Very interesting idea. http://bit.ly/mkVTD 10:27 AM Oct 13th

Now that elections season is over let's all get back to work! :-) 10:54 AM Oct 12th

Nobel da Paz para Obama!? Mas ele ainda não fez nada! Inacreditável... 11:54 AM Oct 9th

Setting up a Fosstrak EPCIS repository http://www.fosstrak.org/ 9:55 AM Oct 9th

Just checked that Sleeping Beauty is OK. She'll have to wake soon, though. 7:24 PM Oct 8th

I won't give up on JF 5:56 PM Oct 8th

JF: "O pior cego é o que não quer ver" 10:31 AM Oct 8th

Hope is almost lost for JF... I can't help when my help is not wanted. Sad... Really sad... God help him. 6:55 PM Oct 7th

Fighting with a nasty software bug 4:45 PM Oct 7th

Updated my DeskSpace software. Now it's easier to work with separate desktops for the editor and the "engine room" (server logs) 12:02 PM Oct 7th

"Hello friend!" Hacked for hours to get this message working again :-) 7:22 PM Oct 6th

Today was the first rainy day in Lisbon. The Fall has arrived! 9:57 PM Oct 5th

Working today despite the holiday. I guess I'm not a Republic enthusiast :-) 3:45 PM Oct 5th

Just had a nice sushi lunch near Técnico. 1:25 PM Oct 2nd

@pedrocustodio STEMI for me (Science, Technology, Engineering, Math and Intuition) :-) 9:48 AM Oct 2nd in reply to pedrocustodio

Good morning! A new day starting, again at Taguspark. Lots of interesting work for today. 9:08 AM Oct 1st

2009-10-30

Idea Factory quote


"Design" often means "figure out where to put things"


The Idea Factory, Learning to think at MIT

2009-10-28

High-Performance with Virtualization

There are two types of HPC virtualization:

Scale-up Virtualization - a single hypervisor runs across multiple computers. This aggregates multiple CPUs and memory systems and makes them appear as a single computer. It is best for applications that require a lot of memory.

Scale-out Virtualization - a VM and hypervisor run on every processor core in each machine in the virtual supercomputer. A grid-management tool, rather than a single hypervisor as in scale-up HPC virtualization, manages the overall system. It is best for processor-intensive applications.

Read the full article from IEEE Computing Now.

P.S. - An hypervisor is the software that allocates a host machine's resources to each virtualized operating system or to each program running on a virtualized OS.

Day Without Yesterday quote


The writers of the Bible were illuminated more or less – some more than others – on the question of salvation. On other questions they were as wise or as ignorant as their generation. Hence it is utterly unimportant that errors of historic or scientific fact should be found in the Bible, especially if errors relate to events that were not directly observed by those who wrote about them.
The idea that because they were right in their doctrine of immortality and salvation they must also be right on all other subjects is simply the fallacy of people who have an incomplete understanding of why the Bible was given to us at all.

Georges Lemaître, answering a question in a 1933 interview (How does a priest-physicist reconcile his faith with his science?)


The Day Without Yesterday, Lemaître, Einstein and the birth of modern cosmology

2009-10-26

Exploding Software-Engineering Myths

Some people at Microsoft Research are on a quest to validate conventional software-engineering wisdom. So far they have found evidence for:
- More Isn't Always Better
- Write Test Code First
- Proving the Utility of Assertions
- Organizational Structure Does Matter - a Lot
- Geographical Distance Doesn’t Matter - Much

Read the full article.

2009-10-24

OO Wisdom

OO Basics
Abstraction
Encapsulation
Polymorphism
Inheritance

OO Principles
Encapsulate what varies
Favor composition over inheritance
Program to interfaces, not to implementations
Strive for loosely coupled designs between objects that interact
Classes should be open for extension but closed for modification
Depend on abstractions. Do not depend on concrete classes.
Only talk to your friends.
Don't call us, we call you.
A class should have only one reason to change.

Patterns' description
Abstract Factory - Allows a client to create families of objects without specifying their concrete classes
Adapter - Wraps an object and provides a different interface to it
Command - Encapsulates a request as an object
Composite - Clients treat collections of objects and individual objects uniformly
Decorator - Wraps an object to provide new behavior
Facade - Simplifies the interface of a set of classes
Factory Method - Subclasses decide which concrete classes to create
Iterator - Provides a way to traverse a collection of objects without exposing its implementation
Observer - Allows objects to be notified when state changes
Proxy - Wraps an object to control access to it
Singleton - Ensures one and only object is created
State - Encapsulates state-based behaviors and uses delegation to switch between behaviors
Strategy - Encapsulates interchanging behaviors and uses delegation to decide which one to use
Template method - Subclasses decide how to implement steps in an algorithm

Other patterns
Bridge - use to vary not only your implementations, but also your abstractions
Builder - use to encapsulate the construction of a product and allow it to be constructed in steps
Chain of Responsibility - use when you want to give more than one object a chance to handle a request
Flyweight - use when one instance of a class can be used to provide many "virtual instances"
Interpreter - use to build an interpreter for a language
Mediator - use to centralize complex communication and control between related objects
Memento - use when you need to be able to return an object to one of its previous states ("undo")
Prototype - use when creating an instance of a given class is either expensive or complicated
Visitor - use when you want to add capabilities to a composite of objects and encapsulation is not important

--

Read more about Design Patterns in the great book: Head First Design Patterns. I highly recommended it for all programmers with more than 2 years of experience.

Films picked up by Vatican: Art

Art:

2001: A Space Odyssey (Stanley Kubrick, 1968) "It says that man is just a tiny nothing on the stairway to paradise; something better (i.e., non-human) is coming, and it's all out of your hands anyway. Kubrick's story line—which accounts for evolution by an extraterrestrial intelligence—is probably the most gloriously redundant plot of all time." — Pauline Kael

"The genius is not in how much Stanley Kubrick does in 2001: A Space Odyssey, but in how little. This is the work of an artist so sublimely confident that he doesn't include a single shot simply to keep our attention. He reduces each scene to its essence, and leaves it on screen long enough for us to contemplate it, to inhabit it in our imaginations. Alone among science-fiction movies,2001 is not concerned with thrilling us, but with inspiring our awe." — Roger Ebert

"A milestone film: space travel is placed into context of man's history, from first confrontation with a Greater Power to future time warp where life cycle has no meaning." — Leonard Maltin

La Strada (Federico Fellini, 1954) "The theme of Federico Fellini's spiritual fable is that everyone has a purpose in the universe ... Even if one rejects the concepts of this movie, its mood and the details of scenes stay with one; a year or two later, a gesture or a situation suddenly brings it all back." — Pauline Kael

Citizen Kane (Orson Welles, 1941) "The Orson Welles film is generally considered the greatest American film of the sound period, and it may be more fun than any other great movie. Based on the life of William Randolph Hearst, it's an exuberant, muckraking attack on an archetypal economic baron." — Pauline Kael

Metropolis (Fritz Lang, 1926) "H.G. Wells called this German silent 'quite the silliest film'; Hitler was so impressed by the conception that many years later he tried (unsuccessfully) to persuade its director, Fritz Lang, to make Nazi movies ... One of the last examples of the imaginative—but often monstrous—grandeur of the Golden Period of the German film, Metropolis is a spectacular example of Expressionist design (grouped human beings are used architecturally), with moments of almost incredible beauty and power (the visionary sequence about the Tower of Babel), absurd ineptitudes (the lovesick hero in his preposterous knickerbockers), and oddities that defy analysis (the robot vamp's bizarre, lewd wink). It's a wonderful, stupefying folly." — Pauline Kael

"One of the great achievements in the silent era, a work so audacious in its vision and so angry in its message that it is, if anything, more powerful today than when it was made." — Roger Ebert

Modern Times (Charlie Chaplin, 1936) "After City Lights, which was silent, with a musical accompaniment and sound effects, Charlie Chaplin was absent from the screen for five years; he returned in triumph with this rambunctious comedy in which he still doesn't speak, although he uses background sounds and, as a singing waiter in a crowded cabaret, he does a wonderful jabberwocky patter song that you can't get out of your head. (It is, of course, a demonstration of how unnecessary words are.)" — Pauline Kael

Napoleon (Abel Gance, 1927) "Abel Gance originally made it as a 6-hour silent film, in color (the prints were tinted and toned by a dye process), and with sections designed to be run on a triple-width screen, by a process called Polyvision. His conception was far more complex than what directors later did with Cinerama, since Gance frequently used the images at the left and right of the central image for contrapuntal effects—history became an avalanche of armies, battles, and crowds. The film is both avant-garde and old-fashioned." — Pauline Kael

8 ½ (Federico Fellini, 1963) "A long, difficult, but fascinating film, overflowing with creative and technical wizardry. Certainly one of the most intensely personal statements ever made on celluloid." — Leonard Maltin

Grand Illusion (Jean Renoir, 1937) "In form, Grand Illusion is an escape story; yet who would think of it in this way? It's like saying that Oedipus Rex is a detective story. Among other things, this film is a study of human needs and the subtle barriers of class among a group of prisoners and their captors during the First World War." — Pauline Kael

Nosferatu (F.W. Murnau, 1922) "To watch F.W. Murnau's Nosferatu is to see the vampire movie before it had really seen itself. Here is the story of Dracula before it was buried alive in cliches, jokes, TV skits, cartoons and more than 30 other films. The film is in awe of its material. It seems to really believe in vampires." — Roger Ebert

"The original, superbly loathsome German version of Bram Stoker's novel Dracula is a concentrated essay in horror fantasy, full of weird, macabre camera effects. Though ludicrous at times (every horror film seems to become absurd after the passage of years, and many before—yet the horror remains), this first important film of the vampire genre has more spectral atmosphere, more ingenuity, and more imaginative ghoulish ghastliness than any of its successors. The movie often seems more closely related to demonic painting than to the later, rather rigid vampire-movie genre." — Pauline Kael

Stagecoach (John Ford, 1939) "Perhaps the most likable of all Westerns, and a Grand Hotel-on-wheels movie that has just about everything—adventure, romance, chivalry—and all of it very simple and traditional." — Pauline Kael

"One of the great American films, and a landmark in the maturing of the Western, balancing character study ... and peerless action. . ." — Leonard Maltin

The Leopard (Luchino Visconti, 1963) "Magnificent—a sweeping popular epic, with obvious similarities to Gone With the Wind, and with an almost Chekhovian sensibility." — Pauline Kael

Fantasia (Walt Disney, 1940) "Initially, the film was a box—office failure, but it proved successful in revivals, especially in the early 70s, when it became a popular head film, because of such ingredients as the abstract first section, the mushroom dance during 'The Nutcracker' (one of the liveliest sequences), and the overly bright—somewhat psychedelic—color. 'The Sorcerer's Apprentice,' featuring Mickey Mouse, and parts of other sequences are first-rate Disney, but the total effect is grotesquely kitschy." — Pauline Kael

The Wizard of Oz (Victor Fleming, 1939) "It somehow seems real and important in a way most movies don't. Is that because we see it first when we're young? Or simply because it is a wonderful movie? Or because it sounds some buried universal note, some archetype or deeply felt myth?

"I lean toward the third possibility, that the elements in ``The Wizard of Oz'' powerfully fill a void that exists inside many children. For kids of a certain age, home is everything, the center of the world. But over the rainbow, dimly guessed at, is the wide earth, fascinating and terrifying. There is a deep fundamental fear that events might conspire to transport the child from the safety of home and strand him far away in a strange land. And what would he hope to find there? Why, new friends, to advise and protect him. And Toto, of course, because children have such a strong symbiotic relationship with their pets that they assume they would get lost together.

This deep universal appeal explains why so many different people from many backgrounds have a compartment of their memory reserved for The Wizard of Oz.'' — Roger Ebert

"A genuine American classic ... Just as good the fifteenth time as it is the first time." — Leonard Maltin

The Lavender Hill Mob (Charles Crichton, 1951) "It's a minor classic, a charmer." — Pauline Kael

Little Women (George Cukor, 1933) "There are small flaws—a few naïve and cloying scenes, some obvious dramatic contrivances—but it's a lovely, graceful film, and surprisingly faithful to the atmosphere, the Victorian sentiments, and the Victorian strengths of the Louisa May Alcott novel." — Pauline Kael

--

That was it: 45 good suggestions! I hope you enjoyed them and, of course, comment with some of your own!

2009-10-23

Idea Factory quote


Oral exam. They present you with a problem; you have 20 minutes to look at it and try to solve it or at least think up something to say about it, and then you present your solution and/or answer their questions for 20 minutes. To discourage cheating, the 40-minute periods are consecutive, with no time allowed to go from one room to the other. Thus you run from examination room to examination room, to have as much of the 20 minutes of preparation time as possible.


The Idea Factory, Learning to think at MIT

Developing smart Java code

Core Jena interfaces simplified:
Development Methodology
- Define/re-use schema
- Play with example instances, queries etc
- Take a data-centric approach!
- Link key classes of the schema to your Java code (Data Binding)
- Assume schema evolution
- Develop smart, generic code instead of domain specific code

Data model in RDF and RDF Schema
- Data binding to link RDF and Java worlds
- Let the data work with SPARQL

Generic data binding architecture:
New development paradigm based on Linked Data:
- Smart code walks the data graph at run-time
- Very little hard-coding of behavior
- Benefits
-- flexible architecture
-- faster turn-around times
- Challenges
-- learning curve (different from object oriented development)
-- integration with established technologies

Source: Holger Knublauch at JavaOne 2009

I would add that probably "performance" is an additional challenge. Maybe I'll give it a try one of these days...

Blackboard systems

Blackboards are a problem solving framework. A blackboard is not used to "search for a solution" but to "assemble knowledge".

A blackboard framework provides:
- reasoning flexibility (backward-chaining, forward-chaining, etc);
- participation of varied sources of knowledge;
- opportunistic contributions;
- incremental solutions;
- interleaving of different forms of reasoning.

Problem Solving:
- divide the problem into loosely coupled subtasks (areas of specialization);
- the solution space is divided in regions (levels) containing partial or intermediate solutions;
- the information in each region is globally accessible on the blackboard, making it a medium of interaction between the knowledge sources;
- the decision to employ a particular knowledge source is made dynamically using the current solution state;
- caveat: the problem partitioning in subproblems makes a great difference in clarity, speed, resources, and the ability to find a solution!


Read more about this subject in Blackboard Systems by Englemore and Morgan.

2009-10-21

Download videos from YouTube

ClipNabber provides links to download videos from YouTube and other similar sites.

Day Without Yesterday quote


When I was talking with Lemaître about this subject and feeling stimulated by the grandeur of the picture that he has given us, I told him that I thought cosmology was the branch of science that lies closest to religion. However Lemaître did not agree with me. After thinking it over he suggested psychology as lying closest to religion.

Paul Dirac, “The Scientific Work of Georges Lemaître”


The Day Without Yesterday, Lemaître, Einstein and the birth of modern cosmology

2009-10-17

The Good Shepherd

The Good Shepherd


Clover Wilson: Bonesmen first, God second.

Films picked up by Vatican: Values

Values:

Gandhi (Richard Attenborough, 1982) "Gandhi goes by in a cloud of serenity, and everyone who sees him knuckles under (with the exception of a few misguided fellows, of course). Ben Kingsley ... is impressive; the picture isn't ... Kingsley can't give his role a core, because it has been written completely from the outside. A viewer's reaction: 'I felt as if I had attended the funeral of someone I didn't know.'" — Pauline Kael

"The movie earns comparison with two classic works by David Lean, Lawrence of Arabia and Doctor Zhivago, in its ability to paint a strong human story on a very large canvas." — Roger Ebert

Intolerance (D.W. Griffith, 1919) "D.W. Griffith's epic celebration of the potentialities of the film medium—perhaps the greatest movie ever made and the greatest folly in movie history." — Pauline Kael

Il Decalogo (Krzysztof Kieslowski, 1988) "[Kieslowski] confirmed his status as a major contemporary director with Decalogue(1988), an ambitious series of ten hour-long films funded by Polish TV, telling stories "based" on the Ten Commandments. (InDecalogue 10, for instance, two brothers, an accountant and a punk rocker, both covet the stamp collection they have inherited from their father.) In the same year, Kieslowski expanded segments five and six into two features, A Short Film About a Killing and A Short Film About Love. Partially set, like the rest of the series, on a Warsaw housing estate, A Short Film About a Killing is a grim and powerful tale drawing formal parallels between the act of murder and the workings of the criminal justice system." — from theBaseline biography of Kieslowski

Au Revoir, Les Enfants (Louis Malle, 1987) "Deeply felt film based on an incident from Malle's youth, during WWII, when the headmaster of his Catholic boarding school decided to shield several Jewish children in the midst of Nazi-occupied France." — Leonard Maltin

Dersu Uzala (Akira Kurosawa, 1975) "A poignant, poetic examination of contrasting lives." — Leonard Maltin

The Tree of Wooden Clogs (Ermanno Olmi,1978) "A year in the life of a community of peasants in Northern Italy, just before the turn of the century. Simple, quietly beautiful epic; a work of art." — Leonard Maltin

Open City (Roberto Rossellini, 1945) "Roberto Rossellini burst open the world with this film, made just after the Allies took Rome. The fame of his brutal, melodramatic account of the underground resistance to the Nazi occupation rests on its extraordinary immediacy and its rough, documentary look. . ." — Pauline Kael

Wild Strawberries (Ingmar Bergman, 1957) "Ingmar Bergman's first big popular success in the United States. It's a very uneven film: an eminent physician (Victor Sjöström) looks back over his life, which is tricked up with gothic effects and contrasts ... and with peculiarly unconvincing flashbacks and overexplicit dialogue. It's a very lumpy odyssey, yet who can forget Sjöström's face. . .?" — Pauline Kael

"Still a staple of any serious filmgoer's education." — Leonard Maltin

The Seventh Seal (Ingmar Bergman, 1957) "The images and the omens are medieval, but the modern erotic and psychological insights add tension, and in some cases, as in the burning of the child—witch (Maud Hansson), excruciation. The actors' faces, the aura of magic, the ambiguities, and the riddle at the heart of the film all contribute to its stature." — Pauline Kael

Chariots of Fire (Hugh Hudson, 1981) "The picture is a piece of technological lyricism held together by the glue of simpleminded heroic sentiment; basically, its appeal is in watching a couple of guys win their races." — Pauline Kael

"This is strange. I have no interest in running and am not a partisan in the British class system. Then why should I have been so deeply moved by Chariots of Fire, a British film that has running and class as its subjects?" — Roger Ebert

The Bicycle Thief (Vittorio DeSica, 1950) "This neorealist classic, directed by Vittorio De Sica and written by Cesare Zavattini, is on just about everybody's list of the greatest films. It isn't a movie that warms you, though; it doesn't have the flawed poetry that De Sica's Shoeshine and Miracle in Milan have. It's a more impersonal great film." — Pauline Kael

It's A Wonderful Life (Frank Capra, 1946) "What is remarkable about It's a Wonderful Life is how well it holds up over the years; it's one of those ageless movies, like Casablanca or The Third Man, that improves with age. Some movies, even good ones, should only be seen once. When we know how they turn out, they've surrendered their mystery and appeal. Other movies can be viewed an indefinite number of times. Like great music, they improve with familiarity. It's a Wonderful Life falls in the second category. ." — Roger Ebert

"Frank Capra's most relentless lump-in-the-throat movie ... This picture developed a considerable—if bewildering—reputation, based largely on television viewing, about three decades later." — Pauline Kael

Schindler's List (Steven Spielberg, 1993) "In this movie, the best he has ever made, Spielberg treats the fact of the Holocaust and the miracle of Schindler's feat without the easy formulas of fiction. The movie is 184 minutes long, and like all great movies, it seems too short." — Roger Ebert

On the Waterfront (Elia Kazan, 1954) "The director, Elia Kazan, and the writer, Budd Schulberg, start out to expose racketeering in the waterfront unions, and wind up trying to make the melodrama transcend itself. They fail, but the production took eight Academy Awards anyway, and most of them were deserved. It is one of the most powerful American movies of the 50s, and few movies caused so much talk, excitement, and dissension—largely because of Marlon Brando's performance as the inarticulate, instinctively alienated bum, Terry Malloy." — Pauline Kael

The Burmese Harp (Kon Ichikawa, 1956) "Extraordinary anti-war drama is affecting and memorable if a bit overlong." — Leonard Maltin

--

Next week: Art

2009-10-16

Idea Factory quote


Sometimes I feel like MIT is a dragon I have to slay.


The Idea Factory, Learning to think at MIT

hell(o) world

As part of the effort to upgrade the STEP Framework to Java 6 and Tomcat 6, I had a long fight with a software bug. It cost me almost a week's worth of work! Unbelievable!

The error message was "WebServiceException class X do not have a property of the name {Y}Z". The JAX-WS Web Service would work when I didn't have any SOAP handlers configured but would happen whenever I tried to add them back.

I tried changing so many things, one at a time of course, to try and find out the cause for the bug. I went over JAX-WS and JAX-B's source code. But the bug was very elusive.



Thanks to proffy I finally figured it out.

Because of a JAX-WS bug, the generated classes must be compiled by wsimport. If they are compiled later by javac it doesn't work!
The handlers configurations are generated in the build folder. The sources are also generated in the build folder, for programmer reference.

See also: bug report, image credits.

2009-10-14

Future directions for Java Web Services

I have been a Java Web Services developer for 8 years now, and I've mostly worked with Sun's reference implementation: JAX-WS.

Recently I have been trying to upgrade to the latest version blunded with Java SE 6 and I'm having several difficulties that appear to be bugs. I'm not talking about anything far fetched... For instance, I'm having issues with using simple SOAP handlers that worked perfectly in the previous versions. Also the jax-b, jax-ws, metro java.net sites appear to be somewhat "abandoned".

So given this state of affairs, I'm considering switching to another Java Web Services implementation. This is where you can help!

If you were to choose an implementation for a Java Web Services project today and for the next 3 years, which would you pick and why?


Feel free to make any other suggestions or comments. Thanks in advance!

Day Without Yesterday quote


Lemaître’s insights were in fact key in almost all the important milestones of early modern cosmology, from the expanding universe, to the cosmological constant, to black holes. He was first to see how the Einstein and de Sitter models were but two limited cases of a larger body of expanding universe models; he was the first to see that such models had to evolve from a super-dense state; and perhaps most importantly – from the very beginning – he was the first to tie the predictions of relativity about cosmology to actual astronomical observations.


The Day Without Yesterday, Lemaître, Einstein and the birth of modern cosmology

2009-10-10

Films picked up by Vatican: Religion

"(...) the Vatican has decided to take a more upbeat approach and give a Big Thumbs Up to 45 movies it feels express Catholic tastes in three categories: Religion, Values, and Art. The selections, made by a Vatican committee in commemoration of the centenary of motion pictures in 1996, are films that The Church feels exemplify what's best about the medium."

Religion:

Andrei Roublev (Andrei Tarkovsky, 1966) "Brilliantly devised and directed account of the famous 15th century icon painter, focusing on an age—old conflict: should an artist participate in the political and social upheavals of the time, or should he simply record history with his brush?" — Leonard Maltin

The Mission (Roland Joffe, 1986) "You'd like to know why so many talented people went to such incredible lengths to make a difficult and beautiful movie—without any of them, on the basis of the available evidence, having the slightest notion of what the movie was about." — Roger Ebert

The Passion of Joan of Arc (Carl Theodor Dreyer, 1928) "No other film has so subtly linked eroticism with religious persecution. Falconetti's Joan may be the finest performance ever recorded on film." — Pauline Kael

The Gospel According to St. Matthew (Pier Paolo Pasolini, 1966) "Pasolini's interpretation features the rocky settings of Southern Italy, an eclectic score, and a rigid Jesus who demands obedience." — Pauline Kael

Therese (Alain Cavalier, 1986) "Therese is not like any other biographical film of a saint—or of anyone else. It makes a bold attempt to penetrate to the mystery of Therese's sainthood, and yet it isn't propaganda for the church and it doesn't necessarily even approve of her choice of a vocation." — Roger Ebert

Ordet (Carl Theodor Dreyer, 1955) "Arguably Dreyer's greatest film, but certainly the movies' final word on the struggle between conventional Christianity and more personalized religious faith. Truly awe—inspiring. . ." — Leonard Maltin

The Sacrifice (Tarkovsky, 1986) "Slow, overly intense, but beautifully filmed (by Sven Nykvist) examination of the need for, and lack of, spirituality in modern society." — Leonard Maltin

Francis (not the Talking Mule picture)

Ben-Hur (William Wyler, 1959) "Movie moguls have always had a real affinity for the grandiosity of the old Roman Empire ... Lew Wallace's hectic potboiler-classic has everything—even leprosy." — Pauline Kael

Babette's Feast (Gabriel Axel, 1987) "Subtle, funny and deeply felt, with several wonderful surprises: an instant masterpiece. . ."— Leonard Maltin

Nazarin (Luis Bunuel, 1958) "The hero is a gentle Mexican priest—a Candide who is robbed and cheated—in this simple, masterly, ambiguous film by Luis Buñuel which is (perhaps in spite of his intention) his most tender." — Pauline Kael

Monsieur Vincent (Jean Anouilh, 1947) "Pierre Fresnay's performance as the desperately compassionate Vincent de Paul gives extraordinary feeling to Jean Anouilh's sensitive, lucid scenario." — Pauline Kael

A Man For All Seasons (Fred Zinnemann, 1966) "The director, Fred Zinnemann, places himself at the service of Robert Bolt's play about the moral tug of war between Sir Thomas More (Paul Scofield) and Henry VIII (Robert Shaw), and the results are tasteful and moderately enjoyable." — Pauline Kael

La Passion Pathe

Flowers of St. Francis (Roberto Rossellini, 1950)

--

Next week: Values

Thanks to Joana for "digging" these suggestions out of her mailbox!

2009-10-09

Freedom Writers

Freedom Writers


Miep Gies: But even an ordinary secretary or a housewife or a teenager can, within their own small ways, turn on a small light in a dark room.

Idea Factory quote


The first definition of thesis is a proposition advanced and maintained by argument. If there is no proposition there is no thesis. If there is no thesis there is no degree.


The Idea Factory, Learning to think at MIT

2009-10-07

Inboxing

I'm not the first to come up with it (see urban dictionary) but I'd like to propose the word Inboxing.

An inbox is a container in which all the papers to be dealt with are put. Or, figuratively, it is the aggregate of items that demand one's attention or effort.

Boxing, of course, is a combat sport where two participants, generally of similar weight, fight each other with their fists.

Inboxing is the fight you have to go through every day to clean all the items that find their way to your inbox: emails, chats, feeds, papers, etc.
It's worth fighting to claim back your time to think and be creative!


Good luck! Unlike boxing, in inboxing the two participants don't have similar weight :-)

Day Without Yesterday quote


Although I didn’t know it at the time, the exponentially expanding space that I discovered was hardly new – it was in fact one of the earliest known solutions to the equations of general relativity. I had rediscovered the equations of de Sitter’s cosmology of 1917, written in a form that was introduced by Georges Lemaître in 1925 as part of his Ph.D. thesis at MIT.

Alan Guth, The Inflationary Universe


The Day Without Yesterday, Lemaître, Einstein and the birth of modern cosmology

2009-10-06

Java Web Services separation of concerns


Source: Harold Carr, Clemens Vasters at JavaOne 2009

Practical advice about Distributed Systems

Distributed Systems generic approach:
- Develop "entity"
-- Define the Unit-of-Work (UOW) it supports
- Search for "entity"
-- Agree "entity" offers the desired capability or UOW
- Request "entity" to perform UOW
-- Create a network-transferable message
-- Send the message
-- Maybe try to make the remote interaction appear local
-- Maybe do some "enterprise" (Security, transactions, replication etc.) work as well

The same requirements are present throughout the stack:
- Uniform interface allows for generic infrastructural support
-- Caching, extremely loose coupling
-- Can push more requirements on to the "developer"
-- Requires more from external contract meta-data
- Specific interface allows for more limited generic support
-- Targeted caching, application semantics
-- Impacts less on the "developer" but may cost in terms of flexibility

Different approaches to distribution - there is no global panacea:
- Event Driven Architectures (Pub/Sub)
- Service Oriented Architectures
- Resource Oriented Architectures
- Message Oriented Architectures (MOM, Pub/Sub)
- Tuple Spaces (E.g., Linda, Jini)
- RPC based
- Group communication based (Reliable or unreliable)

Source: Mark Little at JavaOne 2009

2009-10-05

Multiple iTunes libraries

You can use multiple music libraries in iTunes (and iPhoto). The choice is made at startup: just hold down the shift/option key when you click the iTunes icon.


In Windows the default music library is stored in C:\Users\You\Music\iTunes, in case you want to find it again.

2009-10-04

Next

Next


Cris Johnson: Here is the thing about the future. Every time you look at, it changes, because you looked at it, and that changes everything else.

2009-10-02

A esperança está onde menos se espera

A esperança está onde menos se espera



It's always good to watch a Portuguese movie. Too bad about Virgílio Castelo's overacting and the exagerated reliance on cliches to convey the movie's message. Otherwise an interesting movie dealing with important issues in Portuguese society.

/ This post is bilingual: English (U.S.) and Portuguese (Portugal) /

É sempre bom assistir a um filme Português. Só é pena o excesso de actuação de Virgílio Castelo e a utilização exagerada de clichês para passar a mensagem do filme. De resto, um filme interessante que trata alguns temas importantes da sociedade portuguesa.

http://www.mgnfilmes.pt/aesperanca/

Idea Factory quote


All the graphs looked the same, sitting side by side.
There has to be a pattern...


The Idea Factory, Learning to think at MIT

OSGi in one slide


Source: Don Brown at JavaOne 2009

2009-10-01

Novidades nos Doutoramentos em Portugal / News about PhDs in Portugal


Por outro lado, importa, ainda, introduzir no sistema de ensino superior nacional a possibilidade de realização do doutoramento com base na compilação de um conjunto de publicações científicas anteriores, publicadas em revistas com comités de selecção de reconhecido mérito, prática hoje internacionalmente utilizada.

Neste sentido, e em condições de exigência equivalentes à da modalidade de doutoramento com base numa tese, introduz-se a possibilidade de obtenção do grau de doutor com base no reconhecimento e análise de obras, e com base em trabalhos científicos publicados.



/ This post is bilingual: Portuguese (Portugal) and English (U.S.) /

From now on, a Doctoral degree in Portugal can be obtained with a collection of published articles instead of the mandatory dissertation.

Setting up a collaboration server for a small team

I have recently setup a collaboration server for a small research team.
I'm posting a short guide describing all the steps.

---

The operating system is Microsoft Windows. The base installation was complemented with a set of free tools: Notepad++, 7-Zip, SysInternals suite.

Every time a service configuration is significantly changed, it should be stopped and restarted to load the new configuration. These restarts are not explicitly mentioned in the following steps.

... is used to mark placeholders for values that are either case-specific or sensitive, like passwords.


PART 1 - XAMPP


1.1 - Download XAMPP for Windows

1.2 - Install XAMPP to C:\

1.3 - Use the XAMPP console to manage the services and access the XAMPP shell


PART 2 - SVN

2.1 - Download SVN for Windows
Double check that you are getting a version compatible with the Apache bundled in XAMPP.

2.2 - Install SVN

2.3 - Copy mod_dav_svn.so and mod_authz_svn.so from SVN binaries folder to C:\xampp\apache\modules

2.4 - Edit C:\xampp\apache\conf\httpd.conf and add:

# svn repository access (note: confirm mod_dav.so and mod_dav_fs.so are loaded above)
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

(...)

# svn configuration
Include c:/etc/subversion.conf

2.5 - Create C:\svn and C:\svn\repo folders

2.6 - Create a project repository
shell> svnadmin create C:\svn\repo

2.7 - Create empty configuration files:
C:\svn\svn-auth-file
C:\svn\svn-acl
C:\svn\subversion.conf

2.8 - Create users
XAMPP shell> htpasswd -cm C:\svn\svn-auth-file first-user...
XAMPP shell> htpasswd -m C:\etc\svn-auth-file next-user...

2.9 - Create ACL: C:\svn\svn-acl

[groups]
groupname = user1, user2

# group has a read/write access to project repository
# all subdirectories
# all others have read access only
[svn:/]
@groupname = rw
* = r

2.10 - Create subversion configuration: C:\svn\subversion.conf
(/svn is the path used for the repository web address)


DAV svn
SVNPath C:/svn/repo

AuthType Basic
AuthName "Subversion repository"
AuthUserFile c:/svn/svn-auth-file

Require valid-user

AuthzSVNAccessFile c:/svn/svn-acl


2.11 - Create standard repository layout and import it to repository

shell> cd temp
shell> mkdir layout
shell> cd layout
shell> mkdir trunk
shell> mkdir branches
shell> mkdir tags
shell> svn import . https://.../svn -m "Initial repository layout"


References:
http://svn.haxx.se/users/archive-2005-05/0741.shtml
http://svn.spears.at/


PART 3 - DokuWiki

3.1 - Download DokuWiki

3.2 - Unzip and untar. Copy the contents of the main folder to C:\xampp\htdocs\dokuwiki

3.3 - Access the initial installation script
http://.../dokuwiki/install.php

Wiki Name - title
Enable ACL
Superuser - admin
Full Name
E-Mail
Password
Once Again
Initial ACL policy - closed wiki

3.4 - Login using admin user and use administrative interface to create users
http://.../dokuwiki/


Data files location:
C:\xampp\htdocs\dokuwiki\data\

References:
http://www.dokuwiki.org/Install


PART 4 - StatusNet

4.1 - Download StatusNet

4.2 - Unzip and untar. Copy main folder contents to C:\xampp\htdocs\statusnet

4.3 - Create MySQL database, create user and password, grant access rights

XAMPP shell> mysql -u root

CREATE DATABASE statusnet;

GRANT ALL on statusnet.*
TO 'statusnetuser'@'localhost'
IDENTIFIED BY '...';

4.4 - Edit database creation script: C:\xampp\htdocs\statusnet\db\statusnet.sql
Add the following line to the top of the file:
USE statusnet;

4.5 - Execute database creation script.
XAMPP shell> mysql -u root < C:\xampp\htdocs\statusnet\db\statusnet.sql

4.6 - Create and edit configuration file: C:\xampp\htdocs\statusnet\config.php

XAMPP shell> copy C:\xampp\htdocs\statusnet\config.php.sample C:\xampp\htdocs\statusnet\config.php

Write/uncomment following lines in :

$config['site']['name'] = 'My status net';
$config['site']['server'] = 'my.server.address.net';
$config['site']['openidonly'] = false;
$config['site']['private'] = true;
$config['db']['database'] = 'mysql://statusnetuser:...@localhost/statusnet';
$config['db']['debug'] = 0;
$config['xmpp']['enabled'] = false;
$config['openid']['enabled'] = false;
$config['invite']['enabled'] = false;
$config['site']['timezone'] = 'Europe/London';
$config['site']['language'] = 'en_GB';
$config['memcached']['enabled'] = false;
$config['emailpost']['enabled'] = false;
$config['sms']['enabled'] = false;
$config['twitter']['enabled'] = false;
$config['twitterbridge']['enabled'] = false;
$config['site']['ssl'] = 'sometimes';

4.7 - Rename undesired locale folders:
C:\xampp\htdocs\statusnet\locale\pt
to _pt
C:\xampp\htdocs\statusnet\locale\pt_BR
to _pt_BR

4.8 - Access site, register all users, one at a time

4.9 - Edit configuration file to close registrations: C:\xampp\htdocs\statusnet\config.php:

$config['site']['closed'] = true;


Known bugs:
- logout doesn't work
- Post attachments don't work
- HTTPS always option doesn't work properly - some links are generated with HTTP anyway - using HTTPS sometimes to, at least, protect user and password

Missing features:
- no data migration support

References:
C:\xampp\htdocs\statusnet\README
http://status.net/wiki/Installation


PART 5 - Security

5.1 - Change MySQL password
http://.../security/xamppsecurity.php

new password
repeat ...
phpMyAdmin authentication: cookie
Set random...: yes
Click 'Password changing'

5.2 - Change XAMPP directory protection (after this step, the user and password will be required to access XAMPP)
http://.../security/xamppsecurity.php

user
password

5.3 - Generate a new self-signed certificate and replace the default
XAMPP shell>makecert

# makecert
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
..++++++
....++++++
writing new private key to 'privkey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:...
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Enter pass phrase for privkey.pem:
writing RSA key
Loading 'screen' into random state - done
Signature ok
Getting Private key

-----
Das Zertifikat wurde erstellt.
The certificate was provided.


5.4 - Configure FileZilla security

FileZilla Server interface, Edit settings, SSL/TLS Settings

Enable FTP over SSL/TLS support (FTPS)
Use same private key and certificate as Apache
Private key: C:\xampp\apache\conf\ssl.key\server.key
Certificate: C:\xampp\apache\conf\ssl.crt\server.crt
Allow explicit FTP over TLS
Disallow plain unencrypted FTP


5.5 - Remove default index
Rename C:\xampp\htdocs\index.php
Edit C:\xampp\htdocs\index.html


5.6 - Configure Firewall

Go to: Control Panel - Windows Firewall | Exceptions
Add rules
Program: c:\xampp\FileZilla\FilleZilla Server.exe
Ports: 80 Apache HTTP, 443 Apache HTTPS


References:
http://www.apachefriends.org/en/xampp-windows.html#1221
http://robsnotebook.com/xampp-ssl-encrypt-passwords


---

And that's it! :-)
You know should have a collaboration server up and running.

Thanks to all the authors of the used open-source projects and references. Keep up the good work!

The most unstable component is StatusNet. I'm looking forward to a (stable) version 1.0.