I have moved my blog to Wordpress at theunixgeek.wordpress.com. I will still be checking back periodically on this one as well, though. 19 April 2009

featured

Merging Mkdir and Cd | 280 Slides Interview | I Switched to KDE 4

clickable portals

Wednesday, December 31, 2008

Happy 2009!



2009 is just around the corner, so happy new year to everyone, and be ready for some nice changes here on The Unix Geek blog.

Symphony on Ubuntu: To Fix


Here are three reasons why I'm not using IBM Lotus Symphony on Ubuntu (I like the whole concept of the application, but it doesn't look native neither on Mac OS X nor on Ubuntu):

  1. Windows 95 Controls. No. That's just wrong. How about using Cleanlooks, or at least trying to imitate it somewhat well, like the Qt apps?
  2. I can't resize the Properties pane, and some controls are partially missing.
  3. Bad rendering of traditional Chinese text in a Rich Text File. What's up with the boxes, Euro signs, and Greek letters? The same file opened with no problem on OpenOffice 3. (Note, though, that no part of the actual text has been lost. All the sentences are still legible if you take away all the other symbols).
This isn't, however, the first time major cross-platform software has looked awkward.

Saturday, December 27, 2008

New Look

To celebrate the new year, I've decided that The Unix Geek blog needed a new look. Here is a comparison of the old one (white and grey) and the new one (red and grey):


Windows 7 Beta coming in January


Apparently, some people have already gotten their hands on the Windows 7 Beta, which is supposed to be released in January. To avoid any problems, I'll be waiting until then to try it out and post a review of what I think of the new OS.

Here's an existing review, which, surprisingly enough, recommends the beta for daily production use.

Monday, December 15, 2008

Aluminum MacBook Review


Apple's been marketing the Aluminum MacBook as being "Beautifully Engineered, Inside and Out," a "Technological Beauty," "Engineering with Good Taste," being part of "The World's Greenest Notebook Family," and "Perfectly Conceived." And I must say, I agree with all of these.

At first sight, the new MacBook is a stunningly beautiful piece of technology. The colors Apple chose were a perfect match for each other, and I loved how the whole upper part of the MacBook was made of glass. There was no "dip" from the part surrounding 
the display into the actual display. Everything went fluidly across, and at a certain distance and angle, with the display put to sleep, you could barely tell that the actual display wasn't the whole glass. 

The aluminum felt absolutely great. It reminded me of the texture of the silver aluminum iPod nano, but it felt so much nicer on a computer. It felt much smoother than the white MacBook. I'm glad that, along with the overall smoothness of the aluminum, there isn't a sharp edge on the ends of the armrests of new MacBook, unlike its older brother.

Like the MacBook Air, there is a wedge leading from the body of the case to its bo
ttom (not as drastic, obviously), giving you the sense that the computer is thinner and that it's sort of floating in the air, which is an interesting fancy once you pay attention to it.

The new multi-touch trackpad is really cool. I found it slightly strange at times, but after using it for about five more minutes, I became completely accustomed to it. The color matches the rest of the aluminum case, and the multi-touch gestures seem extremely useful, especially for graphic artists who need to rotate something, or even an every-day web surfer of the web who needs to zoom in a bit on a webpage with tiny text. Unlike what it seems Apple thinks, however, (or maybe it's just a working advertisement plan), we don't spend our whole day in iPhoto and the rest of the iLife suite. In fact, I think Apple should include iWork with their computers instead of iLife, but that's an opinion for a different post.

I wasn't really able to test the graphics too much, but I can say that it was a good move. The display wakes up quickly after having been closed, and your display viewing experience isn't really affected by your angle so much as it was in the previous MacBooks.

The backlit keyboard is really useful, but it can be a bit sensitive and turns on the backlight when a few people cast a light shadow over it.

They made the thumb scoop a tad bit deeper, which is nice; it makes it easier to open the computer, and they seem to have added a thumb scoop to the MacBook Pro as well, for which I share the same opinions as described here for the MacBook.

One thing I noticed, however, was that the part that surrounds the air vent in the MacBook was made from the same or a similar material to that of the overall composition of the black MacBook instead of black glass. Another thing that I couldn't quite understand was the presence of a very tiny little speaker just above the F1 key. When I played some sound, I didn't seem that it was coming out of the little speaker, but rather from the same place where sound comes out of in the white MacBook.

Overall, I really liked the new aluminum MacBook, and I see a great audience for it internationally. It's sleeker, faster, and overall a great upgrade to the previous generation of MacBooks, and I would always recommend it to people who ask me if they should look into buying one.

One thing I noticed that Brazilian Apple retailers are doing differently from those in other countries is selling the white, black, and aluminum (with backlit keyboard) MacBook instead of just having the white and two models of the aluminum one.

Friday, December 12, 2008

On AppleScript Studio

It's not surprising to see that AppleScript Studio has somewhat gone defunct. I mean, who actually uses AppleScript at all these days? Yet, on another side, it's somewhat sad to see it go away. No, Apple didn't kill it; its users did.

If you take a look at the AppleScript Studio programming guide, you can see that the last time it was updated was on 4 April, 2006. Soon, that'll be three years ago. There are plenty of reasons people may strand away from AppleScript onto other scripting languages such as Python, Perl, Ruby, and the like: it's not open-source, it's not cross-platform, it's not localized into other languages, and the list goes on and on. Moreover, scripting languages are rarely used to write full binary applications, but rather more utility-like ones that are usually interpreted.

Why is it sad that AppleScript, and more precisely, AppleScript Studio, is dying? It was the Rapid Application Development toolkit of the Macintosh. It eased the manipulations of other applications from your own app, and it allowed even non-experienced programmers to write simple applications.  It could even be considered an intermediary step from little or no Macintosh programming experience into the world of Cocoa. After all, it's got all the same controls with similar methods and the same connection paradigm in Interface Builder.  

Besides, it can't be forgotten how English-like it is; although that could be considered a weak point, I can imagine localization to other languages, which could, however, be hindered with grammatical differences, such as, for example, noun genders and contractions of prepositions with articles in Romance languages.

Overall, I can see many reasons why AppleScript Studio isn't the development toolkit of choice for programmers, but a lot of things that can be done with it would only be made more difficult by other means. I could see a bright future for AppleScript studio if Apple marketed it as heavily as they market Cocoa.

Note: by "Cocoa" in this article, I mean to refer to programming Cocoa via Objective-C, since AppleScript Studio applications are also Cocoa ones.

Update (13 Dec. 2008): After giving it a bit of further thought, I concluded that AppleScript and AppleScript Studio weren't exactly killed off, but Apple reduced marketing of it and thus reduced its overall presence.

Wednesday, December 10, 2008

Finally, After Two Months!

Finally, after two months, Apple has finally released the new MacBooks and MacBook Pros in Brazil.

At least the following stores are selling them: Saraiva, Submarino, and Fast Shop

I will try to review one as soon as possible.

Google Translate's New Look

Google Translate has a new look. I find it makes a great dictionary, even when not in dictionary mode, and I'm glad there's finally a "swap" option to swap the languages.

Thursday, December 4, 2008

Setting up PHP in Mac OS X

I tried out some PHP yesterday and I found out that OS X doesn't really come as an out-of-the-box MAMP (Mac-Apache-MySQL-PHP) server, especially on the PHP part. If you try running some server-side PHP code, you'll end up seeing the source code instead of having the actual program run. Here's how you can fix the Apache configuration to get PHP working on your Mac.

Some characters used here are only viewable on OS X.
It is recommended that you back up the original configuration file before modifying it.
Form A: Graphically
  1. In the Finder, press ⌘⇧G (Command-Shift-G), and type /etc/apache2 . Press Return or select Go.
  2. Change the permissions of the httpd.conf file. Select it, press ⌘I (Command-I), open the Sharing and Permissions pane, click the lock, and type in your password (if you have one). Change the privilege of "everyone" to "Read & Write."
  3. Open the file with a text editor like TextMate or Smultron (the latter is free). 
  4. Find the line that reads #LoadModule php5_module libexec/apache2/libphp5.so and uncomment it (remove the preceding #).
  5. After the following line, add the lines AddType application/x-httpd-php .php .phtml .php3 and  AddType application/x-httpd-php-source .phps to make PHP files recognizable.
  6. After saving and closing the file, go back to the Sharing & Permissions pane in the Info panel and change the privilege of "everyone" to "Read Only." Click the lock and close the Info panel. You're done!
Form B: In the Terminal
  1. Open Terminal.app (/Applications/Utilities)
  2. cd /etc/apache2
  3. sudo pico httpd.conf (or another text editor of choice)
  4. press ^W and enter php5
  5. See step 4 of Form A.
  6. ^X to quit, Y to confirm, and press Return. You're done!
Remember: PHP is a server-side language, not a client-side one, so you should, after enabling web sharing, at the very least open up your file by opening 127.0.0.1/~UserName/file.php in your browser instead of just dragging in the PHP file. Don't forget to have web sharing turned on (System Preferences > Sharing).

Monday, December 1, 2008

Apple likes Beethoven

I bet Apple likes Beethoven, because that's the Moonlight Sonata (Moonscheinsonate) there on the Classical album cover in the iTunes Grid View.

Sunday, November 30, 2008

MacBooks are coming!

Great news - the new aluminum MacBooks will be arriving in Brazil sometime next week! It was a long delay, but I'm glad they're finally coming! 

:)

Thursday, November 27, 2008

MacBook Delays: An Open Letter to Apple

Here's something I wrote to Apple, and I hope they take it into consideration.

I'm very disappointed that tomorrow it will be a month and a half since the next-gen MacBook's announcements and they still haven't arrived in Brazil. As somebody who works daily with technology, programming, etc, I recognize the power of the Mac and love programming for it, working with it, and using it to its maximum extent.

I was extremely excited to try out the new MacBooks after their announcement on October 14th and figured that it should take about two weeks for the notebooks to get here. Then the two weeks passed, a month passed, and tomorrow, a whole six weeks will have passed and whenever I walk into any of the Apple Authorized Resellers nearby, they tell me that there is no expected date for the new MacBooks' arrival.

Sure, Brazil is still considered an emerging economy, but that doesn't necessarily mean it has to be stuck with old technology, one that is being sold for $999 in the United States and about $600 more than the previous version here in Brazil.

I sincerely hope that Apple will reconsider the delay that occurs after product releases in locations outside the United States and the European Union. In fact, I wrote about this issue on my blog, which can be read by following this link: http://theunixgeek.blogspot.com/2008/11/one-month-later.html . I also plan on publishing this text so that the problem can become more visible.

Wednesday, November 26, 2008

Understanding the Linux Filesystem

Ah, the old UNIX adage: everything is either a file or process.

Let's take a closer look at the Linux filesystem and forget about processes for now.

Files can either be regular data-holding files, directories, references to hardware, links, and inter-process communicators. Believe it or not, directories are simply lists of files, links are files that tell where other files are, and those file in /dev contain information about the connected peripherals.

Unlike other operating systems, Linux distributions tend to have many partitions on a disk instead of a single one in order to have more data security. In case something happens to a partition, not all data is lost. There are various worst-case scenarios, such as a partition being completely filled up, bad blocks, etc.

Example: print command in parted
--------------------------------------------------------------
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type filesystem Flags
1 32.3kB 20.5GB 20.5GB primary ext3 boot
2 20.5GB 21.5GB 938MB extended
5 20.5GB 21.5GB 938MB logical linux-swap
--------------------------------------------------------------


As can be seen, there are usually at least two partitions in a Linux system: a primary data partition (at least one root partition, indicated by /, that holds system files) and a swap partition, which serves as extra physical memory (this allows the system to continuously work without running out of memory). In some cases, usually based on your sysadmin's choice, separate kernel, home, or program partitions are created upon installation. This is, again, to make sure that data is always kept intact if something bad happens.

Also, Linux supports various types of filesystems, such as its natives ext3 and ext2, along with those found natively in other operating systems, such as FAT or NTFS.

Partition mounting occurs when the mount command is used to attach a partition to a directory in the root filesystem. This way, the partition can be manipulated as a separate directory without messing with the system partition. The /etc/fstab file defines which partitions should be mounted on startup.

The df ("disk full") command, under GNU/Linux distributions, has a . (dot) command that tells you what non-swap partition the working directory (remember pwd?) is on. If you're familiar with Linux, you should be aware that this dot returns the pwd. However, it prints some information that is not always useful, so the -h option that allows for a more readable listing of information.

---------------------------------------------------------
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 2.3G 16G 13% /
tmpfs 252M 0 252M 0% /lib/init/rw
varrun 252M 104K 252M 1% /var/run
varlock 252M 0 252M 0% /var/lock
udev 252M 2.7M 249M 2% /dev
tmpfs 252M 160K 251M 1% /dev/shm
---------------------------------------------------------


By listing the root directory, one would see the following directories:

bin: programs shared by all of the system's users
boot: kernel and other essential boot files, such as a bootloader
dev: references to all peripheral hardware
etc: system configuration files
home: users' personal files
initrd: info on booting, not on all distros, not always dir
lib: the system library (files necessary for programs to run)
lost+found:files not saved correctly
mnt: mount point for external peripherals and filesystems
net: mount point for networked filesystems
opt: typically for third-party software
proc: a virtual filesystem for system resources (man proc)
root: home for the sysadmin
sbin: sysadmin's version of bin
tmp: temporary directory, emptied on boot
usr: programs, libraries, documentation, images, etc*
var: stores variable files for temporary use by applications

*be careful not to confuse the terms "usr" and "user," as "usr" stands for "Unix System Resources," a naming legacy from System V.

Remember, though, that filesystems are not trees, although they may seem like so. Directories are simply files that list other files. In filesystems, files are represented by an inode, a "serial number" that contains the information about the data in a file, such as:

  • its owner

  • its type

  • permissions

  • timestamps (that is, when it was created, last modified)

  • number of links (remember, links are just files) to it

  • its size (in pure kilobytes! try running df without -h and you'll see what I mean)

  • its location (again, don't imagine UNIX filesystems as trees! This portion of the inode simply says which directory file references this file!)

Be careful, though: not all filesystems have alike. Not all have inodes, many have limits on how many directories can be inside another directory, etc.

I hope you enjoyed this article. You can find out more here, here, and here.

Tuesday, November 25, 2008

Fedora 10 is here

It was released a minute ago.




Monday, November 24, 2008

Ubuntu 8.10: Featureless Ibex?

A few days after Ubuntu 8.10 Intrepid Ibex was released, I decided to give it a test drive in my trial of VMware Fusion. I was hoping for an awesome new experience, like I got back in the days of Gutsy Gibbon, but I didn't get an Intrepid Ibex. Just a Featureless Ibex.

Sure, all operating systems have come of age and are focusing on having better internals while maintaining the pretty look they've had for all this years. I mean, that's the main focus of Snow Leopard and Windows 7, if I'm not mistaken, and Ubuntu's joined the bandwagon.

Sure, it's nice to see that Nautilus has tabs and you can drag files to them and choose to open a folder in a new tab, that Dictionary is now in the Office menu, that there are more Tango-compliant icons, and that you can create a USB startup disk. But what else?

Where is the exciting list of 30 new user-end features? Where's the rest of the wallpapers? It's nice for users to have a nice selection of desktop decoration out of the box. There needs to be more wallpaper choice than either one creative picture and solid color. Ironically enough, a lot of the available themes have no matching wallpaper, resulting in ugly desktops. I must congratulate Windows 7 for having easy wallpaper-theme matching in the new themes preferences, however. 

Overall, I was disappointed with Intrepid Ibex, and I hope we can see a lot more from Jaunty Jackalope next year, but I still love Ubuntu. It has the best support and is the most stable, but I think it needs to have more user-end features and fix stability problems during updates.

Friday, November 14, 2008

I Still Don't Get This

This has probably been around since one of the first version of Word on any platform (I've seen this a lot of times), and I still don't get why it exists.
The font "Nonexistent Font" is not available on your system. Do you want to use it anyway?

... this makes no sense.


One Month Later...

One month after the next-gen MacBook's introduction (14 October), the new model has not arrived in Brazil. If Apple wants to keep an international business in good shape, I would expect they'd want to keep all their products updated, instead of offering previous-generation computers in some countries.

Sure, I'd bet there's something to do with customs, exchange rates, etc, but one month is just too long.

Monday, November 10, 2008

Qt won't benefit from C++0x

According to ahigerd on Freenode, 

"At best, Qt would simply wrap around some STL components if they're present, but (1) I don't expect any useful standardization until somewhere around 2012, (2) I don't expect compiler support to be there for a long time, (3) Qt, especially in the embedded department, is intended to REPLACE STL, not USE STL.

Qt is supposed to provide a consistent API and behavior across platforms; Qt is still going to have to provide those behaviors on platforms that don't have good compiler/library support for it yet. Therefore, Qt will either have to have two versions of the code -- one that uses STL, one that doesn't -- and have to try to keep them always behaving the same way, or it can just not try to worry about using STL and just make sure to remain COMPATIBLE.

Qt can't remove classes without breaking API, so at best it won't be until Qt5, but at the same time, Qt is replacing a lot of STL's uglier classes. You can't compare std::string to QString. You can't even compare std::wstring to QString. You can try to compare std::vector with QList or QVector, but Qt just offers MUCH better APIs for them, as well as a lot more useful functions. 

C++0x may be useful for Qt's internal implementation when it's available, but the C++0x STL won't be any more helpful to Qt than the C++98 STL."

For more about C++0x, see here.

Note: ahigerd is an independent programmer, not a Nokia employee.
Update (11/Nov): Fixed last sentence in quote.

The Future of C++

Bjarne Stroustrup began C with Classes in 1979, as a better C that supports object-oriented programming, generic programming, and data abstraction. In 1983, it became C++ (although many argue it should have been ++C). Nearing the end of the century, 1998, a C++ ANSI-ISO standard was created. Sometime in the near future, C++0x is coming along.

Being that C++0x was expected to come out between 2000 and 2009, they abbreviated 200x to 0x. Nothing hexadecimal related.

C++0x is considered to be the first major revision to the C++ standard, which, as said above, has been around for just about a decade. The following features are some of the things we should be expecting from C++ next year (with comments!):

  • multithreading support (this will ease development for many C++ frameworks)
  • lambda functions (inherited from C#... sorry for the pun)
  • automatic types and type determinations (did anyone say auto from C#?)
  • improvements in templates
  • generalized constant expressions (I've been waiting for something like this for a while now)
  • initialization problems fixed
  • range-based for loop (seems like the for..each loop in Java and foreach in Python)
  • better ways to create objects
  • fixes to enums (strongly-typed now)
  • user-defined literals
  • upgrades to the Standard Library
  • tuples (the good old days of Haskell...)
  • regular expressions (now Qt doesn't have to have a QRegExp class anymore)
  • a better way to generate random numbers (finally!)
Even with all these new features, C++0x is still going to try to be backwards-compatible with C++98 and C99. More detailed information can be found here and on this blog.

Others, however, argue that existing C++ frameworks and APIs won't benefit much from the upgrade.

Saturday, November 8, 2008

XKCD 303

This is definitely one of my favorite XKCD comics:
The #1 Programmer Excuse for Slacking Off: "My Code's Compiling."



Monday, November 3, 2008

QtCreator Announced

Trolltech has finally been working on their own IDE made specially for Qt. It's called QtCreator. Here's the announcement and here's the tech preview.

Thursday, October 30, 2008

How to Write a Programming Language

It's actually quite easy to write a programming language in C++, believe it or not. All you really have to do is follow Stroustrup's own example: write a program that can translate your language's code into C and compile that. After all, that's how C++ started out! Here's a step-by-step walkthrough of a simple programming language where the line printstr Hello, World! prints Hello, World! as the output. (Note: the system() calls used in this code might or might not work on non-Unix systems)

1. Include the following headers: iostream, fstream, vector, string, and cstdlib. Use the std namespace. Set up a simple main function with (int argc, char *argv[]) as arguments.

2. Let's call this language Examplang. We want the user to run the command as examplang file.expl, so let's make sure they always enter an argument following the program name:

if (!argv[1]) {
cout << "usage: " <<>
return 1; 
}

3. Let's declare some basic, yet very important, variables: a vector to read program lines into, an input file stream to read the source code, an output file stream to write to the c source code, and a string variable that holds the current line of the source code.

vector source;
ifstream source_code;
ofstream c_code;
string current_line;


4. Open up the source code and push back all its lines onto the vector. Then, get the number of lines in the source code by getting the vector's size.

source_code.open (argv[1]);
while (getline (source_code, current_line)) 
source.push_back (current_line);
int source_code_size = source.size( );

5. Now, begin looking for keywords in the source code... this part gets tricky.

As a custom, i is used as the index variable in the for loop. The for loop reads each line of the file and stores the string available in the current line in the current_string variable. Each keyword name is stored in its own string before it's used to ease access to its length later on if it's found.

Then number of characters between the space after the keyword and the last character of the line is calculated and that value is used as programmed. In the case of the printstr keyword, the string after the space following the keyword until the end of the line is printed.

int i;
c_code.open("c_output.c");
//note:due to technical restrictions, the greater-than and less-than signs around stdio.h could not be displayed  in the following line
c_code << "#include stdio.h
" <<>
for (i = 0; i <>
current_line = source.at(i); 
string printstr = "printstr"; 
if (current_line.compare (0, 9, "printstr")) {
c_code << "printf (\""; 
int until_rest_of_string = current_line.length() - printstr.length(); 
string fstring = current_line.substr (8, until_rest_of_string); 
c_code <<>
}


6. Finish the outputted C source code and compile it. Once that's done, close the file streams and end the main function.

c_code << "return 0;" <<>
system ("gcc c_output.c"); 
c_code.close(); 
source_code.close(); 
return 0;

That's it! After this, one can easily extend the language to have variables, conditional statements, loops, and whole lot else. The code worked fine on OS X (I haven't been able to test it on Fedora yet), but if there were any problems in copying the code into the post or if it doesn't work on your system, please leave a comment, which will be followed up as soon as possible.

Tuesday, October 28, 2008

Windows 7 copies Fedora

200th post!

Windows 7 copied Linux again. Milestone 3 was recently announced at PDC, and now, Microsoft got another inspiration from Linux, and this time it wasn't even a user feature. Compare the default desktops: Windows 7 and Fedora 9 GNOME (screenshots courtesy of the WinSuperSite and Wikipedia).


Larger Image:


Friday, October 24, 2008

Bringing Back the Old Aqua Theme


Did you know it's possible to bring back the old Tiger and Panther Aqua theme back to Leopard? You can do it in one simple step - type this in Terminal.app (/Applications/Utilities/Terminal.app):

defaults write -g AppleUseCoreUI -bool NO && defaults write NSGlobalDomain NSUseLeopardWindowValues NO && killall Finder

If you quit and restart all open applications, you'll see they have the old window decoration. If you want to complete your experience, follow these instructions to get a Tiger-like opaque menu bar and a transparent dock.

To undo changes, change NO to YES, and vice-versa if necessary.

Good luck!


ImageBoot Doesn't Surprise Me

I'm glad Apple's finally (probably) bringing a Cocoa Finder in Snow Leopard, which may indicate some sort of Carbon wrapper for Cocoa applications in the future, but what doesn't surprise me is ImageBoot. According to MacRumors, ImageBoot "should allow Macs to boot from a disk image".... except that already exists. 

In fact, that's how installed Ubuntu on my MacBook a few months back. I had the disk image, I went into Disk Utility, made a special partition on my hard drive for the Ubuntu installation, selected the hard drive in the source view, selected the "Restore" tab, and just followed the instructions.

Sure, it's not booting directly off the disk image, but it has the same effect. 

Wednesday, October 15, 2008

OpenOffice 3 "Aqua" Interface Problems

Overall, I really like OOo 3 on OS X. It's nice to be able to run it without X11, and the interface is faster, the new icons are nicer... but the interface can be terrible at points. Here is a list of the main "ugly spots" of the OOo "Aqua" interface.
  1. Just because it runs natively on OS X, it's not necessarily Aqua. The ability to have pictures in the menus? That's definitely anti-aqua. What's with the odd button sizes and spacing? Not Aqua, again.
  2. If the user didn't specify it in the System Preferences, buttons should not have an outer glow. It's available so users can tab between controls (SysPrefs > Keyboard & Mouse > Shortcuts > Full keyboard access). If the user didn't say he wants it, it shouldn't be there.
  3. In OpenOffice Draw, there's some odd coloring going on behind some controls.
  4. If I'm in the Help search tab, with the text field selected, and I press command-A, I expect all the text in the text field to be selected, not for the Database sub-application to open!
  5. Leopard and pinstripes don't mix.
  6. Why a Windows 2000 My Documents icon in the Templates window? In OS X, either have Documents there, or the Home folder. But "My Documents" and an ancient Windows icon? Sorry, but that was just a bad move.
  7. Here's the worst, in my opinion: the toolbars. The white OOo toolbars completely take away the ability for the app to be called "Aqua"! Take a look at all Aqua apps in Leopard. Unified toolbars, hello? I complained about the same thing in a previous post.

That's about it for the worst parts of the interface, but on a positive note, I think it's just about ready to be widely used, except for the interface! Please, please, please fix the interface!

IMAGE COMING SOON

Tuesday, October 14, 2008

Why Two MacBooks?

Seems that Apple doesn't want to stop making MacBooks...

Let's take a look at the history of it all. First off, the MacBook Pro was born. Pretty cool - built-in iSight, MagSafe, same old (but awesome) aluminum, great! Next, the nice white MacBook we have known for about almost three and a half years at the time of the writing of this post. Then, earlier this year, the MacBook Air was born as a very thin version of the MacBook Pro. Now the original MacBook Pro is dead, replaced by a new one, and MacBook has a brother!

I don't get this - I think Apple should just phase out the white version and keep the new aluminum one, and charge US$1099 for it again! I mean, isn't it faster and cheaper to produce the new aluminum MacBooks? Or is Apple trying to sell all of its remaining white MacBooks to ease the move to the new one?

Friday, October 10, 2008

The Better Interface of Google Docs

I remember when I first met Google Docs and how similar it was to Office 2007. Wow, how much has changed! 

I accessed it recently, and the interface for keeping tracks of your documents has been really useful with features such as nested folders.

The new layout also makes it easier to find a justified layout (see image), which is why I left Google Docs for a while. 

Saturday, October 4, 2008

What Ubuntu is Missing

I'm finishing up my Fedora DVD download right now (can't wait until Fedora 10 comes out), and the main reason that I'm switching to Fedora, at least temporarily, is to install some GTK+ developer files. You see, I haven't been able to get online on my Linux computer lately due to some ISP problems, so I haven't been able to install the developer files since my last reinstall. That's why I think Ubuntu should have a DVD option, like Fedora, so that you can choose what extra applications and files should be installed.

Anyway, let's hope the checksum turns out correctly :)

Friday, September 26, 2008

An Introduction to Key-Value Coding in Cocoa

Key-value coding is a powerful technology available in Cocoa, but it may be difficult for beginners to understand. But without key-value coding, you couldn't easily make applications scriptable or use bindings in your applications. Also, using key-value coding can significantly reduce how much code you write by eliminating accessor methods. Using it may even increase your code's security by not needing to access instance variables directly. I believe that's enough to be convinced to use this technology, but how should one go about doing so?

First off, we need to learn some vocabulary:

  • property - an object value (specifically attributes, to-one relationships, and to-many relationships) that can be accessed by KVC.
  • attribute - a property that is represented as a simple value. Examples include immutable (non-editable) objects, numbers, strings, booleans, etc.
  • to-one relationship - a property in which an object has properties of its own
  • to-many relationship - a property that consists of a collection of related objects, such as an NSArray
  • key - a string that identifies a specific property of an object. 
In case you don't know how to declare properties in an Objective-C class, here's a sample of a basic AppleFruit class:

@interface AppleFruit : NSObject
{
  NSNumber *price;
}
@property(copy, readwrite) NSNumber *price;
@end

@implementation AppleFruit
@synthesize price;
@end;


Of course, you could get a lot fancier with properties, but there's the bare basics of it.

Now, let's get further acquainted with keys. Keys typically correspond to the name of an accessor method or an instance variable in an object. Quoting the documentation,
Keys must use ASCII encoding, begin with a lowercase letter, and may not contain whitespace.
If you wanted to get the value of a key, you would simply use the valueForKey: method. For example:
[appleFruit setValue:23 forKey:price];
[priceTextField setStringValue:[appleFruit valueForKey:price]];


could be used in another class to set and get the price value of the appleFruit object, respectively.

Here's what the class could look like if key-value coding weren't implemented in it:

@interface AppleFruit : NSObject
{
   NSNumber *price;
}
- (NSNumber *)returnPrice;
- (void)setPrice:(NSNumber *)newPrice;
@end

@implementation AppleFruit

- (NSNumber *)returnPrice
{
   return price;
}

- (void)setPrice:(NSNumber *)newPrice
{
   price = newPrice;
}

@end;


See how much code was spared? Good luck with implementing KVC in your applications!

Note: this is a summarized beginner-friendly version of the first three sections of the Key-Value Coding Programming Guide available through Apple's documentation. Bits were also taken from the Design Guidelines and The Objective-C 2.0 Programming Language.

HTML: The Cross-Platform Solution

Trying to write a cross-platform application today can be done in either of two ways: write a separate implementation of the app on each platform using the platform's native API or write the app in a specialized cross-platform framework. Obviously, the latter is more preferable. While Qt is the API of choice for most cases today, but for those who want to write cross-platform proprietary applications without paying a fortune, there's another unexplored alternative: HTML.

Sure, HTML is, at its basic, the only choice for web development, but it can easily be applied to desktop development. Here, I'll show a Cocoa example, but the idea can also be applied in WPF and GTK+.

Note: you should be able to create some basic applications in Cocoa in order to understand what I'm talking about here.

Create a new project and add the WebKit framework to it. Add a file.html file with the desired HTML in the file. Add a Controller class (or, as some prefer it, AppController) and make an instance of WebView called view. Don't forget to import WebKit/WebKit.h into the class! Open up the MainMenu.xib and drag in a web view. Add an NSObject and, in the inspector, make its class be Controller (or AppController). Connect the Controller to the Web View as view and save it. Add the following code to the Controller in the awakeFromNib method and run your app.

NSString* file = [[NSBundle mainBundle] pathForResource:@"hello" ofType:@"html"];
NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:file]];
[[view mainFrame] loadRequest:request];


Update (8 March 2009): Use the setDrawsBackground:NO method to have the page's background be transparent (unless you specified it via HTML or CSS, that is).

Change the code as needed. Good luck!

Thanks to Pieter de Bie for the code.

Thursday, September 18, 2008

Google Chrome Micro-Review

I downloaded Google Chrome and installed it on Windows Vista Ultimate last night, and here I some things I really liked about the new browser:


  • The preferences window is super-clean, super-easy to follow. Overall, it's a very good implementation.

  • Gmail is sufficiently faster (for obvious reasons)

  • There is no status bar, but when you hover over a link it appears in a little unintrusive blue pop-up at the bottom.

  • It's really interesting how Chrome marks download progress - instead of using a horizontal bar, they use a sliced circle. It's really interesting. Oh, and there's no download window - the progress is kept at the bottom, but you can open a download tab if needed.

Thursday, September 11, 2008

Ubuntu 9.04 Jaunty Jackalope

It was recently announced by Mark Shuttleworth that Ubuntu 9.04 will be codenamed Jaunty Jackalope. I just wanted to summarize the main goals in the next version of Ubuntu:
  • Ubuntu on over a million devices
  • Faster boot time
  • Integrate web applications with the desktop
More is being planned and more ideas will be shared come the Developer Summit.
Just to note: the jackalope isn't a real animal....

Tuesday, September 9, 2008

Snow Leopard will be Darker: More Hints

I've previously published two posts with sources and reasons as to why it seems that OS X Snow Leopard will have a darker UI:


Now, with iTunes 8 being released a few hours ago, I have more hints supporting the idea that Snow Leopard will be dark:
  • As I've posted some times before, Apple keeps a consistent user interface among their applications, being web, desktop, or even iDevices.
  • iTunes has a few times back predicted the future of Apple interfaces (darker toolbar, non-Platinum look, etc).
  • In iTunes 8, (only) in the Grid View, the scroll bars are darker. Sure, the scroll bars in iTunes have been non-Aqua for a while now, but this time around it's even darker. Also, the Grid View sub-toolbar has the same look as the MobileMe toolbar, meaning Apple's beginning to merge the interfaces....
I'm going to continue supporting the idea and hunting down proof for it. In the meanwhile, here are some screenshots from the Grid View:


Sunday, September 7, 2008

USB as an Anti-Piracy Measure?

After a bit of pondering, I found out USB could easily be used by companies as an anti-piracy measure. Here's why I think it would work:

  1. Today the industry lives off of DVD. DVDs get scratched easily. USB drives... not so much
  2. Companies are already used to hiding information on USB products (anybody say iPod?)
  3. More than just a serial number for anti-piracy protection: have a hidden file on the drive that counts how many times a file was accessed (such as a setup program). This isn't possible with DVDs.
  4. It's not as easy to copy the plastic of the USB drive as it is to copy a DVD label
  5. More environmentally-friendly: smaller packages since USB drives are obviously not as big as DVDs. For example, take a look at Vista's box... now imagine that wrapped up in a USB drive... much smaller!
If anyone has any other ideas or opinions, feel free to leave a comment!

C vs Python: Speed

Introduction
Python is a very popular interpreted scripting language. C is a very popular compiled language. Due to its compiled nature, C is generally faster than Python, but is lower-level, making Python programming quicker and easier than C programming.

The questions here are whether or not the extra time taken to run a Python program (without input) will be less cost-effective than its C equivalent and whether runtime time is more important than programming time.

Note: due to technical difficulties, I have placed parentheses around some symbols or removed some tabs from the Python examples

The Systems Program
I decided to make a simple program that resolves the following system of equations:

{ x + y = 14
{ x^2 + y^2 = 100

I quickly wrote the program in Python and found the answers. Then I translated the same program into C. I knew the same program in C would be relatively longer than the same written in Python, but that's not what I was looking for. But before we get there, here are my results:

Python:
x = 1
while x <= 14:
y = 14 - x
print str(x) + "|" + str(y)
if x**2 + y**2 == 100:
print "match"
x = x + 1



C:
#include (<)stdio.h(>)

int main()
{
int x, y, t;

for (x = 1; x <= 14; x++) {
y = 14 - x;
printf("%d|%d\n", x, y);
if ((x*x) + (y*y) == 100)
printf("match\n");
}
return 0;
}

Now, I've always heard that C was always one of fastest languages out there. Running both programs from the terminal, I didn't recognize any difference between the Python program and the C program, so I fired up the terminal in Ubuntu and typed:

time ./a.out
(The time command, followed by the normal command that could be typed without the "time" prefix, runs the command and times it - here, it is obviously the C program that's being tested) I got 0.001 seconds real time, 0 for the user time, and 0 for the system time. Now, time to test the Python version!

time python system.py
The figures got a bit scary here: 0.017 seconds for the real time, 0.012 seconds for the user time, and 0.004 seconds for the system time.

Sure, the difference for the real time is only sixteen thousandths of a second, but it can be a significant difference for larger systems that need to perform multiple calculations for long periods of time.

The Million Program
I decided to take this idea into hand and wrote yet another program that prints all integers between 0 to 1,000,000 including 0, which, of course, is not exactly of the same scale as the aforementioned possibility, but gives the computer a bit more to print out.

Python:
i = 0
while i (<) 1000000 print i
i = i + 1


C:
#include (<)stdio.h(>)

int main ()
{
int i;
for (i = 0; i <>
printf ("%d\n", i);
return 0;
}

now, time to test out the programs!

C:
real 0m24.625s
user 0m0.652s
sys 0m2.240s

Python:
real 0m29.805s
user 0m1.984s
sys 0m1.812s

Conclusion
I have to admit each language has its strengths and weaknesesses, but from these results, I only want to use Python for quick things like the systems program shown or for prototyping C programs, and C for programs where the time taken to process information matters more.

Either way, goals may be different for different people or different projects - what's your opinion?

Afterword
After testing and retesting various times, I have found that at times the programs can be faster or slower depending on what else the computer was doing (on my machine, the more processes were being handled, the faster the programs ran, oddly enough).

Sunday, August 31, 2008

Installing Ubuntu Packages Offline


Here's a neat feature of Synaptic that allows you to download packages without having Ubuntu connected to the internet.

Go to File > Generate Package Download Script
I saved the file as a shell script (.sh extension) and moved the file over to my Mac, which had an internet connection. I googled and downloaded a version of wget for OS X, copied it to /usr/bin and smoothly ran the package download script.

Then, I transferred the downloaded packages to my pen drive and dropped them off on my Ubuntu computer. I installed the packages, and now I have all the extra software I wanted installed without ever having needed to connect Ubuntu to the internet.

(Ubuntu 8.04 "Hardy Heron", original release)

Saturday, August 23, 2008

html backup second

portals





















html backup first


Subscribe to the feed! Click here!


Digg info updates by post







del.icio.us


Add to Technorati Favorites

Technorati Page









    follow me on Twitter


    The Rambling World

    Last night I started a new blog: The Rambling World: Thought, Philosophy, and Information.

    Please visit it!

    Friday, August 22, 2008

    Vista Interface Oddities

    There are two oddities I noticed in Vista Ultimate that take the new, shiny Aero interface back in time:

    1. Old MS-DOS-logo-like icon for Microsoft Pinyin after enabling Chinese input









    2. Old Windows XP mail icon in the desktop's contextual menu



    Microsoft should fix these up sometime soon....

    Tuesday, August 19, 2008

    Why XAML is Powerful


    Introduction
    XAML, Microsoft's eXtensible Application Markup Language, was released with the .NET 3.0 framework and works with the new technologies available in the once-called WinFx release of the framework, such as WPF (Windows Presentation Foundation), WF (Workflow Foundation), Windows CardSpace, and WCF (Windows Communication Foundation). Currently, I'm learning WPF, where XAML is used for building user interfaces.



    Ideas
    Being a markup language, XAML is inherently powerful (object-oriented pun not intended) for the pure reason that you can write your interface in XAML and use it in a variety of projects in the most various languages (in Microsoft's case, C++, C#, and Visual Basic - I'm not sure if J++ and J# are still around). This way, a project doesn't need to have its interface written in one non-compatible language, but rather in XAML itself, allowing the code to be shared across various languages.

    It would be especially useful if Linux distributions and APIs adopted this new markup-based way of marking up interfaces. Imagine if programmer is experienced in Python and at an intermediate levl in C and wants to write a GTK+ application, but wants some parts of the interface written not only in C but also in Python. The code would get confusing having one part of the interface in C and the other in Python (I'm not sure if this example is plausible, it's just an example) when the interface could be entirely written in a markup language, so that the two languages could easily access the markup file.

    Thought
    One could say XIB (on OS X Leopard) is copying off of XAML (on Windows XP SP2 and Vista) : they're both markup files used for interface implementation, but Xcode 3.0 development doesn't seem to have started until late 2006 or early 2007, while Avalon (the codename for WPF) was in development since before 2005. Recently, I've been finding Apple to be copying off Microsoft: OS X iPhone - Windows Mobile, XIB - XAML, icon size sliders in the Snow Leopard Finder (at least in the alpha version) - same feature was implemented in Vista's Finder. On the other hand, Application Services was copied by Microsoft and re-implemented as WCF. They both copy from each other, let's just put it at that ;-)

    Friday, August 8, 2008

    An Open Letter to Ubuntu

    Don't get me wrong on this - I love Linux and Ubuntu is one of my favorite distros, but there were some problems that temporarily turned me away when I was introduced to Ubuntu (and Linux in general) that I've noticed are affecting a lot of newbies on #ubuntu, too.

    Intrepid Ibex (8.10) is coming this October and here are some things that should be brushed up, especially for new users:
    1. Screen resolution and desktop effects are really hard to configure out-of-the-box with NVIDIA and ATI hardware.
    2. In package management, the names "universe", "multiverse", etc. should be replaced with something more understandable, like "free with source, proprietary, etc"
    3. It would be nice if it were more obvious on how to install themes, because the first thought is to extract the (usually) .tar.gz compression.
    4. Please, more support for networking devices!
    5. Make sound configuration easier and better support for some speakers that might otherwise reproduce very very soft sound. Forget alsa, pulseaudio, and all those names that don't make sense; make it simple.
    6. Imitate GoboLinux and Mac OS X filesystem-wise.
    7. Better built-in documentation would be greatly appreciated by new users.
    One good idea would be to do like the early Macs and Windows versions: include an optional tutorial on how to use Ubuntu; even though the interface is simpler, it may be unfamiliar on some terms. I was switching from Windows and I was surprised that Preferences was under the Edit menu instead of the Tools menu. It's those tiny differences that count. (Maybe offer a separate tutorial CD?)

    I'd like to see how well Ubuntu would do on a Mojave Experiment test. That would bring more results as to what needs to be reworked.

    See also here.

    Sunday, August 3, 2008

    Windows finally learns from Linux

    Check out this screenshot from the WinSuperSite: Windows 7 build 6519. Now apparently Windows has the same feature as Linux when it comes to program managing: having its own "Programs Explorer" and having the programs being divided into categories. Now I'll just wait for this feature to be added to OS X.....

    Free Software in the Stores

    Today I was in a France-based store called fnac here in Brazil and I noticed some interesting free software packages available on the shelves:
    • Ubuntu 8.04 "Hardy Heron"
    • Ubuntu 7.10 "Gutsy Gibbon"
    • OpenOffice.org 2.0
    • Freedows 2004 Standard and Professional (does this distro still even exist?)
    • Mandriva Powerpack (most recent version)
    Also check out my Linux in the Stores post.

    Safari 4 Bug


    When command+click-dragging the back/forward control in Safari 4, instead of getting the normal textured buttons as you're dragging it you get the old Aqua buttons...


    iPhone is the new DS

    iPhone 3G could be seen as a new Nintendo DS with a lot of better features:
    • cheaper games (ranging from free to about $10 for the average ones)
    • get games anywhere and on-the-go, including from the comfort of your home
    • better use of touchscreen technology than the DS
    • you can download more than games

    Overall. the iPhone has better features and overall better prices than the competing mobile gaming system, so I don't see why you couldn't say it's the new Pippin with success ;)

    Saturday, August 2, 2008

    Microsoft afraid of Apple?

    It seems Microsoft is afraid of what Apple could do to hurt their business. An internal memo sent out by Ballmer reads:

    A competing vertically-integrated model, in which a single firm controls both the software and hardware elements of a product, has been successful with certain consumer products such as personal computers, mobile phones and digital music players. We also offer vertically-integrated hardware and software products; however, efforts to compete with the vertically integrated model may increase our cost of sales and reduce operating margins.

    The only rising company we know does that is Apple. Maybe they're afraid OS X will soon the operating system market or that the iPhone will kill off Windows Mobile?

    As a side note, I have to say that the Mojave Experiment is quite convincing.

    Delicious goes Web 2.0

    del.icio.us is dead. Delicious is alive! And with a new look to it! What used to be one big bad-looking old-style HTML Perl application is now Web 2.0 and has all those neat vector drawings. There isn't much to say except that a picture is a 1000 words, and 1000 more when you actually look at it yourself, so click the link and check it out!

    Monday, July 28, 2008

    The Geekiest Nighthmare

    I just woke up from having what probably is the geekiest nightmare I've ever had. It was February 2009 and I'm on IRC using a weird client that I currently don't know what it is (it seemed like a mix between Colloquy and Linkinus but with a status bar at the bottom of the chat window). This nightmare probably came up due to me yesterday thinking about GPL and receiving some pretty weird spamvertisements on IRC. Here's how it goes:

    I was IRC'ing away when user Renoult sends me a private message saying that we should exchange photographs of leaves, trees, and flowers. I'm about to add him on ignore when user Linux*** (where *** stands for three letters I can't currently recall) joins the private message section (which isn't possible on IRC, I don't think) and starts saying to Renoult, "I'll help you with that," and the status bar shows messages of files in my home directory being copied to Renoult's computer. I try to force-quit the app but it doesn't work, I try holding the power button for five seconds but it doesn't work until I finally unplug the MacBook and take the battery out. I take a sigh of relief and look down to the ground, seeing the power switch I could have flicked off for the router, which I turn off just in case.

    I then look over to my cousin's PC apparently running XFCE with an OS X Jaguar theme and she's running Colloquy (or an IRC client that looks just like it) and looking at an ad in Firefox for how to win a free iBook (remember, somewhere in this nightmare I was warned that it takes place in February 2009), and I tell her about what happens and she replies with "I told you IRC was insecure and MSN is better."

    Then I wake up at 4:30 AM. It's one of those nightmares when it's really scary when you dream it but when you wake up it ends up sounding dumb....

    Sunday, July 27, 2008

    Google's being rude to ReactOS

    Google, mean Google.... :P

    If you google ReactOS, something like this will show up:

    Note the question mark at the end - it's like as if they don't believe in the project....

    heh, it's as if you google french military victories and press I'm Feeling Lucky

    Tuesday, July 15, 2008

    Presenting Like Steve Jobs

    We've all seen Steve Jobs' presentations and we all love them. We know they're the some of the best and certainly the most capturing. Now the secret is released. In 17 steps you can easily make your presentation Jobs-like:
    1. Set the theme in a single headline
    2. Make the theme clear and consistent throughout the presentation
    3. Provide the outline
    4. Open and close each section with a clear transition
    5. Demonstrate enthusiasm "extroardinary, amazing, cool"
    6. Wow the audience
    7. Sell an experience
    8. Make numbers and statistics meaningful - put them in context
    9. Visual, simple on the eyes
    10. Very little text
    11. One to two pics per slide
    12. Simple picture that doesn't overwhelm
    13. Demos, Videos, Dramatic Flair
    14. Give them a show
    15. Identify a memorable moment and build up to it
    16. Rehearse!!!
    17. One more thing.... (gives audience feeling of having an added bonus)
    Video Link (YouTube)

    Thursday, July 10, 2008

    The Dock got Dumber

    I was reading a Mac OS X 10.0 review and I'm surprised at how the Dock got dumber - it's not as customizable as it used to be. According to this old ArsTechnica article,

    The Dock may be moved to any edge of the screen, and may be pinned at either end. This feature has no GUI interface and was actually disabled earlier in the development cycle, but has been re-enabled in 10.0. It can be activated by a simple and widely documented hack. The result is a pop-up menu for pinning and relocating the Dock (shown above).
    Take a look at the screenshot. Sure, the options can be accessed via terminal commands (except the dock on top - that's gone in Leopard) but you know, it would be nicer if Apple let normal non-Terminal users get more customizability out of the OS. I know a lot of users who would love this extra push of customizability. I mean, I've done it before but I wish I had options in System Preferences or in the Dock menu for this.

    Tuesday, July 8, 2008

    Vala: A New Language Made Just for GTK+

    Vala is a new object-oriented programming language made by the GNOME project especially for GTK+. Its syntax is very C#-like but, like the original C++, Vala source code is translated to C code before compiling. The project is yet very new but I can see a lot of use in it and it's getting along pretty well. Take a look at it and support the project!

    Monday, July 7, 2008

    Linux in the Stores

    Linux hardware is finally starting to make its debut in consumer stores. Here in Brazil, in the store Saraiva, I noticed two KDE 3-based laptops, both apparently built upon some version of Kubuntu; one wasn't that customized and had the normal bar and K menu at the bottom, and the other one was so customized at first I thought it was Vista with the taskbar put on the side! I also the noticed the MacBook Air, the regular MacBook, and an iMac, all extremely overpriced (come on, Apple! Manufacture the computers in the countries and the price will be better). I was in the US recently and I find that not even having Macs is a sad, sad thing. I've met a lot of people who think Microsoft made their computer and Dell is their reseller, who think a computer crashing and getting viruses is an alright thing, and that Internet Explorer is the internet! Brazil is making an extremely smart move in the technology field and I proudly applaud the country for that.

    Patenting the Ribbon means Goodbye, Tab Views!

    If Microsoft tries to patent the Ribbon interface used in Office 2007, using tab views to allow the user to select certain tasks will be illegal. That's all the ribbon is - a nice-looking tab view with buttons and menus on it.

    I'm not saying I think the Ribbon is a bad thing; I actually really like the Office 2007 Ribbon, even though it was not well-ported to Mac OS X in Office 2008. (I think that for Office 2008, they should have a menu for each tab in the Ribbon in Office 2007 and have the menu items be what's in the tab view (which is all the Ribbon is, a tab view, nothing more)). I just don't think Microsoft should patent it because then anything involving tab views could be taken as illegal patent copying or whatever term one would use for it.

    This link probably has more info on the patent.

    post has been revised to better suit what I'm trying to get across

    Monday, June 30, 2008

    riverstream project begins

    It's begun. Click here.

    Wednesday, June 25, 2008

    Snow Leopard to be released near 11 March 2009?

    The QuickTime 7.6 About screen in Snow Leopard 10A96 says that it will expire 11 March 2009, a Wednesday. Maybe Apple doesn't want to release it on the 13th, a Friday (get it? Friday the 13th?). If so, this wouldn't be the first time Apple holds back a product release.



    Image and video hosting by TinyPic

    Monday, June 23, 2008

    Booting of a Live CD without a CD or an Emulator

    Yes, it's possible to boot off a live CD without any burnable discs or an emulator, especially if you have Mac OS X installed.

    1. Open Disk Utility in /Applications/Utilities/
    2. Create a partition just over the size of the disc image.
    3. Select your hard drive in the left table view and click on the Restore tab on the right.
    4. In the Source field, drag in the image from the left table view or select it through the selection dialog; for the destination, drag in your partition from the left side.
    5. Press Restore.
    6. Reboot, holding down the Option (alt) key.
    7. Select your Live CD partition.
    8. Enjoy your Live CD!
    If anyone knows how to do this on other OS's please leave it in the comments and it may be added here.

    Snow Leopard 10A96 Review

    Screenshots at the end of the post!

    I was recently given the opportunity to try out Mac OS X 10.6 Snow Leopard build 10A96. I got some screenshots (see the end of this post), and here's what I noticed about my experience:

    it really seemed a lot faster. With the battery at 98%, there were 5 hours 11 minutes left! Some screenshots were taken of the setup assistant and now instead of the little "Welcome" movie playing at first boot full screen, it runs in a window.

    Looking at System Preferences, the Desktop & Screen Saver pane was redesigned, and screen savers only work under 32-bit (or sysprefs can only set the screen saver under 32-bit mode). There is nothing really especially new in the system preferences, except a lot of things only work in 32-bit mode. And as I checked out the Apple menu with System Preferences running, you can force quit the specific app if you're holding down shift (this is probably in other OS X versions, though).

    The Finder was really interesting: now in the path bar you can change folder sizes on the fly, without having to press command+j for the options. It's also interesting to note that windows' close, minimize, and zoom buttons have higher contrast/brightness (I'm not really sure of the terms). Also, menu selections are a brighter blue.

    Also noticed was a new font panel and options for Spaces allocation in the Dock. Not only that, but the login screen is by default blue instead of the Aurora wallpaper. QuickTime is still version 7.6, not yet QuickTime X. Preview's PDF sidebar is redesigned and looks cleaner by using smaller font.

    The most annoying bugs I found are that dragging a file into a folder doesn't cause the folder to change into the open folder icon, indicating it's ready to accept the file, but accepts the files anyway. Also, you can't drag a file from a stack into the trash anymore.

    For "putting a pause button on new features," Apple was fibbing, but I guess that's a good thing.




    Image and video hosting by TinyPicImage and video hosting by TinyPicImage and video hosting by TinyPicImage and video hosting by TinyPicImage and video hosting by TinyPicImage and video hosting by TinyPicImage and video hosting by TinyPic

    Tuesday, June 17, 2008

    openSUSE 11 Review

    I know it's a day early, but I was able to get my hands on a copy of the release version of openSUSE 11 and I must say it's a really good distribution! Here are three lists of what I noticed, what I liked, and what I didn't like about this new release (the GNOME live CD, specifically):
    Free Image Hosting at www.ImageShack.us

    What I noticed
    • new icon for the home folder
    • boot speed - it was pretty fast for a live CD
    • new OpenOffice.org splash Free Image Hosting at www.ImageShack.us
    • Cheese - like Photo Booth but for Linux-compatible systems (but for some reason doesn't come preinstalled with Ubuntu)
    • Monsoon bittorrent client
    • Tasque task manager - for use with Remember the Milk
    • Default GNOME, openSUSE 10.2/3 wallpapers, the latter of which are available in HD and non-HD formats (one has greater resolution than the other)
    • openSUSE-related bookmarks in Firefox 3 Beta 5
    • screen resolution applet in the panel
    What I liked
    • comes with a "Quick Start" PDF in the home folder
    • automatically recognized my monitor's best screen resolution
    • latest version of GNOME (2.22)
    • fast OpenOffice load time
    • The GNOME default wallpaper is finally available in a distribution! FTW!
    • Out-of-the-box support for Asian text
    • XGL
    What I didn't like
    • Empty bin and public_html folders in the home folder without explanation (all the distros I have ever used don't have these)
    • I wasn't able to get desktop effects running automatically because of my nVidia card... again... (but this can be fixed easily here)
    • Num Lock isn't automatically enabled, like on every single GNOME distro
    Overall, it was a great distro and I really enjoyed it! I would strongly recommend everyone try out the gold master.

    Monday, June 16, 2008

    The McCANSA-Brazil License

    There's a new license in town: McCANSA-Brazil, short for Modified creative Commons Attribution-Noncommercial-Share Alike Brazil. This license is designed for any use, froom artwork to music, from video to source code, unlike many licenses that are more specific. For example, I use this license for all my Flickr stuff unless otherwise noted.

    For the more curious, here are the license's contents:
    1. Implications clause
    2. Distribution clause
    3. License Use clause
    4. Agreement clause
    5. Source Code clause
    6. Morality clause
    7. Location clause
    8. Brazil clause
    9. License Waiver clause

    Please note that this license is copyrighted and is not released under itself.

    Sunday, June 15, 2008

    Adding Address Book Contacts from Mail

    I was recently about to send an email to someone and wanted to add them to my Address Book in OS X, but I was surprised to see that there was no "Add to Address Book" option anywhere, especially since there were "Edit Address" and "Remove Address" options. So I sent this feedback to Apple:
    Since you can remove and edit Address Book contacts from Mail, it would be nice to be able to type in an email and select an "Add to Address Book" option somewhere.
    If you agree, please also send it to Apple, digg this post, or save it to del.icio.us

    Wednesday, June 11, 2008

    Snow Leopard Build 10A96


    In this first developer preview of Snow Leopard there isn't anything that really stands out yet, except that System Preferences shows whether or not the system is run at 64-bit (probably part of Grand Central) and some apps have been updated (Address Book is 5.0, Mail is 4.0, Photo Booth is 3.0, etc). And it's official: Snow Leopard is 10.6



    It's interesting to note how some apps were already being worked on by the end of May this year.

    Screenshots from OrchardSpy

    And just for fun: if get screenshots without the title bar (Command+Shift+4) and change its icon and file name and you can say to your friends, "Look I have Snow Leopard" when you really just have, well, Leopard.