Posted in Software Engineering, Technology
Thursday, May 8, 2008

Ok, I just got back from the Sun Developer Network Party. I am going to make this short. My plan is to revisit these blog entries once Sun releases the videos and slides from the JavaOne sessions in the near future. Here’s my brief recap of today’s fun.

First of all, Scott Davis is a brilliant speaker. I highly recommend his Groovy: the Red Pill presentation. I missed this one at No Fluff, Just Stuff a few months ago. You will not look at the EXPANNNNNNNNDO-METACLASS the same way again.

The Struts 2 presentation flew over my head. I wasn’t sure if it was my relative lack of experience with Struts 1 or the presenters lack of examples. When the speaker pronounced HTTP as “Haytch Tee Tee Pee” it pulled my mind out of any comprehension of any point that he attempted to be communicated. This session was a waste.

The OpenSocial Container presentation discussed a project named Shindig. One of the presenters started working on his Web 2.0 social network website in January and finished in April. Am I in the wrong business?

I cannot wait for the Compelling User Experience session to make it online. Nothing was sacred. The presenter threw stones at a lot of today’s paradigms. I couldn’t agree with him more!

The video games BOF introduced me to the javagaming.org forum.

The Groovy in a Cloud session got me to thinking about the benefit of deploying virtual servers much more quickly than it would take any corporation’s purchasing department to acquire the equivalent hardware.

The GWT and Comet session introduced me to the Grizzly Comet project which uses continuations to push data asynchronously from the server to the client. Imagine an auction website where an auction’s high bid is updated automatically on your web page without having to refresh the page. Who knew it was possible to suspend a browser’s session?

The Groovy Builder session discussed making Domain Specific Languages (DSLs) with a part of the Groovy language with which I am not yet familiar.

Ok, friends, more later.. Off to do a bit of reading before turning in.

Posted in Software Engineering, Technology
Wednesday, May 7, 2008

I made the trip out to San Francisco for JavaOne. The first day kicked off with a speech entitled Java + You. I came in late because, well, I had an issue finding the right conference center.. not Moscone West, not Moscone South, but Moscone NORTH, whew! I enjoyed the talk until they trotted out Neil Young, the ancient musician and liberal crackpot.

My first scheduled session was on Project Darkstar. The presenter covered Sun’s massively-multiplayer system. In describing the server he mentioned the design goal on achieving low-latency using objects that sounded a lot like stateless session enterprise java beans (EJBs). In his demo he used assets from Bioware’s Neverwinter Nights — while that was cool it looked dated. I found it strange that the demo for a MMO was empty except for the player character.

The talk for Project Aura was better. This is an open source project that provides recommendations based on classifications. They pointed out the shortcomings of the traditional recommendation engines, specifically music recommendation systems. Their approach would improve on them by automatically classifying music using artificial intelligence. They also show why the recommendations are made. This would be an improvement over, say Amazon inexplicably recommending clean underwear when I look at a book on chaos theory.

Most sessions are a cattle call. Imagine a large nerd herd of hundreds of attendees congregated outside conference rooms waiting for the room to empty and the staff to let them in. Lunch was the worst crowd. Thankfully, the lunches were boxes and line moved quickly.

After lunch I attended a session on upcoming Java changes. There are interesting things coming. Here is what I managed to scribble down:

Multi-catch

try {
// stuff
}
catch (X1, X2 e) { foo(); }
catch (X3 e) { bar(); }

Safe Re-thow

try {

// stuff
}
catch (final Throwable e) {
logger.log(e);
throw e;
}

Switch on String

switch (value)
{
case “red”:
foo();
break;
}

Modules

module org.netbeans.core;
package org.netbeans.core.utils;

Annotations (JSR 308)

Adds annotations on generics
List < @NonNull String> strings;

Adds annotations to casts
endRegex = (@NonNullPattern) endRegex;

I went to a session on Grails that was pretty similiar to the class I attended at No Fluff, Just Stuff a few months ago. Following that I went to a class on GWT where the only thing I picked up was that testing GWT classes in difficult. Then I ended the night with a session on writing plugins for Eclipse, NetBeans IDE and IDEA. The main takeaway from that session was that Eclipse uses plugins in SWT and everybody else uses Swing.

It has been a long day. I have classes tomorrow on Groovy, Struts 2, OpenSocial and Comet. So I’m off to bed to do a bit of reading before calling it a night.

Posted in Software Engineering, Technology
Thursday, May 1, 2008

Back in March I attended a software conference hosted in St. Louis called No Fluff, Just Stuff. The lectures introduced me to some cool new technology. It was small and intimate. I had an opportunity to speak to the instructors and conference organizer.

The classes I took covered these technologies: Ajax, Hibernate, Spring, Terracotta, Grails, Groovy and GWT

During one of Jeff Brown’s Grails talks I heard him say that there is built-in validation of credit card numbers, but it is limited to just checking the size. It is possible to validate the value of the number using the Luhn Algorithm. So, the following is my implementation of Luhn validation written in Groovy and suitable for use in Grails.

class LuhnValidator {

def isValidCreditCardNumber(number) {
def sum = 0
def alternate = false
number.reverse().each { value ->
if (value =~ /\d/)
{
def n = value.toInteger()
if (alternate) {
n *= 2
if (n > 9) {
n = n % 10 + 1
}
}
sum += n
alternate = !alternate
}
}
sum % 10 == 0
}
}

Posted in Technology
Sunday, January 13, 2008

I have Verizon. A coworker described how to improve cell phone reception.

The cell phone has a Preferred Roaming List (or PRL). This list tells your card which towers to look for when establishing connection. As new EVDO towers are installed, your PRL will become out of date because it won’t know to hunt for these new towers.

From http://www.verizonwireless.com/b2c/howTo/prlHowTo.jsp

Updating Preferred Roaming List(PRL)

Verizon Wireless is constantly advancing its roaming technology to provide you with superior roaming capabilities. By updating your PRL every few weeks, you can be sure you have access to our enhancements. As a result you may experience:

* Longer battery life
* Fewer dropped or blocked calls
* Clear, crisp connections in more areas across the United States
* Ability to connect to the digital network in more parts of the country

Instructions for updating your PRL:

1. Power on your phone within any Verizon Wireless digital service area.
2. Dial *228 and then press SEND (this call is airtime free).
3. When prompted, press option 2 to update your phone’s roaming capabilities
(the update may take up to 2 minutes).
4. Once completed, a confirmation message will appear to inform you that your phone has been re-programmed with the new PRL.

Posted in Politics, Technology
Monday, July 2, 2007

This poem is dedicated to those who possess the iPhone and those who wish they did:

ODE TO THE IPHONE

Twinkling
All that glitters is not
A high-tech surrogate for
Something you cannot do without
This year
Who cares

No keys
Just use pointy fingers
Touch the screen wherever you wish
It will find your important contact
Last year
Who cares

Look there
It rotates quickly
And plays your tunes nicely
Web browser says Democrats win
Evil fools
Nobody cares

Cellphones
A computer and radio
Together in one small package
Is not magic technology
Learn more
I care

Our world
Does not spin around desire
It makes its trek past the red sun
Without the latest gadget
Not that
You care

Posted in Technology
Thursday, April 5, 2007

To update an earlier blog post I found out that Fraps installs a custom codec. In order to implement responsive video capture they don’t have much time to apply compression. The resulting AVI files are massive. Their website recommends tmpgenc (Tsunami Mpeg Encoder), VirtualDub and Windows Movie Maker to compress the video files.

I tried out Cinerella and Enlightment using a LiveCD Linux distribution called Elive. Let me be polite. I was not impressed. I had to raise my eyebrows a sneaky tactic the distro owners decided to use to make money off of open source software. If you want the latest stable version, you have to donate money in order to download it over a decent server. If you choose to download it without donating money, then they send you to a slow server (5 kbps download speed!) that sometimes stalls. Dirty! I opted to download an unstable development version that was available on a mirror site in Indiana (200 kbps download).

Posted in Family, Movies, Technology
Wednesday, April 4, 2007

I decided to attempt to make a movie of a simple Java program I wrote and upload it to YouTube. Nutty, huh? I used a program called Fraps to capture video of the program in action. Fraps is relatively inexpensive and is a breeze to install and configure. So, I uploaded the resulting AVI file to YouTube. YouTube gave me a “processing” message and later gave a “that part of the site is down for maintenance”. This is what kills me. My customers would blow a fuse if their website showed a maintenance message instead of serving their needs. Imagine visiting Google only to see a terse message about the site being down.

Digg, YouTube and Myspace are notorious for making their sites inaccessible due to maintenance. How many billions of dollars are these sites worth? Can’t they hire engineers who are smart enough to handle redundancy and fail-over while accomplishing maintenance? *cough* Hey, corporate owners, if you need some assistance, you can always examine my resume.

The movie failed to upload due to an issue with an unsupported codec. So I spent some time on the site reading the help pages. I learned that for best results I should resize the video to 320×240. So, I fired up Microsoft Movie Maker. In addition to resizing the video I added a title screen, credits and some music my brother Kevin gave me sometime last year. I saved it as a WMV file and uploaded it to YouTube.

This time the file was successfully uploaded. Here is the end result. In this video I am clicking on the screen spawning dots. The dots are affected by gravity and fall to the bottom of the screen. I hope you enjoy the cheese factor.

Page 2 of 1512345...10...Last »