Saturday, December 31, 2011

2011 in retrospect



Looking back at the year this last day of the year the following tech stories stood out.


Social Media fueled Arab Spring

This year social media like Facebook & Twitter truly became mainstream, they are no longer something the tech elite use. They have also reached a critical mass that allows an innocuous looking post to to spread across the society like a wildfire and snowball into something thats capable of bringing down decades old deeply entrenched autocracies.



Evolution of more natural UX

This year also saw maturing of technologies like Voice control (think Siri), Touch (think iPhone) & gestures (think XBox Kinect) becoming more mainstream and ubiquitous. This sets the stage for changing the way we all  interact with devices.. We are already seeing some of these technologies that matured in the mobile space bleeding into mainstream OSes (Mac os Lion & Metro UI in Windows 8). If the trajectory continues very soon we will be using touch/gestures/voice control on most of our devices at home.



Rise of HTML5

This year saw Adobe finally concede defeat and adopt HTML5 as the defacto standard in developing UI. This is a great news for developer community as they can focus on building great apps and not worry about rehashing the same app using different technology stacks. Dream of having the same app run on the  phone, computer, TV, set-top boxes, tablets etc came much more closer this year.



Rise of Android

Android has finally matured to be an formidable competitor to the iOS ecosystem. Being an open platform facilitates this wide adoption. Today android has become the defacto  platform to build an smart device on. Apple due to its lead had locked up the supply chain, meaning that competitors had to either compromise on quality or have their wares at higher prices. But seeing Amazon enter this market in a big way with its “razor and blade” strategy was an interesting development. Amazon has a wide variety of content and thus can afford to subside its devices and thus pose first serious challenge to Apple.



Passing away of Steve Jobs

Steve’s life can be summed up nicely by borrowing one of the Apples motto “think different”. By doing so he fundamentally changed multiple industries, created new ones and forced others to imitate him. In my opinion his biggest contribution to the tech world was as he called: merging liberal arts with technology. One can argue has made technology much more accessible to the masses and caused the first four things listed above to happen. Dots are there to connect him to arab spring!  His passing away brings an era to end, but hopefully his legacy will live on and the lessons learned will be built upon and thus, the technology will continue to be simplified, digested and prepared for mass consumption.

Friday, December 9, 2011

think about "checking out" instead of "checking in"

Popularity of social sites has been making us obsessive compulsive share everything maniac.  We all know please who have to broadcast to the world by "checking in" via foursquare/gowalla (oh well)/facebook places and then cross post it to twitter/facebook/google+ etc, all the time. This cross posting of the checkin activity to twitter makes it very public. just try searching for 4sq on twitter.

Everytime  a "checkin" is broadcasted to the world, in addition to  telling everyone where you are, it also tells the world where you are  NOT i.e. your house. You might already be sharing the  location of your house via unkowingly geotagging the pics/tweets etc. Sites like PleaseRobme are  popular for raising awareness on this issue.

I do understand the urge to share. Winning mayorships, badges, points can be addictive. Moreover foursquare and shopkick have been experimenting by making the checkins earn real dollars by giving coupons/discounts.

Here is my attempt to making checking a little  "safer" :

1.  Check out instead of checking in :  Unless  your friends use your foursquare feed to run into you, checking out of a place is usually safer than checking in without loosing any functionality. You still get your mayorships, badges, points etc without revealing the estimated time you will be at the exact location. eg. your checkin at a movie theatre/restaurant ties you to the location for a few hours vs checking out

2. Dont cross post your checkins via twitter/facebook etc. Believe me there is nothing more irritating seeing the twitter feed full of crap like that. It makes your checkins a little less public

3.  Think about making your checkins private.  this ensures your location is available to your "friends" and not anyone at internet.

Sunday, December 4, 2011

Reenable your kids locked google accounts.

Google does not allow any new accounts for kids under 13. If you have managed to get an account for them  perviously (say email) , and they try to activate any of the other services (say youtube or g+) google will ask for a birthdate, entering it will immediately lock the google account itself ( thus locking them out of all services). They site

Under our policies, Google doesn't allow users who are under the age of 13 to have Google Accounts, unless they are using Google Apps for Education accounts through their school. This is similar to a lot of online services, as it's very complicated for many providers to offer better solutions for children that meet the relevant regulations. It's not as simple as just asking a parent for consent to let their child have an account -- there are associated implications for data and privacy involved.

One of the reason for google to this is Children's Online Privacy Protection Act. Its important to note that Yahoo does provide a way for kids to have accounts via the Yahoo Family Plan.

Once Google locks the account, the only way to unlock the account is by proving your kids age by one of the following ways

  • Credit card verification
  • Uploading a scanned govt issued ID
  • Snail mailing a copy  govt issued ID
If your kid does not meet the age requirements obviously none of these are going to help. I did find myself in this situation when I tried to sign up my 7 yr old son to his youtube account so he can post videos that I encouraged him to create.

I decided to give credit card verification a try. I put in my age and name and credit card details and like magic my kids account was unlocked.  So looks like the credit card that is needed for verification need not be in the kids name! BTW google will charge $0.30 for this trouble. It was well worth it compared with the trama my son was going through for loosing his email & blog accounts.



Thursday, December 1, 2011

So how do you use your "likes" "favorites" "+1" "digs" etc.


The social apps today want us to  “interact” with them by encouraging us  to click on a button labelled “dig”, “+1”, “like” “favorite” etc.

Clicking on them is beneficial to at least 2 of the 3 parties involved.

Poster :
   - It increases his/her “social influence”
   - It validates the “social graph”
   - “Retweeting/Reposting” can increase the traffic which could lead to increasing ad revenue
   - Provides ego boost

Service Provider
    - Helps profile the person interacting based on context information of the link/post
    - Marketing the social profile to its consumer or targeting ads/marketing campaign/research etc
    - Helps profile the poster by examining the social network
    - Help gauge the social acceptance of the topics/things discussed in the post

Clicker
    Its kinda hard to come up with the reasons on how clicking on “like”/+1/favorite helps the clicker. here is what I could come up with
    - Makes him/her socially relevant
    - Might “believe” in getting profiled in order to see more relevant ads etc.

How I want to use the “like” button (just like I use the favorite button on twitter)

Today I get majority of my tech news via twitter and social news via Facebook. Most of the news items in both of my streams are interesting links to other websites/videos etc. Thus for me Facebook & twitter stream  largely define the slice of web I surf. The problem with both of them is that they are a non stop stream of information which is almost like drinking from a fire-hose. If I do not have the time to follow the link posted, chances are that the link along with the post will fade away from my stream within hours. The “half life” of a link shared in a social media is just a few hours.

Thus if I am trading my privacy by clicking on a link, I expect this in return :

I want the service provider to provide me with the history of all the links I have interacted with. Thus I can go back and preview them at leisure. Twitter does this already and I use it extensively, both on my macbook & my iPhone. I check twitter often and “favorite” the posts catch my eye and then later in the evening or week when I have time I read the linked post/watch the video what ever. This is not possible on Facebook unfortunately, so I use service like read it later. using a browser plugin makes it easy, but still is not seemless. Also as its not supported natively, and doesn’t work on my mobile phone where I do most of my facebooking.



Hopefully Facebook will see value in making it available to us and not just the paying customters!


Sunday, October 30, 2011

Steve Jobs Apple Logo Pumpkin carving stencil

I wanted to pay tribute to Mr Jobs, by carving an halloween pumpkin in his honor. I googled around for a while, but could not find one. Thus I ended up creating my own. I took the Steve Memorial Apple logo, inverted the colors, and lightened the black, to save some printer ink . here is the original image
here is the stencil

Monday, September 19, 2011

Have a Elevator Pitch ready!

I had recently switched jobs. I traded the job at a big corporation for a one at a small company. I was very well established at my old job and never felt a need to prove myself or sell myself. This all changed as one usually starts at the ground floor at any new job.

At my new job I met new people everyday. It being a small company, I would run into executives quite often. We would exchange the normal courtesies and thats it. I realized much later that I had not used the “first impression” opportunity. If I had something worthwhile to say, they might mentally file me under “guy worth my time” folder, rather than “just another guy” folder.

Once I realized that, I realized to have something similar to an elevator pitch ready at all times. Elevator pitch is typically associated with startups trying to impress potential investors as captive audience for the duration of the elevator ride. A more generic form of elevator pitch is just having something sensible to say so that there person you are interacting with thinks that you are worth his time.

The elevator pitch in its “generic form” should not be construed as a sales pitch or ad ad of yourself. It is supposed to help once cause and not hurt (sales pitch/Ads can be turnoff). For me its basically the 3rd or a 4th sentence in an conversation with someone I am trying of impress, so that the conversation can last long enough for the person to remember me among scores of other people he would meet.

I think some folks are natural charmers or inherently good conversationalist. They don’t have to prepare themselves for stuff like this. I am not blessed with this natural charm and find it challenging. Thus the need to have some “preparation” in this area.

I think one does need to have a list of relevant open ended questions or just a list of cool ideas to form the basis for conversation if an opportunity presented itself. eg. What does I say if I ran into Steve Jobs at an apple store ? ok. well that is highly unlikely to happen, but still can be very though provoking. I more realistic scenario, specially in a small to midsize company is what should I talk about If I find myself standing next to the CEO, or VP of engineering.

And if the homework is well done, I might find myself seeking them at gatherings, rather than trying to steer myself away.. just because I don’t know what to say!

also, I think having talking points might help in general social settings outside work too. specially those with some sort of social anxiety.

Tuesday, August 16, 2011

Job Hunting tips

I spent this spring/summer looking for a job. Some of my friends have been asking about my experience. That prompted this blog post. Here are a few things that helped me after I came back to the job market after 13 years.
  • Googling myself I am sure most potential employers google the potential candidates before interviewing. Thus I wanted to make sure the google gave the image consistent with my resume. This helped:

    • Having my linked-in profile upto date.
    • Having a twitter feed which reflected the areas I am interested in. Following professionally relevant people. retweeting relevant tweets, generating new tweets
    • Having a blog with original content, blogging about professionally relevant topics. I use blogspot
    • Having a professional profileat google profiles, about.me etc which linking to all my web presence sites. This makes it easy for folks who what to learn more about me. I included this link in my resume
    • I use facebook for personal use and made my facebook profile private.
    • commenting/interacting on the relevant forums, blogs on the websites.
  • Networking I also joined and regularly attended the local user group meetings (Java, Html, Startup in my case). This helps in networking and also remaining uptodate with current topics, this also helps immensely in the interviews. The local user groups is also a great place to get job leads. I found www.meetup.com a great place to learn about groups relevant to me.

  • Mailing Lists Apart from usual job search sites, there are locally relevant mailing lists that helps in getting local job leads eg. In denver area Rocky Mountain Internet User group-RMIUG is great for finding tech jobs. boulder.me for start ups in boulder area.

  • Research Sites like Glassdoor.com are a great resource for researching companies, salaries, job titles etc. I found that doing a quick search there for the company/job title and salary check, helps me make my applications more potent & relevant and saves me time by weeding out misfits.

  • Resume tips A few things that I found useful in preparing my resume

    • Adapting the resume for the job. This doesn’t mean misrepresenting. It just means highlighting skills that are relevant. Resumes are scanned by bots, and HR probably scans a huge load of resumes every day. Crafting a resume to be relevant helps them and makes it easier to get an interview call
    • I found including an 4-5 line objective that summarizes and makes a strong case for the job helps a lot. This means its not canned, but customized for the job application
    • Talking to the recruiter before submitting the resume gives a huge edge. Quite a few companies go through recruiters, HR from most big companies are also your friends. Most of them were open to talking to me, answering my questions and helped me a lot in preparing the resume to be relevant for the job.
    • I included the link from main web presence site (about me). This site points to all the web presences (linked in, twitter, blogpost etc)
    • I took away trivial tools, outdated tools, irrelevant skills from the resume. I feel this helps in cutting down the bloat and making resume sharp
    • I Included soft skills, specially if the position demands its. Most senior level positions do
    • I made it a point include a few lines describing my specific contribution to each project on the resume. In order to keep resume short, I excluded irrelevant projects.
  • Interview tips. Some things that I found useful during the interview

    • researching the company, its web site etc, before the interview
    • googing/linked in checking the folks that will be interviewing me, asking the recuriter for names etc ( most of them give me the name of the interviewers)
    • Reading puzzles books eg : http://www.amazon.com/Would-Move-Mount-Microsofts-Puzzle/dp/0316919160, puzzles for programmers, programming interviews exposed
    • I found having an list of questions to ask the interviews also helps. Having a relevant question is a great way to differentiate myself from the bunch
    • Being relaxed, using interviewers first name, using “us” vs “you” etc helps
    • Googling for interview questions usually asked at the interview by that specific company.

Hope this is helpful. what did I miss ? I am eagar to find out how you landed your job and your tips for the same !

Wednesday, July 20, 2011

What is cell phone hacking

Cell phone hacking has been in the news lately. I was interested in knowing what the heck were they talking about. here is what I found. It should be more accurate to call “Voicemail hacking on the cellphone”. The idea is that someone is able to get into your voicemail box and listen to your voicemail messages. It can be easy in some cases. Following are some of the common ways of doing it. None of these hacks are unquie to cell phones, they will work against landline too.

  1. Most cell phone providers have a fixed default pin for voicemail system. Most users never change the default. So the hack goes like this. you place two simultaneous call to your victim. One of them will go into the voicemail. you press ‘*’ to get to the voicemailbox. Try the default passwords. if the user has not changed the default you are in.

  2. Most users use easy to guess pin. 1234, 4321 etc. hack is same as “1” above.

  3. Calling the voicemailbox from the associated number by default, doesnt ask for passwd. Its easy to spoof the calling number to be whatever you want. So attacker will spoof his number to be same as the victims and call his number.

  4. Brute force : victims number were obtained through bribes, the voicemailbox number can similarly be obtained. 4 digit pin offers a really easy brute force crack, specially via automated diallers!

So how to protect ?

  1. Make pins required
  2. Do not leave voicemails around. delete them
  3. Use something like google voice (there are other providers with similar service), which allows to have electronic copies of your voicemail. delete the original. Its easy to replace the default voicemail to a different provider.

Saturday, May 7, 2011

Perils of SmartPhone (Automatic geotagging)

Consider following everyday scenarios:

  • Dad takes a picture of a new family car via the smartphone and posts it on flicker, a few days later he posts a picture from a beach where the family is vacationing.

  • Mom likes to use twitter to keep extended family upto date. she tweets mundane things like I am at work, picking kids up at school etc etc, occasionally posting pics of something funny.

  • Teens are hooked on location/checkin apps, always broadcasting to friends where they are hanging out. they love checking racing to the “mayorship” of their favorite spot, collecting pins and other rewards.

They all look fairly innocuous. They are all possible by the power that smartphones pack these days. Decent camera, affordable data plans and engaging apps has made us very spontaneous. when ever we see something cool, funny, important etc, we instantly feel the urge to “tweet”, “facebook”, “flicker” it. This is extremely powerful and has the power of bringing down the established regimes. At the same time these simple acts can reveal personal information that can be extremely dangerous.

consider following.

  • Petty thieves use location search to find pictures on flicker in their target area. Based on geotags and pictures they pretty much know where the potential victims live. and looking at photostreams and dates reveals if victims are currently away from home. Essentially posting a geotaged pictures to a public site is like telling everyone where you were (exact location) at a given date/time. Home pictures reveal your exact address, Vacation pictures reveals that you are out of town.

  • Pedophile looking for new victims scans tweets around him, find the mom tweeting about the daily routine, follows her on twitter and based on geotags establishes the locations of her home, kids school, work place etc. Gets familiar with the routines and strikes. Twitter feed can also geotag messages and provides an easy way to search for tweets “around you”. everytime someone tweets, they are essentially telling the world exact location of where they were at the time they tweeted in addition to the tweet content itself.

  • Stalkers love “check in” apps. they make stalking extremely easy, using these apps with a public profile reveals your daily routine publicly. They also maintain a history so stalkers than easily see the patterns and get familiar with the routine.

If you use a social site with a public profile, just put yourself in the shoes of the “bad” guy and see how much info you can gather about youself. Most “public profile” are also searchable by simple google search and its easy to put together a complete picture of a person if they engage on multiple sites. Google maps with streetview can give everyone view of your home based on the picture you posted, or a simple tweet!

There are couple of ways you can protect yourself:

  • Make your profile “Private”. If you are a social person and like to share. Share it with people you know and you have vetted. Make your facebook, twitter, flicker private to your immediate friends.

  • Turn off geotagging. I am familiar with iPhone, (Android, etc should also have a similar feature I assume). On iPhone you can decide which apps can use geotags. you dont have to turn off geo location for the whole phone. e.g. You can allow “Maps” & “Urban Spoon” & foursq/gowalla to access your location, but disable it for flicker, facebook, camera app, twitter to use it. Iphone tells you which apps are actively accessing your location and the time they did (Settings->location service). Make sure that apps that are accessing your location are not posting it to your public profile, without your knowledge. Next time an app asks for access to geo location, think twice before allowing it.

The intension is not to fear-monger. Just be “Smarter” than your “Smart Phone”. Your location is very important and every one is trying to get access to it. Protect it. Your family deserves it.

Sunday, May 1, 2011

IPad security

iPad has various security features built in. I will review a few of them. They are all accessed by launching the settings app from the main iPad screen ( the icon with gears).

1. Password Lock : [ Settings-> General-> Password Lock -> Turn Password On]

 When turned on. iPad will ask for password when unlocked.  when the Password  is turned on, you can select either a "simple password" aka 4 digits, or a  non- simple password  any phrase using a full  keyboard.

2. Auto Lock : [ Settings-> General-> Auto-Lock]

Auto Lock will cause iPad to autolock after a period of unactivity. You can choose from 2min through 15 mins, or disable autolock.  You can also choose to autolock the iPad when ever you use the "Smart cover" (bought separately)


3. The  third security feature is  called Restrictions  in the settings app [Settings-> General -> Restrictions]. This is the area what allows you to setup parental controls. It lets to disable a few things to make iPad more secure for kids. You can set it up to use a different password than the Screen Lock password.


As you can see from the screen shot above, you can selectively disable a few apps. disable in app purchases  disable content based on ratings. You can also restrict the ability to install or remove a few apps.

I have turned off in app purchases, set settings to G, and disabled the capability of deleting apps for my kids iPad.

iPad is designed as a "I" device and not a "Me" device. thus, when the "restrictions" are turned on, there isnt a way to bypass them by just typing in the password.  Thus when I want to delete the App. I have to follow the following steps :

1. launch the  settings app,
2. Type in the password to access the restrictions area
3. Turn on  the app deletion
4. go back the screen
5. delete the app

6. launch the  settings app, 
7. Type in the password to access the restrictions area
8. Turn off  the app deletion

Kinda pain! but  it works.

Tuesday, April 26, 2011

So you got your kid a IPad2 ! now what ?

Some of you are probably familiar with my iPad2 saga. Well I have had one for a few days now, and as you can imagine, kids spend a lot more time with it then I will ever. This prompted me to look into how to make it a safer & a fun device. Here are a few things I have thought of. What do you do to make your tech gadets kid friendly ?

  1. Turn on the restrictions: Settings -> general -> restriction This is the iPad equivalent of the parental controls. It allows control for things like : Allow purchases (in-App and App store), restrict certain apps, restrict content via ratings etc. I have the ratings all set to “G”, disabled all purchases, and taken away the permissions to delete apps. As iPad is a “me” device rather than a “we” device, the restrictions once set, cannot be overridden. Thus to disable a particular restriction I need to go back to settings, change the restriction and then do my thing. Also once you set the restriction pass code, remember it. if you forget it you will have to either jailbreak your ipad or factory reset it.

  2. OpenDns : Kids will soon figure out that TV is much more fun on You tube. And internet in general is much more fun on iPad. Thus the normal “safe browsing” rule apply. I have found OpenDns really good for this. This will ensure that kids are safe at least when browsing from home.

  3. Normal computer rules apply: Kids will become very addictive to this. Thus to reign this in, iPad time is counted against the maximum allowable screen time. And the total screen time is subject to reward/penalty system :)

  4. Find your iPad: There are times when kids are “immersed” in the ipad and will choose not to listen. “Find your IPad”” is my friend in such times. It allows me to send a message to the iPad so they have to notices. This can be enable by going to iPad Settings-> Mail,contacts,calendars -> accounts -> Mobile me. then go to https://me.com/find/ for the fun.

  5. Educational & Fun Games: App store has lots of free and cheap fun games. There are even games that can keep a 1yr old entertained. I have found that most of the free games are ad supported and can cause kids to either accidentally hit the ad and be launched to a website, or see age inappropriate banner. Getting a paid app ( most are 99c) is just hassle free. some of the educational games are a lot of fun! App store makes is easy to either browse via categories Top rated apps, or just search if you already have a game in mind. The app store search is really good.

    Kids will find out about new apps all the time. I am thinking of using this as part of a reward system. They earn a new app each week by doing their homework and being on a good behaviour that week.

  6. Use IPad as a digital photo frame. Of course you can just run the slideshow from the photo app, but the screen will lock after a few minutes of inactivity. The right way to do it is via the “flower” icon on the lock screen. The digital frame settings are under settings-> picture frame. This kinda helps keep iPad away from kids and gives it a purpose/alternative use. Plus this gives us a chance of looking at all the cool photos we have taken over the years :)

I would really like to hear about how you are using your ipad and what you like/dont like. I plan to do a blogpost about apps soon!

Sunday, April 10, 2011

Find my iPhone

Find me on Iphone is an amazing service. Although it is primarily developed for tracking down your lost iPhone, it can be used in other interesting ways. The official descriptipn of the service is here.

The features that I find most useful are :

  • Locating the iPhone Apple locates the iphone on the website, The display is “hot” meaning the pushpin moves in realtime as the iphone is moving, so you can actually see direction & guess the speed of the iphone. This is very useful in tracking where the person is or if they are on the “move”. So rather than calling your partner repeatedly to find out far he/she is, One can simply “findmyiphone” him/her. This is safer than distracting/irritating them with repeated calsl. Looking at how fast the dot the moving we can also figure out if the traffic is slow etc. Of course there are privacy concerns, but I think this should be a good way to keep track of family members. I think parents would definitely find this useful to locate the teenagers.

  • Display a Message I basically see this a way to SMS the iPhone user for “free”. With iPhone data plans not including any free sms’s, this becomes a very good option ( findmyIPhone is free). It is a good, easy way to send a quick message one way FYI message to the Iphone.

  • Play a tone This is probabely the only “conventional” use of findmyiphone. I have used this a couple of times, to locate my misplaced iphone at home. Its really handy if the iphone is in the garage with the car, or hidden under the sofa cushions!

There are quite a few times when I could locate the iphone and based on the location decide, weather to call or just send a message. If the phone is stationary and at a location, I would usually call. if the phone is moving, I tend to just leave a message.

Of Course findmyiphone is risky, it can options like to “remote wipe” & “play a tone at full volume ” at the fingertips. It can be extremely devasating or annoying to do either. so this has to be used with care.

Tuesday, March 22, 2011

HTML5 GeoLocation by Scott Ryan @ HTML5 user group

Part of HTML5 standard. Not very standard on desktop browsers, but is relatively very stadard on the mobile browsers. Moderizer library helps see what capabilities the browser has

Basics

5 methods to get geolocation :

  • GPS : most battery consuming, sky view, elevation possible, better accuracy, 4-x of 24 satellite
  • Cell Towers : low power, no sky view, 1-x cell tower, low startup (works well in cities, not in middle of country)
  • wifi :
  • ip lookup
  • assisted GPS
    • cell towers & gps can collaborate to work togather, cell towers can help narrow what satellites to focus on, and delays. cell tower can also do the calculation on the behalf of phone

Cell Towers use : cell towerid : thats what google map uses ( big circle is 1 cid, then multiple cid, circle narrows, pushpin is gps). * other things used : Angle of arrival, time of arrival, signal strength, time difference of arrival etc

Privacy

  • prompts the user per domain
  • non blocking
  • cant bypass via code

Error Messages

  • permission_denied : not all browers, some give unknown error
  • position_unavailable : can also get if the accuracy asked is high some phone say permission denied

two calls

  • getCurrentPosition(function,error_function, options)
    • always get back lat/long, might get altitute
    • accuracy, altitute accurancy (might)
      • speed, heading : no one has implemented
        • options : accuracy, age
    • watchPosition
      • returns the number which is used to stop watching
      • should sample only when locaton changes (significant differences in vendor implementations)

Fall backs

  • Geo.js
  • GoogleGears : has to be installed
  • IP Resolution : yahoo/google has one, few more standard one

Mobile HTML5 by Scott Davis @ HTML5 user group

Mobile phones have become very pervasive.

Apple sold 4.1 macs in 4qtr 2010, 7.3 ipad, 9.1 ipod, 16.3 iphone : 35M mobile vs 4.1 laptops. mobile devices are outselling pcs for first time per IDC

Native vs HTML5 on mobile

  • Native app:

    • great way to sell the app, join one of the app store (apple, andorid marketplace, amazon). they take care of credit card processing etc
    • downside : vetting process
    • have to learn a new language/platform
  • html5

    • basecamp mobile is html5, netflix on other side has an army of developers for each platform
  • change a website a bit to be mobile friendly*

    • mobile resolution on phone is lower than desktop, tablets are closer
    • css3 can do media queries : have css classes based on resolution and web vs mobile
    • portrait vs landscape : css rules for portrait & landscape, cant force an orientation
    • use html5 form elements ( can use in web as they all default automatically to string even in legacy browers)
    • Modernizer library for detecting html5
    • href elemnets like tel:, sms: ( similar to mailto:) ( maps apps open up just with href to google maps)
    • touch & gesture events ( no hover events )
      • remember to cancel default event (which is scrolling), can do on divs
  • change a website a lot to be mobile friendly

    • Localviews, remote data, application cache, local storage
    • Localviews : all “pages” are divs, all “links” show or hide divs, all data is “Ajax call away”
    • application cache: has state, has programatic control
    • local storage: survives browser reboots, session storage cleans on browser reboot

Friday, March 11, 2011

IPad2 3G or IPad wifi + Iphone personal hotspot (AT&T)

IPAD2 wifi or IPAD2 3G well after comparing the data plans I think its a no brainer, specially if you already have iphone 4. (I am on Iphone4 with AT&T) 1. IPAD2 data plan : $15 for 150 and $25 for 2G, $10 for overage. month to month 2. IPhone personal hotsot (ATT calls it Datapro + tethering) : $45 , $10 per GB overage, month to month IPAD2 3g is $130 more than IPAD2 wifi Thus on the iPhone personal hotspot we get extra 2G for $20 vs extra $25, plus as its a hotspot you can tether to your laptop if needed. which i guess you cant on ipad. one think to keep in mind that Ipad 3g comes with GPS chip while wifi model does not. but if you have iphone and dont mind draining both of them down. just go with wifi.

Tuesday, March 8, 2011

[BoulderJug] Title: Introduction to Web Sockets by: Jonny Way : Time Warner Cable

What are web Sockets ?

Part of Html5 : Forms, GeoLocation, File API etc

There is no websocket tag. its a Bi Directional full duplex TCP socket communication. It has its own protocol Its ascii only, binary is in works. Supports TLS. Like most HTML5 tech, this is in works

  • supports real time communication needs like games, chat servers etc.
  • cuts down on http overhead (headers, cookies, 302s)
  • with web sockets its just 2 byte overhead
  • can replace Flash sockeys. XHR long pools, forever frames etc

Var webSocket = new WebSocket(“ws://aaa.bb.com”); webSocket.onMessage webSocket.onClose webSocket.send

problems: - no support in legacy browsers - inconsisent support in browsers that claim support - security concerns is causing ff4 to deprecate suppoer

workaround - comet (XHR long poll) - scalability issues - on client : uses up one of two allowed connection - on server : manage multiple connections - JSONP - bit for a hack - same origin policy does not apply to the dynamically supported ags - forever frame : - invisible frame - mix presentation & functionality etc - flash xmlsockets - not available on mobile platform (iOS) - plugin, debugging etc

solution - socket io : abstracts socket method into unified api (socket.io) - includes server code - open source - jWebSocket - servlet like api - open source - cometD - Dojo driven - Jetty & Glassfish implement it - Pusherapp - SAAS - Atmosphere - comtainer agnostic done by glassfish guy

Scaling challenges - connections have state - communication pipeline to app server - LB needs introspection

Controvery - HTTP upgrade vs CONNECT (verb) : some proxy server dont implement http upgrade correctly, thus some browsers are choosing to use connect for negotiating the protocol (purist dont like this, its abuse of the connet verb)

links - websocket.org - socket.io

Saturday, March 5, 2011

Its a Post-PC world, and we will Love it !

When Steve Jobs speaks the world listens. There is always something for everyone. Geeks, Consumers, product companies etc. And Apple’s March 2nd event did too. The fact that Steve showed up sent the stock up. iPad2 was announced as expected, the Smart Covers stole the show. iOS 4.3 was kinda bonus. But the phrase that was used during the presentation had me thinking: “Post PC Era”.

This catchy phrase has a huge impact on the industry. It essentially declares the death of philiosphy of selling to customer via tech spec alone. It basically says that in new world the technology has to be sold to masses and to geeks and different strategy has to be used.

Post PC world is the world where the tech or specs alone will not get the job done. Its the whole package that the consumer is looking for. Product companies can no longer rely on “geekiness factor”. The old adage that if you build it they will come is no longer true. In post PC world, the common man on the street is target, customer and not the geek of the household. In this world, the tech gadgets are sexy, exciting and inviting they are not scary or elitist anymore.

The focus of the successful companies in this era should be to make gadgets that are exciting, easy, inviting to an average consumer. Making them the fastest, biggest, or packing them with features alone will not cut it. That shouldn’t even be the focus. The focus should be on making the case that the gadget gives the superior experience to the consumer by making the routine chores fun, easy and delightful. The gadget should offer the best user experience for the use cases it supports. Technology alone is meaningless to the consumer, they relate to experience.

for example in the PC world you tell the customer to buy your gadget because it has two cores, in post pc world you tell the customer that your gadget is superior because it can do Video calls with lifelike pictures. Telling the consumer that you have a NFC chip that they can use some day doesnt mean anything to the user, But having an app and an eco system to take advantage of it does. Consumer doesnt know what 256KB ram is, but they can relate to the fact that the gadget will allow them to compose and record music.

So in an Post PC era when apple releases a phone with an camera, it is accompanied by facetime, a complete average men’s Video Conferencing system. When they see the beautiful tablet in an ugly case, they up the bar by designing a smart cover for the next version of the tablet. When they release a tablet with the next generation of technology, it has the next generation of apps to go with it to make a case for why that technology make sense for you.

Thus in this era hardware with superior spec is not enough, it has to be accompanied by an matching software, apis for the app developers and an eco system for after market accessories and an distribution framework to reach the consumers directly.

The Post PC era has risen the stakes, the barrier to entry is high. All the pieces of puzzles have to come togather, being the best in just one of the pieces is no longer enough. and as Jobs likes to say its the intersection of technology with liberal arts.

I think this Post PC world is all about me the consumer and I am loving it. Its good to see the product companies working their tails off to seduce me and I like being the center of attraction for a change ;)

Saturday, February 19, 2011

Tips on reducing/eliminating spam mail

Spam is a common problem that we all live with. Here are a few things that I have found to work for me when dealing with spam. This blogpost is an attempt to share some of them.

Spammers just need an email address to get started. Here are a few common ways in which they collect them.

  • Brute Force : they will send out a mass email with various variation of common names/phrases. eg jane@com through jane9999@xyz.com are very likely to be valid email address.
  • Buy them : they will buy the email address from other sites etc (aka share your info with business partners in the privacy statement)
  • Collect them : they run “promotions”/”lucky draw” and collect info from your
  • Seduce you : Hackers sometime set up “honey pot” sites offering something of perceived value and encourage users to register. They get your email address and more importantly the passwd. Large number of users 80-90% use same passwds for most sites. they now have your email address and a passwd too.

Once the email address is collected its verified by one of the following techniques:

  • email addresses that bounce are removed
  • emails that user respond to are validated
  • links in email that user clicks validates the email address
  • pictures or media that autoloads or autoplay validates the email address (most spammers use 1px by 1px images so you don’t even know it autoloaded)

Our spam defending scheme starts with not revealing our email address :

  • bugmenot.com. There are a large number of sites that force you to register with them, just to browse it. bugmenot provides us a valid userid/passwd of large number of such site. So just “borrow” a valid id and your are in. No need to reveal your email address

  • mailinator.com mailinator is an amazing service, no need to register with them, just create an @mailinator.com address on the fly then go to their site and check your email, no passwd required. emails usually remain for about a day and are clean. They get all the spam not us. I usually use them if bugmenot doesnt help me

  • disposable email: There are cases when we have to give out a real email addres to a site that has not “established” the trust with us. In such cases I give them an alternate email address, linked to my real email address. I use filter rules to filter emails to alternate emailaddress to an folder. I still only log into my primary email address, and emails from the alternate id show up in folder that I check periodically, my inbox doesn’t get cluttered

  • email alias: Google provides a very cool way of creating email aliases by attaching identifying tags or by inserting or removing dots to the primary google email address. We can then you can filter on these aliases.

    eg. fname.lname@gmail.com = fnamelname@gmail.com = fname.lname+tag@gmail.com

    you get the idea when you register with abc.com just use email address fname.lname+abc@gmail.com. create a filter to move all emails arriving at this address to a folder called abc. If you find spam coming to that email address you know abc.com betrayed you.

    Some sites dont recognize email addresses with “+” as a valid email. in such cases you can just take off the dot or introduce a dot eg fnamelname@gmail.com or f.name.l.name@gmail.com

If you end up getting spam here are a few things you can do to still protect furthur damage.

  • bounce the email if you can : Mac Mail client allows you to simulate a mail bounce. some spammers will take off your email address if they get a bounce
  • never respond : many spammers will ask you to send an email to a unsubcribe@spam.com. dont do that
  • never click on link : if the email has a link/ dont click on it. Most links have tracking information and will validate your email address. In some cases links can point to a fraudulent site.
  • turn off the setting to autoplay/auto display images. at the min for the emails from addresses that are not in your addressbook.

some other things you can do

  • educate your friends and family to not enter your primary email addresses any any site (eg. to send ecards, invites, share a story/link i) etc. Every time the email addresses is entered on a “rougue” site it can be exposed to spam. Point them to this article. so in future if they get an urgue to do it they will atleast use an gmail alias :)

I hope this helped. Will appreciate your comments.

Thursday, February 17, 2011

Facebook now automatically makes your "looser" friends disappear

<rant>

Facebook’s motto seems to be do ALL evil. How else can one explain that they over and over and over again manage to make the most obviously wrong decision. They have repeatedly proven that they cant keep the interests of their users in mind. These prima donnas feel that their users are extremely dumb and constantly need the settings tweaking behind the back.

I am really sick of this irresponsible behaviour. But guess I am stuck unless I find another home. In the meantime I will have to keep checking all my gazillion settings often to see what was changed behind my back. Hopefully I can ask IBM’s watson what did facebook changed today!

</rant>

Well this time in their infinite wisdom they have decided that we users have made way too many friends on facebook and this is causing too much clutter on our walls. And we dumb users cant handle this clutter and thus enter our savior the smart facebook overlords decided to secretly step in and give us the facebook-wall-nirvana by automatically making some of our friends disappear. Thus if we had not “interacted” with a friend in a while (i.e clicked om his liked, commented, messaged etc), any updates from those friends will no longer appear on our wall.

Well there is a setting to undo this:

scroll to the bottom of page and click on "edit options"
in the dropdown box select "all friends and pages" instead of "friends and pages you interact most"

This should restore the old way facebook use to work.Hopefully it helps solve the mystery why some of your friends fell from the face of the earth

Sunday, February 13, 2011

Iphone Contacts - Mac Address Book Syncing Issues

I recently noticed that my Contacts to Mac Addressbook Syncing was kinda sorta broken. It did sync some updates, but not in all cases. It was driving me crazy. I finally got some time to research it.

If you google Iphone contact sync, or search on apple forums, they all ask to reset isync, or rebuild address book. My issue was different and this did not fix it for me.

The root cause of my issue was that my iPhone contacts were getting sync to two accounts : Exchange server at work and to Address Book on my mac. Apparently when I added Exchange sync, IPhone decided to add all new contacts under the exchange account. These contacts were not getting synced to my address book.

There is how I fix it :

Tell IPhone to create all new Contacts on the Mac's Addressbook account and not Outlook.    
* On iphone, Go to Settings -> Mail,Contacts, Calendar
* Under Contacts, set Default Account to your mac

This will fix the issue for all new contacts going forward. I still have a quite a few contacts under the exchange account which were not in my Addressbook. Unfornutely Iphone does not allow to move contacts among groups or accounts. There is no easy way to export contacts out and import them under the group. Varaious online forums suggest to sync it to Addressbook/Outlook and fix the issue there. My issue was that the contacts were not showing up on my mac in the first place.

I decided to add my exchange account in address book and that did the trick. Here is how to Add Exchange account.  
AddressBook -> Preferences -> + to add a new account -> Type in my email address, username & Password.

And like magic the defaut group that Iphone has created under outlook showed up on my mac (even without syncing iphone). I was able to move the contact around to the groups in my Addressbook (family, friends, collegues, Business Associates etc).

Hope it helps you, if you are having similar issues

Thursday, February 10, 2011

HTML 5 : Video

Boulder Java User group meeting. Presentation by Scott Davis : look at source of google.com apple.com they use html5

when working with public facing web site, idea of video is a very big deal. 

animated gifs : first time moving pictures on the web circa 95
interlaced jpegs, interleaved gifs, progressive downloads same to interbet for downloading on modem

now progressive downloading in movies : first by apple : moved meta data to the front of file (it was the at the end of the file). enabled streaming with quicktime circa 97

netflix moving to html5 (currently supported on ps3 & )
html5 is big on mobile

the big battle on html5 will be on TV set.

web video increased to 54% in oct2010 from 10% in jan2010. but on mobile html5 is almost exclusive,

    <video>
    container/codec
    html5 streaming

    <video src='file.ext' width='300' height='200'>

    similar to 
    <img src='file.ext' width='300' height='200'>


    <video width='300' ...   preload autoplay controls>
        <source src=".....ogv" type="video/ogg;codec=..>
        <source src=".....ogv" type="video/mp4;codec=..>
        <object> .... for flash
        <p> downlaad from    < dislay a message to user to download it
    </video>

    tries to play  first source if it cant tries second etc.... the object. if everything fails download message is displayed

Video containers video files are containers that contain video track, auto track meta data etc. popular container are mpeg4 (.mp4 .m4v), flash (.flv) ogg (.ogv) webm () AVI ()

    mp4 : patent for encoders/decoder
    flash : cpu/memory hungry, no silicon encoder/decoder
    ogg : no patent encumberance like mp4
    webM  : not open standard, just google, google own patents

    flash plugin supports mp4
    quicktime pligin supports ogg
    webM :  also supports  ogg

encoders when we watch video 1. interpreting the metadata 2. decoding video 3. decoding ideo

    3 codecs : h.264, Theora, VP8

    mpeg4 = h.264
    ogg  vorbis=audio, theora=video   (no patents)
    vp8 = webM  (brand new, no onchip container)

    h.264 : both low bandwidth (mobile) high bandwidth (blue ray eyc)

HTTP live streaming (HLS) invented buy Apple submitted to IETF.

    A big file say 30 mins file into small 10 sec segments
       => can be served up by simple apache server
    .m3u stores index file, .tm file are file segments

    files can be encoded different bit stream, so if mobile app moved from wifi to 3g, it can ask for lower bitstream

    Mediasegmenter takes in the original file and segments it

Tuesday, February 8, 2011

HTML 5 presentation by Scott Davis: ThirstyHead

Q. How many are are doing android dev A. 3 hands went up : Teacher eval, Qwest phone features, Time warner cable

Q. How many desktop A. 50%

Q. HTML5 A. no hands

Local Storage & Application Cache : Can be used for both desktop and mobile app, but mostly on mobile

HTML 5 : Dive into HTML5 by Mark Pilgrim by O’reilly free online at diveintohtml5.org

local storage

old style persistence : cookies disadvantage : turned off, small (4k), all cookies send back & forth with each request

Q. anyone playing with nosql A. no

local storage is name value pair : its like no sql. almost like hashmap 5 MB storage for each origin

localStorage["name"] = value
localStorage["name2"] = value2
for(var i=0; i<localStorage.length; i++)
    var key = localStrorage.key(i)
    var value = localStorage.getItem(key);

Typical usage: we can store facebook updates, twitter updates on the local storage when your phone is in airplane mode. when we go online the updates from local storage is submitted.

today most TV guide are java1.1 or embedded C, most TV manufacture are converting to HTML5 and will use local storage to persist it.

There is also session storage for the current session.

polyfill : polymorphically backfilling the brower that doesnt provide the functionality that browser should support natively. there are polyfill aviable for localStorage ay github

WebSql

no support in IE (as its GPL), firefox due to develop aesthetics : sql is last gen, localStorage keyvalue

can open a db and run sql database. but not on IE or firefox, that makes it not go anywhere

storage is 25 MB

Question : how do we clear the storage, or age out after time like cookies Answer : cant age out, but can clear via offline storage : (firefox - advanced:network)

Question : shared across tabs Answer : yes

Application Cache

all requests are sent to cache and then rendered. all subsequest request hit the browser cache first

cache is king when it comes to writing performant code

great tutorial : Caching tutorial : http://www.mnot.net/cache_docs/ great book : High Performance web sites : recoomendation in books implemented in tool YSlow http://developer.yahoo.com/yslow/

App cache will be supported in IE9, not in IE 8, but in all browser including in iphone and android

html5rocks.com : great site for all things html5

html 5 uses server side hints

manifest file: text - non xml etc file is named as .manifest has 3 sections in any order : CACHE, NETWORK, FALLBACK
the session can appear multiple times

cache : cache things listed here network : users has to be online fallback : show alternate pages to be shown when user is offline

application cache also gets 5 MB

Friday, February 4, 2011

Kid-safe version of mainstream sites

Kids are becoming smarter with each generation. They are getting comfortable with technology at earlier and earlier age. Today intenet forms a very integral component of my kids both education and entertainment needs. This blog post is an attempt to attract attention to an unfulfilled need of an kid friendly need for main stream sites.

I am aware of the superior parental control features of the the computer. But in todays age most of the stuff kids (at least my kids) do is online, not on the computer. I do use parental control to block sites, or better still do it via opendns. but it is a all or nothing deal. I dont want want to block the mainstream site itself, I want to sandbox the site.

My kids use gmail, youtube, google, wikipedia, google image search. I want them to get started with blogging and start tweeting/and facebooking. All of these sites are designed with an adult in mind. Infact I cant even get an account for my kids. They point me to [COPA][http://www.ftc.gov/privacy/privacyinitiatives/childrens.html]. Most sites require you to be atleast 13 to legitimately open an account. Are they serious ? Can today’s kids can live off the internet till they are tweens ?

I think there are legit concerns about the privacy/safety online. Big sites also might be concerned about the potential liability. and ofcourse as the kids cant have the cerdit card and buy stuff online they might not be an attractive marketing target and thus are more trouble they are worth to most site.

Anyhow, what I am dreaming or hoping one of the internet giants will do is the following. and hopefully if one of them shows the way they other will have to follow :)

  • Have a kid friendly version of the site. Kids need to have their ids tied to their parent account.
  • Kids are allowed to communicate (send/receive) messages from only those “friends” that are approved by parents.
  • Any invites/friend both inbound/outbound is sent to the parent account to approve
  • All account activity is logged with the summary support sent to parent account
  • All posts from adults have to self attested as “kid-safe” to show up on kids account, any adult post that show up on kids accounts always also show up on the parent account too.
  • Any search is hardwired to the “safe” filter (similar to what google uses in its searches)

Just some ideas on what will make mainstream internet sites kids friendly. If one of the Big Guys dont step up, hopefully there will be a overlay site that bolts on these features.. Just wishful thinking

I do realize that as parents our responsibility would not end if this were a reality today, we do need to continue to supervise internet access. In my house Internet access is limited to the imac in the family room, so that an adult always has an eye on. No “personal” computers or laptops just yet.

Monday, January 3, 2011

The Good, the Bad & the Ugly of the iAd

Apple launched iAd with much fanfare as an advertising platform for its iOS devices. It is intended to keep the apps in the app store free or low cost. Apple apparently curates the ads on iAd to keep the quality of ads high. This post is from the consumer’s perspective (iOS user), not from a developer or an Ad producer/buyer perspective.

The Good : iAd ads are definitely high quality. They do have an Apple intrigue. When ever I see the iAd banner on the app I am using, I am temped to click om them, just to see the new Ad. Ads themselves seem like full blown apps in themselves which encourage the user to interact and explore the product. They are engaging and captivating. And when you are done, you go right into the app exactly where you were before you clicked on the iAd.

The Bad : The iAd, being almost a parallel app seem to be heavy weight. When ever I see one, I know that clicking on it will take me out of the host app for a few mins. In almost every case, when I have clicked on the iAd, I have to wait for a very noticeable time (15-30 secs) before the iAd “app” renders itself. It almost seems ridiclous to have to sit and weight for an Ad to show up. quite a few times I have just given up and went back to the app after waiting 5-10 secs. Apple has to find a better way, may be the iAd downloads before showing the banner or something. may be it is the slow AT&T network. what ever it is, I now have an perception that iAds are slow and I only click if I have some time on my hand.

The Ugly : iAd uses up my precious data plan. Infact not I end up waiting for iAd to show up, I am also paying to see it. With default iPhone data caps being very low (200MB in US by AT&T), I come very close to exhausting it each month, I definitely don’t want ads taking a big bite out of it. Its really non intuitive, and static app, which has no online component (say a game like chess, played agains iphone, or a game like solitaire), constantly uses my data plan to download ads. It is almost unacceptable to me to have an essentially offline app use up my precious data limit all in name of showing me ads.

Here is a neat trick, I am slowly getting into the habit of turning off my network data preferences, whenever I am using a App that is essentially an offline app. This way ads are not downloaded and not shown. win/win : I save on data, iphone runs faster, and no ads (apps run full screen)