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 myself a Taoist. I use Linux as my desktop and Android as my mobile OS. I eat gluten-free vegan meals. For the rest you'll have to read my blog.

Braille Street Art at Philly Tech Week

May 02, 2013

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…

The Journey Home

April 19, 2013

_This concludes my trilogy covering my trip to the #inspect 2013, the first RubyMotion conference. If you haven’t, you should start by reading about the trip to Brussels, then read the coverage of the conference. And now we can bring this journey to an end.</p>

We woke late the next day. It felt like we had removed our masks. The carriage had turned back into a pumpkin. Ashley felt sick. I wanted breakfast.

We walked through the crowded square to the cafe where I had that great omelet. I craved the exact same thing. It really hit the spot. Then I realized that this whole time I had not tried a waffle. And so for dessert I had the Brussels Waffle. It had vanilla ice cream and chocolate syrup like hot fudge. I feel like a better person for trying the Brussels Waffle!

Ashley didn’t feel like doing anything, so went back to the room and I sat alone in the hotel bar. I really wanted to do something, so felt sad to find myself here. I figured I’d make the best of it so put the audio of my talk online. I drank two Leffe Blonds, and they brought me peanuts. I really wanted to spend time with some of the people at the conference, so posted a tweet with the #inspect hash tag inviting people to come by.

As I began to really feel discouraged I heard a voice calling my name. Marin said hi. He gave the talk about Bubblewrap. He hadn’t even seen my tweet. A few of them would go out for dinner. Of course I’d like to join them!

We almost went back to Spago, but decided on a cheaper Asian place. I had sweet and sour tofu. I made a new friend. We bored everyone by talking finance. I hope he writes in because we didn’t get each other’s info. How do those VIX options look now? After dinner we all went to a nice quiet local bar, where I had a local beer and a very enjoyable time. I came back to the hotel feeling better. It all worked out in the end.

In conversation someone happened to mention that Belgium would have their time change that night. I hate the time change so much! I always rant about it every time it happens! I wish we would just stay in daylight saving time. We don’t need to readjust our stupid clocks twice a year. So stupid.

I had already endured it here in America, and now I would have to endure it yet again. I left with a five hour difference and would return with six. I knew it would mess with my head even more. Stupid time change! And sure enough it happened. That did it, I meditated and went to bed.

I awoke on Easter sunday at 04:30 in the afternoon. I felt a little sick with a sore throat and runny nose. For some reason my mail server crashed, and my mail filtering had stopped. The wireless network drove me more insane each day, and now it had hit a peak. I really wanted to go home.

Several locals had warned us that everything closes down on sundays. And when they say everything, they mean everything! We could not find an open restaurant. Even the hotel’s restaurant had closed. We could only order from the bar menu. We decided to just go with it.

I actually had a real Belgian vegetarian dish of a salted waffle and seasonal vegetables. I enjoyed it. We also had red wine, figuring it would help our colds, plus the Easter symbolism, even though neither of us consider ourselves Christians. Still it does have a universal meaning we can all find some good in. For dessert I had an amazing fruit tart and a cocktail called a Mojito. I had never had one before, but enjoyed it. It packed quite a punch. We lounged on the sofas where we had eaten feeling very relaxed. Eventually we went back to the room to pack. It had finally come time to return home. I meditated for the final time there with my portable zafu and went to sleep.

Four hours later we woke up. I felt sick. We had breakfast and got assistance with our luggage. I really wanted one of the wonderful goblets from which they serve their wonderful beer. I asked the girl at the front desk if they’d sell me one. She said no, but she’d ask the bar to bring me one. She asked my favorite one I had there, and I said Leffe Blond. She placed a call, said something in French, and retrieved it. She even put it in a bag and wrapped it. I had a little piece of Belgium to take back with me.

The cab ride back stood in stark contrast to our ride there. The guy dropped us off in a road by the airport. We had no idea where to go. We found our way to the airport, and eventually to assistance. We got the last two seats on the plane. We had just made it.

I said good bye to Brussels. Good bye to amazing beer, chocolate, and waffles. Good bye to the endless cobblestone streets with every other shop a chocolate shop. Good bye to the statue of a urinating boy and of a smurf sitting atop a mushroom with a bite taken out of it. Farewell to spotty internet and no cellular communication. And so long to all the wonderful people.

The flight home went fine. I went with my mom to Hawthorne’s, the local cafe. It felt very surreal to drink a Leffe Blond there. After that I slept for twelve hours, then began settling in. My cat didn’t stopped purring for a week. She missed me so much. Well, I’m back.

By the way, RubyMotion first started accepting purchases for licenses a year ago. Since then it has grown to the point of having an international conference with 150 attendees. Not bad. Here’s to an even better year! RubyMotion will change the world.</em>

#inspect 2013

April 17, 2013

This article makes up the second part in a little trilogy about going to #inspect, the first RubyMotion conference. I expect a few updates as more content comes in, so you might like to check back. If you haven’t, you should read the first part to get acquainted with the cast of characters and events so far. Part one ended with my sister Ashley and I finding the group for the first time before the speaker’s dinner. And with that we continue.

It always feels a little strange to meet online friends in real life. I recognized a bunch of the people from the list. I met Laurent, who watched the Lord of the Rings on the way over, a fine choice. I would have watched the Hobbit. I fit in just fine.

They took a while to bring us our food at the restaurant, and didn’t quite know what to make a vegetarian. I settled on pasta, you can only eat so much salad. I didn’t mind, I felt glad enough to have found everyone. People gradually left, and we ended up back at Delirium. We had a wonderful time. I met a guy named Bret, who runs a coworking space in New Jersey. We hit it off and agreed to go to each other’s respective spaces. I also met one of the speakers named Rich who would talk about Bluetooth 4.0 technology, something I felt very excited about. And I got to meet Colin, who writes Teacup and other gems. We worked together on a number of things during the conference. We stayed out pretty late, and I wondered how we would pull this off.

I tried to wind down back in the room by listening to the new They Might be Giants album, but that didn’t happen. At around 03:00 in the morning, Adriano emailed me needing some feedback on the slides. Remember those? We ended up on FaceTime, me in my bed, Adriano and Bill at Indy Hall. Dana also said hi, and Kara laughed in the background. It felt like a connection to home. At around 04:30 we finally finished. I had the final presentation in Keynote and .pdf formats just in case. I thanked Adriano profusely and hung up for my two hours of sleep before giving my speech, one of the high points of my life. Whatever, somehow it would work out. I meditated and just let go. It would work out.

The goddamn alarm went off way too early. I didn’t even allow myself to feel tired. I got up, showered in the water with the fluctuating temperature, and got dressed in my fine new suit. Everyone says I look great in it. Before now I didn’t understand why most people just keep believing these politicians and other liars on television. Now I get it: because they have a nice suit. Nothing more.

Ashley found the venue, then left to go back to the hotel and sleep. One of the assistants named Mark went and bought a croissant for me from a nearby stand since they had run out of food. That, two cups of mint tea, and some amazing fresh juice provided a good breakfast. I waited in the speaker’s room for a break to come in.

I missed the first talk, but Nick Quaranto and I had a good chat later. Karl Krukow talked about behavior driven development with Calabash. I really want to learn more about this. It has a console where you can programmatically tap buttons and examine accessibility labels. Plus they make pipes out of calabash, which gives me a good association. Sherlock Holmes had one.

Rich Kilmer gave his talk about Bluetooth, which we had started discussing the previous night. The blind would love an indoor navigation solution, and this technology provides the way. It blue my mind, pardon the pun. Next, Matt Green spoke about his Elevate gem, which helps separate control logic and run things concurrently. He made a great joke: MVC stands for Massive View Controller. This tries to help with that. It really impressed me. As Matt’s speech ended I realized the time had come. I would give my speech next. It all came down to this.

We had a fifteen minute period to get ready. Laurent didn’t receive the email containing my slides, so we scrambled and someone gave me a USB thumb drive to put it on. Funnily enough, it had a pirated copy of the Hobbit on it. I downloaded that torrent! I put my slideshow on it and Laurent got it setup.

Sighted people can see the slides here. Ironically, this link to a presentation about accessibility does not work with screen readers. Do not go there if you use one! S o m e t h i n g b a d w i l l h a p p e n! Not really, but it reads out the slides letter by letter.

Meanwhile I had another problem. My sister had not arrived. We had talked about her running the slides, though I asked for volunteers in case she didn’t want to, since she hates computers, or as she says since computers hate her. Now I could not find or communicate with her. This annoyed me. I bought her for this express purpose.

I couldn’t let it bother me however. No way to go but forward, to quote Bilbo. Colin said he would run the slides. I felt confident, given he had developed countless gems and posts constantly on the list. So at the absolute last minute I had the slides and a person to run them. We definitely got down to the wire with this one!

The time had come. I stood in front of the podium and switched on my digital recorder. Colin had the slides ready. I had my notes open. And with two hours of sleep, a group of wonderful helpers thrown together at the last minute, and a good set of notes, I commenced to give an amazing speech. You can watch the video. I also made a medium quality recording.

I began with a little personal history to set the stage. I became blind at birth and started programming at young age. I used an Apple II/e, then moved to MSDOS, then Windows unfortunately, then Linux, and finally iOS and Mac OS. I told the events recounted in my article which went viral. I showed what a big difference the iPhone makes in the lives of the blind by showing a chart comparing the prices of an iPhone with apps and a Bluetooth keyboard versus lots of assistive technology. You save twelve times the amount, $300 vs. $3600! I mentioned a few apps, including Color Identifier, LookTell Money Reader, TapTapSee, Talking Scientific Calculator, BlindSquare, Fleksy, and of course Beer Buddy. I ended this part with a simple demonstration of VoiceOver.

Next, I moved to how to make apps accessible. I discussed the UIAccessibility Informal protocol, the UIAccessibilityContainer Informal Protocol, the UIAccessibilityElement attributes, and the UIAccessibilityAction Informal Protocol. I also showed some code examples. Basically I just ripped off Apple’s accessibility programming guide and ported the examples to RubyMotion. I covered setting attributes in the subclass implementation and in the instanciation code. I covered UIPickerViews, custom containers, UITableViews, making non-textual data accessible, and making dynamic content accessible.

Lastly, I talked a little about my own journey learning to write apps as a bind developer. Programmers have very personal preferences about their favorite languages, so I didn’t want to dwell too much on the subjective, but I get more done in Ruby, and to me it sounds better with speech. Speaking more objectively, XCode works horribly with VoiceOver. I have known blind developers who have given up learning how to write apps because they can’t deal with XCode. Give me Ruby and Emacs and the terminal any day!

I then covered some challenges a blind developer might have using RubyMotion. The iOS Simulator does not work well with VoiceOver. This also means that we cannot use the REPL, the amazing Read-Eval-Print-Loop which RubyMotion provides. We have to use the RubyMotion debugger, a version of gdb with some added features. It works well enough, but the experience could always use improving. The developers know and have some exciting things in the works for the future.

Interface Builder doesn’t work at all with VoiceOver. I expected this from a totally visual program. This means that the blind have no choice but to build views programmatically. Fortunately this has become the trend in the RubyMotion community, so that works itself out. Gems like Geomotion and Teacup help with this.

I saved the best for last. Functional testing improves accessibility, because the UIAutomation framework uses the accessibility label. This means if you write good tests and label your controls properly, you have gone a long way to making your app more accessible. What a bargain!

I closed with some upbeat statements. The future of RubyMotion looks very good. The iPhone allows the blind to do wonderful things. Developers can make their apps accessible very easily in most cases. I left everyone with this thought: if Apple wouldn’t have made the iPhone accessible, I would not stand here giving this talk. Everyone applauded. I had done it.

A question and answer period followed. Someone asked if I could name some of the most accessible apps. My head sort of went blank, since a lot of apps work well. It gets rather hard to quantify. I gave Tweetlist as an example of a good Twitter client. I directed them to Applevis, which has usability ratings.

Someone asked if I could think of anything Apple could improve about VoiceOver. I couldn’t think of anything major at the time, since it gives a pretty unparalleled experience. Since then I have come up with something: I wish they would add more keyboard navigation commands. On the Mac you can navigate by sentence and paragraph, and correct misspelled words easily. I would write more on the iPad if I could edit more effectively.

Then someone asked a wonderful question: if anyone had written anything to help automate accessibility testing for iOS. My mind raced. Not to my knowledge, but I immediately saw the potential, especially with RubyMotion’s unit testing framework. Ideally a spec file should just say “view.should.be.accessible” and have it run a series of appropriate tests. I plan to do this, and consider it a very exciting project. It will become yet another great RubyMotion-only feature.

I felt spent, but still had an afternoon of talks ahead. We had lunch, I had grilled and fresh vegetables. They promised me the next day I wouldn’t have to wait for a vegetarian meal. I didn’t mind. And they had excellent desserts, chocolate mousse and brownies and lots of other things. My blood sugar level rose.

Oh my goodness! The afternoon began with an intense talk by Jonathan Penn about CoreData. I can’t say I understand it enough to use it, but I understand more than I did, so feel good. I have much to learn. Josh Ballanco followed this up with a talk about gdb. Since I can use nothing else I really paid attention to it, and would love to get the notes from it. Writing ruby code in Objective C warped my brain. Something like [object instance_variable_get: @“@var”]; I don’t know. I have to see it written down. Mateus Armando gave a heavy talk about concurrency, and we had chatted a little the night before as well. I started to also understand the appeal of functional programming. The day ended with talks about two IDEs, RubyMine and Redcar. Since I can’t use either I sort of tuned out, but hope they’ll make a cocoa plugin for Redcar.

The talks had ended for the day, and my sister still had not turned up. I panicked, since as I wrote we could not communicate. A few of us went to a bar and left instruction should she show up. Colin guided me.

While there, I talked to some of the speakers. I talked to Jonathan about CoreData. Inspired by Sparkleshare, I came up with the idea to use a GIT repository as a data store. I really like this idea, and hope someone does it. Rich and I talked about Bluetooth 4.0 It b-l-u-e my mind! Josh and I talked about gdb. I need his notes!

And Colin and I talked about the automated accessibility idea. He also showed me an amazing little gem he worked on which would become Motion::Xray. Shaking the phone brings up a view inspector. It gives you information about each view and lets you edit it on the fly. You can email the results to yourself. He would debut it the next day and wanted my input on its accessibility. We found some problems and he fixed some, and I plan to help make it even better.

We ate some okay food and drank some wonderful Belgian beer. I still hadn’t found my sister, so figured I should go back to the hotel. Colin volunteered to take me back. Once there the receptionist called up to the room and my sister answered, much to my relief and annoyance. She had simply fallen asleep. Fair to note we both did have very weird schedules and she had a sinus cold, but I actually had work to do and I made it! Oh well, at least we found her safely there.

When I came back I found another surprise, our American friend Chris left us a box of Godiva chocolates with a long and friendly note of recommended things to do. Very cool! And yes, it really does taste different. We liked it better. The bitterness gives it more flavor.

I meditated and rested, and before I knew it the second day of the conference had arrived. Ashley and I bought croissants at the hotel, and found our way there. Mark helped me to the conference again. Today I actually had wifi, so could tweet and have a little more fun, not to mention get text messages, which would have helped the previous day.

The well-known Mattt Thompson started the day off with a bang talking about how the open source movement has shaped the Objective C community. He manages a set of world class command line utilities. He mentioned Conway’s Law, that software resembles the team which created it. I have always believed this and didn’t know someone had formulated it. I totally agree.

Following on that, Eloy Duran talked about the incredibly popular Cocoapods package management system. This gives an easy way for developers to include different features in their code. He named a number of popular pods, especially a command line interface to Apple’s developer center called Cupertino. It felt good to hear a talk about this essential resource.

Clay Allsopp followed this with a talk about wrapping Objective C in RubyMotion. Wrappers make programming less iOS-like and more Ruby-like. Objective C doesn’t have namespaces, soWeHaveTheseVeryLongConstantAndMethodNames. Wrapping also uses so-called snakecase like_this instead of camelcase likeThis. I have always preferred snakecase. The more wrappers we have the better, and we have a lot of low-hanging fruit. It made me appreciate RubyMotion all the more.

Collin T.A. Gray came next. I had to hold my tongue since I knew what he would demonstrate, and I had a pretty good idea of the reaction it would get. I predicted correctly. Motion::Xray impressed everyone. “Shit just got real.” tweeted someone.

He also talked about his very popular gem Teacup, a DSL for defining stylesheets. Lots of us love it and for good reason. It keeps the code clean and leaves the design crap in another place. Everyone enjoyed his talk, and consider Motion::Xray something special.

Marin Usalj finished the morning with a talk about Bubblewrap. Everyone uses this gem. It provides a lot of wrappers to make life easier. For example, you can just type

Bubblewrap::Alert(“All hail Discordia!”)

to get an alert message. It concluded a morning of hot talks perfectly.

For lunch I had fresh and grilled vegetables, bread, beer, chocolate mousse, a brownie, and a raspberry pastry thing. I figured if someone asks if you want a drink and hands you a beer you should just take it and enjoy. A Belgian explained to me that the english word Spa comes from an area in Belgium with naturally carbonated water. He said it always feels weird to see the word. I felt full and my blood sugar had spiked, putting me in an interesting frame of mind for the afternoon.

The afternoon started with a talk by Michael Erasmus about mixing Coffeescript and RubyMotion. Since I don’t know Coffeescript I sort of tuned out and let my brain recharged, but I got that it gave a way to develop a cross-platform application. It involves building a native UI and a portable Javascript library. This seems like it could give the potential to develop an accessible cross-platform app. I don’t know.

Next came a talk about building interactive data visualization charts with Amit Kumar. Since it involves something visual I gave my brain some more recharging time. I did wonder about adding the accessibility protocol to these charts to give the full experience. When I first got an iPhone I felt so impressed that I could read a stock chart. You never know.

Juan Karam followed this up with a talk entitled Cocos2D, an Easier Way. I figured I’d tune out again for this, after all why would I want to know about video games? Then he actually started talking and I perked up. First he described Cocos2D, the most popular game development engine. It lets you build a game like a movie with directors, scenes, layers, and sprites. A sprite contains a 2D image. The director handles the game logic.

Then he described Box2D, a physics engine. It takes all of the details for you. For instance, it handles a bullet hitting an enemy. He demonstrated the classic game where monkeys throw bananas at each other. The engine performed flawlessly.

Finally he brought it all together with JoyBox, a RubyMotion wrapper around Cocos2D and Box2D. This made a huge impression. A lot of people talked about using it afterward. Juan and I got to sit down and talk a little as well. We both feel intrigued about writing an accessible video game, and plan to work together. I honestly did not expect to take anything away from this talk, and got more than I bargained for.

The energy felt high. On came Akshat Paul and Abhishek Nalwaya with a fast-paced talk called Let’s Move with CoreMotion. Wow! These guys talked fast. Fortunately I feel accustomed to listening to fast speech. Apple introduced CoreMotion with iOS 4. The iPhone has three censors: the gyroscope, the accelerometer, and the magnetometer. CoreMotion takes the raw data and makes it usable, as well as removing any bias. You can do lots of cool things with CoreMotion. I thought of the Dreamz app which tracks your sleep cycle and delivers an audio cue when you enter REM sleep. Far out!

Laurent Sansonetti concluded the conference with his talk RubyMotion: Past, Present, and Future. He gave a heart-felt summary of the path which led him to this point. He sipped beer the whole time. I only have one line of notes, reproducing a diagram:

Work -> depression -> work -> fear -> …

The diagram implied a continuous cycle. Laurent made me feel very optimistic about the future. He has many exciting features planned. I especially look forward to the day when RubyMotion will detect invalid method or constant names. Apple has so many tediously long names, you can easily mess it up with a misplaced capitol letter or with a slightly different wording. But what about the debugger? I wanted to know.

While I attended the conference, Ashley spent the day sight-seeing with a girl named Karen. They had an interesting time, and returned just in time to hear Laurent discuss the location for the next #inspect. He considered New York and Cancun. He showed a slide of New York covered in snow, and Cancun looking beautiful. Of course, everyone laughed and the crowd seemed to prefer Cancun. I knew better.

As soon as the speech ended Ashley came up to me. She couldn’t contain herself about how much she hated Cancun. She went there during senior week, and had a miserable time. She described things to terrible to write in this article. I believe every word of it. She even came up with a very clever slogan.

_Tan or tech: you decide.

New York has a much better tech scene. We do gather for this purpose after all. Our purpose gives us unity, and unity gives us strength. Actually if I could vote for any city, I would cast my vote for Philadelphia. It has a great tech scene, and a great beer scene as well.</p>

I had met Ryan, the guy who said he’d help me out on the mailing list. He had his girlfriend Jane with him. We all agreed to go out for dinner, and a few others joined us as well. We said we’d get there at 06:50, and of course arrived somewhere closer to 07:20. By the grace of Goddess, Ryan had waited for us.

We proceeded to Spago and had a wonderful Italian meal. I had lemon pesto and a nice white wine. For dessert, I had ravioli filled with cacao and orange zest. I had never tasted anything like this in my life. The waiter suggested pairing that with a liquor that tasted exactly like Nutella. I went to heaven.

The night had started getting on, and we knew the time had come to confront the after party. They moved it to the Delirium Cafe. We already knew of this place. While wandering around we noticed that we would just kind of arrive there no matter what. “All roads lead to Delirium.” I said. That sounded profound.

We got there in the thick of things. It reminded me of the after party at BarCamp. I don’t like loud settings. They disorient me. Still, I feel glad I stuck it out.

I met some guys who run Terrible Labs out of Boston. They want me to come up there and give my talk. I also saw Bret again. We agreed that I would come there and see Cowerks and his meetup group, and he would come to Philadelphia to see Indy Hall. Coworking feels like such a magical trend.

The noise had really started getting to me, so my sister said she would try to flag down Laurent for a quick talk. A few minutes later he came and sat down beside me. First he asked if he could refill my beer. Delirium has the largest beer selection in the world, so I felt overwhelmed in many ways. I asked him his favorite beer, and he said Orval. I figured I’d just ask for that. And so I found myself sitting with Laurent, sharing his favorite beer.

I knew the time had come. I had to ask him about his future plans for the debugger. He said what I had hoped, that he wanted to run the REPL on a device. He made it clear that it would happen in the distant future, but that he has considered it. I really hope he does it. This would make life so much easier for me.

I sipped my Orval, a beer with sugar cane added to it. This gave it a very complex flavor. My sister regaled Laurent with some of her Cancun horror stories. Hearing us talk about debuggers also caused her to come up with a funny joke: It’s debugging the shit out of me. She doesn’t even know what a debugger does, but the joke works. After a few minutes of lighter talk Laurent excused himself. I felt glad we got to spend a little time together.

It had started getting late. I talked to Colin for the last time before leaving. We agreed to continue working on an automated accessibility testing solution. I also want to work on improving Motion::Xray as well. Rich also said bye, as well as a few others. Leaving felt tangible. The time had come for the journey home.</em>

An Unexpected Journey

April 15, 2013

I just spoke at the first RubyMotion conference in the magical city of Brussels, Belgium. RubyMotion allows a developer to write iOS apps in the Ruby programming language. It came onto the scene last May and has already attracted a loyal following. The conference gathered enthusiasts from around the world. I explained how a blind person uses an iPhone, how developers can make their apps more accessible, and about my own journey learning to write apps. The speech went over well, and the trip makes quite a story.

This makes up the first part of a trilogy giving a blow by blow account. I believe in gonzo journalism, in other words the idea that truly objective journalism doesn’t exist, so you may as well just throw yourself into it and give a completely subjective account. If you would rather skip ahead to the technical details of the conference, you may go to the second part. Otherwise sit back, open a nice Belgian beer, and enjoy.

For me, it all started in early December when I got the mass mail about the conference. “Yeah, right, like I could go to Belgium.” I thought, and my pinky finger reached for the delete key. Suddenly a higher priority impulse came through my brain. “Why not? Hold on!” it implored, and my finger recoiled.

I stopped and seriously thought about it for a few minutes. I figured it couldn’t hurt to find out more information. A discussion had started on the mailing list and I chimed in. A guy named Ryan replied and said he’d go and could help me. Then Laurent, the creator of RubyMotion and organizer of the conference, emailed me himself. Someone had directed him to my post, and he assured me they would do whatever I needed. He also felt very excited about the idea of a talk about accessibility, and encourage me to strongly think about it.

Now this had started getting interesting. I had gone from almost deleting the email, to strongly considering giving a talk. And they cover some of the cost for a speaker. And they would have vegetarian food, belgian beer, chocolate, and waffles. And I would get to meet a lot of amazing people, and maybe turn a few of them onto the importance of making their apps accessible to VoiceOver. Goddess had spoken. It would happen. I had to do it.

For a little while I sort of forgot about my little Belgian fantasy and went about my business, which largely involved learning RubyMotion. Details needed filling in. I had no idea how I would get there, who I would go with, or what I would say. The whole thing seemed like too much to think about.

In January I joined Indy Hall. That totally changed my life. On that first day I learned of Philly Cocoa, a local group for Mac and iOS programming. My mind raced at the prospect of giving a version of my speech in front of this group. It would give me a way to practice before going half way around the world.

You can read what happened next. The main speaker bailed, so Mike, the organizer, needed a topic. The pieces slid together like a puzzle. I gave my speech that night and it went over well. Mike described the audience as spellbound. I considered this a good sign and submitted my proposal to speak at #inspect.

I felt so nervous and excited. I tried not to think about it, though did start improving my speech just in case. Then a few wednesdays later I went back to Indy Hall, got a chair massage, and while writing another article I got the email I had waited for. They had decided to accept my talk. It had really happened. I would go to Belgium!

This immediately set a chain of events into motion. First I had to figure out if anyone would go with me as a guide. My sister Ashley had just moved home, so she made a logical choice. Of course she accepted. I also had some packing and getting ready to do. And it wouldn’t hurt to brush up on RubyMotion more.

Somehow we did all of these things. I got luggage together and my mom helped pack. My sister got some nice clothes from our aunt. And at the last minute my brother had the suggestion to buy a nice outfit or two. I got a suit and a more casual business outfit with a cool corduroy jacket. I also bought a New Trent battery pack, which gives six full iPhone charges. I felt prepared…sort of.

While attending another talk at Philly Cocoaheads, I realized that I needed slides. I feel accustom to hearing my code, but of course most people see code. I panicked slightly, then remembered all my friends. First my friend Rachel tried to make slides, but ran out of time and sent me what she could. People said they needed work, so I posted a frantic message to Indy Hall’s mailing list on Friday, with two days to go. A member named Adriano responded and volunteered to help me. He does advertising and visual communication for a living. I came into Indy Hall and we met briefly. As you will read he worked for hours and even missed a train home to complete them. Hopefully this article will get him a little business.

Speaking of business, I needed new business cards. My buddy Nick, who runs Wingnut Art helped me in the past and did again. We whipped up AustinSeraphin.com and he made a business card design to go with it. He made a graphic of Grade II braille which says my name, a cool little idea I thought. We wanted tactile business cards to give the full accessible experience, but the UPS truck didn’t come in time. I picked up some free temporaries on my way home from Indy Hall.

I also had my speech to think about. I gave a rehearsal in our condo’s common area. People liked it but gave some valuable suggestions. Make it less technical and more personal. Emphasize what a difference the iPhone has made in your life and in the lives of the blind. Add more humor. And get better slides. With these harsh but true words I left for Belgium, having very little of an idea what to expect.

Ashley and I said good bye and made it to the airport two hours early. This gave us time to get a last reasonably good meal in America. We found our way to the Cita Bistro. I had a veggie burger and we drank beers. I could see the appeal. I felt calm and ready.

When I checked into the gate on FourSquare, the tip said: There’s nothing like a new beginning. We boarded the plane with our backpacks and some neck pillows we had bought in a shop in the airport. Ashley recommended them and they really did save the flight. At first we sat on them to break them in, then we put them behind our heads and they helped so much.

I took out my iPad to hear some music. I had spent a day copying things over. And of course since I have iTunes Match, none of it actually copied. This really bothered me. It seems to go against Apple’s “It just works” philosophy. If I copy music into my “Automatically Add to iTunes” directory, and if I have my iPad set to sync, then shouldn’t it just copy the music over? No, it puts it…in the cloud. So after all that I had far less music than I wanted. I cursed iTunes Match and tried to enjoy what I had. In the past a music collection could take a bag in itself, now it could fit on a tablet or phone. Pretty amazing.

The food sucked of course. We made the right choice eating beforehand. When they served breakfast, they gave us bagels instead of pastries. Why? We comforted ourselves with the knowledge that we would soon eat far better.

After seven hours we landed. We got our baggage and found a cab. In Belgium, the cabs actually have nice cars. We got a Mercedes Benz. It kind of reminded me of Uber.

He practically gave us a tour on the way, pointing out historically interesting buildings. This always amazes me about going to Europe. You can walk down a road or see a building which humans have used for hundreds of years. We saw the EU Parliament building. I asked what he thought of the European Union. He said most Belgians like it, because it brings a lot of jobs to the area.

We finally arrived at Le Meridien Brussels, our home for the next eight days. They hadn’t prepared our room yet, so we waited in the hotel’s cafe. To my delight, they had raw chocolate croissants. I fell in love with Brussels with my first bite. Ashley noticed the open pubs. In America they don’t open until eleven. Not here.

After a fine breakfast we made it to our room. Except they didn’t give us too beds, so we had to wait. We napped then moved to our new room, the one we would stay in. We rested some more then went down to the hotel’s restaurant.

We had amazing meals. Ashley had veal. I had celery risotto. And of course more beer. For dessert, Ashley had a raspberry chocolate cake and I had a 100% Belgian apple pastry with chocolate sauce. I also had some sweet wine. I felt satiated.

After that, Ashley suggested going out. Why not? We wandered around, and found the Delirium Cafe. It seemed like quite the happening place, according to FourSquare at least, plus they held the world record for the most beers served in a venue. I had drank a Delirium Tremens back in America, so had heard of the brand, but this blew us away. I had a local blond ale and a raspberry beer which would go well with the summertime. We came back to our room where I listened to music and rested. We had arrived.

Before I continue, I have to mention the communication situation. We spoke to several AT&T representatives, as well as friends, and they all said to just keep my iPhone in airplane mode and not even worry about trying to get a cell plane for only nine days. This article agrees. Because of this decision, I could only communicate when I had access to wifi, which happened much more rarely than you might think. I came to consider it like a commodity.

The hotel wifi didn’t let us sign in with the standard way. They had to give us a pre-paid access code. It change daily, and renewing it became a maddening occurrence. At least they paid for it.

Finding wifi in public proved almost impossible. Very few places offered it. This would plague us throughout our journey. Delirium did offer it, as did one or two restaurants, but nowhere else. This made me feel disconnected. I have really become used to the constant connection. Its absence began to make me feel cranky.

The next day we woke late. I wanted breakfast. We ended up at a nice local hotel cafe, where I had a spectacular omelet. They didn’t make it like they do in the States, they just scrambled the eggs, then put the ingredients on top of it. I got mushrooms and potatoes, and asked for garlic as well. That with some Earl Grey made a perfect breakfast. We walked around and bought some chocolate at a local shop. Then we came back to the hotel.

We sat on couches and relaxed. We ordered beer, and they brought us these wonderful goblets of Leffe Blond. “Can we drink it on the couch?” asked my sister. “Of course.” replied the server. For us this summed up the whole feeling of the place. Of course you can drink beer on the couch. Of course you can have beer brought to your room. Of course…

We met a woman named Chris from New Jersey. She works for Godiva. My sister wanted her to get her a job. We saw a Godiva shop but dismissed it, because we had it in the States. Chris informed us that it tastes different here, more bitter. THis intrigued us.

Before I left I had emailed a friend who lived in Brussels. He introduced me to one of his friends through email, and we met that night for dinner. He had reserved a table at a vegetarian restaurant, which suited me well. I don’t even remember everything I had, a buffet-style assortment of goodness, but I enjoyed it all. Stefan really helped make the trip even better!

We thought we had beaten jet lag, but the next day we woke up at 05:00 in the afternoon. We had woken up earlier and had breakfast downstairs, but then we went right back to sleep. This threw us off, we had to go to the RubyMotion Speaker’s Dinner at 07:00. We showered and dressed. I put on my new casual outfit with the cool corduroy jacket.

It always feels cool to walk around a new city. Ashley noticed the architecture immediately. They have a lot of older buildings, and they don’t just keep making everything new like we do in America. I could use echolocation to at least see the differences in their shapes and sizes. All the streets had cobblestone. Philadelphia has some so I felt used to it, but they had it everywhere.

The email said to meet them in front of the Grand Place. We just had to go across the street, and we stood in front of the Grand Place, wondering what would happen. I wondered if they would see me. I heard a group of people speaking English so thought I’d ask. “Is this the RubyMotion group?” “Yes!” I had found them. It had actually happened.

And with all the background out of the way, you may now continue to read about the actual conference in the second article in this trilogy.

Braille Street Art

March 13, 2013

Recently, I began chatting with an artist friend of mine. We met when Indy Hall did their Jellyweek event at National Mechanics. She enjoys doing street art, creating bumper stickers and pasting them on public newspaper boxes. I immediately felt attracted to the subversive nature of the art. It didn’t take us long to realize that I could put one of these stickers into a good old fashioned Perkins brailler and create braille street art.

I would like to think we have done something novel, but not entirely. I found an article about a project in Portland, Oregon. In this case, the message says: “You don’t need to be blind to see that the writing is on the wall.” Excellent! I’ve also seen sculptures with braille plaques on them, and they do have a blind garden somewhere around here. Still I can’t escape the feeling that we have done something special.

We just made these stickers in a few minutes as a totally grass roots operation. The first sticker says “Aaron Swartz died for you!” This references the suicide of an internet freedom fighter arrested for making public domain documents available to the masses free of charge. The FBI wanted to drop charges, but a United States attorney named Carmen Ortiz wanted to send a message, so sentenced him to thirty years in prison. Swartz hanged himself on the anniversary of his arrest. I’d say Ortiz sent a message all right. We also did a special one with another message at the bottom: “I love whistleblowers.” In the future we will have a raised heart instead o the word “love” as they do in print, but this served as a functional prototype for now.

After doing this I began to feel inspired. I next made some with Max Keiser’s slogan: Buy silver, crash J.P. Morgan! The theory goes that J.P. Morgan has a massive short position in silver. If even 5% of the world’s population buys a single coin of silver, this will make the resource scarcer, thus forcing up the price and making it impossible for J.P. Morgan to recover its position. This would then force them to go bankrupt.

Some people do not believe this and question if it will work. Others feel certain it will. Either way it makes a good conversation starter. Besides, owning silver serves as a very real hedge, and offers a way to strike back against the globalist banker parasites which attempt to rule our world. And if you would like to buy some, check out my friends at Liberty Gold and Silver.

Lastly, my friend does a lot of stickers about animal rights, so I did one which said: “Love cats. Always adopt.” We both love cats, so I felt happy to do this. I adopted my cat from the SPCA and couldn’t have asked for a better animal friend.

For the prototype we used freely available postage stickers. She writes her slogan in the blank space. Fortunately I could braille wherever, leaving her the space to write. The combination of print and braille worked very well, and we quickly had them done.

At the bottom of the sticker she wrote “Braille Street Art” to alert sighted people. When we began discussing this idea, I realized a challenge. How would a blind person know to read the braille? We don’t just go around feeling every surface. Hopefully this will encourage a sighted person to point it out if traveling with a blind person.

I didn’t know this, but street artists frequently use symbols to sign their works. My friend uses a pair of cat ears. We wondered about a symbol for me, and decided on the glyph for my Mayan birthday. She quickly fashioned an approximation, good enough for now. So it has her cat ears, an X like a multiplication symbol, and my Mayan glyph. Artists doing a collaboration use this “a X b” style of symbol.

Finally I showed her the top left corner of the stickers so she could affix them properly. Nothing sucks more than seeing an upside-down braille label on something. From my point of view they looked perfect, or should I say they felt perfect. I left the top part of the sticker blank for writing, vertically centering the braille more or less. They use grade II braille, which uses contractions. A blind person will know that another blind person had to make the them.

We gathered up the stickers and headed out to the #NotAtSXSW party at Drink Philly. We discussed where we wanted to apply our masterpieces while in the cab. We suddenly knew exactly where to go. We slightly changed our destination and ended up at our old friend, Indy Hall. The City paper box in front of it made a perfect target. She made some final adjustments to the stickers while I smoked a pipe. Then in a flash it happened. The box now had two subversive stickers affixed to it. I felt them. Aaron Swartz died for you! Buy silver, crash J.P. Morgan! This made me feel empowered, and a certain new type of giddy thrill. Now I understood the attraction to creating art, especially this type of art, and I wanted to do more.


The deed done, we headed over to Drink Philly and had a wonderful night networking and chatting with a cross section of Philadelphia’s wonderful tech/startup community. We decided to post a photograph on Twitter and already it has gotten some mentions, so people like what they see. I feel fantastic!

Stay tuned, because we will have plenty of more braille street art. Perhaps you will see it or maybe even feel it. And if you do chance upon it while with a blind person, kindly point it out to them. I can only imagine the weird sensation a blind person will have reading these rousing slogans. We simply don’t encounter braille in a public art form like this very often. Before this I had never encountered graffiti, or street art. Now a whole new world of expression has opened up to me. I wonder what we will do next. By the way, that bastion of truth Wikipedia defines street art as “specifically visual art.” Not anymore!

Turn the Page

Search my Weird Life