Code Katas
A Code Kata is an exercise in writing code preferably in test driven way, which you do repeat periodically.
There are very good examples of them around the Internet.
Here are some of my favorites.
ETTWU -- Enter To The World of Uysal Kara
A Code Kata is an exercise in writing code preferably in test driven way, which you do repeat periodically.
There are very good examples of them around the Internet.
Posted by Uysal KARA at 5:26 PM 0 comments
Using virtual machines to maintain development environments ( development ide to application server config) is becoming a common practice.
8-core cpus, 4+ gb rams and 64 bit operating systems allow running guest operating systems without a lot of performance penalties.
What should be in a baseline image?
Posted by Uysal KARA at 4:10 PM 0 comments
Single responsibility principle
Recently i needed to compile our all jasper-report files during application start-up.
I was modifying existing code-base to enable precompiling xml reports to binary .jreport files.
It was simple enough, traverse all *.jrxml files at a certain directory and use net.sf.jasperreports.engine.JasperCompileManager to do the actual compiling.
Here is how i traversed all files under a directory.
private void visitAllFiles(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
visitAllFiles(new File(dir, children[i]));
}
} else {
//doSomething();
}
}
public interface FileVisitor {
void visit(File fileToProcess) ;
}
public FileCrawler(final File root, final FileVisitor visitor) {
this.visitor = visitor;
}
private void visitAllFiles(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
visitAllFiles(new File(dir, children[i]));
}
} else {
visitor.visit(dir);
}
}
new FileCrawler(new File(this.cacheFilePath), new ReportCompiler()).start();
public void visit(File fileToProcess) {
String name = fileToProcess.getName();
if (name.endsWith(".jrxml")){
compileReport(fileToProcess.getParent(),name);
}
}
new FileCrawler (new File (root), new FileVisitor() {
public void visit(File fileToProcess) {
String name = fileToProcess.getName();
if (name.endsWith(".jreport")){
fileToProcess.delete();
}
}
});
Posted by Uysal KARA at 5:22 PM 0 comments