Programming ideas

I’m not a very good programmer. I think the biggest reason for that is that I’ve not had enough practice at it. I’ve written plenty of apps and web sites but most were very simple. My latest app, whats-hot-weekly.com is actually a simplified version of another app I wrote that is located at givemeaniche.com. There are many differences between the two apps even though they basically do the same thing. The exception to this being that givemeaniche actually shows the most searched for terms as well as the most watched items.

The hardest part of it all is coming up with new ideas for serious work projects. I have a few but being a solo developer, designer, etc means that I’ll have to put some time into them. Any ideas for apps and websites would be much appreciated.

Twitter and me

I first tried twitter about a month ago. I wasn’t very impressed, at the time. I have this theory that we are actually going backward in usefulness on the web. Back in the 90’s we had web apps that did a lot more than twitter, yet twitter is supposed to be sooooo amazing.

Well it is. Here’s the thing. As the internet get more and more crowded, certain things become more and more popular. Marketing is getting extremely popular on the internet. That’s not to say that marketing hasn’t been popular on the internet for many years. It’s just getting exponentially more popular. Twitter is a marketers dream. Facebook is another that works great for marketers.

You see, these apps are just less robust versions of old forum software. They are also meant to grab a larger audience where forums are meant for a smaller niche. This broad audience and simplistic design make these apps extremely useful for advertising. Unfortunately, the normal user will see less functionality from these apps than software from 15 years ago. Those users won’t understand this, however, because they have never been exposed to that older technology. They just know that all of their family is on facebook or myspace. So they join the sites and start getting bombarded with new advertisements.

If you are smart, you’ll jump on the marketing bandwagon soon. There’s a lot of money in it.

responseXML.documentElement is null or not an object

Ok I have yet another reason to loath IE7. I had an error on Whats-hot-weekly.com earlier in regard to this error message on my ajax XML object:
responsexml.documentElement is null or not an object
Everything worked in Firefox, Chrome, and even my Nokia N810’s browser, but IE7 just wasn’t going to cooperate. I knew that it was working last night, but I made a few changes before going to bed.

Two of the changes I made was in relation to the meta tags in the HTML of the main index page. I added keywords and description for search engine optimization. Little did I know that one of these was the culprit.

After much Googling, I came upon this article. In it I immediately found the reason for the error. It should have been a little obvious but I had overlooked something simple. My search box for entering in keywords had an id(and name) of “keywords”. The new meta tag for keywords also used the “name=keywords” attribute.

In the article, it was the “description” meta tag that had caused the conflict. Upon evaluating that, I realized my mistake. This effected IE only because IE checks the name attribute when you call document.getElementById. It was grabbing the meta element instead of the search box.

I hope this helps someone else, in the event that all the variables fall into place for this to happen again.

eBay Most Watched Items

Well, after a few days of serious development, I’m releasing the beta of my site. It’s called whats-hot-weekly.com. It is basically a “most watched items on ebay” site. With it users can find what everyone else is looking at.

One can search by keyword/keyphrase, by category, or by both. The interface may need a little polishing, but it’s functional. There is at least one minor bug that I’m working on. The site will continue to improve, and I’ll be adding forums soon, so that people can report bugs and discuss what they find.

Don’t forget to let me know what you think by commenting here or by emailing me at the address listed on the site’s home page.

AJAX Cross Domain Work-around

Any of you that are AJAX developers can skip this post. I’ve just recently started concentrating on AJAX for a project I’m working on. In the past, I’ve used PHP to parse XML returned from various web services and it goes off without a hitch. I also wrote my own web service in PHP for this project.

The project is basically a site that works with the eBay API to pull the most watched items for any keyword search phrase and by category. I’ve pulled all the categories to a local database. This will allow me to avoid using an API call every time someone clicks through different categories. All the categories are in an AJAX menu system I wrote. The menu is completely dynamic and loads the categories and subcategories using calls to my web service. This part was fun because it gave me the opportunity to create a web service and this in itself was worth the time I’ve spent on the whole project.

I ran into a road block however, because I wasn’t aware that AJAX doesn’t allow cross-domain calls. At least from what I see, it doesn’t. I started getting an error 1012 “Access to restricted URI denied’.” This means that the actually calls I would like to make to the eBay API won’t work through AJAX. I wrote the code to try to do so and kept getting this error. That’s when I found out that it wasn’t possible to do this using AJAX. It’s fine in PHP, however. So, here is the work-around I’m brain-storming. I know it’ll work. It’s just a matter of doing it.

The work-around is simply to write another web service in php that makes the calls for me. Then use AJAX to pull the info dynamically from the localhost. The up side to this is I can also log various stats about the calls within the web service as well. I could create a table in my database to log the searches, time of day, IP address of user, and so on. This will allow me to understand how the app is being used, who’s using it, when they are using it, and what they are using it for.

This is also known as using AJAX through a proxy. Where the proxy is the web service on the localhost from which one can make an AJAX call to.
So, I’m off to code another web service.

Best Cross-Platform FTP Client/Server

Due to my recent web site development work, I’ve been in need of good FTP client for Windows. In the past, I used SmartFTP but it was a free trial or it may have actually been freeware at one time. I liked it, but it’s hard to make a bad FTP client for Windows. Pretty much all FTP clients have the same features these days anyway.

So I thought it’d be a good time to find a free open source FTP client for Windows. It didn’t take long for me to dig up Filezilla. I have to say, I like it. It’s not spectacular or amazing. I really don’t see why an FTP client should be. It is lightweight and works as expected. That’s all one should expect from an FTP client. I like programs that keep it simple and Filezilla does that well.

Another advantage to FileZilla is that it is available on all platforms. I prefer it to anything I’ve ever tried on OS X. For some reason a lot of Mac lovers like some program with a duck in it. The name escapes me. I should take the time to google it but I just don’t have the time at the moment. File Duck or Ducky….Something like that. At any rate, that program has a very Mac feel to it but I don’t like that I have to use it with finder. I think a lot of that comes from the fact that I’ve been using FTP clients for quite some time and it’s just not intuitive to me.

FileZilla is available on Linux, Windows, and OS X. I’m pretty sure it’s available on BSD as well. Once one is familiar with it on one platform, it’s the same on any other.

I’ve limited experience with the server version of FileZilla. From what little experience (from XAMPP) I have with FileZilla server, it seems pretty good. I personally don’t have a need for an FTP server in Windows, and if I did, I would probably use the built-in FTP server in IIS, since I run Windows Server 2008. But if all one needs is an FTP server, Filezilla appears to be an excellent choice.

Tips for Finding Cheap Website Hosting

Starting a website isn’t hard. It’s much easier than one may imagine. There are many things to know before starting, however. By asking key questions like how the site will be used, who will be accessing it, and what features it will need, will make the task much easier.

Websites start out as an idea. There are three main types of website. Personal websites normally are used to display family photos, communicate with relatives, or display a personal interest. These websites have been very useful for many to get more familiar with building websites. They are the modern scrapbook. However, they are becoming less common these days due to another form of website. The community (Web2.0) sites have been taking the place of many personal sites. These online communities try to replicate real-world socialization. The final type of website is the business website. These are used as store fronts or to display related information about a company. They can also be used as portals for business employees. Knowing which of these types of one wishes to create is the first step in finding appropriate hosting.

For personal sites, a small hosting package is normally good enough. Minimal money will be spent on this type of site. If one plans to set up a community-based website or a business website, other more expensive hosting options will be needed. No matter which type of site is being built, the first thing that will be needed is a domain name.

The very best place to grab a domain name is GoDaddy. For around the price of lunch, a domain name can be purchased for a year. So, it’s cheap to buy a piece of the web. The hard part is finding the domain name. The big three top level domains are .COM, .NET, and .ORG. Finding a domain name within these three TLDs is the best, but very difficult. There are many people called “squatters” who buy up domain names just to resale later. Try to think of something clever and catchy that is related to what your site is going to be about. Limit the length of the name as much as possible. It’ll be essential that visitor be able to remember the name for later. Godaddy has a great tool for checking the availability of a domain name and suggesting ideas for other names related to your search.

Once the domain name is found and purchased, it’s necessary to have a hosting service. Godaddy also offers hosting, however hosting is a very competitive market and it’s easy to find unlimited shared hosting for very little. For instance, here are some examples of very cheap unlimited website hosting on eBay. If one needs good support it would probably be better to go with a company like HostGator. While the eBay hosting packages will cost around $10 per year or (in some cases) for life, HostGator will cost around $10 per month. It can not be stressed enough, however, that HostGator is a reputable company that will deliver the best product. “You get what you pay for” is very correct in this case. The HostGator plan also allows one to host as many sites as they want all for the same month price. Omnis Network also offers great deals on domain names and hosting plans.

This hosting is great for any of the three types of websites, but if the site has potential to receive a lot of traffic, it would be best to go with either dedicated servers, colocation servers, or VPS.

Dedicated servers and colocation servers are the most powerful of the lot. These are real servers that the user has full control over. They are, of course, more expensive. Dedicated servers are basically servers one can rent that are in a data center on a dedicated internet connection. Co-locations, “Colo” for short, are dedicated servers that are owned by the customer and placed in a data center like those used by the dedicated servers.

VPS is just alphabet soup meaning Virtual Private Server. It’s a dedicated server in a virtual environment. VPS is usually cheaper than true dedicated servers, but offer many of the same features. The customer is the owner of the server. They have full admin rights and can do whatever they want with it.

VPS, dedicated, and colocation servers are typically harder to maintain. They require more technical know-how than shared hosting or managed hosting. The customer is the administrator on the server and with the complete control comes complete responsibility. Unlike shared hosts however, dedicated servers and colo servers are completely dedicated to a single customer. There is always potential, while using a shared host, that the server will become slow due to heavy load from all the many sites it is hosting. Proper load balancing usually takes care of this but it could still happen.

So in conclusion, if someone wanted a small site for personal or small business use, the cost could be as little as $20 bucks for the domain name and hosting for a year, using Godaddy and eBay. For best results, however, it’s recommended to buy hosting from a reputable company like HostGator or Omnis. One hosting account will allow for as many websites as one wishes.

Browser nuances

I’ve recently been working on a new site. I prefer to write the xhtml, css, php, and javascript without using any WYSIWYG interface. This is great for a few reasons.

  1. I can practice coding
  2. I can manage my own code better
  3. I can verify that the code is W3C compliant
  4. PHP/MySQL doesn’t preview very well in pre-Dreamweaver CS4 WYSIWYG environments.
  5. Neither does javascript

I personally switch back and forth between three editors. I use Vim as much as I can. I love that old editor. I use Notepad++ mainly for vbscripting and quit web page edits. Finally, I’ve found that I love the code view in Dreamweaver. It’s a great tool. So, now that I’ve gotten that out of the way, let me explain the one thing I can’t stand about web development. I love everything about it except for ……browsers. All web developers will tell you that writing web pages for Internet Explorer, Firefox, Opera, and now Chrome is a headache. It’s not that writing a webpage is a headache. It’s the fact that each of these browsers have their nuances. Here’s an example… I’m working on a fluid layout for this new site. I have a search box that sits in a div in the upper left corner of the browser window.

Here it is in IE7:

Nuance 1 IE7

Notice the border around the search box. It goes above the top of the browser. This is because I’m using a negative margin value to move the search box up. I did this because in Firefox the search box was too low. I was developing the site and previewing in Firefox to check my code. So I adjusted the CSS in relation to what I saw in Firefox. Here’s the same element in Firefox:

Nuance 1 FF

Again notice the top border of the search box. In fact, notice that the whole box show up in FF. Here’s the same example in Google’s Chrome browser:

Nuance 1 GC

You may be saying to yourself, “that looks exactly like the Firefox example. You would be correct but here’s my second example of nuances. Here is my category menu just under that same search box…in Firefox:

Nuance 2 FF

That’s how I wanted it to look. I’m using jQuery to get the rounded edges in the inside div. Check out the same edges in Google’s Chrome:

Nuance 2 GC

When one spends hours trying to make a design look the same across all browsers, it’s frustrating to say the least. I haven’t mastered it yet. I would really rather spend this time adding AJAX to the site so that it will be functioning and ready for deployment.

Brand new Blog

Well I decided to start over with this blog. It’s been a while actually since I started this site. I had an idea for an ExpertsExchange type site where everyone could help each other. That will probably reach fruition later this month, at least the early stages of the site will. I recently severed my employment to pursue a work-from-home endeavor. I should have plenty of time to work on my site and blog now.