Showing posts tagged google

The Google Tax

Two days ago I came across this: Orange ‘forces Google’ to pay for mobile traffic. Clearly Orange has no idea how the internet works and what’s their involvement in it. The ISP is just a dumb pipe to connect the user to a server, nothing more. If their users are using too much bandwidth and the costs are higher than the profits they should start to rethink the price of their service, not go after Google saying that they are evil for transferring all that data.

We should also mention that if Orange, and other ISPs, start to rethink their service costs they should never throttle the connection. The user fees should be equivalent to their connection speed, not their usage, which apparently is something that ISPs can’t understand too.

In my opinion the bigger problem here is that Google apparently accepted to pay the fees (even worst since the government is also forcing a decision favorable to the ISPs):

French President Francois Hollande warned Google on Wednesday that his government would legislate a so-called Google tax if the company doesn’t reach a deal with French media companies.

If they accept to pay these fees they are going to open the gates to other ISPs to demand the same compensations. This is a completely anti-net-neutrality move, which goes in the inverse direction of Google’s ideals.

Google has also been faced with demands for compensation from content providers such as newspapers, who charge the search giant makes lots of advertising revenue from referencing their material.

What?! If you put such material on your website and allow Google to index it so people can find you, which will generate profits over the ads you have your website, you should instead pay Google (if you don’t use AdSense) for making it a lot easier to generate traffic to your ads.

Hollande said “Those who make a profit from the information” produced by media companies should participate in their financing.

If the information isn’t already publicly available, on the media company’s website and they allowed Google to index their information, there’s no way Google should pay for the profits they are making with ads.

If we really want the internet to continue as it was intended to be companies that are facing these issues should promptly oppose them and make their opinion public, just like what happened with SOPA and PIPA last year. Otherwise things are only going to get worst than they already are.

UNIX Fragmentation 2.0: Android

First of all, let me introduce you briefly to the UNIX fragmentation: Before Linux was around (1991 Linus released the version 0.01 of the Linux kernel) there was a huge problem on the UNIX-based operating systems, since they were all proprietary and each OEM had their own version of the OS. It was common that some softwares would not be able to run on all the UNIX variations which caused a lot of trouble at the time since if you were a company buying computers you had to know if the computer you were buying was compatible with the software you had to run. You can read more about the history of UNIX if you want. I’ve learned about the history of Linux and the open source movement from two books: Just for Fun and Rebel Code.

Now, if you look carefully and you’ll notice that the same is happening with Android, maybe less intensive since software may run on different "distributions of Android" (aka different Android versions made for a particular device) but it’s happening. In this article I’ll be talking about this new era of UNIX/Linux fragmentation in two main areas: UI fragmentation (skins), version fragmentation (OEMs holding the source code) and how Google doesn’t care about their app developers.

UI Fragmentation

One of the most visible fragmentation issues of Android is the UI fragmentation. OEMs are (still) thinking that Android is just the smartphone version of the old Java ME-based OS they used on their feature phones. They are skinning Android just like they skinned their feature phone OS.

These skins are creating a huge issue among consumers because since they are not geeks, like us, they think that Android is something like a platform that manufactures use to run smartphone apps, most of them don’t even know its built by Google. These customers also get a little confused when they switch to a newer smartphone, from a different OEM, and the skin of the OS is completely different from the one they were previously used to.

Skins are terrible for the Android ecosystem, but most of them added some really great features, for example the “slide to call/text” from TouchWiz. These improvements to Android UX in my opinion shouldn’t be embedded into these crap bloatwares, but instead should be pushed to Android’s tree (remember the Open Handset Alliance?) to be used on all Android-based devices since they’ll improve the end user experience with the OS.

Version Fragmentation

I don’t know which one is worst: UI fragmentation or version fragmentation, but I think it’s more likely to be the version one.

This problem is completely Google’s fault, even Google itself had problems with Android’s version fragmentation: Google Chrome for Android only runs on Android 4.0+.

Time passed and Google hasn’t come with any solution to Android’s biggest issue, and they know that the only way to correct this is by making pressure on OEMs to only announce new devices if they are running the latest version, and impose tight timelines to update all the older devices that are capable of running the stock version of the latest major release if they want to continue having access to Google Play on their phones. Don’t come to me saying that there is also the carrier problem because there isn’t any carrier problem, Apple updates their devices to the latest version from day one. You know why this is possible? Simple: Apple told the carriers to fuck off. They imposed to the carriers that their OS shouldn’t be bloated, so carriers couldn’t include their crapware with it. As I said previously: Pure stock crapwareless Android is always the solution.

Version fragmentation is extremely frustrating since all those awesome features (and UI) that Ice Cream Sandwich and Jelly Bean have are currently available (stock experience) in one single mass-market device: The Galaxy Nexus.

This is a very serious issue on Android because its making app developers stuck with their innovations, which doesn’t happen on the iOS side. Everyday we see awesome iOS apps, with innovations in UI and UX, getting released for iOS, but we don’t see the same happening with Android mostly for one reason: Developers need to make their app compatible with older Android versions.

Developer Relations

Google doesn’t care about app developers. A great example is how we don’t see a lot of official Android developer evangelists around the internet, another example is how there is only one language you can use to develop you apps: Java. HTML5 is the future of mobile, and desktop, applications and Google is just ignoring this. Developing a PhoneGap app for BlackBerry or iOS is great and you don’t have serious problems like CSS properties or drafts that weren’t implemented, but on Android this is completely different, the terrible CSS3/Javascript animation rendering issue that is still open and yet not addressed.

The only company that I see that is doing a great job on this area is RIM. They care about their app developers because they know that users want not just awesome smartphones, but awesome smartphones with a lot of awesome apps they can download. A great example of this is how they support natively Java, Flex/Flash, HTML5 and C/C++. They even created a awesome mobile UI/UX framework for HTML5 apps called bbUI.js.

Conclusion

Everyday Android feels a lot more like vaporware for me. I’ve stopped using my Android phones on a daily basis and I don’t think I’ll ever start using them daily again. I’ve stopped developing for Android and now I’m almost fully committed to the platform I’m loving most, and felling more comfortable, to develop to: BlackBerry.

Why You Should Start Dart’ing Right Now

With this article I hope you understand more about the Dart idea and how you can become more productive and happier as a developer of web applications by using it as your main language.

First of all here are some words, from the official site, for you to understand what Dart is:

With the Dart platform, you can write code that runs on servers and in modern web browsers. Dart compiles to JavaScript, so your Dart web apps will work in multiple browsers (not just ours).

The Dart platform includes a language, libraries, an editor, a virtual machine (VM) for both servers and browsers, and a compiler to JavaScript.

The Community is Awesome
One of the biggest advantages of Dart is the vibrating community. Since it’s still under development the developer base is very helpful and shareful too. If you’re on Google+ you’ll know almost every new project that is done using Dart, this way you have more attention on your project.

Libraries are Needed
Because it’s on it’s early stages Dart needs libraries to fulfill developers, this way you have a lot of libraries you can create, from scratch or porting from Javascript. This way you’ll be learning more, helping the community and earning respect from the community.

It’s Incredibly Easy to Create Web Applications
Since it was built by Google for web applications from scratch, it’s the perfect language for web application development. You’re not having to adapt a old language for the web revolution, you’re using a language that was built for the web revolution.

Weekly Updates
The language is under active development. Almost every single week a new build of the language, or the tools (Dart Editor and Dartium), is released. This way you can feel something that any other language can provide you today, the feel that it’s mutable and is evolving. It’s awesome when I open my Google Reader application and there is a new update on the Dart feed. I quickly download and test what’s new.

Organized Syntax
As a node.js developer I know that as you dive deeply into a complex part of your web application the code becomes a hell to understand. With the Dart syntax this is a bit more difficult, your code becomes more readable and a lot more maintainable. Also the Dart team published an awesome style guide to make your code even better for your eyes and brain.

Easy to Learn
Dart is incredibly easy to learn. There are three ways of learning Dart. If you’re already a Javascript you can learn by reading the awesome Translations from Javascript table which will show everything you must know about Dart comparing to Javascript. The second way of learning is by reading their lengthy Language Tour which will give you an in-depth look at every single aspect of the language. The third way is to learn by practicing and looking at the previous links when you don’t know how to do something or the compiler is giving you a strange error.

Those, in my opinion, are some of the key features of the awesome Dart language. I hope you give it a try and have lots of fun with it. Don’t forget to comment about your experience with Dart and your opinion about it.

OAuth Broke The Internet

If you don’t know what OAuth is, it’s a auth process for cross-domain login, like Twitter or Facebook when you want to login/register on client apps, like HootSuite, Carbon or Tweetbot, or when you’re just logging into a 3rd-party site like Empire Avenue or Geeklist.

It’s a very secure system, the problem is that you break the user experience in the worst way possible. You take the user out of the web site or app just to login, the developer has to create a very bad system by embedding a WebView to the app or redirecting to the browser just to log the user in.

xAuth is good, but not perfect, at least you don’t need to take the user out of the app, the problem is that Twitter, for example, the developer must request the xAuth keys and wait if it gets approved, also it has limitations like no access to Direct Messages.

Users and developers should make some pressure on Twitter, Facebook, Google etc. to open the xAuth access without limitations or ask for a new and better authentication system.

Dartium is a Great Idea For a New Era of WebApps and Games

As you might have heard of Google included a Dart VM on the latest Chrome Tech Preview. As they said on their blog post:

Today’s release of the Chromium + Dart VM integration is another step forward for the open source “batteries included” Dart platform. Our goal is to help you build complex, high performance apps for the modern web

Dart, just like Go, is a great mashup of Javascript and C/C++ which is great for desktop developers that are currently doing apps with C/C++ and want to move to a better and more flexible language for the web. I know that there is this new thing on Chrome called Native Client that let game (and app) developers use native code to build apps/games for the Chrome Web Store, but Dart is different since it’s cross-browser (if compiled into Javascript).

I’m sure that a lot of developers will like Google’s new language to develop games and web applications for Chrome and for other browsers too with Dart compiled into Javascript. I’ll start learning Dart for sure.

Google Taking Advantage of Safari’s Security Flaws

So today Google was caught taking advantage of a Safari (and Mobile Safari) security hole. They were able to store cookies even if the user doesn’t have their browser cookies enabled, so Google could know if the person is logged in to their network and use the information to activate the +1 buttons, also they affirmed that the cookies do not collect personal information.

I think this is a very fair point and since the security hole is known since 2010 and Apple has yet done nothing to correct it the best thing Google can do is take advantage of it to deliver a better experience to their end user.

It’s Time For Google To Take Advantage Of Motorola Mobility

So yesterday the US Justice Department approved the Google acquisition of Motorola Mobility and in my opinion Google must take advantage of Moto. I’m not talking only about patents, but about the situation where Motorola is at right now.

The only company that is truly succeeding with Android handset sales is Samsung. Motorola is putting the worst skin, ever created, on their phones and making lots of mistakes with their consumers, the best example is the Droid RAZR Maxx released one month after the Droid RAZR, and the development community, by building a phone for developers that is exactly the same as the RAZR but with an unlocked bootloader.

Google should start to use Motorola to make phones without any skins and just like the Nexus line. Pure stock Android, unlocked bootloader and all the awesome stuff the community wants. This might attract users too since they can advertise them as Google certified phones, just like they do with the Nexus line.