17th August 2007 - By Aaron
Well the first question to ask is what unit do you want the difference in. This is one of the reasons many people stick to incremental date math instead of math returning an int.
Lets say you want to do a basic age calculation. How old is Joe? His birthday is 7/29/1981. Well you could subtract 1981 from today, then determine if he had a birthday this year, which could mean comparing everything up to the milliseconds. The problem is, such a calculation is not as accurate as it would seem. This style method fails to preserve the validity of the passing of leap years, leap seconds, etc. If you asked how many days old Joe is then your answer would be something like 365 * (current - 1981) + number of days this year - number of days between Jan 1 and July 29. Well you forgot a few leap days in there, at least 5.
Read the rest of this entry »
Posted in Computers, Programming | 3 Comments »
26th July 2007 - By Aaron
I have published a pet project of mine online recently. After looking at many different project hosting sites I resolved on google code. It seems to have a great interface and amount of space available.
The project is called JExel, and is a Java based expression language parser. It’s not complex to utilize, and can be the perfect plugin library for usage in your larger Java application. JExel parses string expressions to an object result. It comes with native boolean, math, string and date functionality.
A boolean expression utilization would look something like Expression.evaluateToBoolean("true AND false"); and, in this case, would return a new Boolean(false);.
Of course there are also included methods evaluateToDouble(String) and evaluateToString(String).
Additionally there is a plain evaluate(String) method that returns an Argument. You can then call getObject() on the resulting Argument and get the actual Object result.
You can expand on the included operators, and write your own to accomplish your own task. You can provide a Resolver which can resolve string variables found in the expression via your own needs. Say you had an expression like Expression.evaluateToDouble("path/to/variable + otherVariable");. This means if you provide a resolver then you can gain variable resolution relevant to your own project. Maybe path/to/variable is translated into “6″ and otherVariable is translated into “4″. Then the result would be 10.
Have fun! Start Exploring JExel
Posted in Computers, Programming | No Comments »
28th May 2007 - By Aaron
In your pom.xml you have the ability to turn on resource filtering that replaces variables in resource files with actual values. These are useful for things like ${pom.name} and ${pom.version}. Your pom.xml section would look something like this…
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
And your properties file could contain something like these
# Build Time Information
APPLICATION.NAME=${pom.name}
APPLICATION.VERSION=${pom.version}
Read the rest of this entry »
Posted in Programming | 2 Comments »
5th May 2007 - By Aaron
After searching high and low today I have found the best way to convert XviD videos to the format used by the 30GB Video IPOD. The programs I decided against were…
The program I went with was…3GP Converter.
This program is very simple and fast both to install (unzip and run setup, choose English, choose Ipod) and to use (choose a format, an output folder, and the files).
Here are some guides.
Enjoy!
Posted in Computers | No Comments »
19th February 2007 - By Aaron
Sorry to everyone out there. I’ve had some major downtime issues the past 3-4 days. I really like my host but 3 days downtime is enough that I think I’m going to switch.
Update:I have decided to stay with my host. They have been very good in the areas of support, and that is very valuable with my customized needs.
Posted in Server Management | No Comments »