« Posts under View Point

Game on in HTML5, but not so fast

I was at the HTML5 session at GDC on Monday last week, and was impressed by the sheer number of sessions on HTML5. This was a big contrast to last year, and it speaks volumes about HTML5 is picking up as a platform. However despite the gaining momentum, the dream of “Develop once, deploy everywhere” is still a long way to go. A very long way. I say this from the game development perspective, but its still true for almost all serious apps that want to compete with Native platform apps.

Before I begin, let me clarify that in no way do I want to undermine HTML5, as a platform. On the contrary I have very strong hopes from it. I think its on the right track, but has a long way to go. There is a lot to be done before it is ready for prime time, especially when it comes to the Game development community. There are many reasons why I say this, but the foremost of them is the setup cost. When you see people talking about how they took 6 months to write wrappers to make stuff work, you already know its not a viable platform of choice. Most startup these days can not really afford to wait for two quarters to get the tools ready to their development (unless you are developing the tools themselves). This seems to be the case with almost any one working in HTML5 (especially gaming). Once you start moving your app over to HTML5 the rate at which complexity increases is phenomenal. This means while simple apps are much faster, even slight bit of game play, and you are already being taken for a ride. Try drawing simple lines on the canvas, and you have already started thinking about optimization just to get it working. Basically you spend more time getting it to work across browsers, and keep up an acceptable level of performance.

To further add to the frustration is the fact that things dont work out of the box. In a utopian world we would have consistent feature set and implementation across all browsers, but then again, we dont live in a utopian world. What this means is either you develop for the “lowest common denominator” or face the ire of users who think it is ok to use IE (any version) or Chrome from 2 weeks back. With browsers like Chrome releasing every 6 weeks, we are getting more and more features in, but we are also distancing the gap between browsers. One can argue that you can target only a specific browser, but wouldn’t that defeat the original purpose? Coming back to the point, this “Lowest common denominator” approach has its own set of problems. First off the features at your disposal start shrinking rapidly, and at the same time complexity increases very rapidly. Moreover fragmentation can no longer just be a factor of resolutions and browsers (and their versions). We are now also fragmented on actual display size, available processing powers (CPU and GPU), battery power, connectivity etc, amongst other things. This means that way more thought needs to go in when designing an app.

One of my gripes with HTML5 platform has always been the slow rate of standards, and even slower rate of adoption. At one of the talks by Rachel Blum, she highlighted how it took a couple of years for Audio to make it into the standards and then finally to actually get adopted by browsers. What is worse is that for any kind of serious game development, you still have to do enough “wrapping” before the audio actually becomes usable. However this is changing, but a lot of it has to do with the optimizations and improved hardwares. I am very hopeful this is will no longer be the case. As more and more serious development starts happening in HTML5, I am sure we will see the pressure for quick adoption and standardization. Right now there are not many pure cross-platform HTML5 games available (at least professional ones). However there are enough people who are experimenting with the platform. Almost everyone is waiting for that break through to happen to jump on the bandwagon.

You should always be in control…

Except when we choose not to.

Path should be private

As pointed out by a friend, the above is from Path’s website (From the About page, at the time of writing). Everything on Path is private and you are always in control. Except when the “industry norm” is to steal your data, then everything is justifiable.

I am certain that Path had the best of the intentions when they were doing this, and I strongly believe they were not going to misuse the data. However the problem is that this never crossed their mind, that what they were doing was wrong, irrespective of the industry norms, or developer guidelines. Perhaps its our attitude to build products first, and privacy later? Or perhaps our casualness on the data we share?

Freedom.txt

A lot of people thought that adding a freedom.txt to your domain was a cool idea. So I made a small landing page, where people can read about it. You can also send me suggestions by emailing at freedom.txt [at] wastedcode [dot] com

Support an Open Internet, create your own freedom.txt

Today I came across http://fr.anc.is/freedom.txt and that resulted in http://isingh.info/freedom.txt

This is not to protest against any bill, but in general show support for a free and uncensored internet. We may have defeated SOPA, but there will be many more such bills. It’s high time we show that we will not let the freedom of the internet be taken for a ride. Furthermore I will add links to any freedom.txt I come across. I hope that the next time when somewhere searches for freedom, they damn sure see all these results!

Do add your own freedom.txt to your domains. If possible send me a link, and I will add it to my freedom.txt.

Update: I have set up a small landing page for this. http://wastedcode.com/freedom/. Let me know if you have any suggestions or want to add some content!

Have a profile pic, lets black it out this week?

Stop SOPA

If you have a public profile pic, this, might be a good time to change it.

Stop or I will add you on Facebook!

Michael Arrington recently posted this neat article on his blog. While I don’t disagree with him, do you really think it is possible to delete 400 out of your 600 “friends”? I think the problem comes from the fact that Facebook is a collection of people we know, but we want it to be a network of friends. It’s a very cool way of socially organizing all your contacts, but this comes at the cost of watering your true “social network”.

Facebook is the equivalent of meeting someone and giving them your business card, except now the business card contains the access code to your house. So there are basically the following options:

  • Stop handing out business cards to most people.
  • Hand out cards to almost everyone, and complain about how too many people are up in your business.
  • Complain that the business card maker needs to have some easy way to choose who gets what.

This is basically what is happening right now. Now lets take case 1. You meet someone at a conference. You chat for 5 minutes. Do you tell them that they are not close enough to get your business card? Probably not, right? A very good example is Path. You are sitting with a colleague and chatting about technology. Now they add you on Path as you show them this cool new app. Do you tell them, this is restricted to your friends/family? There is no real way of declining this socially. What we need is circles much like we have in real life (and no I am not saying that Google+ circles are the right way or anything like that). In real life you call a bunch of friends to chill. Not every time you invite everyone. But that doesn’t mean they don’t belong in your network.

A contrast to that is twitter, which is completely public (and I actually consider my website/blog + Twitter as my business card). You can either have a completely closed network, or a completely public one. You can not have a semi private network like Facebook, and then tell people they are do not belong in it. Rather much like real life, give me control on what goes where. In real life I use my cell phone to call everyone, but I don’t need to tell everyone the exact same thing, when I call them.

I hope our social networks will get smarter, and realize that not everyone is equal to us. At the same time, I don’t wanna use 50 different networks for different types of people/activities.

Portal to the Portal Trail

I was doing some Scheming today, which got me thinking. Schemer is not the prettiest website, but I really like how you can do activities or create schemes to get things done. A lot of times in our lives we forgot to look back and think about what drives us. Ever since I got into Mountain Biking, I have always wanted to do the portal trail. It is actually my inspiration to try and get better at mountain biking, to become fitter for the intense ride, to overcome my fear of heights to be able to bike with the sheer drop next to me.

If you havent see the portail trail, here it is:

I am sure you can find better videos of the trail but its hard to pass on this one, thanks to Pixies playing in the background. Portal trail is a super exposed trail in Utah. This website has an amazing description of the entire trail:

I’m going to pause from the story of the day to warn you about the Portal trail. It will reset your scales for exposure on a trail. It is off the charts extreme. Nobody falls off the Portal trail and lives to talk about it. The exposed sections have majestically beautiful views to a certain and quick death. Lee Bridgers in his Mountain Biking Moab book dedicates a couple of pages to bringing home life and the Portal trail. This is just a tiny excerpt of a larger fascinating story on how he relates the life of one of his friends to the Portal trail.

“Rusty was eighty-three when he shuffled off. He was a real piece of work, under construction for over eighty years. He had lots of kids. His kids are having kids. People were, and still are, affected by Rusty’s spirit. When he died his family and colleagues celebrated his long life with funny stories and tears of gratitude for having Rusty as a friend for so long. How old are you? How long will you live? Ever consider that your life is invaluable to your family and friends? Ever heard of the expression “Don’t break your mother’s heart?” Ever heard of natural selection? This is the connection. You may not be a Rusty Musselman, but with age, you may become just as interesting, just as much of a character. In Moab we call it “Rugged Individualism.” Fall off the Portal Trail and you will never know the rewards of being an “elder,” of being a rock for your family. You will become some nameless someone who fell off the damn Portal Trail onto the rocks below.”

I’m not trying to scare you, the Portal trail should do that on its own. The exposed sections are not too technical, a solid upper-intermediate rider could pull off those moves 5 times out of 6. However, that 6th time is DEATH! The risk is simply not worth the reward here. Riding these sections is Russian Roulette on a mountain bike and three people have died so far here. I love myself and my family too much to risk becoming the fourth by trying to ride those exposed sections. If you don’t feel the same way then this may not be the trail for you.

However the reason I want to do the trail is not because I want to defy death or get killed. But its one of those things that kinda define your passion. This single video for me captures a lot of the love I have for mountain biking. It is almost an elusive goal that I have to work towards. This goal prepares me for many other big and small things that come my way. It makes those challenges look trivial, because I am striving for something much bigger.

As a kid I dreamt about writing software that will change the world. As a kid I wanted to write a new Operating System. Now I want to write a piece of software that will reach lives of millions of people, and in its own special way make their lives better for them. But you dont start with that. You always have that goal in your mind. I had those big dreams when I wrote my first “Hello, World.”. I had those dreams when I was graduating from college, doing my startup, doing research. Those were the reasons that drove me to improve myself. They make us go that extra mile and bring us one step closer to who we really are. But its not just the skills that count. A lot of the conviction comes from the heart. You can have all the technical skills to do Portal, but your heart and mind also have to agree to it. Similarly you may have all the technical skills, but you need that conviction to take the plunge and do something unique.

Life is about the journey, right? So let your dreams define your journey. However challenging it might be, it will be fun. It will be you.

John Gruber’s take on the Galaxy Nexus

You either see it or you don’t. If you don’t, that’s cool, enjoy your Nexus. But I think the reason Apple Stores are so crowded, and getting so big, is that there are an awful lot of people who do see it.

Here is the link to the Original Source, a blog post by John Gruber.

I wonder when will people realize the reason I use Android is not because its more shiny or polished (or because I can not tell between a half/full baked product). I am more than tired of people thinking they are all high and mighty because they use Apple products (and seriously no disrespect to John, because he is genuinely a very smart guy). Just because you use an iPhone doesn’t mean that you have a better aesthetic tastes, than a guy who doesn’t. There are more things in life than just phones. My beliefs define me more, than just a pretty UI (and I am not even saying that finish is not important, more on that later). I used Linux a decade or so back (sorry, I aint old enough to have been coding when Unix/Linux come into existence) not because it had a better UI or it worked seamlessly with every thing. However, I could still tell which platform had a better UI, and still I chose to program in Linux. However cheesy it may sound, but the Samsung Advertisement:

where the guy says: “I can never get a samsung, I am creative.” hits the nail on the head. More people think they are cooler, creative and thousands times more awesome because they use an Apple product. MG Siegler (once again no disrespect to him) in his original article compares iPhone and Android to a BMW and Honda. He makes this comparison, while he drives a Honda, and uses a BMW (iPhone). I drive a BMW. I have driven a Honda. I can tell the difference (and that is why I drive a BMW). However I prefer a BMW over an Audi because of what the brand, or the idea behind the car means to me. Similarly a Mercedes generally offers much more refined interiors and driving comfort. Would I give up my BMW for it? No way. Same way my choice in Android and iPhone is not because I can not tell between a good and a bad design, or because I am not cool enough to have an iPhone in my pocket. It’s an earnest decision. A lot of early adopters choose a platform because they believe in it, not because they dont understand usability or design.

I have supported Android even in its early stages, when they were actually like Honda and BMW. Its because I believed in a product. A lot of technologies I love, have developed simply because of belief and community support, and Android is a shining example of that. I strongly believe that the gap is almost complete and whatever is remaining will be complete soon. In the mean time, please do not think you are superior, more creative, a more distinguished judge of design, or that the other person is stupid, just because you use (or do not use) an Apple product. Please do not stereotype/speculate on the reason I am buying an Android phone, just like I don’t do for you.

Is there a thing called as a Designer Co-founder?

Or do you always hack on your own, until you are ready for getting a paid employee?

These days you cant really have an app, which does not have good design aesthetics. With enough startups relying solely on great interface design and user experience (or more so on them than actual innovation), I just find it surprising that there are so few startups where any of the founders/co-founders are designers. Perhaps I dont know enough of these startups, or maybe most of them are not mainstream, but either ways you dont seem to find enough UI designer as founders.

This comes to me as a surprise because there are enough startups with non technical founders. Wouldn’t having a great designer as a cofounder be more lucrative that a business contact, especially for a user facing startup? I mean unless you are already rich, you probably won’t be able to afford a designer right off the bat. And a great UI can be game changing. Given all the creativity that these designers bring to the table (coupled with flawless execution and integration from engineers), I would believe that more of them would be ready to start something of their own.

Is this because of how engineers and designers look at problems? This might be going down a completely wrong track, but engineers look at problems in a much different fashion than a designer. Perhaps as an engineer you are sitting at this vantage point, where you can see more scope for innovation and change. You are exposed to more problems, and have the skill set to figure out what can/needs to be changed/created. Or is because engineers are used to all the pain that involves getting a company to bootstrap?

Either ways, I strongly think that engineering and design complement each other really well, and put together right from the beginning make a huge difference. I think we really need to stop thinking of design as an after thought. For the same reason, I always wonder if we should even be segregating engineering from engineering with a good design?

In any case as engineers, till the time we can not afford a designer, we will hack together whatever we can.

A Singly view of my data

I don’t know when we will understand this, but the social web is not about checking into places, or posting photos and tagging people. It is not about us sharing our information via our blog, or doing micro updates on twitter. It really doesn’t matter if I use Flickr or Instagram, or Google+ or Facebook. What is more important is the actual interaction we have on a day-to-day basis, be it in the real world or the virtual.

Life is just a collection of experiences that we create, or share with people around us. Different people use different “social” services to serve their purpose towards this end. And to tell the truth, we actually need different services at different times. However that leads to a lot of fragmentation of our personal data. Right now a large chunk of my thoughts are scattered around on Facebook and twitter updates. Similarly Picasa has all the photos that I take from my Android phone, while there are more that are posted by my friends on Facebook and Flickr. This makes it a mess to actually see what content do I really create, get linked to or ingest. And the problem doesn’t just stop there. It is a pain for me to even put the various blocks together. There is no real bridge between these disconnected services. This hurdle is also felt when developing any application that consumes this data (don’t even get me started on actually creating this data). How many websites have you visited recently which didn’t ask you to sign in on at least two of these social services?

This also makes development a challenge. Recently when I was trying to write a simple service to analyze my geo presence based on data online, I found that I had to write code to query at least 4 services to get an accurate answer. Shouldn’t we be making this easier? On thursday I was down at Singly office in the mission for a small Create-a-thon. The plan was to hack till midnight, and welcome 11/11/11. I thought why not? I had read a little about them online and the Locker Project and I thought they were on the right track. Singly provides a unified APIs to query our personal data.

Starting off around half past seven, it didn’t take long before Simon and other folks at Singly had my account setup. They had a general theme of building a photo viewer, which could take photos from all your services (4Sq, Instagram, FB, and so on). However I was more interested in how I could use this data towards my personal project of analyzing my location, based on my online interactions. Despite them still being in an early phase of the places API, it didn’t take me long to see all the checkins from me and my friends, and actually start analyzing them for patterns. Before we hit midnight I was able to pull up a small application which could figure out the places I have been to recently, and an overlap between me and my friends. This was pretty cool, because this actually collated data across 4Sq and Facebook (I wish they had Google Places) and was pretty simple. Despite all the rough edges this actually made sense. Given all the development happening out there, why is there no single way of getting my personal information?

I also played around with their existing photo viewers, contacts and links interactions. I was actually surprised on how accurately they recovered all the links I saw through the day. Although I must say that was a lot of data but nevertheless it really was deduplicated and ready for me to crunch on. I didn’t have to worry about linking 10 different accounts (although I did have to do it once at Singly) in every app I write. While talking to folks @ Singly I realized that there were a lot of challenges in this data unification. I really appreciate the effort they were making, but I wish that a large part of this focus came from these big social networks to allow me to unify the access (and perhaps creation) of my personal data. I know it’s almost impossible to wish for open standards in this, but that would definitely make my life easier as a developer, and also allow people to focus on innovation and not data aggregation.