Thursday 25 February 2010

Win7Tip: Hover don't Click

You must unlearn what you have learned. Yoda - The Empire Strikes back





Having worked with Windows 7 for a few weeks now, when working with the taskbar, hover don't click. What I mean by this is with XP, taskbar interactions require a lot of clicks. If you want to minimize an application, click its name on the task bar. If you want to give the application the focus you click it.







Well doing that in Windows 7, always seems to result in two clicks. One to select the application you want, and once to select the Window. But this is not what you want to do. Instead, try hovering over an application on the task bar. The open windows for that application will automatically pop up. If you hover over once of the mini preview windows as shown above, then Windows 7 hides the other open windows and highlights the window being hovered over. Once you know which window you want, then you click it.



Its a completely different mindset, but once you get used to it, hovering will become your friend.

Wednesday 24 February 2010

GoogleTip: Set the Default Font Size in Google Sites Wiki

Google LogoGoogle has a great free wiki at http://sites.google.com. Although it lacks some of the cool features of its predecessor (jot), it is still a really nice wiki.



The problem I have been running into is there seemed to be no easy way to set the default font size for a page. Using the built in formatting options, you can highlight all the text and then set the font. However, this does not actually set a global font, but instead wraps each piece of content with nasty <font> tags. Then when you add some new text, it does not get wrapped and you end up with a mess.



Google Sites does actually allow you to edit the HTML directly, with some limitations. (This is how I found out about the nasty <font> tags.) For example, you cannot use the style tag to add CSS to the page. However, you can use style="" attributes to tags. So, to set the default font do the following.

  1. Edit the page and choose the HTML option to edit the page.

  2. At the top of the content add the following: <div style="font-size: 11pt;">


  3. At the end of the content add </div>

Now by just adjusting the font point size in the <div> statement, you can control the default font size for all the content between the

<div> tags.

Tuesday 23 February 2010

Unix: Add a User Account in Solaris

Since it seems like I have to set up a new Solaris VM every year or two, adding a new user is a part of the process. So instead of having to look this up again, I thought I would write down the steps this time.



  1. Log into Solaris as root

  2. Type the following command to add a user:



    useradd -d /export/home/username -m -s /usr/bin/bash -c "User Full Name" username

  3. The -d option specifies where to create the users directory. The -m option actually creates the directory if it does not exist. The -s option sets your default command line shell. -c sets the users full name. The new username is the last option on the command line. This sets up the account, but does not set the password.

  4. To set the password type: passwd username

  5. When prompted enter the new password twice.

That's it. You should have a new user account all set up. Log out as root and you can log into your new account.

Win7Tip: No Command Prompt Text Editor in Windows 7





One of the utilities I have used a lot since the days of MS-DOS is the edit command line editor. It is like vi for Unix, its the editor that is always there on any system.



Well with Windows 7 64 bit, its gone. After Googling around for it and such, I finally ran across a definitive statement on the subject. In Windows 7 64 bit, a number of DOS utilities have been discontinued and Microsoft has created a list here.



So this begs the question, is there something I can use as a command line editor? Well so far, the only thing I can find is a 64 bit version of VI Improved (VIM). I have not had a chance to try it out yet, but it looks promising. And of course, if you are not a Unix person, this editor is not for the faint of heart. :)  But it looks like the best option available at the current time.



Update: There is a Windows version of the Nano editor. It is quite a bit easier to use than VI. Get Nano for Windows here.

Monday 22 February 2010

Looking Ahead...

As many of you have noticed, the new shsh files contain a new key named APTicket. I still need to do a more thorough investigation of this key but my gut tells me that it is an indication that Apple intends to try to stop us from bypassing their TSS server for local restores.



My guess is that in future versions of iTunes, Apple will probably handle the TSS request/response and later this year implement the code to process the response in the actual bootrom of the device. Here's what I mean:



  1. The newer iTunes versions will send a certificate request in the TSS request by adding a new key to the TSS request.

  2. Their TSS server will create a new certificate with an effective date attached to it. (Making it invalid if used after that date)

  3. Until the new bootrom rolls out, iTunes will handle the decrypting of the response blobs using the nifty new signed certificate response ala APTicket.

  4. Once Apple ships new devices with the bootrom capable of validating the new APTicket (or whatever they call it in the future) they can add logic to check the bootrom of the device and conditionally process the response from the TSS server(for old bootroms) or allow the device to process it(for new bootroms).

Looking at the above, it's a fairly bullet-proof means of stopping local restores. Since the APTicket will be signed and likely shsh'ed I wouldnt be surprised if they load APTicket or something like unto it BEFORE the LLB is loaded. This way they can not only control what VERSION of the firmware you install, they can also control WHEN you can install it by a means with far longer and sharper teeth.



If they implement the above, the only means of restoring will be via jailbroken device.





Fun times ahead for sure...

Wednesday 17 February 2010

Win7Tip: Must have Free and Open Source for Windows 7

Since I am setting up a new Windows 7 machine. I though it might be a good idea to cover some of the standard applications I like to install. Most of them are free and open source.



Browsers

I like to run multiple browsers. Firefox as a development and default browser. Chrome or Safari for web surfing, and SeaMonkey for those multiple profile sort of situations.



Chrome  Firefox  Safari  SeaMonkey





Development

Cygwin - Want a Bash shell on Windows? Want some of your favorite Unix utilities?  Then Cygwin is for you.

Java - Must have the JDK.
Notepad++ - It is always a good idea to have a good native programming text editor around. For those times when you need a quick tweak or just want to view something. For Windows, Notepad++ is the best option out there.

NetBeans - A great Java open source IDE.

SQLite - File based SQL database.

Subversion - Windows 7 64 bit command line version.





Internet

Filezilla - A secure FTP client for Windows. When transferring files with a Unix system, FTP or SFTP is still your best choice.

Pidgin - Best open source chat client for Windows.
Putty - Windows SSH and Telnet client
Thunderbird - Mozilla's awesome e-mail client.





Office

Open Office - Open source office suite.

Paint.net - Open source graphics program

SVG Anti-Virus - Great free or paid anti-virus you can buy and install online.

Win7Tip: Create Unix ls and ls -l replacements

Q: Is there an equivalent the Unix directory commands ls and ls -l on Windows 7?

A: Yes there is, the dir command.

ls is equivalent to dir /w

ls -l is equivalent to dir



My brain is so hardwired for the bash shell now, that I make batch file equivalents for these programs. I create the following programs in the c:\Windows directory. To create files in this directory under Windows 7, you need to run as Administrator



ls.bat

@dir /w %1 %2 %3 %4 %5



The 5 numbers allow you to add parameters to the command for example ls c:\directory.



For a long list I use the common alias of ll.

ll.bat

@dir %1 %2 %3 %4 %5

Sunday 14 February 2010

Subversion for Windows 7

I was looking for a 64 bit Windows version of a command line client. Found this silksvn client and it seems to work fine.

Saturday 13 February 2010

Win7Tip: Turn Off Auto Logoff and Logon

Q: After 15 minutes of inactivity, my Windows 7 laptop logs me off the machine. My screen saver settings do not require a password. How and where do I turn this off?



A: This "feature" is not part of your screen saver settings. As you might guess, it is part of your energy settings.



  1. Navigate to your screen saver settings.


    1. Right click on the desktop.

    2. Select Personalize from the popup menu.

    3. Click on the Screen Saver Icon in the lower right corner of the screen.


  2. Click on the Change Power Settings link.

  3. This should bring a list of power plans for your machine.

  4. Click on the Change Plan Settings option for the currently selected power plan.

  5. The Edit Power Plan settings dialog is displayed. You can set all sort of power related options here. (But we must dig deeper. )

  6. Click on the Change Advanced Power Setings option.

  7. This brings up the Advanced Power Options dialog. At the top of the dialog, you should see a Require Password on Wakeup Option. This is the setting that is logging you off your machine. But the options are grayed.

  8. To change the Wakup setting, click on the Change Settings That Are Currently  Unavailable link.

  9. Clicking on the link enables you to change your wake up options.

  10. Change the wakeup options from Yes to No.

That's it. Your machine should no longer automatically log you off your computer.

Friday 12 February 2010

Windows 7 Tips



Because of some changes at work, I am gonna be using Windows a lot more. And in my case, I am upgrading from Windows XP straight to Windows 7. I have never really used Vista at all.



So I'm going to be posting tips in a FAQ format as I figure them out. It seems everything is there from before, but is always in a different place. :) After I get a few of these tips posted, I will create a summary page that I hope other people will find helpful.

Win7Tip: Configure the Screen Saver in Windows 7

Q: Where do I configure the Screen Saver in Windows 7?



Answer:

  1. Right click the desktop.

  2. Choose Personalize at the bottom of the menu.

  3. Click on the Screen Saver Icon in the lower right hand corner of the dialog.

At this point the dialog is pretty much the same as it was before in XP.

RatingBar

A RatingBar is an extension of SeekBar and ProgressBar that shows a rating in stars. The user can touch/drag or use arrow keys to set the rating when using the default size RatingBar. The smaller RatingBar style ( ratingBarStyleSmall) and the larger indicator-only style (ratingBarStyleIndicator) do not support user interaction and should only be used as indicators.

RatingBar

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyleIndicator"
android:id="@+id/ratingbar_Indicator"
/>
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyleSmall"
android:id="@+id/ratingbar_Small"
android:numStars="20"
/>
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyle"
android:id="@+id/ratingbar_default"
/>
</LinearLayout>


AndroidRatingBar.java
package com.AndroidRatingBar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.Toast;

public class AndroidRatingBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final RatingBar ratingBar_Small = (RatingBar)findViewById(R.id.ratingbar_Small);
final RatingBar ratingBar_Indicator = (RatingBar)findViewById(R.id.ratingbar_Indicator);
final RatingBar ratingBar_default = (RatingBar)findViewById(R.id.ratingbar_default);

ratingBar_default.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){

@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
// TODO Auto-generated method stub
ratingBar_Small.setRating(rating);
ratingBar_Indicator.setRating(rating);
Toast.makeText(AndroidRatingBar.this, "rating:"+String.valueOf(rating),
Toast.LENGTH_LONG).show();
}});
}
}


Download the files.

Thursday 11 February 2010

SeekBar

A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys.



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<SeekBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10px"
android:id="@+id/seekbar"
android:max="100"
android:progress="50"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/seekbarvalue"
android:text="50"
/>
</LinearLayout>


package com.AndroidSeekBar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;

public class AndroidSeekBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

SeekBar seekBar = (SeekBar)findViewById(R.id.seekbar);
final TextView seekBarValue = (TextView)findViewById(R.id.seekbarvalue);

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
seekBarValue.setText(String.valueOf(progress));
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
}
}


Download the files.

Wednesday 10 February 2010

Google Announces Buzz

Google LogoYesterday, Google announced its now Buzz service. Essentially, this new service will allow you to include your Twitter feeds, RSS Feeds, and Chat all in your GMail Inbox. CNet reviews the concept here.



Since the tool has not been rolled out to my account yet I haven't had a chance to try it. But my first impression is this seems like a bad idea. With e-mail I try to read and process all the messages I receive. Twitter and RSS feeds are completely different. Those I browse for just the stories that interest me. Sometimes I might miss a day or two of the feed. There is simply too much information to read it all. Having this avalanche of data pile up in my inbox does not seem like an improvement to my data browsing habits. But I will reserve further judgement until I have a chance to try it out.

Tuesday 9 February 2010

MacTip: Taking Screenshots with Mac OS X

OS X PictureMac OS X includes a number of key combinations which allow you to take screen shots. The available options are as follows:











Key CombinationResult
Command+Shift+3Capture entire screen and save as a file on the desktop.
Command+Control+Shift+3Capture entire screen and copy to the clipboard.
Command+Shift+4Capture dragged area and save as a file on the desktop.
Command+Control+Shift+4Capture dragged area and copy to the clipboard.
Command+Shift+4 then Space barCapture a window, menu, desktop icon, or the menu bar and save as a file on the desktop.
Command+Control+Shift+4 then Space barCapture a window, menu, desktop icon, or the menu bar and copy to the clipboard.


With OS X Leopard, the files are saved as PNG files. With the clipboard option, you can save the image to a graphics tool, or use Preview and select File -> New Image from Clipboard.

GoogleTip: Movie Showtimes with Google

Google LogoHave you ever wanted to check movie showtimes really quick? Well then, a simple Google search is all you need. If you type in the word "movies" or "showtimes" along with a zip code in  Google search box, voila! You get a list of theaters, movies and times. For example. If I want the movie times for the 80021 zip code I could type:



movies 80021

or

showtimes 80021



And you get a link at the top of your search page like this:





Once you click on the link, you get a page like this:



Quick and convenient. Enjoy.

iPhone 3GS, iPod Touch 2G/3G 3.1.3 Support

I've updated Umbrella / TinyTSS to now support 3.1.3. If you haven't downloaded v221 yet please do so as there were a couple of cosmetic bugs that I've fixed as well as a potential issue with iPod Touch 3g/2g support for 3.1.3.



As always stay away from official updates if you value your jailbreak and/or unlock.



Download



fw-umbrella-semaphore-221.zip md5: 6960e53fa85f3f6343589c921694bd68

fw-umbrella-semaphore-221.zip sha1: ebea6b514f193581b7c4bd2172481301c2c2014a

umbrella.exe md5:  03d9c7efdc6de141d5cb43bbd4dc6f7e

umbrella.exe sha1:  537aaae02e7c479bb9ed059ced834cc3f4b03bcc

tinytss.exe md5:  5d71e1b1bbd621f428d405ba803af274

tinytss.exe sha1:  866ad898b101500b42502afcb5cf167e60126eb5

umbrella64.exe md5: 59fc7ea5b38b2f84113dfe4359b1a6ef

umbrella64.exe sha1: 31761f2d9eeeda76eade5aea9e1ecb9da24980f9

tinytss64.exe md5: 3a76d3c51fc0bf3bea1193068246c9c2

tinytss64.exe sha1: f1e8ed05d02c6a0654b4ec859904c0beda5e1586

Umbrella.dmg md5: c83dfdbe45efde8036382c087d833864

Umbrella.dmg sha1: 57b5390aa3bb7dc527a2f08924e4b646b15612cf

Friday 5 February 2010

ProgressBar

ProgressBar is a visual indicator of progress in some operation. Displays a bar to the user representing how far the operation has progressed; the application can change the amount of progress (modifying the length of the bar) as it moves forward.

ProgressBar

This exercise implemenets a default circle ProgressBar and a Horizontal ProgressBar.

For the Horizontal ProgressBar, a Runnable Thread is implemented to send a message to a Handle to increase the progress of the ProgressBar.

Modify main.xml to add two ProgressBar.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressbar_default"
/>
<ProgressBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:id="@+id/progressbar_Horizontal"
android:max="100"
/>
</LinearLayout>


Modify java code.
package com.exercise.AndroidProgressBar;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;

public class AndroidProgressBar extends Activity {

ProgressBar myProgressBar;
int myProgress = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

myProgressBar=(ProgressBar)findViewById(R.id.progressbar_Horizontal);

new Thread(myThread).start();
}

private Runnable myThread = new Runnable(){

@Override
public void run() {
// TODO Auto-generated method stub
while (myProgress<100){
try{
myHandle.sendMessage(myHandle.obtainMessage());
Thread.sleep(1000);
}
catch(Throwable t){
}
}
}

Handler myHandle = new Handler(){

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
myProgress++;
myProgressBar.setProgress(myProgress);
}

};

};
}



Download the files.




Related article:
- ProgressBar running in AsyncTask



Thursday 4 February 2010

Win7Tip: Set the Path in Windows 7

Q: How do you set the path in Windows 7?



A: From the user interface, do the following



Click Start -> Computer -> System Properties -> Advanced System Properties -> Environment Variables -> Select Path under System Variables.



The computer option can be found on the right side of the Start menu. The System Properties option is on the main menu of the Computer dialog.



It seems to work pretty much like it did in XP. It is just a little harder to find.

Stupid Bugs...

I made a significant error in 217 & 218. Don't worry. I didn't do anything that would compromise your shsh files. All that was happening was I was parsing the xml in TinyTSS incorrectly. This was causing a rather egregious error (nasty stacktrace).



I've fixed it and confirmed it for iPhone 3G, 3GS, iPod Touch 2G and 3G. I appreciate all of your help detecting this bug.



Download below or using the link to the right.



*UPDATE - I've fixed the issue on Windows 7 (et al)



Sorry for the inconvenience.



Incidentally Apple has introduced a new field APTicket with a data tag. As of now it is not used in the restore process (but since I have not updated to 3.1.3 nor iTunes 9.0.3 I don't know as-yet what it is used for... so buyer beware.



Umbrella & TinyTSS 220



fw-umbrella-semaphore-220.zip md5: 59c7afe07c23ecbff596eed531b098b8

fw-umbrella-semaphore-220.zip sha1: ce4f485edd8c30dbd28041cb06cc20b094a01139




umbrella.exe md5:  601d958a151487bdfd80aa82d1211128

umbrella.exe sha1:  3becd13e47f05d7eb6e41401f13da6b029b07bbb

tinytss.exe md5:  e9eeee3076334d0b00d3f186291fcfa2

tinytss.exe sha1:  6dac362f2a9ff0b51f2dde63387da43f808f7c2f

umbrella64.exe md5: 3320655f7ee2876bc0061c5a4e86166d

umbrella64.exe sha1: 35f9dec07af080e81c5e2baa902d4e70fd99f6b4

tinytss64.exe md5: 6acb96c94cd5ff02651e8cad682e993c

tinytss64.exe sha1: efa529d5aeaadbfaba1bd875f14d4be7bda1c59f

Umbrella.dmg md5: 3796408855a4718b311b4639307d4cb3

Umbrella.dmg sha1: ce69929766b7cc836d6746813e0a7569367c5d74




*UPDATE - Speedy_AZ from DevTeam's community put together what I believe is a great tutorial. You can find it here:


Downgrading Tutorial - Mentions Umbrella & TinyTSS

Wednesday 3 February 2010

iPhone OS 3.1.2 Locked

We all knew it was coming. Now it's here. Apple has stopped signing 3.1.2 shsh requests. 3.1.2 is the best that iPhone users, in particular, will have it for quite a while.





NO ONE will be able to get your 3.1.2 shsh files now. Not Cydia. Not Saurik himself. Not Rock Your Phone. No one. (Outside of Apple that is :) ). Umbrella won't be able to get your 3.1.2 shsh files any longer either.



Brace yourselves for the weeping and wailing and gnashing of teeth of those that 'accidentally' update to 3.1.3...

Custom Blogger Feeds

The bloggerdesign blog has this article on how to get custom feeds from your blogger blog. Basically, you use your labels to get topic specific feeds. The result is just the posts for that label in an atom format.



The basic format is:

http://blogname.blogspot.com/feeds/posts/default/-/labelname



Where blogname is your blogs name on blogger. The labelname is what

appears in the URL of your blog label page.



Here are a couple example URLs from the article.



Example URL: http://googleblog.blogspot.com/search/label/personalization

Example Feed: http://googleblog.blogspot.com/feeds/posts/default/-/personalization





This approach does not appear to work with FeedBurner, but I think I really only want to annoy folks with ads in my main feed anyway. :)

Tuesday 2 February 2010

iPhone OS 3.1.3 Released

They've released iPhone/iPod Touch 3.1.3 and so far are still signing 3.1.2 (as of 2/2/10). This doesn't mean that tomorrow (2/3/10) they'll continue signing 3.1.2 shsh requests. We're getting close to another drought. We've been surviving in 'years of plenty' and the 'years of want' are coming.



Ok all biblical analogies aside. 3.1.3 firmware offers zero substantial value. All it does is close the holes that enabled 3.1.2 to be jailbroken. Please, warn your friends, neighbors anyone that will listen. Have them save their shsh on Cydia or if they have even a remote amount of technical savvy, download the firmware umbrella and save their own shsh files locally.



3.1.2's days are numbered... This is probably the best we'll have it for a very long time. (My guess is late summer if any 4.0 potential exploits survive...) 



Incidentally, I'll have Umbrella/TinyTSS updated for 3.1.3 signatures soon. I'm in no hurry as 3.1.3 is worthless...



*DO NOT UPDATE TO 3.1.3 IF YOU HAVE ANY DESIRES OR NEAR-FUTURE DESIRES TO JAILBREAK*



(Even if you have your shsh saved, I still wouldn't mess with it...)



*UPDATE: If I'm not mistaken, 3.1.3 also has the added bonus of updating your baseband to 05.12.01.



This is HUGELY bad for folks relying on having an unlocked iPhone. This means that even if you have your shsh saved on Cydia or locally, there is nothing you can do to get your baseband back to an unlockable version if you update to 3.1.3 out of curiosity.

Site Updates

Over the weekend I made some cosmetic updates to the site. You will notice a newer "blue sky-like" header. It adds some much needed color to the site. In addition, I updated the CSS and removed the boxes from the headings for posts. Just wasn't digging the boxes any more. So you will see some lines separating the posts.



Finally, I added a "Lastest Posts" section at the top of the right column. This should allow you to scan the latest posts on the site if you stumbled upon the site with a browser. I using a built in Blogger widget for this. I would really like to have more post headers there and style each line a little bit better. So I may be rolling my own widget to do that in the future.



Update: The widget just isn't working. So you won't see in the right column until I can write my own.

MacTip: Switch Between Windows within Applications or Between Applications

Q: On my Mac, using a keyboard how do I switch between windows within an application or between applications?



A: Use Expose. By default Mac OS X assigns three function keys to assist you in managing windows.



F11 - Hide all open windows.

F10 - Show all open windows of the application with focus.

F9 - Show all the open windows of all applications currently running.



Once the function key has been pressed, you can use the arrow keys to select the window of your choice.



If you have a multi-button mouse, you can also assign mouse buttons to perform the same function as the function keys.