Why Facebook’s new changes don’t feel like the death of Twitter

I had a pretty interested conversation with JPToto yesterday, on Facebook no less, on Facebook’s new features and their impact on Twitter. JP posted his thoughts on the coming twit-pocalypse on his blog today. I am posting my conversation with JP below. However the very fact that I cant actually link to it is the main reason I am less of the opinion that Facebook can devour Twitter completely.

fbConversation

Twitter is definitely a fascinating beast ( and being a twittaholic, my opinions here may be biased. Follow me on http://twitter.com/arpit). People use it in very different ways. I definitely use it to keep tabs on my close friends and share a link every once in a while. In that respect, yes I dont care if I get that information from Facebook or Twitter.

However the real value I get out of twitter is a cursory connection with the people who I have the highest admiration for, the big names in Flash, Flex, Silverlight, Java world, guys who are running companies I respect or have opinions I think are valid. The connection isn’t always two way. I follow more people whom I dont know personally than those I do. Twitter is now my main source of personalized news and I dont see Facebook becoming that.

And what about services getting on Twitter that are really useful. The utilitarian awesomeness of things like @comcastcares is just hard to translate to Facebook metaphors.

The Facebook redesign is interesting, though I wonder if they were completely influenced my the more vocal but smaller fraction of their user base. My friends who aren’t into Twitter dont like the design much but they’ll learn to live with it. It may make them more active over the next few years (maybe) but I dont see it changing the way people who have invested time on building a group on Twitter leaving it for Facebook, unless they change their entire security system allowing follows with limited privileges.

Whats really going to start getting annoying to me is the fragmentation of conversation again (its already a headache if you are trying to follow blog comments/conversations). My status update will now be duplicated as will my friends’ and I have no idea where to respond for whom, and lack of the reply API on Facebook’s apis makes it even more irritating.

It will be interesting to see how it goes but I am not giving up my Twitter profile anytime soon.

On Technology, User Experience and the need for Creative Technologists

Of late I have been involved in a lot of conversations around user experience, especially since the last few months the sessions at the RefreshPhilly group that I am involved in have had quite a number of speakers on that topic. Speakers on UX usually come from a design background which isn’t surprising. The opinion I sometimes find prevalent and which I strongly disagree with though is that user experience is solely a design concern.

A while back, after a rather frustrating day with Javascript, trying (unsuccessfully) to create a rather simple transition effect that would orient the user to a change in state of the application, I vented on twitter on the choice of Javascript for the application given Flash’s general penetration. My main gripe was that while the application would be functional in Javascript, Flash would let me do really interesting transitions and effects, adding a layer of richness to the application. Remember this was an application that didnt have any SEO requirement and the application in that design would be completely unusable from a hand held device (the wont work for iphone argument carries a lot of weight these days).

A friend of mine (whom I hope doesn’t mind being cited here 😉 ) from the creative side of the biz responded:
twitter-message

This is what I feel is one of the biggest misconceptions in our industry. Recently, Grant Skinner, one of my favorite Flash developers, gave a talk at the FITC Amsterdam conference. Though I didn’t attend the conference, I did browse his presentation online. One of his slides had the diagram shown below.

UX

That pretty much hit the nail right on the head. And thats exactly my take on it. I think technology has a huge contribution to user experience. However traditionally that has not really been recognized as much.

The need for Creative Technologists:

I think there is a real need for the Creative Technologist. As technologists we understand whats possible with the current and the cutting edge technologies, which enables us to truly understand the problem statement. More so now when online landscape includes more than just technologies like Java, Flash, etc. What do the new platforms like Facebook, Yahoo Open, OpenID bring to the table? Look at how the labs features in GMail improve user experience.

Gmail Labs

How about browser extensions like Gears that could let enhance the user experience by letting them take your online content offline for reading later or BrowserPlus that could literally allow you to trigger the speech command on the local operating system and have it read out the content text for him.

And the opinion is not mine alone. Another great read is the article by Dan Harrelson from Adaptive Path (you know, the company that coined the term AJAX) on “What Makes a Design Technologist?” The 4 points he mentions for a creative technologist are:

1. A comfort level with front-end programming (web, desktop, mobile, device)
2. A tool belt filled with techniques for creating interactive apps
3. The ability to quickly pick up new tools
4. A itch to dive into code and “just built it”

And Creative Technologists have started becoming less rare to find on the web. Another article I recently read on the Read Write Web blog was on the fantastic Enjoysthin.gs application built by Ted Roden who is now employed by NYTimes as a Creative Technologist.

While Creative Technologist is still not a title that gets any results in Monster.com, I wonder if that’ll change soon.

RefreshPhilly March event is tomorrow!

Its that time of the month again! RefreshPhilly’s March session in tomorrow with sessions from the Luke Crawford, the CTO of Muxtape as well as by Todd Warfel from MessageFirst on Sketching and Rapid Iterative Design.

If you havent done so, do RSVP on the Facebook event page (we need the names for security passes for the building).

And in related news, Roz recently got interviewed by Technically Speaking on Refresh Philly. Great going Roz! Oh and I am totally stealing Rob Francis‘s badge for the event:

OpenPyro now being ported to Haxe. Can you help ?

Its really awesome to see community interest in OpenPyro, the Flex-lite framework that I have been working on for the last few months. The latest news on that front is an effort to port OpenPyro to HaXe, an open source programming language that can be compiled to a variety of languages like Flash, Javascript, PHP etc by Don-Duong Quach. Don evaluated OpenPyro and has started a Git repository on the porting effort. He was even able to compile a previous example I had built with OpenPyro to a Haxe version which you can find here.

Its really exciting to see this work. My own knowledge of Haxe is minimal so I can’t be as helpful as I would like to be, but if there are other HaXe developers out there, your help in the effort would be really appreciated. The conversation around the port is happening at the OpenPyro mailing list.

In other news, OpenPyro finally has an official home at OpenPyro.org. I am going to start posting architecture documents and examples there. The latest can be found at the OpenPyro wiki and the OpenPyro asdocs page.

An app for myself: Facebook EventSync

Off late I have become pretty involved in a local (Philadelphia) user group called RefreshPhilly. The group meets the first Monday of every month and hosts a couple of talks by some local new-media professionals, designers or developers. The event is hosted at the new Comcast building where I work.
However like a lot of big corporate buildings, the Comcast building only allows registered guests into the building. This meant that all attendees had to be registered with building security to allow them to enter. Since our attendee list often reaches 100 odd people, I needed to get the names to security in chunks, so that I didnt have to get all of them at the last second. Unfortunately the Facebook events page only shows the total number of people who have confirmed their attendence. What I really needed was “How many new people have confirmed since the last time I looked”. So I whipped this little app that uses the Facebook API to take snapshots of the attendee lists from any Facebook event (using a valid event id) at any time and show the number of new people who have confirmed attending or maybe attending status by comparing the snapshot to the previous snapshot saved on a local file.

Facebook Event Sync

I am almost sure this app will only ever have one user (me) but hey, if you ever need it, you can download it from here. Feel free to comment if you would like to see any additional functionality here, or if you have an idea for this being a more practical app 🙂

Announcing EspressoReader (alpha): A desktop client for Google Reader

I am excited to finally announce the alpha release of EspressoReader. EspressoReader, in its current incarnation, is a desktop app for Google Reader. However the goal is to create an application for managing all the information streams you read on a daily basis, and providing user interfaces that help sifting through all of that. For example, this release includes a PhotoView that lays out all the images in different feeds one below the other, which works out really well if you are subscribed to image heavy feeds like web comics.

Espresso Text View

Espresso Reader Image View

You can download the application from here.
Update: I am removing the link to the installer as more and more people keep having a broken experience with version 1. Please get on the alpha list for version 2 at EspressoReader.com. The new system should be a lot more stable since it uses a different authentication system that seems to be working much better.

Features:
Multiple view support like Text, Images and Browser (more coming soon)
FullScreen support
Share with Twitter
Related entries from your other subscriptions

Features coming soon (almost done but couldn’t finish for this release):
Offline support / Prefetch support (allowing you to load all subscriptions for a category when reading an entry for more useful Related Feeds functionality)
Improved Related Feeds Algorithm

Other list of proposed features can be found here. Feel free to add to that list.

Also the application is completely charityware. Please consider donating to Unicef if you find this application useful.

EspressoReader was built completely with OpenPyro.

Update:
EspressoReader v2 is now available on Adobe AIR marketplace as a free download. Check it out

Should the developer community fork the Flex project ?

Its kind of ironic that I am posting this on the same week as Adobe Flex wins the Sys Con Ajaxworld award for the Best Open Source RIA Solution, but I think a conference with almost no showing from the open source community thats actually contributing to the Javascript AJAX Framworks is of questionable merit anyway, so lets continue.

I have mentioned before my feelings on Flex but here is a quick recap: I was a big fan of Flex when Flex 2 first came out, but off late I have been disappointed with it enough that I have started working on my own open source UI framework called OpenPyro. And the questionable decisions being made around the Flex 4 api are not helping my feelings towards it. And I am relieved that I am not the only one who feels this.

I just finished reading Simeon Bateman’s post on how just making the source code available does not make a successful open source project, and how Adobe is pretty much failing with Flex as a genuine open source project because all decisions and priorities are being made behind closed doors, and I couldnt agree more (I am so glad he started this one and not me, at least the we’ll share the wrath of Flex devs who dont agree 😉 ). He also recently posted a tweet wondering if creating a branch off the Flex framework trunk with patches to not require the Fx prefix to the Flex4 components would be a good idea. I think it will be, but I think we can and should go beyond.

I have no idea how many bugfixes and patches Adobe has got so far on the framework and I seriously doubt there are as many. Part of the problem is Flex is a behemoth of a framework and there aren’t that many people who understand the project at its core. I personally think the framework needs some serious refactoring to improve performance, filesize and more importantly to reduce the complexity and the deep inter-coupling of the framework. However, there is almost no immediate way this would let Adobe make more money through a new toolset so its (understandably) not Adobe’s priority.

Whats also interesting is that Flex has kind of crippled growth in the Actionscript based application frameworks domain. Having options is (almost) always a good thing and multiple projects keep forcing each other to evolve. But there isnt really another framework that competes with Flex that has gained any serious traction. There are a few frameworks that some companies have released but none that have gained any number of external contributors or that have become familiar names in the developer community. There are a few MVC frameworks like PureMVC, Mate, etc and such which have survived mostly since they dont compete with Flex (Flex is a pure UI framework and Adobe’s MVC framework Caringorm is just bad). The sad fact is I have met so many Flash/Flex developers who are ridiculously smart and if they came together, would give the Flex framework a real run for their money.

Flex builder is partly to blame. Flex builder is by far the best development environment out there for Flash projects, and is geared towards Flex only, giving you the option to develop in Actionscript but not really allowing any kind of system to integrate third party libraries. In fact it took me a fair amount of googling to figure out how to use Flex builder to create an Air application without using Flex. Do you know how to do that ? Also the preview build for Flex Builder 4 (Gumbo) includes support for unit testing for Flex projects but not AS3 projects. WTF. Shouldn’t AS3 projects be the first priority and Flex just being an extension of that ?

Aptana's choice screen
IDEs like Aptana let you choose from various open source frameworks out there.

Given all this, as a developer community we need to come together. Flash and Actionscript need to go beyond Adobe. A community controlled branch would really help but I am not sure how the MPL license (under which Flex has been released) permits that kind of forking. Also, refactoring the Flex framework is a HUGE task. (anecdote: I had a conversation with the manager of the Philadelphia Flex User Group Derek Wischusen the other night who told me he had another WTF moment with Flex when he tried to use the Base64Decoder class in an AS3 project and ended up pulling the entire Flex framework since the class references ResourceManager that of course was tightly coupled with a huge part of Flex. Things like this should not be acceptable. ). If you are a Flex developer, evaluate other projects out there. If you see one that may have potential, get into it a little more, blog about it at least and contribute to it if possible. If you have an open source framework thats interesting, pimp it as much as you can and get feedback and encourage participation any way you can (and also leave a comment here, I am trying to take stock of actionscript frameworks out there).

What do you think ?

OpenPyro wiki updates, and plans going forward

I have been talking a bit around OpenPyro quite a bit in my recent blog posts but I wasn’t sure if the project was gaining traction until MAX SF this year where I actually had more than a few conversations around OpenPyro. Oh wow, that was awesome! But I realize we haven’t been doing a great job communicating progress or direction around this project, or gathering feedback. So I spent a few hours today writing up the Intro and the Development Themes pages on the OpenPyro wiki. Both are also linked off the main project page here.

Please take a few moments to read the pages. If you are interested in this project in any capacity (influence direction, mark bugs, request features or contribute code), please join the OpenPyro google group. To make it even simpler, I am including an inline subscription box here:

Google Groups
Subscribe to AS3 Pyro User Group
Email:

Visit this group

On our side we are going to be busy being even more transparent, by doing things like public code reviews (we use ReviewBoard within CIM and are going to have a public version of it soon).

OpenPyro is definitely a community project and if you have code that would benefit OpenPyro, we would love to include it in our code base.

Thanks and happy coding.

When terrorism hits home

Last night Mumbai suffered what some news reporters called the worst act of terrorism India has ever seen. Mumbai unfortunately, is no stranger to acts of terrorism but these attacks were of a completely different kind, the attackers definitely suicidal who just wanted to kill as many people as they could before they themselves were killed. Even after 24 hours, the drama still is not over with the security forces still trying to rescue people who have either been taken hostage or have been stranded locked up in their rooms.

I was glued to the NDTV live steam for most of the night and since I have woken up this morning, and on tracking the story on search.twitter.com as well as occasionally jumping to BBC news or CNN. My first emotion was anger. Mumbai was my home for a while and its still my favorite city in the world. And to see it virtually being held hostage by these loathsome assholes enraged me. My sentiments towards the government and the security forces were those of sympathy almost, they are trying their best arent they?

But I talked to my brother over chat then and another friend who also often visits Mumbai, and they were less so. The attacks in Mumbai weren’t unexpected, after the recent attacks in other big cities where Mumbai was conspicuously out of the list. Its the job of the government to keep its citizens safe, and it failed miserably this time. While the on site journalists kept insisting that the city will bounce back and take it in its stride, I really hope this wakes us up as a country and makes us ask some serious questions of ourselves and of the people we put into power to make sure things like this don’t happen. Its time we stopped being reactive and “politically correct” and just root the sources of such terror out. Lets stop taking the safe and conventional responses. Give the security agencies more rope and let them go after the core of the threats irrespective of political sensitivities. We need more supercops like KPS Gill

The drama still goes on in Mumbai but I hope this is a wake up call to us all.

Notes from Max 08

I got back from San Francisco this morning taking a couple of extra days at San Francisco to do some tourism. So I figured I’d put down what I had learned this year before the workweek clouded all that to a distant blur.
As usual, MAX was f-ing awesome. I have tried to make it to MAX every year since I graduated and joined the corporate workforce and Comcast has been pretty awesome about making sure I could do that on their dime. This year was no exception and most of the Flash team from CIM was there at MAX as Adobe showed of the cool stuff they have been working on.
My strategy for MAX this year was a little different than earlier. Traditionally I have tried to get deeper into technologies that I work with everyday. This year, with so many new ideas being shown at MAX, I decided to take sessions on the things that I did not work with between 9-5 and would be really easy for me to miss. I have to say it worked out pretty well.
Let me start off by saying: HOLY S**T, the Flash Platform is AWESOME and the pace at which its evolving is just incredible. Below are some of the best sessions I attended this year:

Using C++ Libraries in Flash Player and Adobe AIR
This was definitely one of the best sessions I attended at MAX this year. The session introduced Adobe’s Alchemy project that compiles C++ code to Actionscript bytecode that can be run on the Flash Player just as any bytecode compiled from AS3 code would. The project isn’t mature yet but some of the examples that were shown like ports of C++ OggVorbis codec, motion detection libraries, cryptographic libraries, etc were definitely impressive. I guess its time for me to brush up my C++ ;).

Hands On: Creating Effects with Pixel Bender
I think I got most excited during this lab. Pixel Bender, as a lot of you may know, is a technology that allows developers to write Shaders in a language called Hydra. Hydra is has a C-esque syntax but is really easy since you dont do really complicated logic in it, but rather simple pixel manipulation. These Shaders can then be applied at runtime to Flash DisplayObjects and also be used within Photoshop / AfterEffects as custom Shaders. I had read a bit about this before but the syntax and the prospect of having to learn another language was keeping me away from writing a custom Shader. However, it was really surprising how ridiculously easy this was. Hopefully I’ll write a couple of filters soon and release them on this blog.

Extending Flex Builder
Another awesome session, almost perfect for me. This session introduced the object model that the Flex/Actionscript plugin uses for all the language intelligence within the IDE. The session was really useful since I had a couple of ideas to extend Flex Builder but while I was able to learn about Eclipse itself, I had no knowledge of the details of Flex Builder plugin itself.

Hands On: Getting Started with AfterEffects CS4
Programmatic Animations in AfterEffects with Expressions and Scripting
On day 1, I attended part of the AfterEffects workshop in the morning. I have never worked with AE but have seen some designers I work with come up with some incredible stuff with it. The session was perfect since it taught me enough to now let me go play on my own. Unfortunately I had to get out of that session half way since I had to get to a meeting (yeah I was also working there) but the pace of the session was perfect.
On day 2, I attended another session on programmatic animation in AE. Since most of the animation I do in Flash in programmatic, this really made me map that knowledge to the AE domain. Between these two sessions, I think I really got a lot clearer understanding of AE than before.

Adobe XD: Designing Design
Adobe XD: Building a Next Generation News Reader
I loved the XD sessions. Seeing how they go around developing apps and how they make decisions around user interfaces is always interesting. The session where Jeremy Clark explained the process of developing the New York Times news reader application was particularly informative, where they even showed the process of prototyping interaction design, something I really feel all companies should do more of.

But more than the sessions, it was meeting other attendees that was just plain amazing. I had some amazing conversations around the future of LogBook and OpenPyro with quite a few people I have talked to on twitter and email but seeing them in person was very exciting. These were almost as educational as some of the sessions.

Max 08 was just amazing, and am definitely looking forward to Max 09 in LA.