Elephantsquared.

Open Android Alliance

— Sep 30 2009

A few days after Google’s actions against the CyanogenMod project a group of Android developers formed the Open Android Alliance. Their goal is to replace all closed source and proprietary applications found in the bas Android install with open source applications that can be freely distributed. As they state:

We don’t have anything against the existing closed applications, however, we believe in open platforms and want all users to be able to modify their systems as they see fit.

Above all, remember, we are NOT “Anti-Google”. We are “Pro-Android”. Please act accordingly when posting on this project.

Code license is currently under GPL v3 due to familiarity and because GPL ensures that code based on project’s code will remain open source  for ever. Although this is not a final decition yet.

If developers would like a different license, I’m open to suggestions.

Tickets for replacing Android Market, IM Client, Mail client and other application are already open.


Google wants to ban customised Android ROMs

— Sep 26 2009

The CyanogenMod project, for offering customised Android firmware, has gone into trouble recently, since Google is taking action against the project.

The main reason is that the project is redistributing Google’s proprietary applications, like Google Talk and Android Market. The develop is currently trying to reach an agreement with Google. There is also a petition app available online for download, for Android users, to try and help save CyanogenMod.

[ via ]


View documents online without leaving your browser

— Sep 26 2009

Ever wondered how much convenient it would be if you could just view this nice powerpoint file your friend emailed you last night without the need of a third party desktop software (i.e. Microsoft Office, OpenOffice, etc.) Well, last year Google introduced the “View” link in Gmail attachments, which allowed you to view online PDF files that you had received with Gmail. They also added support for viewing PowerPoint and TIFF files. Two days ago Google opened this technology to all webmasters and blog owners with the Google Docs viewer.

Google Docs Viewer, lets you view any PDF document, PowerPoint presentation or TIFF file without leaving your browser. All you need to do is go to Google Docs viewer, enter the document URL, and click on the “Generate link” button.

What’s next Google? :)


9 excellent Mac OS X Terminal commands

— Sep 25 2009

Ever wondered what that little window do every time you double click the “Terminal” application in your Mac? Well, in other words, that little window unleashes the power of UNIX. If you are wondering what on earth UNIX is, you are kindly requested to spend some time reading this -quite long- article here. Anyhow, you will be amazed by what you can achieve by using some powerful commands through the Terminal. So, here are 9 excellent Mac OS X Terminal commands that I have gathered through time.

  1. defaults write com.apple.dock no-glass -boolean YES; killall Dock
    This command will make your Dock at the bottom of your screen look like the Dock when placed at the left/right of your screen, that is 2D.
  2. defaults write com.apple.Dock showhidden -bool YES
    This is one is one of my favorites. It makes the Dock icons look transparent every time you Hide an application.
  3. defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText “/dev/null”
    As you may have noticed, this one changes the login window text. More precisely it adds the text “/dev/null” at your login window somewhere between your credentials and the Apple logo. (You can change the text “/dev/null” to any text you like)
  4. SetFile -a V Folder
    Have you ever wanted to remove this folder created, by a third-party application installation proccess, in your tightly organized Documents folder inside you Home folder? This command will make this folder any folder invisible, which means you wont be able to see it using the Finder. However the folder will still be there fully functional. (In case you want to undo this action try SetFile -a v Folder to make that folder visible again)
  5. pmset -a hibernatemode 0
    By default, most Macs’ hibernation mode is set such that when your Mac goes to sleep, contents of the RAM remain stored in the powered-on RAM in addition to written to the hard disk. Although this is considered as a “safe sleep mode” it takes quite some time for the contents of the RAM to be written to disk and the laptop to begin sleeping. By setting the hibernation mode to “0″ (currently in sleep mode 3) you will decrease by far the waiting time! (Note that there is a risk of data loss in case of a power failure or in case your battery strangely falls out)
  6. defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
    Time Machine is great. It fact, it seems greater now that you can also use it with network volumes (i.e. SMB and NFS shares) besides the old fashioned usb hard drives.
  7. gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf… final.pdf
    In short, the above command merges many pdf files into one single file. In order to use the above command you will need to install GhostScript, either from macports or from elsewhere. After that, all you need to do is to  Just replace “source1.pdf”, “source2.pdf”, etc. with the names of your pdf files and set the name of your final pdf file (final.pdf)
  8. softwareupdate -dal
    Ever wondered if there is an alternative, simpler way to do the “Software Update…” for your Mac?
  9. diskutil repairPermissions /Volumes/YourVolumeName
    Obviously, this one repairs the permissions of your specified volume

Gmail – unable to access your Contacts.

— Sep 24 2009

This evening a weird message was floating above my email stating that Gmail was temporarily unable to access my Contacts and that I might experience issues while this persists. Chat was not working properly. The auto-complete feature was only working for a very few contacts. And though the contact manager wouldn’t load at all, I could access my contacts via google.com/contacts

You could also check the “Learn more” link which directs you to a Google Help sub page inside Gmail Help which includes the following reassuring message:

We’re working to fix the problem, and in the meantime, you should be able to continue to read and send mail as normal. Thank you for your patience.

The Google Apps Status mentions today’s issue as a Service disruption. The announcement found right now on the top right of Google’s Help pages, looks like this:

September 24, 2009 7:29:00 AM PDT

We’re aware of a problem with Google Mail affecting a small subset of users. The affected users are unable to access Google Mail, but we’ve provided a workaround below. We will provide an update by September 24, 2009 8:29:00 AM PDT detailing when we expect to resolve the problem. Please note that this resolution time is an estimate and may change.

It is also worth mentioning that this very specific Google Help page is not accessible/visible through the upper navigation menu, which is Managing Contacts.

UPDATE: A new announcement states the below:

September 24, 2009 8:29:00 AM PDT

Google Mail service has already been restored for some users, and we expect a resolution for all users within the next 1 hours. Please note this time frame is an estimate and may change.


Android Adventures, Part 1

— Sep 18 2009

Recently I was called to explore the possibilities of Android, as an OS itself, as a development environment and as a more mature toolkit for mobile devices. From now on, when I find something interesting (from my perspective) while messing around with Android, I will share my experience with you.

To begin with, I’m a proud owner of an Android powered device (HTC Magic) and I’m very pleased with it. My experience with Android started when I bought that device. Well, as a user, everything seems different, but don’t worry we’ll get to the more interesting part later. As I was saying, from the user perspective, everything seems very well organized. Android features a very simple but yet powerful eye-catching UI, which gives you such a natural feeling. Lots of settings and options are available for customizing even more your favorite device. None of the features of modern mobile devices is missing from this OS, in contrast, there are lots of special features that makes this OS robust. A quick example is the way all Google Apps are bonded together, interacting with each other, and giving the result of an integrated, stable, and mature enough OS.

I started my adventure with Android SDK 1.5 (r3, to be specific) on a MacOS 10.5 and Eclipse with the ADT plugin. You can find all you’ll need at Android Developers, plus dev guide, reference, tutorials, etc. A good place to begin with, is the two Google Groups where I recommend you to subscribe: Android Developers and Android Beginners.

As soon as you install the SDK, Eclipse and the ADT plugin, you’re ready to develop applications for Android. For a Java developer, everything seems so familiar, as the Eclipse plus the ADT plugin provides you with all the necessary tools for developing such applications. Take some time and follow the all-time-classic HelloWorld tutorial which explains “how stuff works”.

The basic feature of Android is that you can use other applications from your own. In other words, if your application needs to use a widget/component that someone else developed for his own application, you can use it (provided that he/she has given permissions). Android applications don’t have a standard entry point. Rather, they have essential components depending on the type of application.

There are four (4) types of components:

  1. Activities
  2. Services
  3. Broadcast receivers
  4. Content providers

You can activate each one of these components with intents, except from Content providers which they are activated when they receive a request from a ContentResolver. Intent (asynchronous messages) is an objects that holds the name and the action of each component. Each component has a special treatment for activation. Let’s focus on Activities for now.

An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI

The Activity class is where you will start from. Each application consists of several activities, so you can assume that an Activity is like a form. A general application has make forms. Each Activity has its own layout, where you have two (2) ways of declaring it:

  1. Declare UI in XML
  2. Instantiate UI at runtime

I tried both, and as you can probably guess, the XML declaration of the UI is much more superior, because you separate the presentation from the code that controls the behavior.

This is the end of the first part of my Android Adventures. As some of you already know, Android SDK 1.6 is out, and that’s great news for all the Android developers out there!

Keep tuned, more to come ;)


Google Noop, the next-generation Java?

— Sep 18 2009

Google came up with a language with an attitude, where they will try to follow some good practices and avoid some bad ones. Noop will be running on the Java Virtual Machine (JVM), thus it will be quite popular.

Developers will aim at a more readable code syntax, testability, dependecy injection and some other good practices. Subclassing, Primitives and Statics will be avoided.

For more information, check out the Noop Google Code page.

[ via ]


One-night changes with Gmail

— Sep 17 2009

Last night, while I was checking my emails I noticed that my Gmail’s embedded Google Talk IM Client was showing my chat buddies in a weird kind of way. Though usually, Gmail’s embedded IM Client organizes them alphabetically and by status, this time i could see all my contacts with gmail mixed up with my chat buddies. Maybe this way Google tried to tell us “Hey you! You could add this guy/gal as your chat buddy so you can chat online and make free internet calls with him/her“. I have to say I kind of liked that feature. Who knows? Maybe someday we will see that feature going live.


Next Page »