Tips for those switching from iPhone/iOS to Android

This is follow up to my previous post “Things I hate about Samsung Galaxy S4“.

Now that I have been using Samsung Galaxy S4 for a while, I have learned some tricks and acquired some tastes which may be useful to you. These are really simple changes that makes your life better. If you feel like making massive changes then there are some apps that would completely take over your OS and customize it and they may be more suitable for you.

Below is a few things I like and they made my life easy switching from iOS to Android…

  1. Enable Developer Options and disable transitions. This helps with your battery.
  2. Enable/Install Swype keyboardThis is one thing I really hope iOS picks up. If I move away from Android, this is something I would really miss.
  3. Install Textra and make it your default client for SMS/Messages. This is an awesome app, those guys built a really nice app. You might want to stay away from Hangouts for this.
  4. If you are into Podcasts, get BeyondPod. This is the best among available options on Android.
  5. If you are missing your iOS sounds or just want new ringtones or notification sounds then get Zedge.
  6. If you are comfortable, enable remote controls. This comes in handy if you shatter your screen and need to operate it remotely. Instructions here.
  7. There is built-in TV remote(Samsung phones). If you can’t find your TV remote, you have another option. :)

Over all, iOS ecosystem is better because many companies(including Google) and app makers put more focus on iOS apps than their Android because that’s where more users are.

Good luck with your switch!

Things I hate about US cell phone companies

Once you travel outside the United States, you quickly realize that you are being ripped off by US cell phone companies at massive scale. It’s nothing short of scam. Really!

You can spend 10-20 bucks in EU (or something similar in any other country) and you got yourself a number, decent amount of talk, text and data for a month. For example, I spent 15 EUROS in Italy and I got 3GB data, good amount of talk/text with it and I never really had to be conscious about my usage.  Good luck finding similar plan in US of A! You need at least $100 for something similar!

I get so frustrated every time I look at my cell phone bill and/or want to purchase additional services. Here is some of my rants…

Things that I hate about US cell phone companies…

  1. Crazy amount of total cost of service: A decent size household need to shell out at least $100 for a basic service! Nobody in the world pays this much. Most of the countries cost you equivalent to less than $30-40!
  2. Charging for incoming calls and text: Nowhere you will see charges for incoming calls. You have no control over who can call you so how does it make sense to charge for those calls when you are very well charging for the person who is calling you? Isn’t it double dipping when you charge the caller and callee?
  3. Insane amount of charges for text messages: Anybody who knows technology can clearly tell you that it cost almost nothing for text message transmission yet our cell phone companies think it’s ok to charge you $0.20 per text incoming or outgoing. So if you text somebody and they respond, both are charged $0.40 each. There should be a law against charging high for text messages.
  4. No easy or cheap plans for Text messaging: Recently I contacted AT&T asking for a cheap Text messaging plan for light usage. You know what are my options? Either $20(individual plan) or $30 (family plan). WTF? Really?
  5. $20 for 300MB data: Any idea how much it costs for a cell phone company to transmit 300MB data? I’d bet that it’s less than $1. Do your own math for the profit margin here. Grrrr…
  6. No option to use your own device the way you want: For example, you have an old iPhone that you want to hand it to your kid and get just talk/text plan. AT&T mandates that you purchase data plan and shell out at least $20 even if you have no plans to use the data on that device that you outright own! Basically, AT&T don’t allow you to use your device as Wi-Fi only. WTF?
  7. If you are on contract and paying full monthly charge, you can’t unlock the phone to be used outside USA: Can somebody explain why AT&T has to lock my device during the contract period and not allow me to use outside of USA even though I am paying and obligated for whole 2 years? It’s not like if they unlock me I’d not have to pay my monthly bill. So why do they block me from unlocking it?
  8. Pay for shortcomings of carrier: If you have poor signal, cell phone companies want you to pay for extra equipment to boost the signal at your location where their own signal is bad! Basically, you pay for their bad service and pay more for them to improve their own bad service!
  9. Takes absolutely no responsibilities for their bad service: Have you even seen a cell phone company giving you credit for call drops? Exuberant amount of charges if you go over but no pay back for their short comings!
  10. Rules against unlocking and tethering: Why the hell it is legal to control how your use your device that paid for or paying for? That’s like you buy a car and pay for it and dealer still has full control on how you drive that car!
  11. Do you need more than above to be convinced that US cell phone companies are ripping you off and nobody can do anything about it? ;)

Over all, this reminds me of the time when Blockbuster would charge you almost $5 for a movies and add hefty fine for not rewinding the tape. See where is Blockbuster now! It’s only matter of time somebody comes up with a new innovation and knock out the companies that bully customers! I am anxiously waiting for that day to come for cell phone services…hope that days comes up soon. :)

P.S Feel free to convince me that I am wrong and all of us deserve this kind of treatment from cell phone providers.

 

Good and Bad about Samsung Galaxy S4 and Android

Few months ago wrote a blog (more like rants) about Samsung Galaxy S4. Now that I spent little bit more time on it, here is some more about the phone.

The good

  • Camera: By far best camera among all I have seen in any smart phone. It takes amazing pictures and great options. I almost stopped using my standalone camera.
  • Widgets: Love the widgets like Alarm, Stocks so on where I can see details without opening them.
  • Google Now: Very convenient and very cool but a bit scary that Google is going through all my stuff.
  • Customization: Like the ability to customize things like keyboard, sounds etc.
  • Display: Pretty cool display. I might even go as far to say better than iPhone.

The bad

Unfortunately most of my previous rants still hold true. :(

  • Battery draining out fast still driving me crazy. I did all I could to reduce the running apps and other optimizations like removing transitions but it’s still pretty bad.
  • I can never get used to setting in this thing. So bad.
  • Every time I load a new app that can handle things like images, videos etc I get a dialog to pick an app when I click on a link for image/video. This drives me nuts! Why don’t Android make those apps ask instead of OS offering those options?
  • Samsung decided to put volume buttons at left side and power button to the right and both aligned, try pressing power button without changing the volume. Bad hardware design.
  • AT&T apps are so bad. AT&T should really stop developing those crappy apps for android. Apple made right decision to not allow AT&T to install their apps in iPhone. I can’t even remove those apps!
  • Text select, copy/paste etc sucks. Placing cursor at a specific location while writing an email is a tough task!

Over all, it’s not a bad phone and I am getting used to it but I do miss my old iPhone at times.

iPhone is really good at basics and Android provides lot of features and customizability at the expense of basic features.

Hope this helps to those who want to switch to Samsung/Android.

Samsung Galaxy S4

The size and scale of eBay: 2013 edition

Originally posted on Hugh E. Williams:

It’s time for an update of the eBay Marketplaces interesting statistics that I shared last year. eBay Marketplaces means we’re the team that builds ebay.comebay.co.ukebay.deebay.com.au, and most of the other worldwide marketplaces under the eBay brand.

eBay Marketplaces sold over US$75.3 billion in merchandise in 2012
eBay Marketplaces sold over US$75.3 billion in merchandise in 2012

Here are some refreshed and new facts:

  • We have over 50 petabytes of data stored in our Hadoop and Teradata clusters
  • We have over 400 million items for sale
  • We process more than 250 million user queries per day
  • We serve over 100,000 pages per second
  • Our users spend over 180 years in total every day looking at items
  • We have over 112 million active users
  • We sold over US$75 billion in merchandize in 2012

eBay’s an exciting place to be — plenty of engineering, business, and commerce challenges that are driven by users, items, traffic, and sales…

View original 4 more words

Things I hate about Samsung Galaxy S4

I am a long time iPhone user and just made a switch to Samsung Galaxy S4. This is my first Android phone.

S4 is an amazing phone at so many levels and there are so many things to love about this phone. But equally there are bunch of things in it that irritate me.

Things to love(big list) would be for some other time but here is some things I hate about this phone:

  1. Dealing with settings in general: Super complicated compared to iPhone. They are all over the place. One of the first thing I tried doing was turn off some sounds and it took a while for me. There are many other things I want to change and still working on figuring out.
  2. Notification settings are not uniform across apps: Settings for notifications for each app is at a different place and hard to get hold of them. For example, gmail app doesn’t display unread count with icon so only way you know about new email is by opening the app. I am trying to figure out a way to enable alerts, no luck yet.
  3. No unread count display support for shortcuts: No unread count display support for most of the apps like gmail, google voice, visual voicemail, WhatsApp, or any other critical apps. No idea why android don’t support this. This is major turn off.
  4. Battery drains fast: For my usage, I need to charge it at least twice a day! If i don’t use any apps then it lasts about a day or so.
  5. Too many confirmation dialogs: Oh my god…so many confirmation dialogs! “Just this once” and “Always” dialog is annoying.
  6. Too many junk apps installed by Samsung: Samsung pre-installed SO MANY Samsung and AT&T apps in this phone. May be there is a way to get rid of them but I am yet to figure out. This kinda feels like laptops from Dell with all those Dell apps and AOL pre-installs.
  7. No OS level search: One of the thing I love about iPhone is able to search for apps, emails, texts, contacts, so on from one central place. Samsung came with Google Now but it’s not as simple as iPhone in-OS search.
  8. Google voice app sucks: I have no idea why it has to be so hard to deal with this app. I have used it in iPhone and way better. Try making a voice call from Google Voice app…good luck to you there.
  9. Visual voicemail is separate app that doesn’t work well: There is no visual voice main in Phone app. For this you need to install Visual Voicemail from AT&T and by the way it sucks big time. No alerts when new voicemail!!!
  10. Facebook app has many bugs: Facebook app works exactly(almost) like iPhone’s but it has lot more bugs. For example, some times i can’t type in comments textbox!
  11. Copy/Paste/Select All/Select text is harder: Dealing with these basic actions takes a bit of getting used. May be it gets better once I use it more.

Some of these may be due to my lack of knowledge, would love to know if there are solutions or work around for above pain points.

More to come…

P.S. This is after I used it for 2 weeks and may be I’d like it more once I figure out this phone more. Obviously I still have iPhone habits so it goes without saying that I may be biased at times and I need some more learning.

P.P.S: I don’t have any plans to dump this phone so please send me tips/tricks/pointers you may have that would ease the pain points.

Samsung Galaxy S4

The Case Against Logic-less Templates

Recently I attended a conference and two separate topics related to Templates sparked a debate off-stage about Logic vs No-logic View Templates. Folks were very passionate about the side they represented. It was great to have those discussions since I learned lot more from those debates than the sessions that were presented. I really hope there are more debates than sessions in future conferences since we actually learn more by hearing multiple viewpoints.

While everyone involved in the discussion had different opinions on what the ideal templating solution should look like, we all agreed that templates should…

  • not include business logic
  • not include lot of logic
  • be easy to read
  • be easy to maintain

The rules, best practices, performance etc aside, this is what I prefer. My preferences came out of my experience dealing with templates for medium to complex applications.

Before I go into the details, I would like to make one thing very clear. While I am trying to make a case against Logic-less Templates, that does not mean that I am advocating the other extreme ie., a templating language that allows a lot of logic. I find a templating language that allows a lot of logic, especially those that allow the host programming languages to be used inside the template, to be hard to read, hard to maintain and simply a bad choice. A JSP template with Java code in it and an Underscore template with JavaScript both fall into the category of being a full-of-logic template. JSP and Underscore are not necessarily at fault here, but rather the developers who choose to abuse the additional freedom.

What I am for is “less-logic” templates in place of “logic-less” templates (thanks Veena Basavaraj(@vybs) for the term “less-logic templates”!).

A good templating language should offer, at a minimum, the following things:

  1. Clean and easy-to-read syntax (including freedom to use whitespace that will not show up in output)
  2. Structural logic like Conditionals, Iterations/Loops, Recursions etc.,
  3. Text/Token replacement
  4. Includes

A great templating language should ALSO offer the following features:

  1. Ability to be rendered on the server and the client
  2. Easy to learn with as few new concepts as possible
  3. Simple template inheritance
  4. Easily debuggable
  5. Great error reporting (line numbers, friendly messages, etc.)
  6. Extensible and customizable
  7. Localization support
  8. Resource URL management for images, scripts and CSS

I feel that a logic-less template is too rigid and hard to work with due to the imposed restrictions. Here is why I am not a big fan of logic-less templates:

  • If I am writing a logic-less template then I need to make my view model bloated with a ton of getters for the raw data. Therefore, a logic-less template is usually accompanied by a messy and difficult to maintain view model.
  • Every time I need to add a new variation to my view I need to then update both the view model and the template (even for simple variations)
  • Too much “massaging” of the data is required to get it ready for the template
  • A lot of helper methods must be added to offset the rules of a logic-less template

Regarding the argument of better performance with logic-less templates– while  logic-less templates might have a simpler implementation, you will still have to pay a price for the additional preprocessing/massaging of the data that is required before the data gets to template renderer. While a templating language that allows more logic might have a more complex implementation, if the compiler is done correctly then it can still produce very efficient compiled code. For those reasons, I would argue that a solution involving templates with more logic will often perform a lot better than a similar solution based on logic-less templates.

Conclusion

There is no doubt that there are advantages like simplicity, readability and possibly some performance gains associated with  logic-less templates like Mustache, but I do not think the tradeoffs are fully justified in practice.

Logic in templates isn’t really a bad thing as long as it doesn’t come in the way of readability and maintainability of the templates.

Love to hear your thoughts!

Credits: Many thanks to my colleague Patrick Steele-Idem(@psteeleidem) for helping me write this blog. He is working on some cool stuff like RaptorJS and a new templating language; be sure to check them out when they are open-sourced in the very near future.