2012-02-29

Tweets of the month

29 Feb
Attended Richard Stallman's lecture at @sinfo_ist

28 Feb
Two development tasks completed. The next task requires help from Dr. Whiteboard :)

28 Feb
news Vatican - Pope Benedict XVI: Schedule for Meeting of Families in Milan §RV rv.va/ohb3dW
Retweeted by Miguel Pardal

28 Feb
Good morning! Rise and shine! :)

25 Feb
Pedro Custódio - Don't Make Me Steal bit.ly/x80hkv

24 Feb
Very focused SCRUM meeting today. Thanks SCRUM Master!

24 Feb
Adopted single backpack policy to help simplify my everyday life :)

23 Feb
12 Key Zen Habits poster pinterest.com/pin/2121618324…

4 Dec
William Morgan - "runners can only run full speed for short distances. we fix that problem by firing the pistol every 100 yards and calling it a new sprint."

22 Nov
Steven Mak - Quote of the day: "If you think test-first is expensive, try debug-later"

22 Feb
Surprisingly productive today (Ash Wednesday)

22 Feb
Voz da Verdade - Vídeo: Patriarca de Lisboa antecipa primeira catequese dirigida a catecúmenos bit.ly/yr0EAh

21 Feb
Feels good to be back developing...

20 Feb
Pedro Custódio - [Video] 29 WAYS TO STAY CREATIVE bit.ly/w6N2LW

9 Feb
MITx - MIT's new free courses online chronicle.com/blogs/wiredcam…

7 Feb
Listening to Spirto Gentil... clonline.org/elenco_cd.asp inspiring!

Groovy

I have been using Groovy for almost 2 years now, and it has been a great experience.

I have a preference for typed languages, but there is no doubt that scripting languages have enormous utility too. Groovy is very flexible in this aspect. You can program using types - in this case Groovy is just Java with some nice syntax sugar - or you can program without types - in this case Groovy is a scripting language with an incredible set of libraries: anything that runs on the Java Virtual Machine.

I read that the Groovy team is considering adding more features to allow better performance in the type-based programs. This is expected for the 2.0 release.

Even Java is becoming easier to use with the Project Coin language changes.
By the way, Groovy 1.9 will include JDK 7 support including project coin language changes and invokeDynamic to improve performance.

2012-02-26

Blogging with pictures

http://pinterest.com


It's an interesting visual experience... but there are things you cannot say without words!
It's no accident that many pinterest posts - called pins - are pictures of quotes.

2012-02-25

MITs and UoRs

Some people have Most Important Tasks while others have Utmost outstanding Routines.

Go Jo! You can do it!

2012-02-24

Zen habits poster and wallpaper


You can download them at http://www.goddessguidebook.com/free-poster-key-zen-habits/

Setting up a Java programming environment

Author of this guide: Joana

Software needed for the programming environment.

Note:
- to avoid discrepancies, please install exactly the versions mentioned here as they are the same provided in the laboratory machines
- also deactivate all auto-update options in Eclipse to keep your environment as similar as possible to the one provided in the laboratory

----------------------------------

Software:

Requirements:
- You can install the needed software in your preferred operating system, including Windows, Linux and Mac OS X.

--- --- --- ---

Most tools have a command line (shell) interface that needs to be installed in order to solve some problems along the way during our course.
In Windows XP consider installing the PowerToy "Open Command Here".
http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
Windows 7 already provides that feature built-in in the secondary context menu (available when holding shift and right-clicking a folder).
In Mac OX there is a similar tool called 'Go2Shell'
http://itunes.apple.com/us/app/go2shell/id445770608?mt=12

--- --- --- ---

Environment variables:
You can define system and user environment variables.
Each operating system provides this through different ways.
The main variables are:

PATH
To allow the operating system to found the binaries of the programs you want to be running in the shell (console) you need to include all the relevant paths in the system's environment variable PATH. This allows you to call just 'javac', 'java', 'ant', and 'svn' and the system will know where to find the necessary binaries.

CLASSPATH
When using Java's Development Kit (JDK) another interesting variable is the CLASSPATH. It informs the java program where to look for the needed libraries. However there are better ways to achieve this goal, namely using the Ant build files.

To further explore this topic, consider reading the article on Wikipedia:
http://en.wikipedia.org/wiki/Environment_variable

--- --- --- ---

LIST:

Java Developer Kit ~ JDK
Java Runtime Environment ~ JRE
-> follow the installation instructions on official webpage:
http://www.oracle.com/technetwork/java/index.html
http://www.oracle.com/technetwork/java/javase/index-137561.html
You must have a copy of the JRE (Java Runtime Environment) on your system to run Java applications and applets. To develop Java applications and applets, you need the JDK (Java Development Kit), which includes the JRE.

--- ---

Eclipse IDE for Java EE Developers
Tools for Java developers creating Java EE and Web applications, including a Java IDE, tools for Java EE, JPA, JSF, Mylyn and others. It requires JRE to run.
Instructions can be found here: http://wiki.eclipse.org/Eclipse/Installation

It needs to be enriched with 2 plugins:

- Eclipse Subversive - SVN Plugin that allows the integration of eclipse with SVN tools and visually navigate SVN repositories like the one where the group's projects will be hosted.
It consists in two parts: Subversive plug-in and Subversive SVN Connectors. Both parts are required in order to work with Subversive, so you need to install Subversive plug-in and pure Java SVNKit connector.
http://www.eclipse.org/subversive/downloads.php#indigo_stable

- Google Plugin for Eclipse (GPE) adds functionality to Eclipse for creating and developing Google Web Toolkit (GWT) applications. GWT is downloaded with the GPE. It will assist the developers in the building of browser-based applications (user interface) for the project. GWT compiles your Java source code into optimized, stand-alone JavaScript files that automatically run on all major browsers, as well as mobile browsers for Android and the iPhone. It will also be used by the distributed systems course students with the JBoss Application Server.

A third plugin can also be useful:
- Log Watcher adds a view to Eclipse that allows log files to be monitored for changes, similar to the Unix tail utility.
http://graysky.sourceforge.net/

--- ---

- GWT browser plugin - GWT Development Mode needs a browser plugin to operate. Please install the appropriate one for your browser. It integrates with a variety of browsers and lets you debug GWT code from within the Eclipse IDE.

--- ---

- Apache Ant 1.8.2 - Ant is a Java library and command-line build tool similar in purpose to Make. It helps with the typical tasks of software development: compile, build, deploy, install and clean. It can be run from inside the Eclipse IDE (in the proper View) but you also need to run it in the command line.

--- ---

- Apache Subversion 1.7.2 - Subversion is a free/open source version control system (VCS). It manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed and who changed it.
Eclipse Subversive plugin (Eclipse section) provides a graphical interface. You need a client that can run in the shell. There are other standalone graphical interfaces like TortoiseSVN, SVNx, etc. In any case, you need a working command line version.

In this page you can find several clients binary packages:
http://subversion.apache.org/packages.html
We do not need you to install a server because the project will be hosted in the sigma server machine and will be accessed through the SVN+SSH protocol.

----------------------------------





2012-02-23

No Easy Way Out

Robert Tepper - No Easy Way Out

We're not indestructible,
baby better get that straight
I think it's unbelievable
how you give into the hands of fate
Some things are worth fighting for
some feelings never die
I'm not askin' for another chance
I just wanna know why
There's no easy way out
there's no shortcut home
There's no easy way out
givin' in can't be wrong

I don't wanna pacify you
I don't wanna drag you down
But I'm feelin' like a prisoner
like a stranger in a no name town
I see all the angry faces
afraid that could be you and me
Talkin' about what might have been
I'm thinkin' about what I used to be
There's no easy way out
there's no shortcut home
There's no easy way out
givin' in can't be wrong

Baby, baby we can shed this skin
we can know how we feel inside
Instead of goin' down an endless road
not knowin' if we're dead or alive
Some things are worth fightin'
for some feelings never die
I'm not askin' for another chance
I just wanna know why
There's no easy way out
there's no shortcut home
There's no easy way out
givin' in giving in can't be wrong no
There's no easy way out
there's no shortcut home
...

2012-02-22

Top 10 Productivity Hacks

Top 10 Productivity Hacks

# 1: Do something you’re passionate about
# 2: Work off-line as much as possible
# 3: Do the tough tasks first
# 4: Avoid unnecessary work
# 5: Avoid meetings; when you must meet, make it effective
# 6: Get to work early; work fewer hours
# 7: Declutter your workspace; work on one thing at a time
# 8: Simplify information streams, crank through blogs & email
# 9: Wake up early
#10: Take care of your Most Important Things first

Source: zenhabits.net

Also in poster version.

2012-02-15

Workaround for SVN+SSH password hell

How to avoid repeating password input in a SVN+SSH session:

(open console)

C:\> SET SVN_SSH=plink.exe -pw xpto
(define password as plink command option;
if you want to set the SSH command using the full path, you have to use either / or \\ to separate folders in path - unlike most path settings in Windows e.g. C:\\PuTTY\\plink.exe)

C:\> svn co svn+ssh://username@server/repo
(svn will execute the command defined in SVN_SSH environment variable, and plink will not prompt for password because it is provided in the command option)

C:\> SET SVN_SSH=
(clear the environment variable that is exposing the password;
you can also just close the console using the 'exit' command)

These commands assume that you have SVN and PuTTY folders in the PATH environment variable.

SSH for Windows

Secure Shell (SSH) allows secure terminal console access to remote computers. It is available out-of-the-box in Linux and Mac, but it is not for Windows.

There are two free implementations available: PuTTY and Tunnelier.
(delicious ssh+windows)

Tunnelier is a more complete product, but PuTTY is simpler and works as well!

2012-02-08

Human costs of gadgets

These New York Times stories got me thinking: is there any way to stop this before it's too late?

Human Costs are built into the iPad

Apple, America, and the squeezed middle class

It's not an Apple-specific problem, Apple just illustrates how we have let our greed for better and cheaper gadgets get the best over our moral judgement.

Burning heart

Writer: PETERIK, JAMES M/SULLIVAN, FRANK

Two worlds collide
Rival nations
It's a primitive clash
Venting years of frustrations
Bravely we hope
Against all hope
There is so much at stake
Seems our freedom's up
Against the ropes
Does the crowd understand?
Is it East versus West
Or man against man
Can any nation stand alone

In the burning Heart
Just about to burst
There's a quest for answers
An unquenchable thirst
In the darkest night
Rising like a spire
In the burning heart
The unmistakable fire

In the burning heart

In the warrior's code
There's no surrender
Though his body says stop
His spirit cries - never!
Deep in our soul
A quiet ember
Know it's you against you
It's the paradox
That drives us on
It's a battle of wills
In the heat of attack
It's the passion that kills
The victory is yours alone

In the burning Heart
Just about to burst
There's a quest for answers
An unquenchable thirst
In the darkest night
Rising like a spire
In the burning heart
The unmistakable fire

In the burning Heart
Just about to burst
There's a quest for answers
An unquenchable thirst
In the darkest night
Rising like a spire
In the burning heart
The unmistakable fire

In the burning Heart
Just about to burst
There's a quest for answers
An unquenchable thirst
In the darkest night
Rising like a spire
In the burning heart
The unmistakable fire

In the burning heart

2012-02-03

GMail advanced search

GMail supports a set of advanced operators to make specific searches.
A useful example is the before operator:

before:2011/12/31

Type the above in GMail's search box and it will search for all messages dated before December 31st 2011.

You can find the other operators in Using advanced search reference.