Nautilus SVN, the SVN client for linux had moved to RabbitVCS a few months back. From what I have read so far, the new client, while plugging into the old Nautilus manager, performs much better and does not hang up when the number of files to manage is on the rise.
RabbitVCS differs from Nautilus by attempting to have a pluggable interface for many types of source control systems. So SVN is just the beginning. You can check out the screenshots and install it on your favorite linux distro. Here are a few teasers
RabbitVCS:

Commit with the Rabbit:

Sun has a wide range of certifications to offer. Ever since java EE6 was released, changes have been made to the certification hierarchy and content to reflect the new specifications. Sun is also offering a discount of 10% to those that register for training / certification updates by Jan 31st 2010. Here is a comparison of the certification hierarchies
Old hierarchy:

New hierarchy:

The new hierarchy provides paths that are more specialized than the ones before. For example you can be a JSF expert. Web service + security is another specialization. Combining these certifications together can also earn you the title of a “Master“.
I successfully installed a wave (google) server on a windows box a few days earlier. It was a great feeling. Here are the components that made up the server
- Postgres database to be used by XFire.
- Wave related server jar which runs the server
- Wave command line client that runs the simplistic console client.
I started the console client and typed in a few commands to go through the waves. New, open, view waves were some commands that the command line console allowed you to execute. This client was a simple RI provided by google. If you would like to install a server on your own, take a look at the installation instructions.
Wave console client:

The JDK7 milestone 5 update is available for download. Developers now have a chance to try coding with the new language semantics and see for themselves what it is like. The 4 major changes that affect the way one codes in java as of JDK 7 are
- Using underscores in numerals.
- Diamond syntax used to work with collections + generics.
- Using Strings in switch statements.
- Making use of binary literals
Here is a short code sample that you can use to check the new features out. Use a plain text editor and your old friends javac and java, to test it out. IDEs will not support the new syntax and will most likely complain.
Sample JDK 7 Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| public class Jdk7Tests {
public static void main(String[] args) {
Jdk7Tests jdk7Tests = new Jdk7Tests();
jdk7Tests.integersWithUnderscores();
jdk7Tests.stringSwitch();
jdk7Tests.binaryLiteral();
jdk7Tests.diamond();
}
private void integersWithUnderscores()
{
int i = 1_2;
System.out.println(i);
i*=10;
System.out.println(i);
int j=2_0;
System.out.println(i-j);
}
private void stringSwitch()
{
String key = "akey";
switch (key)
{
case "":
{
System.out.println("Nothing");
break;
}
case "akey":
{
System.out.println("Matched akey");
break;
}
default:
break;
}
}
private void binaryLiteral()
{
byte aByte = (byte)0b001;
short aShort = (short)0b010;
System.out.println(aByte + " " + aShort);
}
private void diamond()
{
Set<String> set = new TreeSet<>();
set.add("c");
set.add("b");
set.add("a");
for (String val : set)
{
System.out.println(val);
}
}
} |
Underscores and numerals:
Developers interview candidates every now and then. There are days when you need to interview 4 candidates, and finish your work too. Then there are times you go to work on a Saturday to support an interview drive. Whatever the case, it really pays to have a few filter questions that should tell you whether a candidate is full of gas or if they are worth their salt. These questions can be a real time saver. Here are 2 questions that many developers use.
1. Class hierarchy:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class A
{
public void doSomething()
{
System.out.println("A");
}
}
class B extends A
{
@Override
public void doSomething()
{
System.out.println("B");
}
} |
Give a candidate a class hierarchy like the one above and ask them something like, ‘How should you instantiate these objects so the output is ‘A’ / ‘B”. The you can drill down and ask them about the different instantiation combination. Anyone that says B b = new A(); will instantiate, is out of here.
2. Name them: