Archive for 'Tiny Geocoder'

TinyGeocoder Has Gone Plaid (Open Source)

It’s been a while since my last post, which honestly is a good thing. That means Tiny has been working flawlessly for quite some time.  I love seeing things “just work,” especially when they are my own personal pet projects.

It seems the service has been working too well though.  And unfortunately the time has come for me to move the service.

I apologize for the predicament this puts some of you in right now as I know we’ve had applications built off our service.  Generally, I’d rather do the “right thing” and let you all have some time to migrate.  The problem though, is that the success of this project has begun to hamper my own projects (and income).

Since it’s inception, Tiny Geocoder has served, at last count, 2 million geocoding and reverse-geocoding queries per month (and growing).  With that kind of success comes pain points.  The biggest pain point is our servers.  We simply can’t keep up with the amount of unique queries which get served every month. Unfortunately, we have some other (profit-making) projects which are of utmost importance to our San Diego based web development agency as well as my (and my family’s) personal needs.  We now have three projects sitting on the same servers and the hammering we’ve been getting lately on the geocoder has been also destroying our uptime and increasing our latency for our other freshly minted (but currently private) projects.

This means our new clients and partners are getting the short end of the stick, and they’re the ones keeping our lights on.

So, because of some extenuating circumstances which put us into a position where we had to make a very fast decision, we’ve tried to do what we could to keep the spirit of Tiny Geocoder alive – namely open-sourcing the code on GitHub.  We wish we could have had more time to let everyone know before we took it down, and we should have taken your email addresses so we could keep in contact about the service, but simply put, there just hasn’t been time nor resources.

Please accept our apologies for the timing and lack of forewarning.  We hope to make it up to you by giving you the code fully and outright.  Other than the fact it’s been migrated to use SQLite, it’s the exact code we’ve been using for years.  Please feel free to download it, commit changes and enhancements to it, and generally improve it for society.

Thank you for all the amazing years, queries, and value that you’ve added to my ego and the service itself.  Please keep the ball rolling and give to others by committing amazing things to the now public code base.

Sincerely,

Nate Ritter

Issues with Geocode.us and Documentation

The past few days were unfortunately fraught with errors because of some issues we’ve been seeing coming from geocode.us and it’s service.  Temporarily, we’ve removed them as a data provider until we can figure out how to put them back on without disrupting service again.

Additionally, we’ve had a (very valid) request for (long overdue) documentation.  At the moment, there is no documentation for what should be returning if things go wrong with a request.  In the past, we would always return an address.  However, there are times when this isn’t always the best idea.  So, we’re starting to document our internal error codes and we’re looking for an easy way to reply without breaking your applications as they are already created.

In the future, we may even need to version our API so we can create new services.  In all, please keep the feedback and comments coming.  As you may already know, we do listen and we do take action on your concerns.

Thank you.

Fixed no-response issues

Thanks to a few of you for pointing out a flaw (and sending in the addresses you were using) in the tiny geocoder recently, we’ve found and fixed the issue which recently crept up where the server would respond with a 200 http code, but have no contents in it’s response.

We apologize for the problems this may have caused and encourage you to let us know if you see any other issues.  You can help us by sending us the address and/or the lat/long that you’re attempting to send in, so that we can find the issue and fix it.

Thanks again peeps. You make the service better every day!

Downtime Resolved And Source Discovered

Alrighty, let’s get this whole “downtime” issue out of our vocabulary now. That was a very long and unnecessary stretch and we’re very sorry for the inconvenience. We received scads of phone calls, emails, and tweets regarding the service being down and thankfully (kudos to all of you!), we weren’t scared off by the comments.The thing with computers and networks is that problems can occur. We always try our best to prevent it happening but even when you are using the best computers or fast speed internet like Broadband, problems can still occur. It does make a world of difference to us however when we recieve information from you about what problems we are having and how we can improve on certain things.

Again, you are why we do this.

So, thank you for being so nice when we’ve struggled.

Here’s why we went down:

  • It started with some crazy database crashes, which we fixed quickly by increasing the number of connections allowed to the database.
  • After quite a few more times of needing to restart the database service and apache… and scratching of our heads… we finally figured out that the reason the database was continually crashing was that we had run out of space on our hard drive.  That crashed the database, did nutty things to the tables, and more.
  • So, we added some notifications and enabled some restrictions so that we get alerts now when we get close to capacity.  The nice thing is the table in question is just a data repository – not needed for operating anything – so we just backed it up for posterity, emptied the table, and voila, we’re under capacity and everything’s back to normal.

What we did find out in the process was that we hit 26 million queries.  That’s just crazy.  With this kind of service, having to do this type of maintenance every 1-2 months is doable, but not really on my top list of things I want to do on a Saturday.

Thus, we’ve come to this… we’re considering how to monetize this service so that we can pay for either moving into the cloud or increasing our service at our outstanding host.

If you have any ideas – things you’re willing and wanting to pay for – we’re all ears.  Paying for the service, even in small chunks for the biggest users, would be a huge step up for stability.  “All for one, and one for all.”  We’re for you.

Bring your thoughts … we want to hear them.

Unexpected Downtime

So, as many of you have probably noticed, we had some unexpected downtime in the past 2 days.  We’ve since fixed the issue permanently and shouldn’t see this kind of problem again in the future.

Thank you all for your patience.

New JSONP (JavaScript Callback) Support

I really love great suggestions. A few days ago David Evans from CanTab sent me an email suggesting an additional feature be added to Tiny Geo-Coder. He was kind enough to send along an example of what the new API call might look like and what the response might look like. It was so simple, I couldn’t resist.

This evening, I implemented JSONP support into the Tiny Geo-Coder API (JSONP in Wikipedia). So, now, as the documentation explains, if you send a querystring variable titled “callback” with the value being whatever function name you’re wanting to use, you’ll receive it back, wrapping the geo coordinates (or location, if you’re doing reverse geo-coding) in your function.

David explains the use case for this best:

The beauty of this is that it allows you to use the API in AJAX apps without running into problems with the same-origin policy.

So, there you have it. Go run off and create some awesome AJAX apps and report back to me what you’re doing so I can give you some props here on the blog.

Cheers,

Nate Ritter

Nate Ritter

13 Million API Queries Later …

As you may know, I created this nice little service back in March of 2008 but didn’t release it publicly until around November 2008 because I didn’t think it was that valuable. Boy was I wrong. Apparently it’s been valuable over 13 million times to many of you who are reading this today since early December ’08.

That’s freaking amazing. I honestly still laugh at the simplicity of the app and think it’s hilarious that people are even using it. But, at the same time, I fully understand how much it’s needed now.

In case you didn’t get that, it’s been about 6 months and we’ve had 13 million queries on our API (if you can even call it that). That translates to about 3,000 queries per hour or 50 queries per minute. I’m actually amazed we haven’t gone down more often or run into the infamous “620″ error more. I mean, I know it’s simple, but still. I’ve never personally created anything (by myself) that’s gotten this much use before.

Regardless of how that gets me all up in an excited tizzy, the real thanks goes out to you! Thank you for using the service. Thank all of you who have given feedback and suggestions. Thank you for linking to this site, writing stories about it, blogging about it, and spreading the word. Thank you for thinking it’s useful and using it. You deserve 13 million thank you notes.. but don’t worry, I won’t spam you with that.

Please, as always, let me know what I can do to help you with your app. Also, please don’t be shy in letting me know what you’re doing with it. I would love to start highlighting people’s projects and companies who are using the service. I’d love to share the “thank you” with some link love and press for ya.

Thanks again! Keep on geocoding!

Nate Ritter

Nate Ritter, Web Chef

A Mere 3 Hours Later… Tada!

A mere 3 hours ago I posted the first blog article for Tiny Geocoder about the imminent redesign. Well, all I have to say now is… Tada!

Big thanks go out to the folks at Woo Themes for their awesome WordPress theme magic. I just ripped the theme into static HTML using Site Sucker, did some customizations of my own and voila, here we are.

As far as I can tell, everything works just fine. I didn’t touch the API, so that shouldn’t have changed one bit. But if you see any problems with the design, don’t hesitate to let me know.

Cheers!

New Design Coming Soon

First, welcome to the blog

Before we get down to business, I just wanted to take a second to thank you for dropping by. The Tiny Geocoder service has been functional since May of 2008. After a great chat with and some convincing by the folks at my local NPR station, I decided to publicly release it in August of 2008. Since then it’s hit some pretty big press like Lifehacker and others. It’s been a great ride and I’ve had the fortunate(!) problem on multiple occasions where our servers got slammed with so many queries that it couldn’t handle it.

Unfortunately, that still happens every now and then even to this day because we need about $1000/mo to keep from hitting our limits. We don’t have that kind of money, so we do what we can with what we have.

In the meantime, I’m happy to have been helpful to so many services (see a few of them in the sidebar to the right). The app serves an average around 120k – 200k API hits per day and will probably continue doing so without a hitch.

New Design Coming Soon

Now that the service is almost 6 months old I’ve been prodded to make a modification to the design of the site. Well, not really a modification… more like an overhaul. Luckily this little site doesn’t have much code to it, so it’ll be pretty simple. But, I’m excited to get down to it and make it easier to use and understand.

The incentive behind the design is to get highlighted on Single Function. Whoever it is that runs that great little service over there had some great suggestions regarding a site redesign… I like suggestions, so I’m going to do it before we get listed on their site.

A note about this blog

I don’t really believe I’ll be updating this blog too often, but I do expect when I do it will be the place I will announce feature/service changes, known outages, and other Tiny Geocoder news. I’ll also probably add a few feature posts here and there about the apps and people who use Tiny Geocoder as well as geocoding in general.

As always, if you have any suggestions, I’m happy to listen and most likely implement. I enjoy providing the service and people have generally been super nice, so I’d love to hear more of what you’re looking for from a simple service like this. Speak up and you will be heard.

Thanks again… happy geocoding!