Why I’m Doing PhoneGap

I’ve started to see some general questions and fielded a few emails from people asking about why the big push around PhoneGap on the Adobe side. In general, everyone knows the basic answer: we acquired Nitobi (the company behind PhoneGap), so now as Adobe evangelists, it makes a lot of sense for us to know it and be able to talk about it. And I think we’ve done a pretty good job of that. Christophe has a demo app (with source code) up, Greg has a couple of really good posts on it (especially this one that talks about how PhoneGap affects Flex evangelism). So at a general level, it shouldn’t be a huge surprise, but for me it’s quite a bit deeper than that and I wanted to provide a bit of context.

My desire to learn PhoneGap (and by extension get a lot better at HTML/JS) comes from two places. One, if you aren’t learning new technology, you’re not adapting as a developer. Two, as I’ve been looking around and trying to get my head around PhoneGap/HTML, I’ve found some rougher edges. Since I work at a tools company, I want to know where those edges are so that as Adobe builds out tools for this technology stack, I can provide good feedback to the product teams.

New Technology

I’ll say this a thousand times: I think AIR and Flex are the best way to build cross-platform mobile applications. I think they’re arguably the best way to build mobile apps in general for specific types of apps. And with AIR 3.0, AIR has never been more powerful. Stage3D is coming, we have native extensions and captive runtime so as a developer you can really blur the line between your AIR app and native functionality. But as great as I think native extensions are for our developer community, I’m not personally that excited by spending a lot of time writing them. I love the web. What got me so excited about RIAs back in the day was that you could build desktop-like apps with web technologies. I fully believe that Flash is part of the web, and I always will. Java and Objective C are decidedly not web technologies. And I’m not really that interested in spending a bunch of time learning Java/Objective C code. I don’t think that many AIR developers will have to roll their own native extensions, but it is one of the cool new parts of the platform, so a lot of the Adobe evangelists will be spending time getting up to speed on how to build them. That just doesn’t get me excited. Same goes for Stage3D. The stuff you can do with 3D in Flash Player is mind-blowing. I’m just not a 3D developer or a game developer. Luckily the Flash Platform is evolving beyond that as well. The stuff coming up with concurrency and potential enhancements to ActionScript both fall into what I’d call the “web world” and I’m excited to dive into those and get to know them as they get closer.

But, while I’m waiting, it turns out we now have a pretty cool HTML/JS mobile story with PhoneGap. I’ve been dabbling for a little while in jQuery mobile and HTML/JS and I’d consider myself an average JS developer. But you’ve always got to be learning, and if you love the web, you can’t not be good at JavaScript. I’m kind of ashamed that I’m not better, but this is a great opening for me to dive in, dedicate a ton of time and energy to getting better, and coming out a more holistic web developer. One of the things I love about the HTML/JS community is just how varied it is. There are JS developers of all stripes creating their own frameworks, own solutions to architecture problems, their own server solutions, and hell, even their own languages that eventually end up as JavaScript. The raw creativity of the web ecosystem is on full display when it comes to HTML/JS. And there is a certain zen to the chaos that I find intoxicating. I desperately want to be a part of that and the fact that I’m behind the curve is kind of depressing.

Helping Adobe

Which brings me to the second reason I’m planning to dedicate a ton of time to the PhoneGap stack. There are quite a few areas where the workflow is downright broken. My recent foray into on-device debugging is one example. Some of that is just that I don’t know enough, but there are also some real gaps in tooling, services, etc. We’ve got some smart people at Adobe who know the JS/HTML world pretty well. But we can always have more and if we want to provide value to developers in the space, that’s going to require knowing where the gaps are, knowing where to spend our time, and what kind of solutions will be helpful. I want to be able to provide that feedback and the best way to do that is to really know it. The hope is that I’ll be able to contribute in a small way to what Adobe will contribute to the open web ecosystem for developers.

Viva Flash!

So for me this particular foray goes beyond just learning PhoneGap to get up to speed. I think it’s a really cool time to be an Adobe evangelist and I came away from MAX a lot more invigorated than I’ve felt in a long time. Part of that is the Flash side (this session on the roadmap was excellent). But a big part of that was definitely that I think Adobe is going to make a positive impact in the HTML/JS space. The Nitobi guys are all insanely talented and I think that with them we’ve got a vision for mobile apps rooted in web technologies. I’m ready to contribute to that vision.

Update: And Ray pointed out he’s got a ton of stuff up as well.

The Littlest Flex Developer

My blog has been pretty dusty the past couple of weeks even though there is a lot going on in the Adobe world. Normally I try to stay away from the purely personal stuff so I humbly beg your forgiveness for this detour into Ryan’s life. I’ve been very preoccupied for the past week because on March 27th, my wife and I welcomed our daughter into the world. It’s our first and we’re having a blast getting to know her. I’m on paternity leave for another week so while I’m keeping up on what’s happening with Apple’s tablet, Flash Player 10.1, and Adobe AIR on devices, I can honestly say (maybe for the first time ever) that it’s not occupying much of my time.

I’ll indulge one small parental moment and share a couple of pictures of our daughter, Juniper Olivia Stewart. And I’ll be back to blogging next week. But probably a bit more sleep deprived and (even) less coherent than usual.

What’s Up With All the PHP? Or My New(ish) Role at Adobe

I’ve been blogging more recently about PHP, which may be confusing for people who know me and my ColdFusion background. But in looking at things, the PHP community has been incredibly vibrant and successful on a number of fronts. We’ve started adding more support for PHP developers through partnerships and support of things like Zend AMF, the PHP Data Wizards in Flex Builder, and encouraging community speakers at events like ZendCon. On the Adobe side, Mihai Corlan has done a fantastic job of creating resources for PHP developers who want to learn Flex. The team needed someone to take the lead here in North America and I asked to do it (Lee is busy with cool Flash stuff and going to Latin and South America). So now PHP developers have a go-to guy here in North America working to further the PHP agenda here at Adobe and helping more PHP developers be successful with Flex and Flash.

So why me, someone with little PHP experience? I’ve always felt like evangelism is about growing your developer community and developer relations is about helping the community you have. At Adobe we don’t really have a specific developer relations role (it’s basically Mike Chambers) so the evangelists end up doing both. Which is fun because our community is awesome. But I also wanted a challenge and to grow professionally as an evangelist. I thought the best way to do that would be to get out of my comfort zone, immerse myself in a new technology, and execute on ideas that could be applied to any technology by any evangelist.

Luckily we’re working with some great PHP people and the PHP community is a very welcoming and open place. There are a lot of places where PHP and Flash fit really well together so there are features like data visualization, collaboration, video, and data-heavy applications where I think PHP developers can use Flash in a helpful way. And in the process hopefully I’ll end up being a better evangelist and helping to grow the number of Flex developers.

If you’ve got ideas, or applications that show off Flash and PHP together, I’d love to hear them. You can always drop me an email at ryan@adobe.com or call/text me at (307) 438-9716. I think 2010 is going to be a huge year for PHP and Flash momentum.

Adobe’s Week Off Was Great

As some people saw (and commented way too much on) Adobe was on break last week. Some people did construction work and some of us did less productive but more relaxing things. We’ve got 4 of these scheduled, so there are 2 down and 2 more to go. At first I was bummed at having a “forced” vacation but it turns out that having everyone at the company gone is a great way to really disconnect. My email load was way down and I took the week to myself. I ended up doing some hiking and climbing Mt. Hood for my second mountaineering trip of the summer (hopefully Baker and Sahale later). It was a great week and if you’re waiting for an email from me, I apologize. I’m getting up to speed this week but may still be a bit slow. Below are a couple of videos from the Hood trip. If any of you are in Seattle and want to go for a hike or a trip, make sure to let me know you’re in town. I’m happy to drive and tag along.

Pooneekay Vatsoom Ahdtuih

Database Errors

As you may have noticed, I’m being plagued with database errors. I’m not entirely sure what’s wrong but the error logs make it seem like it’s related to not having enough memory allocated to MySQL. I’m still getting the hang of managing a server by myself (and I’ve been on vacation) so I’ll hopefully have it fixed in the next few days.

Strange Problem I’d Love Help Figuring Out

I moved servers recently over to Media Temple. Everything seemed to go smoothly, I still get email, my blog seems to work, and I think mostly everyone is seeing the new version. Except for the internet. My Feedburner feed is getting updated content but that updated feed doesn’t appear to be updating any of the various aggregator services out there. Feeds.Adobe doesn’t show any updated posts for me, after October 23rd,FriendFeed isn’t getting new posts, and Technorati isn’t seeing anything new either.

All of those services should be updating but they aren’t. If anyone has any ideas on why, I’d love to hear them.

Getting Ready for My 360 Flex Presentation in Style

I’m giving my Online/Offline Synchronization with Adobe AIR and LCDS presentation at 360Flex next week and I had a couple of things I wanted to finish on the presentation. But I’ve been staying with my parents and wanted to get in some Colorado backpacking. Luckily, the life of an Adobe evangelist is awesome. I’ve got my local CF server, Flex Builder, and a laptop, so I packed it with the rest of my stuff and when we got to camp I did a little backcountry coding.

Also, I’m pretty sure I’m going to look like a leprous raccoon for my presentation on Wednesday. I got really, really sunburned while I was wearing my sunglasses so I look ridiculous and it’s probably going to be peeling when I present. Apologies in advance.

I’m hoping to grab a bunch of videos of various Flex developers who are doing cool stuff at 360Flex so if you want to show of what you’re up to, send me an email at my shiny new Adobe email address – ryan@adobe.com.

The Day Google Erased Me From the Internet – Why I Want Microsoft to Be Competitive in Search

Update 2: Just making sure people know that I’m back in the index and Google was very helpful about it. All in all it was a good experience (if still shocking).

Update: Matt Cutts blogged and provided some insight into the process. I want to make sure people know I’m not angry with Google – I broke the rules. It was just a wakeup call for me that Google’s rules are the only ones I care about and I’ll give them whatever they want so I can play.

Yesterday was one of the scariest days I’ve had in a long time and it put in total perspective the power that Google wields. It also made me hope that every single company with an idea about how to improve search, including Microsoft, continues to try and beat Google. I was working on a blog post and was searching for something I’d written before so that I could reference it. Instead of using my blog’s search, I of course used Google’s site feature, like I always do. Only this time, I got nothing:

Invisible

At first I thought it was just because I was in China and my blog had been blocked. But after asking my Twitter friends to check for me I realized that wasn’t the case. My blog had been completely removed from Google’s index. All of my blog posts were effectively gone to everyone that uses Google, which is basically everyone and especially technology-minded folks that I try to reach as an evangelist.

I was confused, angry, and I felt completely helpless. Everyone uses Google. It was a big referrer to my blog and when I posted tips and tricks for Flash/Flex/AIR I did so knowing that someone could Google the problem and find my blog. My name? No longer my own. The first result was now my blog on ZDNet, which is something I don’t fully control. The other sites which are related to me on the front page were Twitter, and Mike Downey’s Flickr stream – both sites that I have absolutely no control over. My online identity for anyone using Google was now in the hands of domains and brands beyond my reach. It was a scary feeling.

I calmed down, and did some research (using Google of course). I found a blog post that referenced a help@google.com email. After emailing that I got this auto-response:

Thank you for writing to Google. We’d like to assist you, but we only respond to messages submitted through our online contact form. Please visit http://www.google.com/support/ to submit your message, and we’ll get back to you soon. We apologize for any inconvenience, and we look forward to hearing from you.

This is where things get a little spooky and made me realize the full extent of my reliance on Google. I’m not some crazy privacy nut – I live my life very openly on the internet and I’m fine with Google’s business model. But because of how often I rely on Google and how important it is to so many people I’d started treating it like a utility. Just like I have water, electricity, and gas, I have Google. Not so.

Going to the Google Support site and searching led me to this page which says (emphasis mine):

If your site is blocked from our index because it violates our quality guidelines, we may alert you about this using our Webmaster Tools. Simply sign in to our Webmaster Tools, add your site URL, and verify site ownership. The Overview page provides information about the indexing of your site.

Hollow ManI understand that being included in Google’s index is a privilege, not a right. But in order to apply to get my my site re-listed I have to both have a Google account (which conveniently allows me to access all of Google’s wonderful services) and associate my URL with that account. Interesting. So doing all that I was finally able to see what the problem was. I’d been hacked. I had a bunch of spam links that were only showing up to the Google bot.

I have no idea how long they’d been there. I had been fighting spam for a long time but this was worse. I’ve been traveling so I haven’t been able to make sure my blog is totally spam free. I removed the offending spam and applied for reinstatement. Unfortunately according to the message I need to allow several weeks for the request to go through.

Now I realize I should have had better control over my blog. WordPress should have been more secured, I should have been aware of vulnerabilities, and that the responsibility is mine. But I’m a blogger, web developer and evangelist. I don’t know the security side as well as I should and I don’t have time to make sure everything is rock solid. After this experience? Of course. I realize how important it is to conform to Google’s rules.

But I think that’s kind of the problem. I had no warning, no heads up. I like to think I’m a pretty good Netizen – not some SEO firm trying to game the system. My Page Rank is (was) supposedly a 9 for goodness sake (which of course makes me more attractive to spammers). And yet I got totally removed. I use Google because it DOES keep search results free of spam. That’s great. But I realized last night that Google is holding all the cards. They can do whatever the heck they want to. So Microsoft, keep going after search. Get us better results, give webmasters more options. Startups, keep trying to find the weak link. Make Google make itself better. Improve the search experience across the board for everyone – users and webmasters.