urlShort 1.2.0: What's in store
Since I haven't been able to get much work done on urlShort 1.2.0 (as previously scheduled in the urlShort Project roadmap for release last Friday) I ended up having to push it back a month. Summer travel, and other projects (like re-launching mavrev.com yesterday) got in the way.
I will have all work completed and released by the listed date (July 24th, 2009), but I'd like to also give this extended time for development some input from everyone. Currently 1.2.0 is set to include basic modules (like the bookmarklet, Ubiquity command, Firefox extension, and random "real" example), caching of any non-essential data (currently only the counter for shortened URLs and the random example mentioned above), a global Firefox Extension for the project (including options to shorten via any service that tells me they're using urlShort like on the links page), and automatic copy to clipboard.
Now, why bother having modules for something as small and simple as a URL shortener? Quite simply, because not everyone wants to use any of the extra features that urlShort offers, such as the Ubiquity command or bookmarklet. Services like uri.is used the core parts of urlShort, and discarded the other elements. My goal with urlShort is to make it be a simple, yet feature-complete open source URL shortener and to do this there needs to be separation of core features, and those that are just added functionality.
The initial modules are all ones that have already been written for our urlShort service and will be offered as separate downloads and will (hopefully) feature plug-n-play installation. However, if that doesn't happen all that will be required are one or two minor edits (such as paste X above Y). The goal is, however, to make it as simple as installing Drupal modules or WordPress plugins. It is also my goal to make it easy for others to develop their own modules and additional features for urlShort so that it can be used for any type of work needed. People like Marc Perton will, in theory, be able to tweak urlShort to their needs, and then with a small amount of work release a module for urlShort so that anyone can get extra functionality out of urlShort. So, if you too want to run a service like uri.is, you would be able to without much work on your part, just like when adding new features to Drupal or WordPress.
Caching is purely a performance update that should have been there from the start, really, but wasn't. Only after our urlShort service started having problems did I delve in and fix them by caching the random example, and the counter for number of URLs shortened. But it's still not perfect - It's just a PHP script that updates it by running an SQL query and exporting the result to an HTML file, which index.php includes in the page. In short, it requires either manually loading the script every so often, or running a cron job. The ideal solution is to have it automatically expire, and rebuild the cache every so often (at user-configurable intervals ranging from 1 hour to 24) but that may not make it to 1.2.0, unless I can get it working properly.
The idea for a project Firefox extension came about unexpectedly. Originally, I had written a Firefox extension for our urlShort service based on code from a similar extension, TinyURL Creator. However, it wasn't very good and I eventually stopped trying to develop it with the same code. Instead, I looked for alternatives, eventually settling on the ShortenURL extension (which actually offers our urlShort service as an included shortener because of it's ease of use and great UI and features that I'd come to enjoy after using it for only a week. As I started messing around with the code (which you can actually browse on Google Code) I started to realize that I shouldn't just alter it to provide one service (ours) but rather any service running urlShort code. As with the links page, it will provide access to any of the services running the urlShort code, and also as with the links page, will be updated whenever someone else contacts me (or I find them) about using urlShort for their service. As the ShortenURL project grows and adds more features, I'll also combine them into the urlShort Extension, and vice versa (if I ever add anything useful that is ;]). It won't be included (well, linked to) in the default urlShort package, but rather as a module. It won't actually add any files to the site, but rather just place a link to the extension page in the footer (or wherever the navigation links are if they're using a non-default theme, but that's for another day) where the user can download and install the extension. Ideally, the user would download a version specifically for that site (either through a referral check or a string in the URL) that would select it as the default, rather than whatever was set as the default for that version release. Speaking of which, I don't want to be bias, and would change the default shortener at each release (unless different versions work out) to ensure everyone gets fairly equal exposure.
The last thing, isn't exactly what I want, to be perfectly honest. I'm not a fan of automatic anything, unless I set it as a preference. I want control over certain actions, such as copying of content. There is really only one way to ensure cross-platform copying: Flash. As much as I dislike to use Flash for just about anything, it really is the only way (as far as I know) to ensure cross-browser and cross-platform compatibility. Of course, there could be a flash button to click to copy, but that will always stick out from the rest of the page because it is a flash element, and not in the actual source as text or a link. But, there is still hope because I'm not at all experienced with flash. Maybe there is a way to stylize the flash text "Copy" based on the CSS of the site (if you know, leave a comment please). But to compromise with the people that want copying of shortened URLs, I'm going with automatic, flash-based copying using the zeroclipboard library. It's not a perfect solution, but it's close. This will be offered as a module for 1.2.0, rather than a core element because it is automatic, and not preference or user action based.
Since my personal deadline has been pushed back a month, there's still time for input on the next version of urlShort, even with events in the way. While we did close our first features survey (you can view the results if you'd like), I'm still very open to any feedback or requests for features for this, and future versions of urlShort. You can leave them in the comments if you'd prefer, or on the little-known, never-used project forums.
Cheers,
— ![]()






Comments
I think that you are really
Hewlett (not verified)
October 19, 2011 - 9:03amI think that you are really doing a great job with this Matt. You know exactly what to do and how to do it. You have answered almost all of the questions hanging on my mind. And for know I think I am going to check out first the result of your survey before participating in your "never-used" project forums.
Thanks for this!
Hewlett from Calcul taux intérêt
Great info Matt, thanks for
joyceematt@gmail.com (not verified)
July 21, 2009 - 1:03pmGreat info Matt, thanks for sharing that software with us :)
Post new comment