diff --git a/.gitignore b/.gitignore index e7fe913..a199c2e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /consumer_keys.txt /info.txt /.classpath +/primedate.jar diff --git a/src/fr/klemek/primedate/MainProcess.java b/src/fr/klemek/primedate/MainProcess.java index 796d6a4..d9c13a5 100644 --- a/src/fr/klemek/primedate/MainProcess.java +++ b/src/fr/klemek/primedate/MainProcess.java @@ -13,6 +13,8 @@ import java.util.TimerTask; */ public abstract class MainProcess { + private final static String VERSION = "v1.1"; + private final static SimpleDateFormat date2num = new SimpleDateFormat("yyyyMMddHHmm"); private final static SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' HH:mm", Locale.ENGLISH); private final static NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH); @@ -35,6 +37,8 @@ public abstract class MainProcess { } public static void main(String[] args) { + + System.out.println(String.format("PrimeDate %s%n%s",VERSION,Calendar.getInstance().getTime())); if(args.length < 1) { System.out.println("Argument 1 must be a file containing customer keys"); @@ -42,6 +46,9 @@ public abstract class MainProcess { } if(TwitterClient.setUpTwitter(args[0])) { + + PrimeCalculator.computeList(); + Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override diff --git a/src/fr/klemek/primedate/PrimeCalculator.java b/src/fr/klemek/primedate/PrimeCalculator.java index 96bb41e..ecab7b9 100644 --- a/src/fr/klemek/primedate/PrimeCalculator.java +++ b/src/fr/klemek/primedate/PrimeCalculator.java @@ -1,7 +1,10 @@ package fr.klemek.primedate; +import java.util.Arrays; + /** * Calculate and check prime numbers + * * @author Kleme */ public abstract class PrimeCalculator { @@ -12,12 +15,13 @@ public abstract class PrimeCalculator { private static final long SQRT_MAX = (long) Math.sqrt(MAX) + 1; private static final int MEMORY_SIZE = (int) (MAX >> 4); private static final int BLOCK_MAX = (int) (1 << 4); - + private static boolean computed = false; private static byte[] primes = new byte[MEMORY_SIZE]; /** * Get stored bit for number i + * * @param i * @return */ @@ -29,6 +33,7 @@ public abstract class PrimeCalculator { /** * Set stored bit for number i + * * @param i */ private static void setBit(long i) { @@ -41,7 +46,9 @@ public abstract class PrimeCalculator { /** * Computes first million numbers, (takes ~25 ms) */ - private static void computeList() { + public static void computeList() { + Arrays.fill(primes, (byte) 0); + long t0 = System.currentTimeMillis(); for (long i = 3; i < SQRT_MAX; i += 2) if (!getBit(i)) { long j = (i * i); @@ -51,10 +58,13 @@ public abstract class PrimeCalculator { } } computed = true; + System.out.println( + String.format("Calculated %d KB of primes in %d ms", MEMORY_SIZE / 1000, System.currentTimeMillis() - t0)); } /** * Next prime stored + * * @param p * @return */ @@ -67,6 +77,7 @@ public abstract class PrimeCalculator { /** * Check if a number is prime by calculating its block + * * @param number * @return */ diff --git a/src/fr/klemek/primedate/TwitterClient.java b/src/fr/klemek/primedate/TwitterClient.java index 24e4683..f23df7f 100644 --- a/src/fr/klemek/primedate/TwitterClient.java +++ b/src/fr/klemek/primedate/TwitterClient.java @@ -99,6 +99,9 @@ public abstract class TwitterClient { } return false; } + + System.out.println("Successfuly connected to twitter"); + return true; }