1/18/2009

Welcome ~San, You're Logined!


No comments!

9/06/2008

NDrive and iPhone

It's no good what Apple is doing to the Automotive Navigation Industry. No one really understands what's "behind the curtain", but according to what is stated in the iPhone SDK License Agreement, Section 3.3.7, and I quote:

applications may not be designed or marketed for real time route guidance


What is their intent doing this? Some say they want to prevent "rivals" from doing navigation software, but it's no fun.

I have contacted Apple using their website a long time ago, regarding these issues but they have completely ignored my questions.

Nevertheless, a video from NDrive, an example of a navigation software, running on an iPhone.

It's a shame that NDrive and other navigation software (iGo, TomTom, etc.) are not allowed to provide real-time route guidance for the iPhone, and even worse when we see no official words from Apple regarding this matter or their future plans.

8/03/2008

Porting applications to the iPhone OS 2.0

Lately I have been porting a considerably complex application using the iPhone OS 2.0 SDK. In the past, I have been developing mobile applications for WinCE, PocketPC, and Symbian. With regards to WinCE/PPC, I believe that Visual Studio is a great IDE, but a great IDE is not always the most important factor when developing mobile software. Speaking of Symbian OS (S60 platform), the most popular IDE is Carbide, built upon the Eclipse IDE platform, which I'm not really a big fan of. One very good thing about S60 is the OpenC library, an extensive collection of POSIX and other well-known C libraries, which makes it easier to port for this platform. However, in my personal experience, the development for the Symbian OS (mainly porting) was kind of traumatising when combining the IDE with the platform and the mobile hardware. First, the emulator is bad, slow and works horribly when comparing to the same application deployed in a mobile phone. Secondly, although you can do it graphically after pressing a thousand menus and buttons, you have to write a makefile-like with a lot of tricks/hacks, in order for the compilation to be successful.

Although Xcode is still not as good as Visual Studio, it is far much better in the sense that it seamlessly integrates with the iPhone Simulator, deploying and running applications in a fast and efficient manner. In terms of porting existing code to the iPhone OS 2.0, it was not very painful, mainly because there is not much of a difference between developing for the iPhone and for the MacOS X.

Summarising what I think about the 3 platforms:


  • WinCE/Pocket PC: Great IDE / Very specific platform. Threading and memory maps work horribly / Emulator? Does it even work? / Deployment (slow slow slow)... "90% del tiempo perdido en tonterĂ­as"

  • Symbian OS (S60): Complicated IDE / OpenC is a plus / Emulator? Does not work properly and it is very slow / Deployment could be more straightforward

  • iPhone OS 2.0 SDK: Not as full-featured as VStudio but still does a great integration with debugging and deployment / UNIX-like development, UIKit/FoundationKit and Objective-C++ are a big plus! / Fast deployment, debugging and simulation (emulation)!



The most important factor about iPhone OS 2.0 platform that makes it superb for development is that it supports Objective-C++, making it very easy to port existing UNIX applications since you can mix Objective-C with C/C++ code just by renaming the files to ".mm" (instead of Objective-C's ".m" extension).

7/04/2008

While I was googling today, I came across a hilarious video of Steve Balmer, Microsoft from January, 2007:



"500 dollars? Fully subsidised? With a plan? (...) And it doesn't appeal to business customers because it doesn't have a keyboard, which makes it not a very good email machine".

Did you notice the decreasing tone in the last part of this sentence? It sounds a bit like:

"And it doesn't appeal to business customers because it doesn't have a (...) KEYBOARD (...)".

This sounds a little off-topic especially if you didn't read the my previous post but, according to the official site:
Office 2008 for Mac Home and Student Edition $149.95
Office 2008 for Mac $399.95
Office 2008 for Mac Special Media Edition $499.95

Let me tell you this straight:

150 / 400 / 500 dollars for Office 2008 for the Mac? With "editions" (you pay for every kilogram of software you get)? And without crash recovery or undo after save features?

No thanks!

7/02/2008

Innovations (?) in Excel 2008

Lately I've been rather busy with my Master's Thesis. Because of that, I've been working a lot with charts. My choice is naturally Excel, since it produces good graphics much better than Numbers.

Before proceeding to "innovations", I would like to call your attention to the following screenshot:



Can you see what's wrong with it? Well, apparently the answer is "nothing". Yes, except Microsoft apparently considers that when users save their worksheet, they don't need an undo feature anymore!
I thought undo was meant to be used when you made an action you didn't plan or intended to, i.e. a mistake.

I don't call it a bug, I call it innovation!

Update:

After Excel 2008 crashes for your Mac, you might be rewarded with the following message:



Don't worry. Microsoft has thought of everything! You can recover it with Excel 2007 for Windows XP:



I hope Microsoft first fixes and delivers high quality products before expanding to a whole new family of products for the Mac!

7/01/2008

GmailFS with MacPorts

Hi everyone!

I've been using MacPorts for quite some time, and I have been very pleased with its simplicity, specially since I am much more used to FreeBSD's amazing ports system. For those who don't know, MacPorts is basically a system of tools that makes it easier for you and everyone to keep a great collection of UNIX software applications up-to-date, without the annoying task of managing all the dependencies or patching some software project (hence the word "port") that was intended to run on Linux or other platform, and that could easily run on a Mac just by changing a line in some file (I'm not exagerating).

These days I've become interested in GMailFS, a software package that allows you to see (technically "mount") a directory in your filesystem (inside your home directory for example) in user space (i.e., outside the kernel space), so you can mount it without any privileges. GMailFS sits on top of FUSE (Filesystem in Userspace), more specifically on top of MacFUSE which in turn was ported by Google, and allows you to see your GMail account as a set of files and directories so you can actually download and upload files to your account with a couple of drag-n-drops with Finder :)

Since I was having problems installing this on my Mac, I've seen many forums with discussions regarding the installation procedures. In the end it all involved a lot of tricks and hacks, and never worked for the latest software versions of the packages that are required to set up GMailFS.

For these reasons I decided to stick with MacPorts (which I believe is a much cleaner and elegant way to manage sofware). Since there was no GMailFS port in MacPorts, not even support for most dependencies, I got in contact with the development team (thanks Raim), and provided feedback enough so a port with all the dependencies for GMailFS was created :)

For those who might be wondering how to get GMailFS working with MacPorts:


  • Download a fresh copy of MacPorts from here

  • Update your MacPorts tree of ports by opening a terminal and issuing the command sudo port sync

  • Install GMailFS by issuing the command sudo port install gmailfs



Please make sure you have python2.5 selected by default, if you don't know or don't have, you can try the following:

  • Install python_select by issuing the command sudo port install python_select

  • Select python2.5 as the default python interpreter sudo python_select python25



Along the way you will be asked for your password in your Terminal, after you issue a sudo command. This is equivalent to MacOS X's GUI prompt for a password every time you install an application with some installer.

Then you can just create a hidden GMailFS configuration file in your home directory as ~/.gmailfs with a content similar to:


[connection]
# The proxy URL
#proxy = http://user:pass@proxyhost:port
# or just
#proxy = http://proxyhost:port

# The number or retries for the proxy connection.
#retries = 3

[account]
username = your_username
password = your_password_in_plaintext

[filesystem]
fsname = zOlRRaXPTOzOlRRa

[references]
# reference = filesystem:username:password

[logs]
# Change this to DEBUG for verbose output (useful for debugging)
level = INFO

# if you'd like logs to go to stdout, comment out this variable.
# For logging to, say, stderr, use /dev/stderr of your system's
# equivalent for it
logfile = /dev/stderr


After this, you can mount your GMailFS issuing a command like:

mount -ovolname=gmail,ping_diskarb -t gmailfs /opt/local/share/gmailfs/gmailfs.py path_for_the_directory_where_you_want_to_mount_your_gmailfs


After you have mounted the filesystem, you can copy files from and to it, and you will see your gmail account populated with "weird" emails. That's where the string zOlRRaXPTOzOlRRa I used in the sample configuration file above comes in (by the way, you can change this string to anything else): GMailFS will keep emails in your account with subjects containing the word zOlRRaXPTOzOlRRa. Since such emails in your Inbox can become distracting, you can filter them out by archiving them with a GMail filter like the following:



Please note that I added __g__zOlRRaXPTOzOlRRa__h__ instead of just zOlRRaXPTOzOlRRa, since the real email in your inbox will contain a word with a prefix and suffix, making the word become like this.

Have fun!

6/28/2008

Assorted (not so known) tips on MacOSX

I just came across these two tips recently, so you can find them either officially documented or in public forums like I did.

Tip #1: Dashboard widgets on your Desktop

Dashboard is one of those features that I believe are not very well explored in terms of desktop interaction, in MacOSX. I mean, many times it happened me (and I believe with most of you) to play a bit with some dashboard widgets but quickly end up forgetting about their existence, since one needs to change between dashboard mode and desktop mode. This tip I found out about a couple of days ago, when I first came across with a software review of Amnesty Singles. This piece of software basically allows you to transform any widget into a "standard" application. Nevertheless, if you are not willing to pay for such great software, there is quick and dirty tip that pretty much does the same thing (original link):

Preparation (1st time):


  • Open Terminal (just type "Terminal" in Spotlight, or alternately open Applications->Utilities->Terminal)

  • While in Terminal, type: defaults write com.apple.dashboard devmode YES

  • Logout, for the previous command to take effect, and Login again.



Everytime you want to add a widget to your desktop:

  • Press F12 to open Dashboard.

  • Press the mouse down to drag the widget of your choice.

  • Without releasing the mouse button, press F12 again to return to desktop mode.

  • When in desktop, you may release the mouse button and the widget will remain in your desktop!



Everytime you want to remove a widget from your desktop:

  • Press the mouse down to drag the widget of your choice.

  • Without releasing the mouse button, press F12 again to open Dashboard.

  • When in Dashboard, you may release the mouse button and the widget will return to it!



Not everything is perfect with this method. For instance, the widget will remain "always on top" and there is no way to minimise it to the Dock temporarily. The best thing you can do with most of them is to "reduce" their window size. This is why you should consider paying for Amnesty Singles if you are not satisfied with these limitations.

Tip #2: MacBook/Pro with open/closed lid, built-in display off (not dimmed) and external display (external USB keyboard not required)

Many of you usually prefer an external display, especially if you use your MacBook/Pro in a daily basis. Either because you find it distracting when using an external display or if you don't need your built-in display and want to save its life, you might find this tip useful. The option of whether to leave the lid open or closed is up to you, but the main reason to leave it open is to make the MacBook/Pro ventilate better. Some people even argue that with older Mac laptops such as PowerBooks, leaving the lid closed might cause it to melt under heat.

Ok, so here's the tip (original link):

  • First, make sure to connect your MacBook/Pro's power adaptor to a power source, if it's not already.

  • Plug in your external monitor to your MacBook/Pro. Turn the monitor on, if it's not already.

  • After a while, if an image does not appear in your external monitor, go to System Preferences->Displays and click a button entitled Detect Displays. An image should appear in your external monitor.

  • Now, the image that appears in your external monitor should represent either a mirrored desktop or an extended desktop. It is essencial that your MacBook/Pro is set to Mirrored Mode. If it is not, press F7 once and it should turn to "Mirrored Mode".

  • Close the lid of your MacBook/Pro and it will go to sleep

  • Now, plug in any USB device (e.g., an external keyboard, a mouse, a pen drive will also do it). If you already have an external mouse or keyboard attached to your laptop, you just need to press some key or button. This will make your MacBook/Pro awake from sleep and use the external screen as the main display.

  • When the external display shows your Desktop again or your MacBook/Pro prompts for a password (if you activated this security feature for protection), then you can open the lid, if you want your laptop to dissipate better.

  • Voilá! Your built-in display is turned off (not dimmed), your MacBook/Pro is not sleeping, and you can either use its built-in keyboard and mouse pad if you don't want to use an external USB mouse/keyboard like many forums advocate as necessary!



If you want to turn your built-in display back again:

  • Go to System Preferences->Displays and click a button entitled Detect Displays. The built-in screen should turn on again.