Living Car Free - Offline multi-mode transport planner - Open Source

Bikeforums.net is a forum about nothing but bikes. Our community can help you find information about hard-to-find and localized information like bicycle tours, specialties like where in your area to have your recumbent bike serviced, or what are the best bicycle tires and seats for the activities you use your bike for.
swbluto
10-18-09, 08:11 PM
Hello. I'm starting an initiative to create an offline multi-mode transport planner. Basically this means if you have a laptop, netbook or some other computational device (iPhone, maybe? Someone could port or fork the source code, I'm sure.), it can be used while you're out and about. What I'm envisioning is something like google-maps where you can customize and import information onto the map and make general notes (Like maybe download trail information, import information about businesses so you can find where the nearest "enter store/shop/business" is), combined with a transit planner that'll allow one to point and click where they're at and where they want to go, and it'll automatically come up with an optimal transit plan that may or may not include the bus/sub/whatever.
In doing so, I'm trying to solve problems like...
-Most transit planners assume your mode of transport to the bus is walking. This has the disadvantage of limiting your walking range and how quickly you can get somewhere, which limits all of the possible bus/transit combinations and thus limits finding the BEST route that you could with something faster and have a greater range like with biking. I know I've been in many situations where if only I could bike that 1.5 miles from here to *that* bus, I would've been able to skip that highly undesirable 35 minute waiting time at the transit station while also substantially cutting down on the travel time.
-Most transit planners are proprietary, which means you can't add extensions to address the above problem or any other problems. This really sucks since I thought transit planners should be a public good, and thus it should be public owned and publically extensible, but it's not. An open source alternative should eliminate this barrier of disallowing public users to further the public good.
-Most transit planners are EXCLUSIVELY ONLINE technologies. Unless you already have an expensive cellular contract or are in some kind of wireless network utopia, you're likely to encounter a time where it'd be nice to have access to a transit planner because you suddenly want to go *there*, but it's just not available. Traditional planners lack flexibility when you're offline, and this makes "spontaneous" transport decisions pretty much impractical, which cars have the superior advantage here. I want to make spontaneous travel planning a reality, no matter where I am, without relying on a car.
-Most transit planners are not graphical - that is, you have to enter an address and you better pray that the planner recognizes it. While not specifically a problem, it's just simply not as easy nor as quick as pointing where you want to go and where you are. I just noticed that this can be a hassle finding the "correct address" that the computer will accept when I don't exactly know what the nearest intersection is called which can happen when I'm in a "foreign area", and it'd erode precious time in spontaneous planning when buses are on fairly fixed schedules.
Now, does anyone know of any group that's already pursuing this? Also, does anyone know if anybody besides myself would benefit from this? I kind of noticed I'm just about the only one on the bus with a laptop (A 9" 2-pound netbook, more precisely) and there seems to be only a very few bike riders who use the bus (Probably due to the unreliability of having bike-rack space available.), so I'm thinking that I'm just about the only one who would benefit from this. Well, everyone with a laptop or other computational device could benefit from the spontaneous planning, but bike riders and other people with speedy transport methods would be able to especially benefit. I'm thinking that most people on the bus don't have laptops because many are poor to begin with, and that those most with laptops might actually be encouraged even more to make use of public transit, which would make me happy. More transit users = less cars on the road = better biking. :D Also, possibly, the bus audience's standard might rise a little. :rolleyes:
old and new
10-18-09, 08:52 PM
Compelling... untill I've taken it all in, I've only to begin by saying that buses for example, to be utilized, must be understood; paterns, scheds... seems obvious but having had to rely on such everywhere from S. Cal. to NY to the South, I'm convinced that mass transit is under utilized by many, simply based on a few oversights.
To understand it can only help. One can't rely solely on the transport Co. either.
old and new
10-18-09, 08:53 PM
for information pertaing to their services that is
Dahon.Steve
10-18-09, 09:48 PM
-Most transit planners assume your mode of transport to the bus is walking. This has the disadvantage of limiting your walking range and how quickly you can get somewhere, which limits all of the possible bus/transit combinations and thus limits finding the BEST route that you could with something faster and have a greater range like with biking.
This is a massive undertaking.
There are thousands of bus lines providing routes that are NOT even posted or done in a very poor map! I can just imagine how hard and large the software would be since in order for this to be effective, you would have to input the locations of every bus stops.
Is there a market for this application. Yes! There are people that would love to walk down the street with an Iphone or BlackBerry, enter a destination and find out in seconds, where to catch the next bus or train to where ever they want to go. It could involve two more more bus systems, a transfer or maybe a train but the transit user would have real transportation power.
NJ Transit has something similar to this but it is very weak forcing you to know the name of the of train or bus begining and ending streets. Suppose you don't know the stops?
The notion of carrying a notebook computer won't work. This program has to be stored and small enough in work in todays phones. I believe it can be done but the cost to locate each bus stop would be in the millions. Furthermore, entering all the bus schedules and train schedules would require thousands of hours and they change frequently.
swbluto
10-18-09, 10:46 PM
You know, I wasn't really thinking of adding bus stops myself, just to keep track of what streets buses went on and at what times and then it'd be up to the user to find / know where the next bus stop is along that street. But it would have the capability of keeping track of bus stops, so if a community effort of bus stops went under way, I'm sure most bus stops could be charted in a given area. I was thinking for something to be *really* complete, it would definitely involve many man hours to get down all the locations, but if there's quite a few users whom each just have a few moments to say "Hey, I don't see that bus stop on here, let's add it", then I'm sure it would eventually become quite comprehensive.
In regard to keeping track of times, luckily, many metros keep their transit schedules in a standardized format, so that data can be quite easily culled with the use of a program and so the schedules could be kept up to date with relative ease (Once the programs are written). For those that don't, like mine (they provide pdf's), I think I'm just going to resort to using an OCR program to extract the tables and then write a program to cull the data quite easily - luckily, bus schedules are only updated once a year for me, so it's just a matter of making a quick check to see what's changed. Most of the effort will be in initially mapping the time points to physical points on the map, and drawing the routes in between the time points, and once this is done for a given area, it's just a matter of updating and making minor changes as the area changes. The initial hurdle would be by far the largest, and everything past that is just a matter of maintenance. With a large enough user base, I don't think keeping it up-to-date should be too hard. For sure, though, each city's database should have information on when it was last updated so users can identify whether something needs to be updated and whether it might be erroneous. How quickly its updated would probably correlate with the size of the user base, and there should be a mechanism to allow the user to make corrections or at least send an alert about the outdated data.
As towards the viability of iPhones and blackberries, that depends on how much memory they have. I've heard iPhones have something like 32+ GB, and that's much more than I what I have my notebook.:lol: But computationally intensive parts, like the path finding, probably wouldn't be appropriate on such a small device (Unless one were willing to wait the necessary few minutes) and I'm not sure if the RAM would be great enough. For use on an iPhone or blackberry, I would imagine most of the computation would be offloaded to a server meaning an internet connection would be required, but I suppose that wouldn't be a problem for iPhone and blackberry users? It seems Google already provides relatively good bus planning information (Though it's not graphical, but not a big whoop) for major metropolitans, and it seems like this would already be available to blackberry, iphone and other "smart phones" with internet connections wherever they are. If I had cellular data service and I lived in a major area serviced by Google, I probably wouldn't care about developing this even though biking instead of walking to the bus would be an appealing feature, though not a deal-breaker. Given how well google serves most metropolitans, I don't think I'm too concerned about most phone users, although smaller locales might not be serviced by google but yet smaller locales probably wouldn't have as much user involvement to begin with to make something like this effective. I'm mostly trying to solve the major problem of transit planning while effectively offline, and I'm mostly just providing the tools for others to do it for their area.
Also, millions of bus stops really isn't a problem for memory. That's only a few megabytes. The most memory intensive part will be the map, and the map I'm going to keep on my notebook is going to be satellite imagery and the size of imagery for something like Seattle is like 300 megabytes (almost a third a gig). :thumb: I'm not sure if I'd be able to share that imagery with others, though, since I have a feeling there'd be possible copyright violations. So, for now, it seems something like "Open Street Maps" seems most viable for public use even though it doesn't provide satellite imagery.
On a side note, my notebook is a netbook that has 12 GB of memory, weighs 2.2 lbs, has a 9" inch screen and is fairly easy to carry with one hand. I installed a touchscreen on it, so I can use it comfortably pretty much anywhere in any situation. But I'll admit that netbooks aren't that common (Mine is still treated like a novelty by many in the local area), and something like a "smart phone" has much broader popular appeal.
swbluto
10-18-09, 10:59 PM
There are thousands of bus lines providing routes that are NOT even posted or done in a very poor map!
This seems to be perplexing. If a bus line's route isn't posted, how would people find out about it and use it? It seems perplexing there'd exist bus lines that one didn't have a means to find out when and where to board it.
Why do you want it to be offline? I think this has a limited future. IMO, such a service should be available "in the field" with real-time updates. Cell phone, laptop, GPS device, or whatever the near future holds.
Intriguing concept, to be sure. Are you planning on focusing on a few locales to start?
I think this is one of those concepts that stands to benefit greatly from access to a network as you're using it. It would also strongly benefit from being GPS-aware - to your point about being in a "foreign locale" - if I'm somewhere unfamiliar, it's doubtful that I'll be able to work out where I am 100% reliably. How often have you stood someplace and not been able to see a street sign?
You could develop an offline mode for what you're going to do, and that would be a major plus; however, this seems to just make more sense to be designed for mobile data-awareness.
swbluto
10-19-09, 12:11 PM
Oh, for sure, you'd be able to retrieve data online. It'd be a like a browser in that sense - It can function online, but it'd have a cache that would enable you to use the data while offline. It's this offline functionality that I think would substantially boost my ability to make transport plans/decision "while in the field". But as far as online services go, I really doubt it'd ever be able to compete with Google.
For now, I'm focusing on my area. That's it. It isn't huge by metropolitan standards and the percentage of those who use the bus is quite low (probably normal for typical suburbias), so I have my doubts there'd be a significant user base. However, I might consider creating an initial data set and necessary data-culling programs for another area just to get things kick-started. At that point, I'm hoping others would contribute to the project, enhance its functionality, etc. and then it could really blossom. In that regard, I'm probably going to look at high-tech, high-programmer/software-engineer populations, relatively high percentage transit-using populations. Any ideas? Seattle sounds like a good bet. What about New York? Seattle has about 15-20% who use public transit while New York has some fairly high number, and plus their population seems much larger, so it seems likely there are more programmers and software engineers who could contribute. Creating the initial data set for New York, though, sounds like it'd be a nightmare since I have no idea what goes on there and it's probably realllly big.
One thing I've noticed about wireless technologies (As far as "in the field" non-wifi like cellular access) is their expense hasn't really significantly decreased. I think this is probably due to some very real cellular data costs, and so I think there'll be a foreseeable future for something that can operate while offline. But who knows, in 20-30 years, everyone may have everywhere wireless data access at the cost of water, so offline functionality wouldn't necessarily be an enduring advantage. But, it'd still be possible to connect online for any real-time information (Especially helpful if buses would start publically reporting their location through something like GPS. Seattle has something like this, but it's not integrated into any transit planners as far as I know.) that may be of use.
The whole thing about it being OPEN-source is that ANYONE (who knows how to program or use specific programs) can add whatever functionality they want to it and can contribute their own transit information. GPS? Shouldn't be a problem. If your computer, notebook or phone has GPS functionality, then it shouldn't be too problematic to get that GPS information and to use it to pinpoint your exact location. I don't have GPS on my computer (yet), so I don't plan to add that in the immediate future, but others can.
http://www.openstreetmap.org/ if you have not come across it already. A project approaching this sort or thing from the bottom up.
The problem with transit planing is that you need to know what is going to happen in the future. This leaves you at the mercy of the transit companies for data. Most transit companies feel the data has commercial value and so won't give it away for free. No one as yet has come up with a solution for this problem.
The difficulty in predicting the future is the reason nothing like this exists yet. What probably isn't too far away is a sort of hybrid system. People producing open map data and adding transit routes on top. Then the application can show you where you are and overlay the nearby transit routes. The application can then direct you to the relevant website so you can determine scheduling. No where near as slick but will perhaps give some transit companies a reason to open up their data.
swbluto
10-19-09, 03:54 PM
I'm bewildered as to what transit companies don't provide "long term" transit data (That is, at least a week in advance, preferably at least 3 months; the shorter the "update" period, the less automation-ability there is and the lower number of potential contributors, the less likely the data sources are going to be up-to-date and thus be useful.). I could understand if it's something like the Greyhound or Amtrak or other long-distance services, but all local transit systems I've come across were publically owned/administered (In Washington state, anyways) and the data seems to be relatively open and fairly easy to obtain. Even if the data is "closed"/proprietary, on the practical front, what kind of legal mechanisms do they have against open-source efforts, and what rationale would they have against something that encourages the system's use through increased convenience and greater "transit power"?
And, what you're describing sounds like a system map which seems to exist pretty much everywhere. The problem with system maps is that scheduling can be non-trivial for human effort in complex systems, and a given person is very unlikely to find the optimal combination within a practical period of time. There's often multiple ways to get somewhere and each way can entail different amounts of travel time, "waiting for a bus" time, the amount of needed transfers (More transfers = greater likelihood of being late for one of them, thus being late in an amplified way. If you were able to spontaneously come up with new plans, you may be able to recover lost time. This is actually what I did once when the bus came to a screeching halt due to a problem, and luck had it there was a wireless network area. Pull out the laptop, replan and execute. It actually got me to my destination in about the same amount of time as my original plan. If I had waited for the next bus, I would've been really late as it was an hourly bus.) and so on.
Dahon.Steve
10-19-09, 09:42 PM
http://www.openstreetmap.org/ Most transit companies feel the data has commercial value and so won't give it away for free. No one as yet has come up with a solution for this problem.
Good point.
Someone created an exact map of the New York City subway system and started selling it as an Ipod Application and was stopped dead cold. The MTA told him the map was copyrighted and belonged to the city. As a result, the map is now it's public domain.
If the OP wants to do this, he will not be able to make any money because the larger transit companies will want money.
Dahon.Steve
10-19-09, 09:44 PM
This seems to be perplexing. If a bus line's route isn't posted, how would people find out about it and use it? It seems perplexing there'd exist bus lines that one didn't have a means to find out when and where to board it.
There are plenty of jitney vans that don't have maps posted of their routes. The people who use them know they are going to the "City" but no physical map is available.
In doing so, I'm trying to solve problems like...
-Most transit planners assume your mode of transport to the bus is walking. This has the disadvantage of limiting your walking range and how quickly you can get somewhere, which limits all of the possible bus/transit combinations and thus limits finding the BEST route that you could with something faster and have a greater range like with biking. I know I've been in many situations where if only I could bike that 1.5 miles from here to *that* bus, I would've been able to skip that highly undesirable 35 minute waiting time at the transit station while also substantially cutting down on the travel time.
Route planning is a commonly problem posed in Compter Science courses. It is also frequently posed in job interviews. This is a nice explanation and a number of algorithms that will work.
http://www.comlab.ox.ac.uk/admissions/ugrad/Finding_the_shortest_route
I want to do that by discussing a programming problem with you: the problem is, given two towns, to find the shortest driving route from one to the other along the roads of Great Britain. The programming problem is one that our first year students study in their practical classes. You can try out the program in another part of our web site.
swbluto
10-19-09, 10:25 PM
Good point.
Someone created an exact map of the New York City subway system and started selling it as an Ipod Application and was stopped dead cold. The MTA told him the map was copyrighted and belonged to the city. As a result, the map is now it's public domain.
If the OP wants to do this, he will not be able to make any money because the larger transit companies will want money.
Indeed, I don't intend to make ANY money from this. I just want to make what should be a public good be accessible to the public so the public has the option to contribute to their own good and the public's good, which was a right that I apparently didn't have. I really hate it when the people who could really contribute to a good cause are prevented from doing so due to "proprietary" reasons, especially when it seems like it should be under the public domain.
However, I do see that there could possibly be some long-term opportunities. Maybe some transit companies will want me to implement my program for their transit system, for example, and customize it for their system? I'm certainly not counting on it, but it seems possible. Of course, being open source, anybody else would also have this opportunity though I guess being the originator would give me some special status. :lol:
Also, interesting note about Jitney vans... I've never ridden in one nor have I heard of the concept. I've seen special handicap vans that you're supposed to schedule to come to your house and, well, that's obviously a completely different system.
Google Maps is open source in the sense that they let anybody use it for apps. And they are now putting bus routes, taxis, and walking routes right on google Maps, aren't they? And including real-time positions of the taxis and (soon) buses?
That's what I want. If I'm waiting on the curb for a bus that's running late, is it quicker to keep waiting or just walk? I'd love to be able to look on my cell phone and find out in 10 seconds.
That's what I want. If I'm waiting on the curb for a bus that's running late, is it quicker to keep waiting or just walk? I'd love to be able to look on my cell phone and find out in 10 seconds.
There was a study reported in New Scientist (http://www.newscientist.com/article/mg19726404.600-lazy-option-is-best-when-waiting-for-the-bus.html) magazine which proved that in most cases, it is quicker to wait - except for absurd inputs, like 10 metres or 10 miles to the next stop, or one bus a minute or one bus a day.
There is a related project to openstreetmap called http://www.opencyclemap.org/ . A KDE app called Marble can download the map for offline viewing
swbluto
10-22-09, 07:29 PM
There was a study reported in New Scientist (http://www.newscientist.com/article/mg19726404.600-lazy-option-is-best-when-waiting-for-the-bus.html) magazine which proved that in most cases, it is quicker to wait - except for absurd inputs, like 10 metres or 10 miles to the next stop, or one bus a minute or one bus a day.
And another absurd input like, you have a bike. :rolleyes:
swbluto
10-23-09, 12:08 AM
Google Maps is open source in the sense that they let anybody use it for apps.
The Apple operating system is open source in the sense you can use it for apps.
You and I don't share the same definition of open source. What google does is open its API, which is what Microsoft, Apple, and many other closed-source vendors do. But, it definitely has the distinction of being "free" content.
That said, it would be possible to develop an app for google for transit planning but I can imagine integration would be fairly difficult, and you're depending on wireless connections and the ability to connect to a network to be available, something I'm not going to depend on. However, it's possible. I'm not going invest the time into something like that, however BUT someone else may fork the source code and integrate with Google. That's one of the wonderful things about open source is that if someone finds the path finding algorithms and general logic to be of use in calculation, then it'd be possible to integrate it with data retrieved from a provider like Google or do whatever else they want with it.
You know, it might be possible to cache transit information from google for offline usage if desired, or maybe not. I thought google had something about that, though, in their terms of usage (All content had to be retrieved from their servers).
The Apple operating system is open source in the sense you can use it for apps.
You and I don't share the same definition of open source. What google does is open its API, which is what Microsoft, Apple, and many other closed-source vendors do. But, it definitely has the distinction of being "free" content.
That said, it would be possible to develop an app for google for transit planning but I can imagine integration would be fairly difficult, and you're depending on wireless connections and the ability to connect to a network to be available, something I'm not going to depend on. However, it's possible. I'm not going invest the time into something like that, however BUT someone else may fork the source code and integrate with Google. That's one of the wonderful things about open source is that if someone finds the path finding algorithms and general logic to be of use in calculation, then it'd be possible to integrate it with data retrieved from a provider like Google or do whatever else they want with it.
You know, it might be possible to cache transit information from google for offline usage if desired, or maybe not. I thought google had something about that, though, in their terms of usage (All content had to be retrieved from their servers).
Actually, the base of macosx is open source (http://www.opensource.apple.com/).
swbluto
10-23-09, 10:55 PM
It is true Unix is open source, but that doesn't at all mean the Mac OS is; it is much the same way that C++ standard libraries are open source, but proprietary programs based on them aren't. Try getting the same configurability with Mac as you can with Unix, hardy har har.
Robert C
10-24-09, 10:47 AM
It is true Unix is open source, but that doesn't at all mean the Mac OS is; it is much the same way that C++ standard libraries are open source, but proprietary programs based on them aren't. Try getting the same configurability with Mac as you can with Unix, hardy har har.
Not to be too nit picky here; but, OS X is Unix, Unix-03 to be exact.
Robert C
10-24-09, 11:11 AM
I was reading what you want to achieve and was struck by the impression that you are trying to get to step 2, a transportation planner with all the features, without a step 1, a transit planner that works. I would like to see a single functional transit planner, features would be easy to build on it later of the core were ever produced.
I would lie to be able to input where I am and where I want to be and get a non-auto based solution. Ideally there would be some other input options, such as: desired arrival time, distance willingness to walk, bike transit, and just about any other variable a person could think of plugging in. All these features exist in many places; however, they are not integrated. I can not integrate the systems by entering the place I am, have it come up with the local option for getting to Am-Trak, integrate with Am-Trak and then give me the route on the buses in the destination city to where I want to go. As the OP stated, too many transportation districts copyright their information and do not allow it to be shared. There is also the problem that the information, that is available, is often in different formats (often just a PDF scan of a schedule).
If as a country, we were interested in reducing auto usage then an integrated transit guide would be a good start. However, this is too baig a project for one person. Instead I would suggest building a framework where people could, using something like google maps, input transit points and route info and let the database grow.
As an example, I would enter the bus stop near me and the route number that stops at it along with a few of the times. Later, someone else would notice that I had not entered all the times, or even a route that stops there too, and adds that information. Someone else has added that the train goes to San Francisco/Emeryville at 6am from the local train stop, arriving at 10am. Using "some" maps the program realizes that the walk is about .5 mi from the transit center to the train station. Other people have casually, on a one entry at a time basis, added SF info.
The result is that when my neighbor looks for a route from where they live to pier 29 (about 6 hours of straight driving) and told it they want to be there at 3pm they get a schedule, cost estimate, and relevant layover info (fund the project by getting a cut from hostels and hotels near the layover points, who have been conveniently, suggested).
Google Maps--already has transit routing maps (http://www.google.com/intl/en/landing/transit/#mdy) within many cities. Is this anything like what the OP is talking about?
(off topic) Google Maps is also launching Trikeview (https://services.google.com/fb/forms/streetviewussuggestions/?utm_campaign=en&utm_medium=mapshpp&utm_source=en-mapshpp-na-us-gns-svn) --taking street view photos where cars can't go.
swbluto
10-24-09, 12:37 PM
I was reading what you want to achieve and was struck by the impression that you are trying to get to step 2, a transportation planner with all the features, without a step 1, a transit planner that works. I would like to see a single functional transit planner, features would be easy to build on it later of the core were ever produced.
It does seem to be a tendency that software developers are more concerned about features than something that actually works, but for sure, I'm developing something that works. Since *I* will be using it, I will definitely want it to work - it's not like I'm developing this for the end-user alone, so I definitely have some interesting in it working. I also have all of these neat features I want to implement, but I realize the core will have to be built first before extra features can be tacked onto it. But, also, the core would be ideally designed so that adding on these features won't be as painful as needing to redesign the core due to limited foresight on what will be added, so some consideration has to be given to possible future improvements lest future improvements be doomed through all the extra expense in effort.
And, is there a time-frame for this? No, not really. I don't really have much free time and I haven't been able to find a modern multi-platform way of drawing images to the screen and moving it around as needed, but once that very basic skill has been conquered, the rest of it should flow like clockwork as I know the rest is within my skill level. But, if I were to make a guess when a functioning prototype would appear, I'm going to guess within 6-12 months.
BTW, the transit system for my local area is simple enough that I should be able to get all the data needed within a relatively little amount of time. When I start developing the database for another area, I will definitely try to make it as easy as possible for end-users to add their own information so that the database would be a community effort and community governed. In this end, I will have to develop server technologies for this, and that may take quite a bit of time.
swbluto
10-24-09, 12:50 PM
Google Maps--already has transit routing maps (http://www.google.com/intl/en/landing/transit/#mdy) within many cities. Is this anything like what the OP is talking about?
(off topic) Google Maps is also launching Trikeview (https://services.google.com/fb/forms/streetviewussuggestions/?utm_campaign=en&utm_medium=mapshpp&utm_source=en-mapshpp-na-us-gns-svn) --taking street view photos where cars can't go.
That's something I want to do, but I would consider that a subset of what I want to do. Mainly, I want to be able to operate while not connected to the internet, I want it to consider other forms of possible transport to and from transit systems other than walking, I want it to have ways of predicting probable lateness (based on my own experiences and depending on the time of day and how far away the bus is from its last departure point), and I want to be able add custom information to the map. I want to be able to draw circles, lines, paint, place markers, add in notes, add in business information, etc.; This doesn't necessarily that all of this will be done in its totality (Alot will depending on what data sources I can tap, and I have a feeling the options might be limited if I'm not willing to pay for it.), but at least I would be able to do it.
And, oh, it's fairly easy to OCR a picture or pdf and then get the data that way. It would still involve some human effort, but at least it'd be far more automated than manual entry. Luckily, I found out my transit system's PDFs embed the text data, so I can just copy and paste it.
Powered by vBulletin® Version 4.1.12 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.