Skip navigation

The past 2 months have been incredibly stressful, trying to balance my University study with the development of the website. I suspect the next 24-48 hours will be also incredibly stressful as final features and fixes are added to the site for preparation to take it live.

Hopefully the site will be up within the 48 hour mark.

As to whether the site will go down in flames or gains a foothold, I don’t know and frankly I’m not thinking too much about that at the moment.

EDIT: It looks like the user profiles search is now working. However I am still trying to get pagination working. Without pagination, the search would be pretty much useless.

Advertisements
The screenshot below shows the top half of the code of the User.php file. The User.php file represents the users table in the database, and its business logic. Baiscally, it represents a user. You can’t see any of the actual coding but you can see the structure of the page 🙂
Near the top of the page you can see a weird structure. That’s actually one large array declaring an HABTM (has an belongs to many) relationship with another table, and another large one declaring the validation rules of form fields.
I use the lightweight Notepad++ text editor, which has a nice feature where you can hold down CTRL and use the mouse wheel to zoom in and out. It’s nice for seeing the overall structure of the page. I also use it to make the font larger when I start to get eye strain.
code scroll

code scroll

EDIT: I want to show you one more thing. Here below is another screenshot of the bottom half of the same page. The part highlighted in the gray is the search method that searches for other penpals based on search criteria input by users. Notice how large the method is! (this is a bad thing)

big method

big method

Here I am, one day away from launch and the user profiles search for the site isn’t working! LOL. Another delay? Maybe, but not for too long.

As I said before, I’m using CakePHP which is an excellent PHP framework for web development. Despite its awesome power sometimes you still need to bring out a custom mysql query or some other form of hack to get the results you want.

The user profile search is somewhat complicated, because you’ve got to be able to search for others based on age, gender, and of course the languages they are learning and which ones they can speak. Definately not a trivial search.  Also, it can get pretty frustrating when the search returns so much data that it exhausts the PHP page memory. I absolutely hate pulling out hacks, but I might have no choice.

Deploy first, “fix” later?

Here is a quick summary of the progress towards launch day (scheduled for the 28th Australian Eastern). The local time is currently 5:05AM on the 26th July 2008.

THE CONCEPT
The concept is simple. The website is a language exchange profiles site. In other words, a penpal site.

THE NAME
The name and domain name of the website will be released on launch day.

THE HOSTING
I just signed up to Media Temple Dedicated Virtual hosting (dv), and I’m paying by the month because I can’t afford to pay upfront for a whole year. I did say I was going to sign up to the Grid (gs) plan, but giving it A LOT OF thought, I decided I’d just go straight to Media Temple’s Dedicated-Virtual (dv) plan for $50USD a month. The web application is custom built in PHP using the CakePHP framework, and it’s a user profile website – that combination seemed very unsuitable for the Grid plan due to guesstimated resource usage (it’s very difficult to actually estimate). What’s more, bugs are to be expected in the coding and it’s not unlikely that the web application will be a resource eater until the bugs are addressed. If I were on the Grid and started eating up resources it could qualify as resource abuse. However if I ran a blog or a personal website, I’d host it on the Grid, definately. More information on hosting later. I am currently familizaring myself with the (dv) control panel. It looks clean and beautiful.

THE MARKETING
I’m a newbie in marketing so I’ve been rather unprepared the whole way long. I have been researching Google Adwords as well as guerilla marketing methods. The idea is to clearly project to others what the website is about and inject passion into it. That should be no problem because I’m already passionate about language learning (currently learning German). Deutsch zu schreiben und sprechen gefaellt mir schwer aber ich lerne gerne 😉

MARKET POSITIONING
Obviously there are many other penpal sites out there. One thing that I did not research when deciding to develop the penpal site was how many there are already on the market! Unfortunately, I only figured this out just a month or two ago. It’s going to be near impossible to compete (I believe), but having put hundreds of hours (maybe over 1000), it would be a huge waste not to try anyway.

Also, I’ve had to change the focus of the website several times in the past month, in order to differentiate against other penpal sites. Will it be enough? Only time will tell.

I know I’m being rather vague, but that’s deliberate 🙂 You’ll see the website on launch day.

GRAPHIC DESIGN
Graphic design was done (and is still being done) in Adobe Illustrator, Photoshop and Fireworks. I previously finished the logo but now I need to change it again because of a last minute change website name!

The site is pretty simple looking (and also simple in general).

SITE DESIGN AND DEVELOPMENT
Due to limited resources (there’s only 1 person on the project, me) the website is very simple and is not feature packed. I think I’ve covered all the basic features, though.

There are many bugs I still have to fix, and a few features to put in! So I better get to it!

As always, more info coming…

Okay, so the title’s a bit provocative and documentation for mission-critical software such as those used in aviation and powerplants must be better documented. But generally, I think web developers enjoy the highest standards of documentation in the software industry, with game developers “enjoying” the worst.

From my own limted experiences so far, web development frameworks have the most understandable, most friendly and most thorough documentation in the software development industry. You think I’m biased because I am a web developer.

Not so. My university education has not been about web development at all, instead focusing on games development, which is primarly done in C++ and other languages and frameworks geared towards game development. My experience with the documentation in the games development world has been a nightmare. My first bad experience was with the Unreal documentation. I spent 2 semesters working with Unreal and seriously I hope never to use it ever again. Ever. Actually during those 2 semesters I was playing with PHP and neglecting my Uni work a little. Later, I came to use open source physics engines. If Unreal was bad using the documentation for these engines was a trip through hell and back and to hell again. What annoys is highly incomplete documentation, but also partly pieces of example code completely taken out of context therefore, useless. Despite my majoring in games development it’s highly unlikely I’ll pursue that as a career, in part because of crappy documentation but largely because of the impossible-to-enter industry.

In contrast, look at the documentation for CakePHP, django, symfony, codeignitor and Ruby on Rails. I think it’s just a breath of fresh air!

The opinions presented in the post was based on my own limited experiences so far, and so may not be representative of reality. If you disagree (or agree), please post a comment. Change my opinion if you will.

I posted about choosing a webhost a few days ago and listed some webhosts that I was considering to use. MediaTemple wasn’t one of them, but I’m pretty sure I will go with Media Temple’s Grid (gs) plan for $20 a month. This is their lowest-end plan.

Yes, I have heard that lots of people had a lot of problems with Media Temple’s Grid hosting plan – downtime, slowness, the whole lot.  So why am I considering Media Temple’s (gs) plan? One reason is that I really like their higher end dedicated virtual (dv) plans a lot and MT doesn’t seem to have any problems with them. So, should the site become successful and draws significant traffic, I want to migrate from the (gs) plan to their much more reliable (dv) plan anyway. I think it’s MUCH easier to migrate a site within a hosting company than between hosting companies.

Second reason – MT’s site looks awesome. Yes I have heard the mantra, “Don’t judge a book by its cover”, but the awesomeness of MT’s site seems to point to their passion and commitment to what they do. I can judge companies for their up-time, support, pricing, technology etc, but I believe that passion, above all, is what’s most important. And MT shows it. So I’m pretty sure I’ll be hosting with them.

The third reason – MT’s worst problems with the Grid was back in 2006 and 2007. It appears the Grid has stabilized a lot more since.

The fourth reason – Notable companies such as Adobe and Starbucks have dealt with/are doing business with MT. This probably isn’t a really good reason, but still it gives me some confidence 🙂

The fifth reason – MT has a AA rating from the Better Business Bureau.

The sixth reason (and probably the biggest one) – Intuition!

The ‘Web 2.0’ website I have been working on is a user profile site for language learners. In other words, it’s a penpal website. So, it’s not exactly a new idea. As a consequence I’m seeking to differentiate it from other penpal sites, but until the launch I’ll have no idea if it’s been differentiated enough to take off.

More info is on the way …

Financial viability in terms of bandwidth usage. Now that’s something I didn’t think much about. Now I’m feeling pretty depressed after doing some maths on bandwidth usage.

Mathematically, it’s extremely unlikely that the site’s revenue (if any) will be able to cover its own bandwidth costs when launched. Taking into account all of the users’ submitted media, the bandwidth usage would skyrocket way past a budget host’s limit. Also, Google’s Adsense (which is what I hope to implement) is a poor revenue model for social networks/profile sites. And that’s all assuming the website will attract users, which was never so likely in the first place.

Very depressed.

But Harper Lee’s Atticus once said, “Courage is when you know you’re licked before you begin, but you begin anyway and you see it though no matter what“. Licked is a slang term for “defeated”. That quote has stuck with me since studying the book To Kill a Mocking Bird in 9th grade.

So that is what I am going to do.

Besides, it’s never all for nothing. Regardless of how the website turns out I will have learnt about many things –

  • Web development in general
  • PHP
  • The CakePHP framework
  • SEO
  • Making good content
  • Some marketing strategies
  • The software development process
  • Information Architecture
  • Time management
  • How much time a simple web application really takes to build!
  • It’s a bad idea to be a 1 man team! Have at least 2 or 3 programmers in a team.
  • What I’m talking about in this article.

Oh, and I’ll definately put the on my CV as one of my personal projects 🙂

But let’s not be so self-centered, yeah? With what I’ve learnt I will –

  • Write tutorials to help others with the programming problems that I encountered during development
  • Write tutorials about the development process
  • … and many other tutorials

Alright. Enough writing. It’s time to get stuff done! And remember the quote.

Nothing but headaches over here.

I have to make several changes to some forms because of usability issues. What this means is that the backend code also needs to change too. It’s a lot more complicated than I first thought. A seemingly simple change to the user interface layer can cascade right down to the database layer of application.

One of the problems I’m having is the use of multi-select boxes (the box where you hold down CTRL to select multiple things). This form element is a usability nightmare. So now I’m refactoring the multi-select boxes into several, single dropdown menus. This means I need to rewrite some backend code as well.

Usability issues aren’t the only problem. There are a few fundamental issues with the database design too. I’ve also done a fair amount of poor programming and lots of code needs to be fixed!

The revised launch date is now the 28th of July 2008 (hopefully I won’t have to change it again)

Soldiering on …

Looking for webhosts is so incredibly difficult. However, I’ve come down with a shortlist:

HostMySite

LunarPages

Dreamhost

HostRocket

Netfirms

Those hosts are all in the United States. I decided not to host in Australia although I live here, because the hosting in the US seems to be better. Truth be told, the Internet infrastructure here in Australia isn’t as developed as in the United States. I just couldn’t find Australian webhosts that suited my needs and I could afford.

I considered the following criteria when looking for the webhosts:

  • Their website presentation (do they use CSS and does their site validate?)
  • Extensibility (if I grow out of shared hosting can I upgrade to VPS or Dedicated?)
  • BBB rating
  • Does the company oversell?

Picking a webhost is HARD!