01 September, 2008

HowTo run IntelliJ IDEA from the RAM-Drive under Linux

Sometimes people need to run IntelliJ IDEA at "readonly" systems.
"Readonly" I mean - without unpacking IDEA into the local file system.

These scripts will help extract and start IDEA from the RAM-Drive and remove it after using:


idea-setup.sh
#!/bin/bash

IDEA_TAR_GZ=~/downloads/idea-7.0.3.tar.gz
IDEA_HOME=~/idea/idea
export JDK_HOME=/usr/lib/jvm/java-6-sun
export REQUIRED_JVM_ARGS="-Didea.system.path=$IDEA_HOME/system -Didea.config.path=$IDEA_HOME/config"

mkdir $IDEA_HOME

sudo mount -t ramfs none $IDEA_HOME
tar -xz --strip 1 --file $IDEA_TAR_GZ -C $IDEA_HOME

$IDEA_HOME/bin/idea.sh

./idea-clean.sh



idea-clean.sh
#!/bin/bash

IDEA_HOME=~/idea/idea

sudo umount $IDEA_HOME
rm -rf $IDEA_HOME

Of course you should buy IntelliJ IDEA license, get open source license or... use evaluation version.

22 August, 2008

HowTo find inconsistency between image format and file extension

Sometimes image files have inconsistency between format and extension.
For example: .jpeg file saved as .png file.

I wrote simple script in order to find such files:
#!/bin/bash

process() {
while read; do
diff=`identify -format "%m %e" "$REPLY" | tr [A-Z] [a-z] | egrep -v "^(png png|gif gif|jpg jpg|jpeg jpg|jpeg jpeg)"`
test -n "$diff" && echo $diff $REPLY
done
}

find -type f -iregex ".*\.\(png\|gif\|jpg\|jpeg\)$" | process

It outputs information about real file format, file extension and filename in case of
difference between format and extension.
Like this:

jpeg png images/rating_0.png
png gif images/left.gif
gif png images/border_tr.png

11 July, 2008

Sources of com.sun.net.httpserver.HttpServer

Sun JRE contains implementation of simple HTTP server.
(in the com.sun.net.httpserver and sun.net.httpserver packages)


But this "HttpServer":

  • Not a part of Java API.

  • It is Sun's proprietary component

  • It works only under Sun JRE >=1.6

  • His sources are available only as a part of Standard Edition Development Kit Source Release under Java Research License
    (see Java™ Platform, Standard Edition 6u3 Source Snapshot Releases jdk-6u3-fcs-src-b05-jrl-24_sep_2007)


But sometimes this implementation is pretty useful (for example here).

24 June, 2008

String from base64 string, to base64 string in Java

This is very simple:


import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

...

public static String fromBase64(String in) throws IOException {
return new String(new BASE64Decoder().decodeBuffer(in));
}

public static String toBase64(String in) {
return new String(new BASE64Encoder().encodeBuffer(in.getBytes()));
}

Latin

Sometimes I use this latin text as dummy content in my projects:

"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed felis. Suspendisse vestibulum elit et sapien. Phasellus massa. Nam molestie placerat orci. In eu purus in eros eleifend luctus. Phasellus pede lacus, cursus nec, sollicitudin quis, vehicula in, metus. Vestibulum justo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse justo erat, eleifend ut, tempor quis, placerat vitae, justo. Vestibulum varius, libero et hendrerit pharetra, risus felis dapibus nibh, ac varius tortor odio vel quam. Morbi at velit ac purus pretium ornare. Suspendisse at nibh id purus interdum cursus. Donec feugiat egestas sem. Aenean nisl. Aliquam erat volutpat. Vestibulum et magna. Sed lacinia odio vel pede. Ut eleifend, ante vestibulum suscipit sagittis, pede lorem mollis dolor, eget pulvinar tortor libero eu mauris.

Donec sollicitudin sollicitudin leo. Aenean diam dolor, semper sit amet, malesuada quis, sodales sed, nulla. Nunc aliquam purus vitae est. Pellentesque ut est at sem imperdiet consectetuer. In eros. Nullam pulvinar. Sed risus urna, pharetra ornare, gravida nec, venenatis quis, nisl. Nullam euismod mauris. Praesent ut ipsum quis augue faucibus malesuada. Proin dui mauris, condimentum sit amet, ultricies non, interdum eget, mi.

In rutrum, neque et consectetuer semper, dolor ligula rhoncus lectus, eu egestas nunc quam ut est. Morbi quis turpis adipiscing dui pharetra commodo. Nullam pulvinar nibh non lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi blandit arcu ac urna. Suspendisse felis erat, gravida sed, pulvinar sed, ullamcorper in, purus. Mauris libero. Donec eros neque, tempus a, malesuada sed, ullamcorper a, leo. Pellentesque cursus, sem a pretium porta, mi magna faucibus mauris, sit amet porta quam pede vitae neque. In fermentum, neque et volutpat euismod, arcu libero luctus est, in euismod augue est porttitor mauris. Vivamus a lorem sit amet erat tempus convallis. Integer malesuada odio vitae libero. Proin aliquam. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nunc sodales. Praesent at sem ac purus commodo faucibus. Nam ultricies neque ultrices tortor molestie cursus. Phasellus eget lectus. Maecenas semper dolor et turpis.

Nam iaculis, pede sit amet nonummy dignissim, nulla tellus condimentum mi, vitae mattis mi felis in mi. Mauris et nulla at tellus porttitor posuere. Duis erat ante, bibendum ut, pulvinar in, adipiscing ac, nunc. Sed volutpat augue ac pede. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Suspendisse potenti. Curabitur lectus. Suspendisse ultrices, arcu sed condimentum congue, leo elit aliquam risus, et interdum leo erat sit amet ante. Aliquam ac tellus. Proin ut felis. Curabitur volutpat sagittis lacus. Pellentesque tempus tincidunt pede.

Duis leo metus, consectetuer ac, posuere id, iaculis quis, massa. Curabitur pellentesque, pede sit amet pellentesque feugiat, odio justo condimentum eros, non mollis augue ante at ipsum. Nunc iaculis eros eu nibh. Nunc ligula sem, semper id, fringilla et, mollis a, ante. Maecenas viverra nibh sit amet nunc. Aenean rhoncus ante ut nibh. Duis hendrerit lorem sed enim. Donec et velit vitae leo rutrum faucibus. Donec mi. Proin laoreet, tellus at placerat nonummy, erat tellus lobortis metus, luctus sagittis enim urna sit amet odio. Praesent vitae ligula quis velit sagittis iaculis.

Aliquam consequat justo. Nulla facilisi. Mauris eget magna. Donec hendrerit imperdiet libero. Aliquam tincidunt libero sit amet diam suscipit auctor. Phasellus sit amet risus et pede mollis faucibus. Nunc nec purus quis augue pulvinar commodo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Ut porttitor vestibulum lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas congue.

In hac habitasse platea dictumst. Vestibulum vestibulum facilisis neque. Nunc id elit ut orci volutpat convallis. Vivamus vel urna. Etiam auctor. Pellentesque suscipit eros sit amet purus. Proin cursus dolor id felis. Donec venenatis, nisl sit amet consequat condimentum, tortor leo faucibus risus, ut fermentum ipsum felis nec nibh. Suspendisse mattis adipiscing felis. Maecenas eu magna. Nulla eros odio, nonummy nec, volutpat ut, auctor ac, lacus. Sed nec est. Donec libero est, auctor eu, molestie eu, lacinia ut, elit. Suspendisse quis orci."