Well we where a little fed up of the old Blog which was hosted over at Blogger (Did we ever mention we like using Google stuff?). We figured we may need to do some funkier stuff later on, we love Python and well Blogs are not that difficult to write anyway.Its pretty basic right now but we will expand it over time.
So welcome to the New Blog. Its sweet because its written in Python!
We recently revamped the dashboard to allow easier access to common tasks and to put the information you need at easy reach. When you login to your dashboard you will be shown the usage statistics for your account. The statistics are broken down by feed and a total across all the feeds and the graph shows historical usage for the previous 30 days across all MLS feeds.
It's been another hectic month here at GetYourIDX HQ. This month has mainly been about cleaning up some of the code that powers the service and making things go as fast as they can.
So what's new?
The biggest thing people will notice is we have been slowly refining the design of the website. We decided to use Blueprint CSS which makes the site work across more browsers. We are also in the process of refining how images are served by combining small images (mainly the icons) into bugger files and then doing CSS trickery to display the correct image.
We completely rewrote the Importers in Python, the first importers where written in PHP and each importer was completely independent from each other but now we have a pretty robust framework for the importers allowing us to take advantage of multi-threading but the main advantage is its now a lot faster for us to bring new feeds online and the imports require a lot less testing than they did with the old importers.
We found an excellent service called Chargify.com which we have decided to use for our billing system. Their service allows us to concentrate on our service rather than spend countless hours implementing the billing portions. Thanks to them we have more hours freed up to work on the core business rather than the extra internal tools which are required from a business point of view.
One of the developers we have been working with has recently brought online the first live web site using GetYourIDX data. Kim Nickerson, a realtor in Jacksonville, Florida now provides Property Search to her visitors using the GetYourIDX wordpress plug-in.
We have been experimenting with the Map Search feature and more information will be made available probably via a different blog post as it is quite an in depth topic.
Geocoding is something which we all need but not all MLS's provide Geocoded information for properties in their database, some do some don't. Our initial idea was to run geocoding as part of the import process, when we imported the properties from the MLS feeds we did a quick geocode lookup and updated the property with the latitude and longitude and then updated the property in the GetYourIDX database.
This appeared to work pretty good at first, however we soon found this was not a good idea.
As the number of properties grew so did the number of Geocode requests we had to perform. Hitting rate limits and failed queries started to become a big factor.
A properties geocode data will never change fo the life of the property. However, it was a quick performance tradeoff to relookup the data. We traded simplicity for a slight perfomance loss during import but this now.
You just can't geocode thousands of properties in a very short time and expect every query to come back successful.
I am a big believer of "If things are getting complicated then theres going to be a better way" and sure enough thinking about it there was a much simpler way to Geocode all the properties.
Geocoding is a nicity, its not really 100% required from the time a property is first imported. If geocoded data becomes available an hour after a property is first imported then thats not going to be a problem. We update each property with the changed data rather than import every thing fresh each night so the geocoded information is never overwritten between imports.
So now we dont perform geocoding of properties during the import but instead have split it out into a seperate process and run it periodically to check for properties which require geocoding.