Welcome to my home page. I became blind at birth. I started programming computers at a young age. I also earned my general class amateur radio license, KA3TTT, a hobby to which I have returned with great joy. I practice Qigong, and consider it the most important thing in my life. I cook gluten-free vegan meals. I use Linux as my desktop and Android as my mobile OS. For the rest you'll have to read my blog.
A few weeks ago I attended Open Access Philly. While there, I heard a presentation about a new service called SideCar, which does something called ridesharing. I felt immediately intrigued. As soon as I used it for the first time I knew it could revolutionize transportation, especially for the blind. The more I learned, the more intrigued I became. Now I want to tell everyone about SideCar.
I first met Yuriy at some event, I think the Drink Philly celebration. My friend Sonia introduced us but really didn’t get to talk. He runs Philly Startup Digest and works as a venture capitalist. He strongly encouraged me to come to an event called Open Access Philly. I said I’d check it out but sort of forgot about it.
Time passed, and SOnia and I did braille street art at the Philly Tech Week signature event. Yuriy acted as the carnival barker to use his own words. As things started winding down he came and sat down so we could talk. He got me a beer and we had a great conversation. He practically forced me to come to the next Open Access Philly. Civic-minded people meet and discuss their projects. It makes a great networking event, because the presenters actually get things done in their companies, they don’t just come there to get their name on a sheet. He wanted me to come for one or two meetings, then give a presentation myself. This excited me so of course I agreed to go.
While there I heard a presentation from Knick Knack Learning, an initiative to bring low-cost Android tablets to disadvantaged schools. I asked her about working with the blind and she wanted to know more. Apple products offer the best accessibility in comparison, but their higher price presents a challenge.
Then came the presentation about SideCar. Steve runs SideCar Philly. He introduced the company and the concept of ridesharing. Inspired by carpooling, SideCar uses an iPhone or Android app to connect drivers with riders. Riders enter their pick up and drop off locations, which gives drivers a way to only accept rides convenient for them. This makes it different from a taxi or limo service, or something like Uber.
Obviously people feel worried about safety. Their FAQ addresses this. A driver told me he had to give over practically every piece of information about himself to join: his name, SSN, driver’s license, insurance, and even his checking account. They go to great lengths to get the best drivers. A driver must also maintain a consistently high rating. Passengers rate drivers and drivers rate passengers. The company tracks the ride with GPS, and the passenger can even share this information with a friend.
A few days later I had a chance to download the app and try it out. I must say that the current version of the iPhone app lags horribly with VoiceOver, and I would like to work with the developers to resolve this. If you don’t mind battling with the lag then you can use the app. Sighted people won’t notice.
I entered my address as the pick up location, and Indy Hall’s as the drop off location. It displayed the estimated time of the nearest driver. I confirmed the ride and in a moment it dinged. The driver had accepted.
I still felt a little unsure. Would I get someone cool? Would I get someone mean? Would I get an axe-wielding maniac?
A few minutes later I got a notification that he had arrived. The button which says “Driver” calls him, so we talked and found each other. “So, you’re going to Indy Hall?” he asked. It turned out he worked with a database programming company which worked there. He knew exactly where to go, and we talked about programming the whole time. I felt amazed.
Every ride since then has seemed equally amazing. I have made friends with several drivers, and they accept my rides as soon as they see them. SideCar has revolutionized my life. It also has the potential to revolutionize Philadelphia.
And therein lies the problem. As of this writing, SideCar has entered into a battle with the Philadelphia Parking Authority. The PPA has their share of enemies. One restaurant will give you a free meal if you bring in a parking ticket. The cab companies have corrupted everything. This should not come as a surprise to anyone who has taken a taxi in Philadelphia.
The city of Austin, Texas undergoes a similar battle. I laughed when I read that article’s title: Austin Wants Sharing. Yes, I do! Similar situations happen in other cities.
Because of this unfortunate situation, SideCar cannot accept donations from riders in these cities. In response, the company has decided to make rides available for free. Yes you read that right, you don’t have to pay anything. The company pays their drivers themselves. Until they resolve this, you can get free rides in Philadelphia and some other cities as well!
Obviously this situation cannot last forever. They have had to cut down on the number of drivers. This decreased supply has met with an increased demand, making rides sometimes hard to find. This puts people off to the service, which could cause a vicious cycle. Have faith. The system works.
If they can resolve this battle, and I desperately hope they can, then they will shift to a donation-based model. Riders will make donations to drivers. Even when you do have to pay, it will cost less than a smelly cab. Donations will also give them the ability to expand the number of drivers. Then the system will begin to realize its full potential, and we can all get safe, comfortable and fun rides around the city.
Do what you can to defend ridesharing. Ridesharing means less cars on the road with less impact on the environment. Ridesharing means safe and easy transportation anywhere anytime. Ridesharing means something amazing for the blind and disabled. Ridesharing means the future.
I love it when technology makes an authority obsolete. Filesharing did it with music. Bitcoin has begun doing it with currency. Now SideCar has done it with public transportation. Join the ridesharing revolution.
Epilog: Today SideCar announced that they have discontinued service in Philadelphia. It really makes me angry. How will we evolve into an interstellar species with parasites like the PPA? Negotiations will continue, and they still hope for a resolution. I hope the story doesn’t end here.
While publishing my Golden Sections gem for RubyMotion, a friend on Twitter had an idea. He suggested making a podcast demonstrating how to write a simple RubyMotion app. Apparently some blind people have started selling their Macs because they believe they cannot program on them. I believe I have disproved this. Sighted people also felt curious, so I hope they will find it valuable as well.
The app asks the user their name, then displays it in an alert. I have written this simple program in a dozen languages, starting with AppleSoft BASIC. Now I can add RubyMotion to the list. It makes an easy demonstration. I use Geomotion, SugarCube, and Bubble-Wrap to make life easier. I also highlight the recent improvements to SugarCube which help make the REPL accessible with VoiceOver.
I recorded a podcast going from start to finish. I create the app, write a spec, test the app in the simulator, and deploy it to an iPad. I recommend getting the code from GitHub to follow along. Have fun. Write in if you enjoyed it or have any questions. I hope it will encourage you to check out RubyMotion and start writing apps of your own.
The idea started when making a view for a game. It occurred to me that I would have labels and values, a very common thing to do. Then I realized, instead of picking some arbitrary or round percentage, why not use the golden mean? This in theory would enable me, a blind developer, to make views that look more visually appealing.
Artists have known of the golden mean for thousands of years. The greeks wrote about it. Leonardo da Vinci used it in his works. Faces which conform closer to the golden mean look more beautiful. And the latest version of the Thesis WordPress theme employs it.
The README explains how to use the gem, so I won’t repeat it here. I find the implementation interesting, especially adding a golden_sections method to the Numeric class. I wrote a common handler for several of the methods, which cut down on duplicate code. I also wrote some nifty tests. Let me know if you use it in one of your apps. The concept of making visually appealing layouts purely with mathematics fascinates me. Give your apps the Midas touch with Golden Sections!
The Ruby programming language has a cool feature called the REPL, or Read Eval Print Loop. It allows entering expressions and seeing their results in real time. This can help test a program. If something doesn’t work you can enter expressions to try to narrow down the problem. You can also just have fun and tinker.
RubyMotion brings this same great capability to the iOS world. This lets you modify aspects of your application while it runs in a simulator. You can change the properties of a view and do any number of cool things. Many people consider it one of RubyMotion’s strongest advantages over Objective C.
In my talk at #inspect, I stated that the blind cannot use the REPL. Technically speaking, we can use the REPL, we can’t use the iOS simulator. This basically made it useless, since the simulator made it possible to navigate the app… or so I thought.
After I came back from Belgium I felt inspired to dive into RubyMotion, of course. I explored a lot of gems, including SugarCube. I had already started using it, but ignored the part about the REPL. Now I had another look and discovered the “tree” method. It lists all the current subviews in the current view. The “adjust” or “a” method selects a subview by number. And “a” by itself returns the currently selected subview.
Now I just needed to figure out a way to tap a button. I asked on the mailing list, and someone replied and suggested using the UIButton.sendActionsForControlEvents: method. Sure enough, typing
worked. I whipped up a quick test method and it also worked. SugarCube also allows :touch.uibutton for easier reference.
I posted about my progress, and to my delight Colin added this feature to SugarCube. Now after selecting a view you can just type
and like magic it will tap the button in the REPL. This makes it possible for me to use it, something I thought impossible only a month ago. I feel ecstatic.
This rapid feedback loop shows the strength of the RubyMotion community. In a very short time we added a great feature to a gem which will help everyone. It also totally opens the door to greater productivity for any blind developers. I said it in my talk and I’ll say it again here: the future looks very good for RubyMotion!
Since publishing my initial article about braille street art, interest has increased. It has taken us by surprise. A friend who does sticker art inspired me to put one in a braille writer, since blind people don’t usually have access to street art. Something we did just for fun has really taken off. We even had a wonderful radio interview about it.
A few weeks ago, we received an invite to participate at the Philly Tech Week signature event. My friend called me and cautiously explained it, unsure of my reaction. I enthusiastically said we should do it. The whole thing seemed kind of surreal. We didn’t even know what we would do. We decided to make some stickers ahead of time, and I would bring my good old fashioned mechanical braille writer and we would also make some while there. This would bring an element of reality to the event.
Meanwhile, a girl named Taylor Duffy contacted us. She goes to the College of New Jersey in Trenton, just across the river. She asked if we would like to do a radio piece about braille street art. We said absolutely, and met on Skype. We also invited her to the event.
Friday came soon enough. Two of my friends also came along. Liz actually works as a braille proofreader, so I especially wanted her there. Angie loves exploring and technology, so I knew she’d have a ball. She also has a guide dog named Harry, who everyone loves.
The event happened at Urban Outfitters. The space really impressed us. Since we came early, I got a chance to use echolocation to see a huge space with hard walls and a high ceiling with random things all around. This included a car, yes an actual car inside the building. Just too much. Then the crowd came.
We just sat at our table, dealing with a constant stream of interested people. We gave out over thirty stickers. Liz did a great job proofreading. Our idea to bring the braille writer worked out well, because some proved very popular. This included “Love cats. Always adopt.” and “Open source heroes.” We had others as well: “End CISPA!” “It’s technology!” and “e=mc^2”
We also met some weird and wonderful people. One guy asked if Android powered my braille writer. “No,” I responded, “pure mechanical energy!” He works for the company that writes the awesome and accessible game King of Dragon Pass, so we had a great chat. Another guy writes flight simulators for the military. Someone invited me to a barbecue. And Yuri of Open Access Philly invited me there.
It started getting later. They didn’t have much vegetarian food, just small mall snack food, and I felt hungry, and I get cranky when I get hungry, and I also had two friends to suddenly feed. Just then, Taylor showed up. It felt great to see her. She interviewed us and some other people as well. She produced a wonderful radio piece. You can hear it here. Screen reader users might have better luck with this link.
We don’t exactly know what we’ve started here. A guy in the interview described it as “One of the most exciting things in art right now.” We believe this simple low tech street art will form the basis for something even greater. Stay tuned…