first jni example

I never tried JNI(Java Native Interface) before. jni is an api for to call native C code from inside a java code. for a principle I dont like this kind of mixed things. calling java inside c# or calling C# code from C++ is always makes hard codes to understand. anyway I was wondering about the performance of printf between java and jni. basically there are 2 codes. one is written in java one is written in C. here is our C code ...

October 10, 2015 · 2 min · Özkan Pakdil

mvn disable checkstyle

Let say you are using windows I know most of developers does that. Especially in the company they work for. Anyway I am trying to build some REST client in standalone jdk. And I have not used it before so I am trying to read examples https://maven.java.net/content/repositories/releases/org/glassfish/jersey/bundles/jersey-examples/2.22/ run them, try to understand. But in windows I am getting this error [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check (verify) on project helloworld-webapp: Failed during checkstyle execution: Unable to find suppressions file at location: etc/config/checkstyle-suppressions.xml: Could not find resource 'etc/config/checkstyle-suppressions.xml'. -> [Help 1] First I check pom xmls but could not find the exact point to disable this maven-checkstyle-plugin. I don’t know which super clever engineer enable this in examples and have not tried it under windows. But this kind of errors actually make people to stop learning java. The java language is easy but this environmental problems very frustrating. ...

October 8, 2015 · 1 min · Özkan Pakdil

Java imperative and functional approach performance test 2

another test for imperative code package testarea; import java.util.ArrayList; import java.util.List; import java.util.OptionalDouble; import java.util.stream.Collectors; import java.util.stream.IntStream; public class Test { static int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 10 }; private static List<Double> NUMBERS_FOR_AVERAGE = new ArrayList<Double>(); static long startTime, stopTime; public static void main(String[] args) { NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); NUMBERS_FOR_AVERAGE.add(new Double(10)); runImperative(); runFunctional(); runImperative(); runFunctional();runFunctional();runFunctional();runFunctional(); runImperative();runImperative();runImperative();runImperative(); runFunctional(); } private static void runFunctional() { startTime = System.nanoTime(); functionalApproach(); stopTime = System.nanoTime(); System.out.println("F:"+(stopTime - startTime)); } private static void runImperative() { startTime = System.nanoTime(); imperativeApproach(); stopTime = System.nanoTime(); System.out.println("I:"+(stopTime - startTime)); } private static void imperativeApproach() { Double sum = 0d; for (Double vals : NUMBERS_FOR_AVERAGE) { sum += vals; } sum = sum / NUMBERS_FOR_AVERAGE.size(); } private static void functionalApproach() { OptionalDouble average = NUMBERS_FOR_AVERAGE .stream() .mapToDouble(a -> a) .average(); } } here is my output ...

September 20, 2015 · 1 min · Özkan Pakdil

Java imperative and functional approach performance test

I love performance tests. generally I test everything myself if there is no source in the internet I must do it :) today I was reading imperative coding vs functional coding here. it stuck my mind this sentence. they’re probably equally fast and reasonable then I have to try which one is faster. here is the code package testarea; import java.util.stream.Collectors; import java.util.stream.IntStream; public class Test { static int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 10 }; static long startTime, stopTime; public static void main(String[] args) { runImperative(); runFunctional(); runImperative(); runFunctional();runFunctional();runFunctional();runFunctional(); runImperative();runImperative();runImperative();runImperative(); runFunctional(); } private static void runFunctional() { startTime = System.nanoTime(); functionalApproach(); stopTime = System.nanoTime(); System.out.println("F:"+(stopTime - startTime)); } private static void runImperative() { startTime = System.nanoTime(); imperativeApproach(); stopTime = System.nanoTime(); System.out.println("I:"+(stopTime - startTime)); } private static void imperativeApproach() { int sum = 0; for (int j = 0; j < array.length; j++) { for (int k = j + 1; k < array.length; k++) { if (k != j && array[k] == array[j]) { sum = sum + array[k]; } } } } private static void functionalApproach() { IntStream.of(array).boxed().collect(Collectors.groupingBy(i -> i)).entrySet().stream() .filter(e -> e.getValue().size() > 1).forEach(e -> { e.getValue().stream().collect(Collectors.summingInt(i -> i)); }); } } here is my output ...

September 19, 2015 · 2 min · Özkan Pakdil

I moved to lxde

I installed linux into this computer around 3 months ago. and I am loving it. as long as debian in my pc I am happy :) the other day I disabled fn key from BIOS and suspend started working also. I am not sure which one solved the problem. turning to lxde or that bios thing but still I am happy about this. because closing the lid and opening it and not finding X was frustrating. and I had a lot of restarts because of that. now it is working like it suppose to. ...

September 16, 2015 · 1 min · Özkan Pakdil