Skip to main content

The curious case of MTA Fare and birth of "MTABonus"

Finally yesterday my 11th Firefox OS App got published in the marketplace. With a salt of surprise as well. Instead of taking weeks to get approved it took only a day to get approved. But then again I am not complaining, I get lucky like this time to times (but why didn't I get this lucky for the DVLUP submission.....but that's a story for some other day) and quite a lot of time hit roadblocks too.

So without further ado this is finally how the "App" managed to look like


History: When I arrived New York almost three months back apart from the amazing city what amazed and delighted me was the transportation. Unlike most cities in United States New York City (there is a reason for that italics) has a very comprehensive and functional Public Transport system. And one that people use extensively. The famous NYC Metro and the Buses are run by the Metro Transport Authority. The idea is you buy a "MetroCard" and refill it (or have unlimited monthly/weekly ride) with certain amount. Every rife you avail will deduct the ride amount from the card. Not much different from what I had before in DART (Dallas Area Rapid Transport). But this happens with a twist, they award certain bonus (http://web.mta.info/nyct/fare/FaresatAGlance.htm). After a couple of recharges this got me thinking. And it was an easy calculation to figure out how much and how many recharges I need to get a free ride (bonsu amount equivalent to one. But then again whats the fun of doing that? So one night being high on "Pure water from Genté Springs" quickly jotted down my calculations into this app (Yeah I am too laxy hence just wen ahead and used the FxOSstub).

Hence it was born.
So why suddenly this blog? I never really blogged about in of my other apps, not even about V.Translator which passed a 14K download mark this week. Well you say effect of spring water and to vent out how easy it is to build openwebapp. Really, it is so easy that I sometimes get worried that quite some amount of poorly written/optimized apps will make their way into the marketplace. Just like this one, if it had more functionality.
Also a reminder to myself that I should not cut corners next time. This was different than my most other app publications, most of which were fueled by either ego(why I can't do it)/api experimentation/app porting. This time though it was different.

So the confession where did I cut corners?
  • You see the upper left menu button? That actually doesn't do anything. I disabled (read commented out) the whole menu, but out of sheer laziness left that part. Mental Poke 1: Never do that again
  • See how there isn't any landscape screenshots? Because I disabled it. Not because I couldn't handle it. The app template itself is perfectly responsive and suitable for all sizes, but I didn't want to deal with scroll, hence...
  • See in the second screenshot how the Feedback is marginally overlapping the text? Well it's just a minor css overlap which is negligible if the user could scroll. But the user can't, hence and annoying ux fail which i have to fix later *sigh*
Finally if you want to test drive the app


Popular posts from this blog

LibrePlanet 2017: Liberating your open source experience

LibrePlanet is a yearly gathering of free software activists, users, and contributors—and, it's my favorite conference of the year. Here's why.
LibrePlanet is run by the Free Software Foundation, and has steadily evolved from a yearly members' meeting with presentations from staff and board members to a full blown two-day conference with speakers and attendees from all over the world. The event brings people who care about free software together to talk about the future of the movement, address current challenges, and celebrate successes.
Prelude I was invited to give a talk at LibrePlanet 2017 on 25th March at MIT, in Cambridge, Massachusetts representing Mozilla as a Tech Speaker. I reached Boston on 25th early morning. Around 1 AM. The journey itself was awesome till I realized that you don't get Uber or Lyft at Boston Airport.

Not that the apps don't function there. They work! Just no driver will be ready to pick you up from Airport at that time. After trying t…

All Hands 2016: MozLondon, A recount

I recently had the opportunity to take part in Mozilla All Hands 2016 (a.k.a #MozLondon). Mozilla All hands. All Hands are bi-yearly events of Mozilla where all the paid staff from different teams around the globe meet with each other along with a handful of invited volunteers to disscuss about future projects and get some work done! This year it was in London and just immediately before Brexit (I actually didn't even know about it before I went there). It was a work week, so essentially the event spanned from Monday to Friday. I arrived at LHR on Monday morning, and then there was the awesome Heathrow Express which took me to Paddington, just a 7 mins walk away from Hilton Metropole where I was staying with a bunch of other people. The event started with all of us having an evening orientation familiarizing us with rules and regulations along with Code of Conduct(that turned out to be really important later on...).  Tuesday started with a Planery. Which you can see if you are lo…

Maximum Call Stack size exceeded: My mishap with nodejs and MongoDB

Working with nodejs is always an adventure and mix MongoDB with it, and it becomes very interesting for a nodejs enthusiast like me.

While working on a pet project involving Native MongoDb driver and nodejs I encountered a weird problem.

RangeError:MaximumcallstacksizeexceededAs usual my first thought was to Google out what I was facing and googling it out led me to the following to links.RangeError: Maximum call stack size exceededCalling Model.collection.save() RangeError: Maximum call stack size exceeded Also In some posts in MongoDB’s forum I saw that peoples said saving in `process.nextTick` or wrapping the call function in `parseInt` will also fix the problem, but it most certainly didn't work for me.So I started digging in on my own and soon enough found the reason.

If you’re trying to save a document and saving process somehow exited with an RangeError: Maximum call stack size exceeded exception, it’s related to what you want to save in the database. I had this problem a…