Sunday, April 29, 2007

JSON enabling objects

So, MLTA is progressing nicely. In order to add to the "Wow" factor and maybe get some extra publicity once it launches, I've decided to fully AJAX enable it. The project is using Struts2, Spring and Hibernate (using JPA), and I've worked out a nice way of enabling AJAX calls via standard Struts2. What I've done is implement the JSONString interface, which basically defines a toJSONString method. You then build up the object using JSONObject(s). Any time you then want to retieve an object you simply call the standard find method and instead of returning a full HTML page, you simply use a JSP to output the value of toJSONString. Save's work out of the box, you just need to return a different vslue, for example 'success' for success, etc. Easy :)

Struts2 (formerly WebWork) includes some nice AJAX features out-of-the-box. One particularly nice feature is AJAX Tabs. However, one gotcha I came across was that you need all your Javascript outside of the Tabs. So, even for pages within a tab, the Javascript needs to be in the page hosting the tabs.

Tuesday, April 24, 2007

AdSense

I posted the following on Google's AdSense Group.
I think that AdSense is an awesome service but I think it currently lacks configurability from the content providers side. What I really think would be a useful feature, and someone please inform me if it already exists, is for content providers to be able to insert different "keywords" in the AdSense code to retrieve ads based upon those keywords, in a sense enabling "cross-sell" opportunities.

For example, let's say I have a website that sells widgets. I sell expensive widgets, and cheap widgets. As it stands now, I will get Google ads about widgets. What I would actually want is ads that appeal to different market segments, so I might want travel ads to appear on my expensive widgets pages and dating ads to appear on my cheap widgets pages. This could be accomplished by including the keywords "travel" in the code for AdSense on my expensive widgets, and "dating" for the code on my cheap widgets.

I'm sure that this change would not require much effort on Google's part, it could simply be an extension of what happens now with the search results on Google.com, but I think that this functionality will certainly increase the success of Google ads on many sites.
Here's hoping someone sees it, because it will really open up marketing possibilities on websites that I'm planning.

Sunday, April 22, 2007

A meeting

I met with my very good friend Zej today, and he's agreed to come onboard MLTA. We're going to split it 50/50, with me originally doing the coding & technical work and Zej doing the testing & other stuff. Things are looking up for my first 'real' startup!!!

Saturday, April 21, 2007

Google maps

Made a little more progress with MLTA today. Developed some cool AJAX stuff to lookup an address in Google maps. Very easy really, but powerful, especially for my idea. It will also make sure that there are 'proper' addresses in the database, not just rubbish. It uses Google maps Geocoder, GClientGeocoder, which parses a location from a string passed in. My code uses the returned JSON object to populate fields on a form which are then submitted to be committed to the database.

Thursday, April 19, 2007

Development underway!!

I've started developing MLTA, using what I would consider "best practice" open source technolgies; MySQL with Spring, Hibernate and Struts2 for the front-end, running on Tomcat. I've also started using JPA - I totally love it!! Annotations are the best thing to happen to Java in a long while IMHO. I am not a big fan of writing XML configuration files, so I love it that I can use Hibernate JPA annotations on my model classes and it all gets wired up.

One super gotcha that took me a while to work out was that you can't mix where you put your annotations within a file. What I was doing was putting the @Id annotation above the member variable declaration, than a @OneToOne annotation above a getter. This caused a "Could not determine type for: xxx, for columns: [org.hibernate.mapping.Column(yyy)]" where xxx was the target of the One To One and yyy was the column affected. Once I moved the @Id annotation to above the getter as well, everything worked. I'm sure it's documented somewhere, but seeing as I'm teaching myself using web resources as fast as I can, I probably missed a rule or 2 somewhere.

I had a look at the Spring MVC component, but I think I'm going to stay with Struts2 (aka WebWork). Spring has some nice stuff, but I just can't go past Struts2's xml vslidation and rich taglib, which is miles ahead of Spring atm. I'll keep an eye on Spring MVC, as I'm sure it'll continually be improving, but for now it's Struts2 for me.

Monday, April 16, 2007

Plan complete

Completed my business plan for my latest idea (to be known as MLTA from now on). I sent it to a friend and we're discussing options this Sunday when he flies down from Brisbane. If he's interested I'll partner up and we'll try and do it on the cheap to start, maybe getting investment if it gets too big for us.

I'm working on the code all this week, trying to get most of it done. I've had a look at Google Maps API and it's a pretty cool app, and it's given my some great ideas (and functionality) to use in MLTA. Programmable Web has lots of Web 2.0 APIs listed, as well as mashups that use them. Great stuff.

Thursday, April 12, 2007

Good lunch

I had lunch with David Bolliger of TILEFILE today. Very interesting. He's a pretty switched on guy, and he gave me some excellent advice. I've certainly got a lot to chew over.

I think the main thing I took away from the lunch was that I need to back myself 100%. I tend to look for validation from others a lot (even if I don't really care about it, which is weird). I also to focus less on being liked and more on getting shit done.

While lying in bed tonight, I've had *another* awesome idea for a .com, so I hopped right up and got the wheels rolling. I've registered the domain name already (you can never be too quick with these things I find), and will do the business plan tomorrow.

I've also made a minor modification to my Website Monitor program to add a 'Check now' menu item off the file menu.

Tuesday, April 10, 2007

Free software

I released version 1.0 of a web monitoring tool (Website Monitor) on my consulting site. It only took a few days to write, and I use it myself, but it's not something that I would ever sel. So I have released it under the GPL with the hope that someone will find it useful, tell others, and maybe drive some traffic/business my way. I'll definitely keep adding to the free offerings too, as I think it's not only a cool thing to do, it's also good business.

Friday, April 6, 2007

Search and web stats

I'm currently building a business plan template that I will use to try and get funding for my various ideas. It will be geared at pre-seed/seed investors with the plan running through to exit. I will probably offer it for free from my consulting site just to get some visitors.

Of course, in my research I dug up a few things that I didn't realise, or rather that I knew but never really pursued properly. One was that I need to submit my websites to search engines. I always knew that I needed to do it, but I never really dug around into the nitty gritty. The other thing I found out is that it is very difficult to get good web traffic statistics. Alexa's stats are skewed to those users who have the Alexa toolbar installed, and other stat sites use similar methods.

Finally, I've found it very difficult to get numbers for revenue from web advertising to put in my plan. The simple fact is that it's impossible to estimate how much traffic your site will get and what the click rate on your ads will be. More news later.

Tuesday, April 3, 2007

Mad month

Wow, what a mad month. With the full support of my better half, I quit real job ... it was just time. Scary, but so liberating. I'm feeling really happy and energised, I didn't realise how demoralising real job was. So now I'm trying my hand at freelance IT consulting (www.sjgoldie-consulting.com) and will also try and get some Web 2.0 sites off the ground.

On the Angel investor front I still haven't had much luck but neither have I been really looking. A friend of mine kows a company that is looking to invest though, so I will try and get a few proposals in front of them to see if they bite.

On the mentor front, I met an Aussie entrepreneur (at a job interview) and he's agreed to mentor me. Thanks David Bolliger from TileFile:) I have to set up a lunch next week sometime (hopefully). I just basically want to listen to his story and hope for some inspiration and insight. After that, hopefully David can help me with contacts and advice.

It hasn't all been up though. I've had to sell some shares in a company I helped setup, mainly because I got screwed by old real job. I had agreed with them verbally to do some contract work (about $10k worth), but after messing around for a few weeks, they backed out. What's really disappointing is, unintentionally or otherwise, they have basically got me to design it for free in the proposal. Live and learn I guess. Time will tell how they go, but unless I'm really strapped for cash I doubt I'll be working with them again. I have 2% of the company too, but no one to sell it to. Oh well.