Intridea Insider: Ping Yu
It's a typical love story. Boy becomes a developer. Boy meets Java. Boy spends years with Java in what he believes to be a righteous and dignified relationship. He hears whispers of a better language from far away lands, and her name is Ruby. Of course, the loyal and virtuous developer dismisses the rumors as unscrupulous stories, and he clings tightly to his superior languages and the comfort they bring him. But like all truly good languages, Ruby finds her way to the developer's heart, and she makes herself at home.
This week in the Intridea Insider, meet Ping Yu, Director of Asian Operations at Intridea, former Java and C++ developer, and veteran Ruby and Ruby on Rails evangelist.
Ping received a Master's degree in Computer Science from the University of Maryland, and another Master's degree in Electrical Engineering from The Catholic University of America. He spent his undergraduate time studying Computer Science from a prestigious university in China, where he grew up. "A lot of my friends were applying to graduate schools in the United States. I wasn't sure what to expect, but I decided to go along with it and apply too." After finishing his degree programs in the states, he joined a Maryland fiber optical company during its startup phase, doing Java, C++ and a lot of J2EE. After surviving a tough round of layoffs, he moved to a network security company, hacking linux kernel.
When Ping started college in China, he dreamed of being an architect, but a degree in Architecture was not in the cards: "You know, in China things are different. You have to get into the hottest field, and the hottest field isn't necessarily the one you like." Although Ping was exceptionally talented in programming and did well in his CS program, he always felt like he had to force himself to program.
His experience at graduate school in the states was more positive and helped to shape his love for programming; when he met Dave Naffis and Pradeep Elankumaran of Intridea years later, he was enticed to learn Ruby. "Dave and Pradeep loved Ruby. But when I picked up Ruby for the first time I did not like it, since I was so used to Java and C++. Ruby was too tricky for me, especially Rails." His first encounter with Ruby wasn't love at first sight, but the fling continued. "But once I understood the language and the problems it was trying to solve, I was in love. Now I can never go back to Java or C++. The languages put too much useless burden on the programmer. They are not as fun to work with as Ruby."
Ping came on board with Intridea during our infancy. He was employee #4, and has been part of the vision and culture of our company from the beginning. He has helped to grow Intridea from a group of four guys working at their dining room tables, to a company of 40+ Ruby and Rails developers and designers that span continents and multiple time zones. His work as Director of Asian Operations aims to bridge our Asian team of Rubyists with our centralized team in the states. "I believe in helping to extend Intridea into China. There is so much talent in China, it feels like a natural thing to do. Intridea has a culture of quality, and I want to bring that to these developers. They love Ruby, and they have so much energy."
Although Ping spent several years living in the MD/DC area, he now lives with his lovely wife, Maggie, in Minneapolis. He met Maggie in grad school, and she later went on to Georgetown Law School before becoming an attorney and accepting a job in Minnesota. They share their home with their beloved golden doodle, Jojo (a golden retriever and poodle mix). He prefers the warmth of the DC area to the numbing temperatures and tempestuous winters of Minneapolis, and mentions that he hopes to move back in the next few years.
Ping doesn't feel any loss over his break-up with Java or C++. A lot of his friends are still using Java and C++ though, so I asked if he gets into language wars with them, and he answered with distinct clarity: "There is no need to argue. They know Ruby is better." Joining Intridea and learning Ruby sparked his passion for programming, and he is confident in the decisions he has made. "The the thing that matters is whether you choose life or life chooses you. I am glad I chose Intridea."
This post is part of a weekly series, called "Intridea Insider"
Talkin' About Upgrading to Rails 3
This year at OSCON I had the pleasure of giving a talk entitled Upgrading to Rails 3. The talk served as a high level overview of the new features of Rails 3 that are both a boon for developers and something to watch out for when trying to upgrade your Rails 2.3 applications. I followed it up with a livecoding session in which I took a to-do application (built mostly by Intridea’s own Jeremy McAnally) from Rails 2.3 to Rails 3 in the space of just over 10 minutes.
The slides and video are available at the end of the post, and if you’re interested in really diving in-depth into the Rails 3 upgrade process, I highly recommend Jeremy McAnally’s Rails Upgrade Handbook as an indispensable tool. With the release of Rails 3 looming ever nearer, the timing couldn’t be better for you to dive in and learn what it will take to get your applications running on the next generation of Rails!
The above slides are fairly self-sufficient and give a high level overview of some of the changes Rails 3 brings and some of the tools and tricks to look for while upgrading. Below you’ll find the screencast I recorded livecoding (apologies for the “shouting” tone of voice, conference-voice doesn’t translate perfectly to screencast-voice) a transition from Rails 2.3 to Rails 3 on stage during the last 15 minutes of my talk.
A To-Go Plate of Ruby Midwest
This past weekend Rubyists from all over descended upon Kansas City (my hometown and new place of residence) for the Ruby Midwest conference. Headlined with keynotes from Chris Wanstrath (of GitHub fame) and Yehuda Katz (of Merb and now Rails fame), more than 150 Rubyists attended the single-track conference at the UMKC campus. Intridea was represented by four members, one talk, and by sponsoring a Kansas City Barbecue dinner for the first night of the conference.

Photo courtesy of peterpunk777’s Flickr stream of the event.
The OMGWTFBBQ ran smoothly overall and gave more than 120 of the attendees a chance to taste some of the best of Kansas City Barbecue from Jack Stack. In addition to some belt-loosening food, we held some lightning talks that included a particularly memorable talk by Jeremy Evans about “Singleton Classes of Singleton Classes.”
My talk focused on the emerging standards for automatic web app interoperation via the OStatus protocol (and through it the PubSubHubbub, Webfinger, Salmon, and ActivityStreams protocols). While the talk was high level, hopefully I sparked some interest in the attendees in learning more about these standards and possibly implementing them in their own applications in the near future.
We had a great time at the event and, judging from Intridea’s TweetSentiments Analysis, a lot of other people had a great time too.
Intridea Insider: Raymond Law
He is a moderately reformed NBA fanatic and at one point knew the names of players on every NBA team. He is a serious coder, and spent six years working on battlefield simulations. You don't want to challenge him to any duels involving Physics. Or code quality. This week, meet our Senior Software Engineer, Raymond Law.
Ray taught himself Ruby and Ruby on Rails, but not before spending years programming in Pascal, C, and C++ and teaching himself PHP. His first language was Pascal, which he learned in high school while living in Hong Kong in the early 1990's. "I started programming in Pascal back in school in Hong Kong in 1992 because it was the language used in the public exams. And since I had a functional programming background, it was easy for me to switch from Pascal to C first, and then to C++."
Ray's family left Hong Kong to come to the United States when he was still in high school. He remembers struggling with leaving his life and his friends behind in Hong Kong; "I was just very sad to leave so much behind. I was on the right path to get in to a university in Hong Kong, so I didn't understand why my parents wanted to move." He later appreciated that his parents wanted to move for the potential of a better life for their family; and since he had a really good English instructor in Hong Kong, he already had a good foundation to start his new life in the states.
Armed with a love for both physics and computers, he entered college at Virginia Tech with the intention of majoring in Physics. "I liked Physics because I had a very good instructor in Hong Kong. I would tell people that the harder the exams were, the happier I was; I like the challenges of tests and applying my knowledge." He started out his first semester by taking an advanced level Physics class; "I got a bad grade on the first exam, but then I worked incredibly hard to get the highest grade on the final exam." He talks proudly about achieving that goal; "My professor personally told me: 'This is the stack of exam papers sorted by scores, and yours is on top.' I will never forget that moment."
Despite his enjoyment in studying Physics, Ray later changed his major to Computer Engineering and minored in Computer Science and Mathematics and finished college in only 3 1/2 years. He explains the difference between Computer Engineering and Computer Science: "Engineering is about finding solutions to problems. CS is more focused on theoretical ideas and algorithms." He has found his background in Engineering to be incredibly useful in real world situations. "Currently, I'm working on migrating a large amount of assets from a server-based file system to Amazon S3. It's a very involved integration but I love it because I'm solving a real problem. My engineering skills are very useful in this situation." He believes in taking small steps when he's programming, and he is extremely methodical; "Change one variable at a time and look at the results. Then you can have meaningful comparisons. As programmers, a lot of times we are inclined to implement the whole solution and hope that it works. But it rarely works that way."
For similar reasons, Ray believes strongly in testing and behavior-driven-development. However, he approaches testing with flexibility, based on the needs and requests of the end clients. "Realistically, some clients don't understand the value of testing and it can be hard to convince them of the advantages. I try to explain to clients that if we are allowed the time to write good tests, it will result in better quality code and it will help them down the road."
Ray really understands the dynamic of the client relationship. He talked with me about the importance of understanding where a client is coming from and noted that oftentimes the client knows what they want, but they don't have the technical knowledge to understand the process that must be taken to bring about their desired results. "It's important to explain our technology decisions and talk them through how the code works if that is what they need. Clients hire us because they don't know how to do this themselves. It's the same reason that I hire someone to do my landscaping; it's not that I'm ignorant and couldn't learn to do it myself, but I am using the time I save to do other things that I am good at. So when I respond to clients, I try to be specific and encouraging so that they understand that we are here to help them, not laugh at them. I think that is an important understanding for us to have."
Perhaps it's Ray's gentle and understanding nature, combined with his explicitly genius talent for problem solving that makes him such a great developer. Whatever it is, we are fortunate to have him on our team. Ray enjoys working with us too: "I am just enjoying my life - I have a great family of my own, and a great job at Intridea where people value each other." Ray lives in Virgnia with his wife Vinly, whom he met his freshman year at Virginia Tech. Vinly majored in Architecture and found a great firm to work with after graduating. They have a baby girl, Chloe, whom they adore completely. Ray says, "Chloe is the best thing. Nothing compares to Chloe smiling at me."
Ray works from his home office, and enjoys the flexibility that being part of a distributed team affords him. "I work very effectively at night. When you work in the office, there are many distractions. So I enjoy working from home so that I can arrange my schedule in order to do my best work at nighttime. I often work until 4 or 5 am." Before joining the Intridea team, Ray worked as a DOD contractor on battlefield simulation software for TARDEC, the U.S. Army's Tank and Automotive Research, Development and Engineering Center. He spent six years with the DCS Corporation before he met Dave, Senior Partner at Intridea. By this time, Ray had already taught himself PHP, Ruby and Rails and was using Rails for several personal projects, including a list application and a small app for locating local badminton playing locations. On learning Rails, he reflects, "Learning Rails was so intuitive to me because everything seemed to make perfect sense. Stuff like convention over configuration and MVC just made sense to me. I think Rails understands the pains of developers and tries to ease or eliminate the pains so we can focus on application logic."
Thinking back to his old life in Hong Kong, I ask Ray if he has any lingering regrets now about leaving his life behind and moving to the states: "Nobody knows what would have happened if I hadn't moved. So I am not looking backwards." In the end, it all worked out - a brilliant and lovely wife, adorable baby daughter, his parents and brother living nearby in Virginia, working for a company he believes in and programming in a language that he loves.
美好人生 "It's a wonderful life."
This post is part of a weekly series, called "Intridea Insider"
Car Finder 2.0 Now Available for iPhone
If you have both a car and an iPhone, then you might be as excited as we are that Car Finder 2.0 is now available in the App Store! Car Finder 2.0 is chock-full of additional features and makes finding your car easier and more accurate than ever. One of the best new features of Car Finder 2.0 is Parking Meter Notification. When you mark the location of your car, you have the choice of setting a time for when your parking meter will expire and then be alerted when your parking meter is about to run out. Also, if you don't want to use the augmented reality view to find your car, there's now an option to just view your car on a regular map.
For those of you who haven't heard of Car Finder, it is a super smart mobile app that uses augmented reality to help you find where you parked your car. Car Finder has been featured in many publications such as, Gizmodo, Consumer Reports, Wired Magazine, Cult of Mac, and the The Unofficial Apple Weblog. Just last week, Consumer Reports named Car Finder one of the must have smart phone applications for smart drivers.
Car Finder relies on the GPS and compass in your iPhone to accurately mark the location of your vehicle. You can see the accuracy of your GPS signal in real time and you will be alerted when you are trying to set the location of your car when the accuracy is not optimal. We use augmented reality to overlay real-time information about where your car is parked while you look at the world around you with your iPhone.
Car Finder 2.0 is available now in the App Store for $0.99. Car Finder was built by the talented mobile dev team at Intridea. Intridea offers services for application development on all major mobile platforms, including iPhone, IPad, Android, BlackBerry, and webOS. If you need your mobile idea brought to life, contact us for a quote.
Stop The Hate: Obj-C Deserves Your Love
My first foray into Objective-C was, for lack of a better description, a sink-or-swim situation. I was working for a previous employer and our lead iPhone developer had just been laid off; my old boss was in my office the next day asking me how quickly I could "get up to speed". "You know Ruby", he said, "How difficult could it be?" It was time to get some books.
The first point I would like to raise is that Objective-C, while itself quite elegant (at least in comparison to its namesake), is fairly useless on the Mac platform without the Cocoa framework. And it is this framework that I think a lot of Rubyists get hung up on. The other big sticking point is manual memory management through the use of retain and release.
Cocoa's roots start all the way back in the 1980s with the NeXTSTEP operating system which tagged along with Steve Jobs when he was tapped to lead Apple again in 1996. This is why Cocoa's core classes, such as NSArray and NSString, all begin with 'NS'. The naming scheme is a holdover from that earlier OS and while those two extra characters may not seem like much hassle, to a Rubyist they represent an unnecessary burden of verbosity. In addition, Cocoa makes extensive use of the delegate pattern, something that is rarely seen or needed in Ruby and can make it difficult to trace an execution path for those unfamiliar with the concept. One of the limitations of Objective-C, the inability to create difficulty in creating a function with a variable length argument list, is commonly resolved through the use of the poorly named hash userInfo, which frequently appears in method definitions without any connotation as to its purpose. And lest we forget those wonderfully verbose method names, I think even the most die-hard and grizzled veteran of Objective-C would agree that NSString's stringByReplacingOccurrencesOfString, could have been better-named.
Rubyists are proud of that fact that they don't have to worry about memory management. The more knowledgeable Rubyists could tell you that the garbage collector, or GC, works by continually scanning objects in memory once a process has accumulated eight megabytes worth, checking to see if there are any pointers to those objects and then releasing them back to the OS if they do not. But most Rubyists would refuse to venture any farther down that dark path of memory management out of a simple need to retain their sanity. Indeed, for a good few weeks I struggled with this concept until my fellow iPhone student Paul Barry introduced me to a book that would change my outlook. Titled "Learn Objective-C on the Mac", it proved to be a treasure trove of information on object allocation. Specifically, chapter nine, which dealt with memory management, made it crystal clear what was going on underneath the hood when an object was created, and thus retained, and when it was released. The concept itself is simple: retaining an object increases its "retain count" by one; releasing it reduces that count; and when it reaches zero that space in memory is released back to the OS. Immediately the seemingly-random crashes my applications faced were decipherable and easily fixed while my hostility to Objective-C and the Cocoa framework melted away.
As Rubyists, we tend to value the simple over the complex and prefer not to sweat the small stuff. Yet on a whole we also desire learning new concepts and many of us can attest to that being the driving factor behind leaving a former language of choice behind. On occasion, such as with Objective-C and Cocoa, our preference for simplicity and our desire to learn collide, head-on. But rather than tweet about how ugly Cocoa looks or how memory management in Objective-C is beneath you, I challenge you to dive further. After all, Ruby itself is built on Objective-C's forebear, C, and no programmer has walked away worse for wear after peeking under the hood. Learning Objective-C not only opens up the world of iOS application development but also makes us better Rubyists.
Intridea Insider: David Potsiadlo
He can turn empty pixels into tasty bits of candy; with only a touch of his fingertips he transforms the mundane into the extraordinary. This week in the Intridea Insider, meet our prodigious web designer, David Potsiadlo.
"Pots", as we call him, is loved by all of us at Intridea for his artful and brilliant designs. His most famous work at Intridea was the redesign of Intridea.com that went live early this year. Aside from his stunningly simple and creative designs, what is most fascinating is his design process and sources of inspiration, which we talked about at length during our interview.
Pots draws inspiration from several sources, with an overall approach to design shaped by the writings of the author and comparative mythology scholar Joseph Campbell. "The goal with the Intridea redesign was to incorporate the spirit of the old site (the grass, trees, and sky), while simultaneously incorporating design elements from Michael's most recent design (the fuchsia, beige, etc)."
Pots then explains how this quote from Campbell, "we live today in a terminal moraine of myths and mythic symbols", inspired him during the preparatory stage of the design process. "What Campbell is saying is that we, in the modern world, are surrounded by the remnants of symbols and images by which people in the past used in their attempts to express the inexpressible. New mythic structures seemingly always grow out of old ones, and include symbols and that the previous ones had. This is often equally true with the forms of a visual design." Pots believes that a website can be the "visual spirit of a company." He reasons, "So, I thought it right – and perhaps more importantly, helpful – to honor the existing design (Michael’s) along with our original Intridea design." On our new site you'll see clouds, grass, hills and trees, along with some of the fuchsia and beige elements that Michael introduced in his previous design.
After collecting ideas on the inspiration board, he focuses in on a specific direction and design concept. "The next step is tricky, and I think where the magic hopefully happens. The idea is to look at the old and existing, and let it pull you in a way that 'takes you past it.' The idea is not to get stuck on existing visual design items used by others." He also has to ensure that the aesthetics he used were not stuck in the cliched past, "but rather, indicative of new trends and forward motion in design." Pots talks about Campbell's interpretation of a mythic symbol and relates mythic symbols to design elements: "His interpretation is that the symbol should be 'transparent to transcendence': In other words, it should allow us to take the symbol in, and allow ourselves to not get stuck on the symbol itself, but rather what the symbol points to." Ultimately, Pots fully acknowledges that the most important aspect of all of this is whether or not the final design speaks for itself and actually works. "In the end, if the final product doesn't do its job, then all this talk about inspiration and process doesn't really matter."
Although his process is alive with notions of mythological theory and visual philosophy, it can be summed up quite simply: "My process for all new sites starts like this: get a vague, abstract idea of the vision I want to achieve. Next, look for examples of sites using similar visuals. Next, I organize my inspiration into an Illustrator file. Collectively, the goal is to use these elements as a springboard to create something alive and new." Here is a look at the initial inspiration board he created for our current site design:
Pots was in the fortunate position of having a substantial amount of time to devote to this particular redesign project. He admits that in general, the constraint of time can often reduce the scale of each step in his process. "I think a big challenge as a growing designer is to realize that every site can't be the most-epic-process-ever-omg." And when he is under restrictive time constraints he finds that, "Ultimately, communicating with clients to rein in their design expectations" is important.
Pots’s creative talents revealed themselves at an early age. Long before he started with Intridea, he drew Teenage Mutant Ninja Turtles for his classmates' trapper keepers in the third grade. Always inspired by his older brother, whose drawings he loved, he started drawing when he was very young; "Sketchbooks were the medium of those days. Tons of blank pages." He had a habit of doing each new drawing on a random blank page in the sketchbook; "The idea of going through the pages in linear order was the opposite of my instincts. In a sense, this made finding a new blank page kinda tough when the book began to get full, but it was still the way I enjoyed doing it. I had to find the right blank page for my drawing at that particular moment." He loved drawing cartoonish war and battle scenes over ocean backgrounds, complete with battleships, attacking planes, helicopters, and submarines. Much of the drawings in his later years were inspired by the backstories for his favorite video games like Dragon Warrior, The Legend of Zelda, and Diablo.
In between drawing Teenage Mutant Ninja Turtles for his third grade classmates and working at Intridea, he grew up in suburban Maryland where he loved exploring the forests, playing video games, piano and ice hockey. Pots went to college at the University of Maryland where he started out as a Computer Science major. He had done some programming in high-school as an extension of his gaming hobby. "One useful side effect of all the PC gaming was getting comfortable with DOS. I quickly grew comfortable learning basic command line stuff." He had several PASCAL and C++ classes in high school. "As much as we coded, we also learned how to get around the computer lab’s security codes so we could play Quake 2 on the LAN." But he wasn’t in the Computer Science program very long; "After 3 months I firmly decided to quit that major; it was lifeless to me. Not in a judgmental sense, but rather on a personal level: at that time in my life, it too closely represented the path of non-discovery."
Pots majored in American Studies which gave him the flexibility to focus on sociology and music. "Sociology allowed me to continue learning about different global situations and introduced me to my budding interest in tribal religion, which grew into a passion for comparative mythology." His music major allowed him to deepen his understanding of music theory after playing piano for ten years and augmented his passion for playing guitar, which he claims was his "unofficial major" in college.
After graduating, Pots worked waiting tables, playing gigs at local bars and coffee shops, and devoted a lot of free time to creative writing. It wasn’t long though before he realized he needed a "real" job, and he got hired with the Chesapeake Research Consortium. "That gig had me handling various tasks, including maintaining a website. Best of all, they had a training budget. I could buy books dedicated to HTML, CSS, Photoshop and Illustrator. This was heaven." He looked to sources on the web like Zen Garden for guidance as he taught himself the gentle art of of web design. As he learned Illustrator and Photoshop, he discovered ways to take characters from his creative writing and put them into visual form. His creative writing not only inspired his art, but it also motivated him to re-approach guitar from a new perspective: "I became interested in the possibilities of writing esoteric folk songs, instead of just playing what people in coffee shops wanted to hear."
After working at CRC for a few years, he started freelancing on the side. "I was taken by the web possibilities and how it could be translated into a career. I freelanced for about a year, and did everything you see here:
He spent a year doing freelance work before he ran into Chris Selmer, Senior Partner at Intridea while he was at a DC tech event. "I was hired shortly thereafter. It was a dream," he reflects.
It didn’t take anyone long to discover how talented Potsiadlo was. In addition to rolling out our new website design, he has been busy designing for several client projects, including EarthAid and HowAboutWe. He works from his home in Maryland where he lives with his wife, Shannon, and their baby girl, Norah. He enjoys working at his home office, but admits that he really loves working in coffeeshops too: "Sitting in chairs previously used by others doing their own respective work, drinking from mugs once used by others while doing likewise. The ambience of creativity in these settings is one of my favorite things. I think my favorite encapsulation of all this comes from this TED talk (author Elizabeth Gilbert, on creativity and genius.)"
Though he certainly loves music, he prefers to listen to podcasts while he works. "I think podcasts represent an awesome realm of creative use of the internet." His favorites include Leo LaPorte’s TWiT.tv network, the sports and pop-culture ramblings of Bill Simmons, and geeked-out movie conversations on The /Filmcast. When he's not having fun with his family or being creative with music, images or language, he enjoys doing work in his home's garden and watching sports on the TV.
Potsiadlo could be considered a Homo Universalis, a modern day Renaissance man. From his clever sketchings, to the intricate songs he plays on guitar and piano, to ice hockey, to his interests in global issues, to his love of comparative mythology, to creative writing, to the art that he creates for the web. It’s hard to believe so much talent can come from one human being. Then again, Pablo Picasso may have said it best when he reminds us that the artist is not just a set of eyes or ears, but a political being:
"What do you think an artist is? An imbecile who has only his eyes if he is a painter, or his ears if he is a musician, or a lyre at every level of his heart if he is a poet, or, if he is merely a boxer, only his muscle? On the contrary, he is at the same time a political being, constantly alert to the heartrending, burning, or happy events in the world, molding himself in their likeness."
This post is part of a weekly series, called "Intridea Insider"
Oil Reporter Now Available for iPad
Last month Intridea released Oil Reporter, a mobile application for iPhone and Android devices. Oil Reporter is currently being used by NGO's and citizens on the ground to report affected areas of the spill, including the impact to wildlife, the presence of wetlands, and the amount of oil that is present. All of the data collected by Oil Reporter users is publicly available on our website at OilReporter.org.
Now we've gone one step further and created a new Oil Reporter application specifically for the iPad. Oil Reporter for iPad enables you to see the latest reports as soon as they come in. You can view a detailed mapping of all of the submitted reports along with an easy-to-read list. You can even drill down and view detailed information about each individual report.
The code has also been open sourced on GitHub, so feel free to help us add some great new features to this application that we can push out in later updates. Oil Reporter for iPad is available right now and is completely free. The crowdsourced data gets analyzed by groups that can point relief efforts at the distressed areas according to the urgent reports that are filed with Oil Reporter. Start using it today!
On Android and Custom UIs

Google’s Android has seen an incredible rise in popularity since its first handset was launched less than two years ago. Google has worked hard to earn that popularity, regularly releasing fantastic new improvements to the platform in the form of Donut, Eclaire, and now Froyo. Unfortunately, many users of the Android ecosystem won’t see these improvements for years, if at all. The reason? Manufacturers of Android handsets are building custom versions of the OS to add eye-candy and make the UI seem more attractive, at the expense of upgradeability.
HTC has its Sense UI and Motorola has MOTOBLUR. Samsung and Sony have also thrown their hats into the “heavily modified UI” ring. While these packages may serve to help differentiate from the competition, they are hammering the Android ecosystem by causing fragmentation (and yes, I do think that’s the right word). But it isn’t all their fault. One can certainly understand how, when competing against the likes of the iPhone, manufacturers would want to “pretty up” the Android experience. So I’ve got a few words for these OEMs, and Google as well.
Dear Google
I’m really happy that you’re ‘laser focused’ on the user experience for the next release. Now that you’ve got it humming at lightning speed with Froyo, it’s time to add some polish. Fantastic. But making a better stock UI isn’t the only thing that needs to happen to prevent this fragmentation.
You should be doing everything you can to prevent version fragmentation because it’s hurting developers and consumers. When people with G1s see “official Android Twitter client released” but can’t download it, they’ll get frustrated. They don’t know or care about the fact that the G1’s limited internal storage means that it can’t get the next upgrade, they only care that they’re supposed to have an Android but they can’t get the software they want.
Here’s my advice: take the feature lists of Sense and MOTOBLUR et al as a laundry list of areas where your API needs more robustness. If the capabilities of Sense and MOTOBLUR were exposed at an application level, this problem would simply disappear. You’ve built your platform to be backwards-compatible; if HTC wants to build a “Sense UI” app that changes the appearance of the UI and adds a bunch of widgets, and they want to make that only available on their handsets, more power to them. When the next version of Android comes out, it’ll all work seamlessly because they’ve simply built an app, like any other developer.
So keep up the good work on Gingerbread, I’m looking forward to the UI improvements. But also make your UI reachable by applications, provide hooks into the very guts of Android so that manufacturers and developers alike can really “make it their own” without building a custom ROM.
Dear HTC/Motorola/Samsung/Etc.
Thank you for making Android handsets. I’m a huge supporter of the platform, and the level of competition and innovation on Android phones has been amazing. Keep it up! But you’re doing yourselves a disservice by building these custom UIs that inhibit the Android version upgrade process.
Google has huge teams of people working to continuously upgrade the Android experience. You get the fruits of this labor 100% for free. I understand that as a handset manufacturer the idea of upgradeable phones isn’t necessarily the most appealing: if people can upgrade the software on their phones, maybe they won’t want a new one in 2 years! But trust me, you’ve shown that you’ll make the hardware good enough that people will want new phones.
Instead of locking down a handset to a specific Android version, create an unbeatable suite of applications that comes pre-loaded on your phone. Work on top of, instead of within, the Android operating system. Then you can leverage all of Google’s work and all of your own work to provide customers with a great experience. Work with Google to add pieces of API that will help you provide all of the value you want to provide; I’m sure Google would be happy to help as best it can.
Also, while I’m at it, can one of you please create a 4.3" handset running the stock Froyo UI sometime before November? I’d love to get a big-screen phone when my contract’s up, but I don’t know that I can handle dealing with these custom UI jobs. It’s just not for me.
Unicorns and Rainbows
I think that Android is a very important project that came along at just the right time. It has applications far beyond mobile handsets and we’ll begin seeing Android in cars, tablets, and more in the very near future. This will mean even more work will be poured into the Android ecosystem creating greater and greater benefits for everyone from consumers to handset manufacturers. All that needs to happen to take advantage of those benefits is for Google to help handset manufacturers free themselves of the idea that they need to “make it their own”.
I’m looking forward to the next 40 Android phones, and the 100 after that. I truly think that Android is going to dominate the mobile market five years from now (Apple will still have about the same piece of the pie, but Android will have displaced RIM and Microsoft entirely). So keep up the good work, but how about we all just get along in the meantime.
Intridea Insider: Michael Bleigh
Acts-as-taggable-on, subdomain-fu, tweetstream, seed-fu, oauth2, and multi_json. What do all of these open source projects have in common? Why, Michael Bleigh, of course! This week, meet our Creative Director, Michael: expert programmer, prolific designer, and open source crusader.
In his three years at Intridea, Michael has created a staggering number of open source solutions for Ruby and Ruby on Rails developers. His contributions to our community are noteworthy and it is for this reason that I start off the interview by asking him about his inspiration and passion for open source software and development. For Michael, it was simple: "I saw people doing cool things and thought, hey, I want to be like those people!".
His first (and most popular) project was acts-as-taggable-on, "a tagging plugin for Rails applications that allows for custom tagging along dynamic contexts". Michael says that the project came about because, "I really needed the functionality, and I was able to get it by modifying an existing plugin. I rewrote it and then I figured, well, I should release this. Instantly, I was hooked." He has created over twenty open source projects since he started with Intridea, and cites several of them as personal favorites, such as subdomain-fu: "Lots of people were making Rails apps with subdomains and everyone seemed to be complaining about it. This one just took a lot of hard work and perseverance reading Rails internals to make it work right, and once it was done, subdomains just worked."
Most recently, he has been working with OAuth2; "I've really gotten interested in these open standards, and when OAuth 2.0 came out I was happy to be able to write the first Ruby library for it."
As our internal open source pioneer, Michael spends a lot of time focusing on creating these open source tools. But he doesn't just create open source solutions; he also points out that he uses dozens of open source projects every day. It might sounds like a high number, but Michael explains, "Anyone who develops for Rails is using a ton of open source projects. Every gem in your Rails app is someone's hard work, sweat and tears." Michael contends that more developers should make time to develop or work on open source software. "I've always wanted to give a sort of open source cheerleader talk at one of these conferences. It's so easy, there's no reason everyone can't do it."
Michael is equally a programmer and a designer. From an early age he had a passion for both computing and gaming, as well as drawing. "I really enjoyed cartooning. I used to do dead-on Penny Arcade art style as well as a decent anime style. My freshman year of college I had a webcomic called 'Fun With Sharpies' that were just hastily drawn Sharpie comics." He has even contemplated starting a weekly webcomic for Intridea.
As a designer, he laments the lack of design talent in the open source community. "Apple has a monopoly on pretty graphics with a POSIX shell (though the new Ubuntu is nice). I'd love to find a way to encourage more designers to get involved with open source and make things that cause Cupertino to be jealous instead of the other way around." Michael admits that although he makes every attempt to use open-source software, he still uses proprietary software. Mac OS X is his primary operating system due largely to the availability of Adobe's design tools. Michael does his best to try to bridge the gap between designers and the open source community; "I've created some open source projects with a UI, like my Twitter client for Google Chrome, but I'd like to do more."
He notes a barrier to entry for open source design: "I think that coders can understand the open source process more easily. We deal with version control and team development all the time, but designers aren't used to that. There needs to be a channel of communication and encouragement."A good example of Michael's exceptional talent as both designer and developer can be seen in his RailsConf 2010 presentation, "The Present Future of OAuth". "It's a subject that lots of people find confusing and boring, so making the slides fun helped keep it lively and explain things in simpler terms." He enjoyed working with simple illustrations styled after the Zero Punctuation reviews. "Embracing constraints (like block people with circles for hands and logos for heads) can be really rewarding. My favorite slide is the one where OAuth 1.0 is looking down at the ground... I feel like it conveys a dejected emotion really well; getting emotion to translate within such constraints is a fun challenge."
Michael has given a number of presentations at conferences around the world. But, surprisingly, he's a pretty shy and timid guy. "I'm not the most extroverted guy, I love to meet new people but I'm not always great at striking up conversations. That's why I love speaking at conferences." He hopes to be able to speak as early as possible at the conference so that he'll have a "jumping off point" for conversation. Michael has always enjoyed speaking; he was a member of the debate team in high school where he grew up in Olathe, KS and participated in mock trial in college at Georgia Tech.
Although Michael is well known for his open source contributions, he spends most of his time working on internal products and client work at Intridea. He most enjoys working on products; "I have all these ideas in my head and it kills me not to be constantly making them a reality." In the coming year, Michael will be leading a structured team of our internal product developers to help bring innovative ideas to fruition.
Though it may seem that he never stops working, Michael has a great life outside of the office too. He recently married his high school sweetheart. "Morgan sat next to me in a history class my junior year for reasons beyond even her understanding. I already liked her, but was too shy to say anything." Michael was pretty surprised when she agreed to go to the movies with him for the first time. "We went to see 'The Mothman Prophecies'. I was so inexperienced with dating that I didn't know that I should have picked her up and that there should have been dinner involved." But as fate would have it, she fell in love with him despite his lack of knowledge in courtship. Now he is ecstatic to be married to his "best friend"; the brilliant woman who reads manga and plays video games with him and loves zombies even more than he does. They are under contract for their first house, a loft in downtown Kansas City, and he says that one of the first things they are going to do is "get a 6'x4' matisse-style artwork of the Left 4 Dead zombies made to hang in the new loft."
He speaks so highly of his wife that it might be hard to believe there is another woman in his life that he adores: his Pomeranian/Papillon mix dog, Zoey. "She is 10 pounds, and she acts more like a stuffed animal than a dog. She warms my feet while I code."
Michael and his wife enjoy watching movies, especially going to the movie theater. "I will often want to go to the movies (and drag Morgan there) for its own sake, not because there's anything out I even remotely want to see. There's something about setting everything else aside and just experiencing someone else's story for a few hours. Watching movies at home there are too many distractions." He also enjoys "standup comedy and concerts in seedy bars." His favorite artist is Ben Folds, and he has been to seven of his shows (eight in July and five with his wife). He jokes, "Ben Folds Five was my first concert ever, back in the mid '90s. So my musical taste has really evolved."
Maybe it's true that his musical taste hasn't evolved, but Michael has certainly evolved as both a designer and developer. He has made great use of his time at Intridea between his open source contributions, his product ideas and developments, and the speed and accuracy with which he can develop client projects. It's no mistake that he so widely known and appreciated in our community. He works relentlessly to follow through on projects, and has a passion for quality and excellence that is hard to match. What can I say, we love him!
This post is part of a weekly series, called "Intridea Insider"
MultiJSON: The swappable JSON handler
JSON has become ubiquitous. From Facebook and Twitter both declaring it to be the preferred (and in some cases only) option for API access to the new OAuth 2.0 draft spec declaring that JSON is the only acceptable response format for OAuth token responses, JSON is here to stay. What isn’t ubiquitous, however, are people’s preferred implementations.
As library authors it is our duty to try to support as large a part of the community as possible and do so in a friendly manner. To that end, today we’re releasing MultiJSON, a simple library that allows you to seamlessly provide multiple JSON backends for your library with intelligent defaulting. Install with a simple gem install multi_json and then get started like so:
require 'multi_json'
# Decode using default engine.
MultiJson.decode('{"abc":"def"}) # => {"abc" => "def"}
# Set an engine using a symbol.
MultiJson.engine = :active_support
# Encode using ActiveSupport
MultiJson.encode({:abc => "def"}) # => '{"abc":"def"}'
This gem is primarily for library authors, allowing you to use the best JSON available on the users’ systems without explicitly requiring one library over another. This way you can be sure that your JSON handling will work across implementations (e.g. JRuby) as well as requiring as little extra code as possible (the gem detects existing libraries before requiring more by default).
Engines supported by default are:
yajl-rubyjson(gem)active_supportjson_pure
We hope that this will make development of JSON-relying libraries a little bit less of a headache for library authors and users alike. The code is, as always, available on GitHub.
Intridea Insider: Chris Selmer
He runs really, really fast. He can live without sleep. And his first memory of a computer comes from playing Zork in the 4th grade. He's our Senior Partner, Co-Founder and valiant leader of client services. Meet Chris Selmer in this week's Intridea Insider.
Chris graduated from college with a degree in Mathematics, but not before considering several different majors, including Exercise Science, Chemistry and Physics. Although his first job during (and after) college was writing PHP for a web design studio in DC, he wasn't formally trained in web development. "I minored in CS, but everything I learned for the web was self-taught."
Chris discovered the world of Ruby while he was at an Intro to Ajax class, offered by the Pragmatic Studio. "A lot of people were talking about how Ruby had great ajax shortcuts built in." His interest was piqued and shortly thereafter he began using Ruby on Rails professionally; "I started doing some Ruby on Rails work and some ColdFusion development for the Academic Technologies department at George Washington University. Our department was in charge of classroom technology and researching innovative new ways to use technology in the classrooms."
His position at GWU was able to benefit the Ruby community in DC; when he met Dave Naffis, (also a co-founder and Senior Partner at Intridea), Dave was looking for a place to host the DCRUG. Chris was able to find him a space at GWU and he has been helping to organize the DCRUG event ever since, with help from fellow Intridean, Joe Grossberg.
Intridea was in its infancy at the time Chris came on board in 2007. He spent the majority of his time programming in Ruby on Rails for clients, but at the same time he was working hard to bring in some big, new projects. It wasn't long before he found himself running the services wing of the company. In 2007 Intridea was a start-up company of only eight employees. We've since grown to nearly 50 employees in three years, and Chris played a pivotal role in that growth by acquiring and managing a lot of projects from awesome clients.
Chris is known as the "Intridean that never sleeps". He makes time to nap and eat when he must, but he's a work-force to be reckoned with. "I tend to do my most productive work from around 11pm - 2am, just because there are fewer distractions that demand my attention. So I'll often sleep 2-5 hours at night and then have a couple of 20-minutes naps during the day." Most of us marvel at how he can be so productive on so little sleep, but Chris's Mom (and fellow Intridean), Kathleen Selmer, reveals that he never slept much as a child either; "He was always too busy to sleep. In high school, he ran cross country and indoor/outdoor track, and was captain of the teams from sophomore-senior years. He won several state championships. He was also involved in a few school plays." She also raves about how intelligent Chris is; " Chris was always an avid reader from the time he started to read. I would say he found school unchallenging. He got good grades, but didn't have to work too hard for them. He relied on a great recall of information."
Chris was born at home in Green Meadows, Maryland with the assistance of a midwife and is the oldest of four children. He spent a good portion of his youth playing with his brothers and sister on their 6 acres of land in Pennsylvania. "About half of our land was wooded, so we spent lots of time making tree forts and running around wild." Chris now lives in Takoma Park, MD. He prefers to work in his basement office, where his Mac Pro lives. He met his wife, Stephanie, on Match.com; "She was the first person I contacted, and we had a near-instant connection. She is really awesome." Stephanie works at NIH and is pursuing a Masters in Public Health at College Park. In addition, she finds time to take care of their two dogs, three cats and her husband.
Before I sat down with Chris for this interview, several fellow Intrideans wanted me to ask Chris whether he misses coding now that he's in a management role and a Senior Partner; "I miss getting in the zone and having hours pass by just writing code." Even though Chris isn't doing much coding anymore these days, he enjoys being able to kickstart meaningful projects, like Tradui and Oil Reporter. Plus, he likes solving client problems; "Solving problems was one of the things I really liked about coding, but it's just done on a different scale now."
Chris has a side dream of one day being able to buy old houses and fix them up for a living. He got a chance to do one a few years ago and looks forward to doing it again some day. But until that days comes, we need him here at Intridea, as our unwavering, super-human battle-hardened leader of client services.
This post is part of a weekly series, called "Intridea Insider"
WWDC 2010 Keynote & iPhone 4 Details
The Keynote given by Steve Jobs was set to start at 10:00am PST. I decided to arrive a little early and get there around 7:30am, thinking that being nearly three hours early would yield me some great seats. I guess I underestimated just how many people would be getting there even earlier to see Steve Jobs unveil the new iPhone and announce other goodies that have been rumored. When I arrived at Moscone West, the line was wrapped all the way around the building. There were probably close to over a thousand people already in line that had the good sense to arrive even earlier than I did.
This was my first time attending WWDC and also my first time being in the presence of Steve Jobs. As the line started moving and I finally got inside the Moscone Center, I noticed all of the banners showcasing the new features of iOS 4.0, like multi-tasking and folders. I was most excited to hear all the juicy details about the new iPhone, which Gizmodo famously showed off to us a few months earlier. There were speculations about announcements of other items like iTunes.com, a new Mac Pro, a new Apple TV, and upgraded Mac Minis. Sadly, there was nothing new mentioned that wasn't for iPhone or iPad.
In the room where the Keynote was held, we all sat in chairs, iPads out, waiting with great anticipation for Steve Jobs to show up. When Steve finally appeared on stage we all cheered in a rush of excitement. After welcoming everybody to WWDC, he proceeded to recap on the launch of iPad and showed us a nice clip of the International launch. Then he announced some great new things, which are recapped below.
One of the first new items that he announced was notes for iBooks. You can now add notes within anything you're reading in the iBooks application. Also, something that almost everyone wanted was the ability to view PDFs in iBooks. Steve showed off a demo of both of these features and they looked great. This update will be available later on this month.
After a presentation from Netflix, who announced Netflix for iPhone, and Zynga, who announced Farmville for iPhone, Steve went on to talk about the current smartphone market share. Nielson released a new study and found that the iPhone is still leading with 35% and Android is trailing with only 9%. Steve also showed off some stats revealing that iPhone is also number one in mobile browser usage with 58.2% and Android at 22.7%. He went on to talk about how Apple re-invented the phone in 2007, and referenced a quote he made that year: "in 2010 we're going to take the biggest leap since the original iPhone." And with that opening, Steve announced iPhone 4 with over 100 new features. Obviously referencing the Gizmodo leak, Steve said, "I don't know if you've ever seen this", which elicited huge cheers from the audience.
The new iPhone is definitely gorgeous. It's glass on the front and back, and steel around the sides. It's a nice departure from the older designs while still being something that feels like it should be called an iPhone. iPhone 4 is also very thin, exactly 24% thinner when compared to the iPhone 3GS. It also has the front-facing camera. Steve claims it's the thinnest smartphone on the planet with a thickness of 9.3mm. When Gizmodo got their hands on the prototype iPhone there was a lot of talk about the seams along the side of the device. People argued that this wasn't really something Apple would do. Steve went on to explain that these seams or lines around the steel band are actually part of the antenna system, which should hopefully help us out with our reception.
The next item that they announced was the Retina display. They've increased the pixel density in this new display by four times. The new display has 326 pixels per inch, which is the highest pixel density of any phone on the market. Steve then showed off comparisons between the traditional display on the iPhone and the new Retina display. It's so clear that you basically cannot see any pixels at all. The specs on the new display is an 800:1 contrast ratio (4x better than the 3GS) and a 960x640 display using IPS technology.
iPhone 4 also has a new A4 chip, designed by their own team. They've also increased the size of the battery and are now using a Micro SIM versus a traditional SIM. There is up to 32GB of storage, quad-band HSDPA, dual mic noise suppression, and 802.11n WiFi. With the A4 chip and the bigger battery, battery life has definitely increased. Also announced was a new gyroscope, which is being added to iPhone 4. It's a 3-axis gyro which should give game developers much more accuracy when dealing with motion. This will translate into much more immersive and realistic game controls when combined with the existing accelerometer and compass.
Another big announcement was that iPhone OS has been renamed to iOS. After proceeding to going through most of the new iOS changes that we all knew about, Steve announced that iBooks would be coming to the iPhone along with the PDF and notes support that was announced for the iPad earlier. Along with this, iPhone users get the iBook Store. It was great to hear that we can download the same books to all of our devices for no extra charge. A great new feature as well is that iBooks automatically syncs your place, bookmarks, and notes.
After going through some iAd examples, Steve did his famous One more thing.... In 2007, when they launched the iPhone, Steve called Jonathan Ive to demonstrate the phone. This time, Steve did the exact same thing but demonstrated a video call. It worked great on stage and everybody was excited to see it in action. You can switch from the front to the back camera by just pressing one button. The feature is called FaceTime and you can only use it on WiFi when you and the party you're calling are both on iPhone 4. There is no setup needed. We were then presented with a commercial exemplifying how people would use FaceTime. The whole crowd nearly choked up when they saw the two people speaking in sign language on the phone.
Steve mentioned that there would be two colors, white and black. The pricing will be $199 for 16GB and $299 for 32GB. AT&T is allowing upgrade eligibility up to 6 months early. iPhone 4 will be released in the US, France, Germany, UK, and Japan on June 24. We then saw a video about how the iPhone 4 was made with commentary from the usual guys at Apple. After this, Steve thanked everybody who made this possible and ended the Keynote.
I thought I'd be disappointed that nothing else was announced, but I wasn't. There were no other hardware upgrades, cloud-based iTunes, no new Apple TV, etc. Clearly, iPhone and iOS was the focus of this year's WWDC and Apple seems to have done an amazing job the new iPhone. I'm excited to see how FaceTime ends up changing the way the world communicates with their mobile phones. People will say that this has been around for a while, but Apple is going to be putting it in the hands of millions and making it easy enough for anybody to use. Overall, I had a great time at my first WWDC Keynote. Hopefully, I'll be able to come see Steve speak again and announce a new product in only a way that he can.
Intrideans at RailsConf 2010
This year we have three Intrideans giving presentations at RailsConf 2010 in Baltimore, MD, as well as several other teammates attending the event. We're thrilled that our developers are active members of the Rails community and we support their endeavors to share their knowledge with the larger ecosystem. If you're at RailsConf this week, be sure to say hello to one of our guys, or attend one of their presentations:
Jeremy McAnally [view profile]
Presentation:
Rails 3 Deep Dive
When: 1:30pm Monday, 06/07/2010
Location: Ballroom I
This workshop will tour through a number of advanced, in-depth topics on Rails 3. We’ll take a tour of many of the new additions to Rails 3, talk about how to exploit Rails’ new focus on Rack to your advantage, dig around in the source to really understand how many of the pieces work (and how to use that understanding effectively), and take a look at how to bring some common, advanced patterns used in Rails 2.x into the world of Rails 3.
Michael Bleigh [view profile]
Presentation:
The Present Future of OAuth
When: 1:50pm Tuesday, 06/08/2010
Location: Ballroom I
OAuth 2.0 brings together many best-in-breed ideas for authentication into one specification, providing a powerful and flexible method for standardized authorization to RESTful APIs. Attendees will learn:
- What the OAuth standard represents.
- Who uses OAuth.
- How OAuth 2.0 is different.
- How to access resources from OAuth 2.0 compatible sites.
- How to become an OAuth 2.0 provider.
Flip Sasser [view profile]
Presentation: Persistence Smoothie: Blending SQL and NoSQL in Rails Applications
When: 2:50pm Wednesday, 06/09/2010
Location: Ballroom II
Participants will learn about a number of available NoSQL persistence engines (including document-oriented databases such as CouchDB and MongoDB, key-value stores like Tokyo Cabinet and Redis, and more) and when they might be appropriate for a Rails application. In addition, attendees will learn good practice techniques for blending these systems together with traditional SQL for a “best of all worlds” implementation with real-world examples.
Presently Desktop App Now Available
It's here! The long awaited desktop app for Presently is now available for download and is available for Windows, Mac, and Linux.

With the desktop app you can:
- See real-time status updates from your co-workers, teammates, and groups.
- Post messages, reply to others privately or in the public feed, and 'like' posts directly from your desktop.
- Along with the normal feed, you can view Replies, Direct Messages, Group Messages, and view a list of the company directory right from the desktop app.
- Detailed user directory shows list of users. You can also follow/unfollow directly from the desktop app.
- Desktop app runs in the background and when a new message arrives, you are notified seamlessly. If you have Growl installed on your system, you'll be happy to know that the new Desktop app is Growl-notification ready.
The long-awaited release of our desktop app was entirely written using Appcelerator's Titanium Platform. It replaces the original Adobe AIR app. This desktop version of Presently is an extremely lightweight application and can do all the things you can do with the Web, iPhone and Android mobile app versions of Present.ly.
Click here to download the new desktop app.
If you're already a Presently user, just add your account information in the "Settings" tab of the application:
- Account/URL (e.x: myaccount)
- Username
- Password
If you're not using Presently yet, you can sign up for a free account on our website and try it out. If you are interested in using a secure, behind-the-firewall instance of Presently for your company, you can read about the free trial. And of course, you can always contact us with your questions about Presently!








