Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Tuesday, August 24, 2010

Don Norman - Business of Software Conference Talk

In my first year of university, one of the first subjects used a book called 'The Design of Everyday Things' by Don Norman. It was an interesting look at the design of normal objects and some of the mistakes made by designers when it comes to interface design.

Last year Don Norman was a speaker at the Business of Software Conference. This post from the Business of Software blog includes his presentation from the conference. Well worth watching for anybody in the software development field.

Thursday, April 8, 2010

Latitude/Longitude Converter Class Library

A few weeks ago I found an old photograph taken while we were doing a 4wd tour on the Mid North Coast of NSW. I wanted to scan and post this photo to the blog along with a Google Maps location.

The issue with this was I only had a rough idea where the photo was taken. During this 4wd tour we followed the directions in a printed book. This was 10 years ago and we did not have the use of a GPS to record our track. All I had to go on was the directions in the book. These directions made little sense trying to follow them on Google Maps as in many cases the tracks we followed are not named or marked in Google Maps.

However, the book did give GPS co-ordinates for key points on the tracks (major intersections or landmarks). I decided these could be used to provide a rough path followed and allow me to get my bearings while trying to follow the directions on Google Maps.

Once I tried to plot each of these points in Google Earth I realised it would be a slow process to import each of these points. An easier way would be to create a KML file of the points and load that into Google Earth. I had already written some code to produce a KML file of points from a CSV file so it was just a matter of loading the GPS co-ordinates into the CSV file and running the program.Unfortunately, KML files need GPS co-ordinates in Decimal Degrees and all my co-ordinates were in Degrees, Minutes and Seconds.

At this point I could have used any number of web based conversion pages to convert each co-ordinate manually. Instead, I decided to write a JAVA class library to convert co-ordinates between Degrees, Minutes and Seconds and Decimal Degrees.

The code was reasonably simple but as I had not been able to find an equivalent class on the net I decided that I would try to make it as versatile as possible with the aim to releasing it onto the web for anybody to use. It would also be a good learning exercise for me as I have created a Java class library previously.

After a weeks worth of coding I have now got the library to the point that I feel comfortable releasing a alpha version of the library to the net. There is a simple tutorial available and I am currently developing the Javadocs to go with the library.

Eventually, I will also post the source under an open source license to allow others to build or improve the library.

Sunday, March 7, 2010

Programming or Configuration?

A recent post over at the Reinvigorated Programmer highlighted an interesting point about the nature of the programming that many modern coders do. The post discusses the difference between creating an application from scratch and coding much of the functionality yourself or using frameworks and libraries to create much of the code.

As a VB5/6 programmer who has recently started coding in JAVA I have found that the choice of libraries available both in the standard class libraries and in third party libraries was very large and it is sometimes difficult to know if you are creating something from scratch that may already be available in the standard libraries. Every day I find myself searching the libraries to ensure I am not re-writing the wheel.


Another point the blog post touched on is the widespread use of frameworks in modern coding. These ready built code bases are used to simplify the coding of applications by hiding the underlying code and allowing the user to configure the system with very little actual programming.

Overall, the use of these frameworks is a good thing as they do minimize the production of a lot of code that is common from one application to the next. My biggest gripe with frameworks is that there are so many of them and more are being created every day. Especially in the Java world it is difficult to determine what is the best choice amongst the hundreds of frameworks. However, once selected it can be difficult to change frameworks without considerable work.

From a learning perspective the large number of libraries and frameworks can be daunting and given the communities willingness to create new libraries and frameworks on a rapid basis I guess I will be learning a new library or framework most of the time. 

Thursday, December 3, 2009

Google Wave Development

I finally managed to obtain a Google Wave account (thanks Harvey!).

After playing with Google Wave for about an hour I decided to that I should try to develop a robot for Wave. I used the tutorial on the Google Wave site to create a python Wave Robot, deployed it to Google App Engine and tried it in my wave. It works!

Python however is not my language of choice and I am going to learn how to use JAVA to produce Google Wave robots. I have found an article that explains how to use the WadRobotFramework to simplify the creation of JAVA Wave Robots.

If you would like to chat to me on Wave my address is coxydave at gmail dot com.

Sunday, October 11, 2009

Egreat EG-M31B Network Media Tank

The Egreat EG-M31B is a Network Media Tank (NMT). A NMT is a network attached device that also has connections for output of media to display devices such as HD TV Panels and CRT devices.



The Egreat M31B is a NMT based upon the firmware of the Popcorn Hour A1XX series and implements all of the functions of this player as well as an eSata port for the connection of external hard drives at SATA speeds.

For full details of the specifications of the player see the Egreat website.

Part of the appeal of the NMT devices is the active development community that surrounds them. The centre of this community is the NetworkMediaTank site. This site provides support for all aspects of the devices, but in particular provides a forum to discuss plugins, extensions and themes for the device.

The easiest way to make use of the more popular 3rd party applications is to download and install the NMTInstaller. The NMT Installer takes the hard work out of installing 3rd party applications such as Jukeboxes, Webserver, Automatic Downloaders, Themes and Web Services.

Development on this platform is in PHP, Javascript or in C directly on the device. Further details can be found on the NMT Wiki.

Sunday, August 9, 2009

MoWeS Portable Webserver

The MoWeS Portable Webserver is a light-weight web server that can run from any writable media (USB Drive, HDD, or flash-card).
MoWeS stands for the three letter abbreviation Modular Webserver System and makes it possible, to run a webserver based on Apache, MySQL and PHP from an USB Stick or any other writable media (harddrive, flash cards etc.) without installation under Windows (98 to Vista).
The installation process also includes the ability to install various web software packages. These packages include:
Setup is easy and I completed the setup of the web server on a USB stick within 1 hour including the installation of MediaWiki.

This is great way to have a portable version of some of the best CMS and Wiki software available.

Wednesday, June 10, 2009

Google IO 2009 - The Myth of the Genius Programmer

An interesting talk given by Brian Fitzpatrick and Ben Collins-Sussman on the 'Myth of the Genius Programmer'. Brian and Ben talk about some of the collaboration issues that people experience on open source software projects.



Although the talk centres around open source projects and particularly fledgling projects with only small numbers of developers, some of the points about collaboration can apply to teams working on software projects within larger organisations.

Wednesday, May 20, 2009

Wolfram Tones - Sound Generator using Cellular Automation

While investigating the latest search engine craze - Wolfram|Alpha I discovered another of Wolfram Research Labs projects called WolframTones.

According to Wolfram Research Labs:

WolframTones works by taking simple programs from Wolfram's computational universe, and using music theory and Mathematica algorithms to render them as music. Each program in effect defines a virtual world, with its own special story--and WolframTones captures it as a musical composition.
The tunes generated can be saved as MIDI files to be used on mobile phones. Try it out!