Java iterating over a Map

March 9th, 2012

In java it is not hard to iterate over a Map. The following example is quick and simple (and if your Map is not of this sort you can change it accordingly easily).

for (Map.Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
    // ... do important stuff here!
}

Scala lift list.length() error: Int does not take parameters

March 9th, 2012

When using myList.length() you will get an error message similar to this one

[INFO] Compiling 10 source files to /.../target/classes at 1317721118837
[ERROR] /.../src/main/scala/code/lib/MyLib.scala:216: error: Int does not take parameters
[INFO] 	  var listLength = myList.length()

What the error means is that length is not a function, but simply a property and you should use myList.length and not myList.length()

Scala lift create an empty box

March 9th, 2012

Creating an empty box in scala lift is not hard, simply fill it with None.

var emptyBox:Box[MyThing] = Box(None);

Scala lift figuring out the session id

March 9th, 2012

If you need to use the session id of the current session then it can be fetched from S.

S.containerSession.map(_.sessionId).openOr(""))

Java Array toString

March 7th, 2012

Doing a toString on a array don’t really tell that much about the array. Here is one way to get the contents of the array as a string.

int[] myArray = new int[2];
myArray[0] = 1; myArray[1] = 2;
System.out.println("array contains " + java.util.Arrays.toString(myArray));
 
//will output array contains [1, 2]

Java Converting a int to a string

March 7th, 2012

The Integer Class have a static method toString that takes a int as input and gives us back a string.

int myInt = 1;
System.out.println(Integer.toString(myInt);

This is a log more efficient and nice in the long run than just concating the int with a empty string ( myInt + “” ) as that actually creates a bit of overhead. Not much, but still.

Java Converting between Boolean & String

March 7th, 2012

To convert from a Boolean to a string

new Boolean(new String("hej".equalsIgnoreCase("HEJ")).toString();

and then from a string to a boolean

boolean theValue = Boolean.parseBoolean(strBoolean);

Java safe conversion of long to int

March 7th, 2012

In most cases this is really not needed, if possible please keep the long as a long and work with it as such, but if needed the following works

public static int longToInt(long value) {
    if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
        throw new IllegalArgumentException
            (value + " cannot be cast to int without changing its value.");
    }
    return (int) value;
}

The reason that theLong.intValue() is not suggested here is that intValue rounds the value to fit a int – it don’t say it can’t be done.

Linux what encoding is my file saved as

March 6th, 2012

From the console the file command can be used to describe a file (with the encoding it is saved as)

user@comp:~/workspace/project$ file dbase/init.sql 
dbase/init.sql: UTF-8 Unicode (with BOM) English text

using RedirectMatch to make Apache2 listen to several dns names and still not get content duplication

March 5th, 2012

The trick we do here is to make one virtualhost for the “main” domain you wish indexed (and shown in browsers etc) and another one for all the other domains that will simply redirect to the main domain.

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.net
    ServerAlias example.biz
    RedirectMatch permanent /(.*) http://www.example.com/$1
</VirtualHost>
 
<VirtualHost *:80>
    ServerName www.example.com
    ... other stuffs ...
</VirtualHost>