Friday, October 24, 2008

Remove signature from custom Outlook form

Creating custom forms in Outlook is pretty simple, but the problem I ran into is that my signature was being put in the Message body every time. I did a little searching and found the solution to remove the signature from the custom form.

1. Open the form in design mode.
2. Run the form.
3. Delete the signature.
4. Use the "Design This Form" command to open the form again in design mode.
5. Publish the new form, which should no longer have the signature in it.

The original post where I found this is here. They listed something about versioning control, so if that's something you're interested in, check their post. I don't need versioning control so I was able to use the 5 steps above

Excel VB to convert cell values to hyperlinks

Update 2/24/09: I've noticed increased traffic to this post using keywords that make it appear that some of you are just looking how to create a hyperlink in an Excel cell, without the need for any VB code. If that's all you want to do, right-click on the cell you want and select "Hyperlink...". At the top you can enter the text you want to have visible to the user and displayed within the cell, and at the bottom you can enter the actual URL the user will be directed to by clicking on the cell. If you're looking to automatically convert a bunch of cells with URL's into hyperlinks, then go ahead and continue on to the original article.

I was presented with an issue yesterday. A user was getting a .csv export that contained a column with URLs, but those URLs were coming across as plain text in the export, rather than being clickable. They also wanted to hide the URL and display different text in the cell instead. So I did some digging, and some programming, and came up with the following for them:

Function CreateLink() As Integer
Dim row As Integer 'used to track the row we're in

Dim strLink As String 'used to store the URL that already exists as text in a cell
Dim column As String 'used to track the column we're in
Dim Cell As String 'used to combine the row and column into a cell reference value
Dim displayTxt As String 'used to set the text we want the hyperlink to display

displayTxt = "IMAGE" 'hyperlink will always show up as "IMAGE"
column = "G" 'existing text hyperlink values are all in column G
row = 2 'I had a header row so actual values start in row 2
Cell = column & row 'combine row and column in this case to get the Cell = "G2"

While Range(Cell).Value <> "" 'continue looping until the value in the cell is blank
strLink = Range(Cell).Value 'set the hyperlink value to be what's in the cell (G2 first time)

Range(Cell).Hyperlinks.Add _ 'add the hyperlink
Anchor:=Cells(row, column), _ 'sets which cell to add the link in
Address:=strLink, _ 'sets the hyperlink URL
TextToDisplay:=displayTxt 'sets the text to display. We wanted "IMAGE" only

row = row + 1 'go to the next row in the next iteration of the loop
Cell = column & row 'set the new cell value with the new row number

End Function

In our case, the url text existed in column "G", which is why I was able to set it statically above. Then I wanted to loop through the sheet to get through all the cells in the G column until there weren't any more values, which is where the While loop comes in. As I looped through the cells, I also wanted to convert the value within the cell to be a clickable hyperlink using the text that was already in the cell, and also change the visible text in the cell to read "IMAGE" so that's all the person would see.

I just put a call to this function in the SelectionChange portion of the worksheet properties. After it ran and converted the cells, I removed the VB code and saved the worksheet again. This ran pretty quickly and saved the user from manually going in and changing the display text on all the cells, and from changing the plain text representing the hyperlink to an actual hyperlink

Monday, October 20, 2008

Manage Microsoft Outlook custom forms

If you use custom forms in Microsoft Outlook, you may come to a point where you need to manage the forms that are available. If you need to remove forms, you can do so by going to Tools->Options->Other->Advanced Options->Custom Forms... This will allow you to delete those forms that you have published, but do not want to have available any more. You can also manage forms in the Organizational Forms Library from here too, if you have Owner permissions on the library folder.

Friday, October 17, 2008

Automating Linux processes with 'cron'

If you have been looking to schedule some type of task on your Linux machine, but aren't sure how to do it, there's cron. cron is the Linux task scheduler, and is a very useful tool. My use has been limited to Red Hat, so I can't vouch for the validity of this for other flavors of Linux. If you try it with another version and run into problems, consult the system documentation for cron's usage. In Red Hat, the system cron tasks are found at /etc/crontab. Any user-defined cron tasks are to be placed at /var/spool/cron. There are also more tasks found at /etc/cron.d. Using your favorite text editor, you can create or modify the cron files to include whatever command(s) you want to execute on a schedule. The syntax for a command within a cron file is as follows:

minute hour day month dayofweek command

Where the values correspond to:

minute: any integer from 0 to 59
hour: any integer from 0 to 23
day: any integer from 1 to 31, depending on the month you choose
month: any integer from 1 to 12 (or the short name of the month)
dayofweek: any integer from 0 to 7 where 0 or 7 represents Sunday (or the short name of the week such as sun, mon, and so on)
command: the command to execute

You can also use * as the wildcard to represent all possible combinations. Some examples:

Reboot the machine at 5am on February 7th
0 5 7 2 * /sbin/init 6

Reboot on Mondays at 7:30pm
30 19 * * 1 /sbin/init 6
30 19 * * mon /sbin/init 6

Reboot every hour on the hour
0 * * * * /sbin/init 6

For more information and a more detailed explanation, check out this page.

Thursday, October 16, 2008

Microsoft Diagnostics winmsd command in Vista

For those of you used to going to Start->Run and typing in winmsd to get to the Microsoft Diagnostics application, you may have had a little surprise the first time you tried it in Windows Vista. That's because the command has been changed. The new command in msinfo32, which you can use just the same as you had done with winmsd, allowing you to get to the Microsoft Diagnostics within Windows Vista.

Wednesday, October 15, 2008

Illustrator CS3 printing issue, status bar slow or frozen

I manage ~20 Mac designers, and we're mixed with Intel and PPC machines. They're all running CS3 now, and we recently updated our printer drivers due to some color issues. Things seemed to be ok, but then two of the users on Intel Macs started reporting that every time they printed from Illustrator CS3, the printer would kick out the actual document fine, but that Illustrator would be stuck with a print status bar on the screen and they would have to force quit. If they waited 15-20 minutes it would go away, but they can't wait that long between printing or using Illustrator. If you're running into the same type of problem, I may have a solution for you. I found it in the Adobe forums, and it is definitely not something I would have though of myself. Enable hiding of the dock. That's it. I did it on the machines that were having problems and they started printing fine without the delay. The users in the forum think that there's a problem with the print status bar that now appears under the Illustrator icon in the dock when you print, and that by hiding the dock it doesn't show that icon, which in turn means it doesn't have to do anything with the icon's print status. I was actually pretty amazed that something so minor could cause such problems, and be fixed with such an seemingly unrelated setting. The users I have are all running OS X 10.4.11, printing to a Xerox DocuColor 240 with a Fiery rip. Printing to other printers caused the same problem though, so it was printer independent.

If you were pulling your hair out trying to find a solution to this problem, hopefully this works for you. If you want to read the original post in the Adobe Forums, you can find it here.

Tuesday, October 14, 2008

Adobe Photoshop for free?

Ok, not really. Sorry if you feel misled. However, what I do have is a free, open-source Photoshop alternative that you can download and use as you with. It's called GIMP (GNU Image Manipulation Program) and you can find it at I've used it some, and almost anything I can remember reading about it was positive, so give it a try if you're looking for some type of image manipulation program.

How to delete an iPhone 3G application

First of all, you need to go to the main screen on the iPhone where you get your list of icons. Hold your finger on the application icon you want to remove, and after a few seconds all of your icons will start shaking. This means that they're in delete mode. Simply press the icon of the application you want to remove and confirm the removal.

Now that it's off your phone, you'll also want to remove it from your iTunes library. If you leave it in iTunes then it will be reinstalled on your phone every time you synchronize, which I'm going to guess you don't want since you're here looking for instructions on how to uninstall the application. Just go into iTunes, then Applications, find the one you no longer want and delete it

Monday, October 13, 2008

Using C# FileUpload in Visual Studio 2005

I can usually find the right item to use, but not always the correct syntax to use it. I did find the C# syntax for the FileUpload tool pretty quickly though, and thought I'd share.

if (Image1Upload.HasFile)

//change label to show upload starting
statusLbl.Text = "Uploading File " + Image1Upload.FileName;

//get current working directory on server and store as currentPath
String currentPath = Server.MapPath(".")
//create new path by combining current path and upload file name
String uploadPath = Path.Combine(currentPath, Image1Upload.FileName);
//upload file to your desired upload path

//change label to show successful upload
statusLbl.Text = "File Successfully Uploaded";
statusLbl.Text = "Unable to save the file";
statusLbl.Text = "You have to select a file to upload";

This has two dependencies, which are a FileUpload named Image1Upload, and a Label named statusLbl. Image1Upload is what's actually used for the file, while statusLbl is optional and is just used to display the status to the end user so they know whether the upload worked or not. You can also add folders to the currentPath variable in order to put the uploaded file elsewhere, for example:

//put the file in a folder called images
String currentPath = Server.MapPath(".") + "\\images\\";

You need to use double backslashes because it's the escape character. Also, in order to use the Path.Combine() command, you must include using System.IO; in your project.

The original post, along with VB instructions too, can be found here.

Track Windows Terminal Server users' logon and logoff usage

If you've ever been asked if you can track a user's usage from home, this may be useful. That is assuming that you have your remote users coming in to your system via some type of terminal services login. If you do, you can use simple batch files and group policy to log your user usage.

Create a login.cmd file with the following:

echo logon %username% %computername% %date% %time% >> \\server\folder\audit_logs\%username%.log

That will create a log file in the shared folder location \\server\folder with the given person's username, along with the computer they used to login and the date/time of their access.

You'll also want to create a logoff.cmd file:

echo logoff %username% %computername% %date% %time% >> \\server\folder\audit_logs\%username%.log

This will append a line to the existing log file for that user, with logoff in the beginning rather than logon. That will allow you to distinguish between logons and logoffs.

Keep in mind that the users you want to monitor will need to have write access to the folder where the logs are stored as their accounts will be the ones actually making the changes to the files. You can enable these files through Active Directory group policy. In your group policy, go to User Configuration-> Windows Settings-> Scripts (Logon/Logoff) and then set each to run at the appropriate time.

Friday, October 10, 2008

Adobe Photoshop freezes when opening a file in OS X

Apparently this is a known issue in all versions of Photoshop, or so it said in the Adobe forums. If you are trying to open a file in Photoshop CS3 but the application freezes, it might be a simple fix. If you have a CD/DVD in the drive, eject it. Otherwise, is you have any USB drives attached to your machine, eject those. I thought it sounded like a stupid idea to fix the problem, but I was the stupid one when I ran out of options and had to try it. Wouldn't you know as soon as the DVD was ejected, Photoshop started working fine. I had the same problem happening in Photoshop CS2 on that machine, and after the DVD was ejected that started working correctly too. I think Adobe needs to solve that problem because having a disk in the drive shouldn't cause an application to completely freeze. This may be the same for Photoshop on Windows too, but I only have experience with Adobe Photoshop CS2 and CS3 on OS X, and I know that it solved the problem for both of them.

If you did run across the blurb while looking for help with Photoshop CS3 for Windows, one thing you might try is changing your default printer. I found quite a few entries when trying to solve this on a Mac that said it was caused by having a networked printer set as the default in Windows. If you change your default to be a local printer, the problem might go away. Again, I didn't actually try this, but it's something else you can attempt if you can't think of anything else.

Wednesday, October 8, 2008

View another person's calendar with Entourage

First off, I'm assuming that you have permissions to view the other person's calendar. I'm also assuming that you're using an Exchange server for your email and calendaring. If both of those are true, then this should work for you.

1. Open Entourage
2. Go to File->Open Other User’s Folder
3. Click the button to the right of the “User:” box. It has the symbol of a person on it
4. In the box that pops up, type all or part of the person’s name, then click Find. This will search the global address list for the person
5. In the results, you should see the person you’re looking for. Click on their entry so it is highlighted, then click Ok
6. Now you should be back at the box from step #3. Make sure “Type:” is set to Calendar and click Ok

That will add that person’s calendar to your Entourage calendars. You can add multiple people if you’d like (just repeat the steps). To then view the other person’s calendar, go into Entourage, then to Calendars. On the left, you’ll see the Calendar Views section. There will be an entry for everyone’s calendar you have setup. To view someone in your list’s calendar, simply click on it and allow it to load. You’ll be able to see their appointments and when they’re busy. To get back to your own calendar just click on your own name.

If you want to remove someone’s calendar from your list, hold down control and click on their calendar entry. A menu will pop-up and you’ll want to choose “Remove from View”. It may then prompt you, and if it does, select Remove. That will get rid of that person’s calendar from your list of calendars.

Adobe CS3 updates link grayed out in OS X - manually start Adobe Updater

Maybe I'm one of the few that run into this problem because I have the Macs set up in Open Directory, but maybe not. I really think it's a permissions problem linked back to the Open Directory accounts. Most of the time it works fine after the CS3 install, but other times you just can't run the Adobe Updater using the link in the Help menu for Adobe Creative Suites 3. Using Disk Utility to repair the permissions doesn't work either. There is a workaround for this though. You can manually start the Adobe Updater, as long as you're an administrator, from the command line.

1. Open Terminal. It can be found at Application->Utilities->Terminal
2. Type the command sudo /Applications/Utilities/Adobe\ Utilities.localized/Adobe\ Updater5/Adobe\\ Updater and press Enter
3. When prompted, enter your password. If you have a root user setup, use that password instead
4. The Adobe Updater should start and you can go about updating like normal

When entering the command in step 2, one trick is to type a few letters and then hit Tab. If you've typed enough letters to make it a distinct entry in the folder, hitting Tab will fill out the rest for you.

This has worked for me 100% of the time (ok, so all 3 times I needed it) on machines that had the updates link in the Help menu grayed out in CS3. I had the problem a few times back when I had to install CS2, but never bothered looking this far into it. Who knows? Maybe this will help you bypass the same problem in CS2 too. Hopefully you have the same luck with it as I have

Tuesday, October 7, 2008

Use System Restore from Recovery Console

I ran into a problem where one of my user's laptops would get stuck just after the Windows loader, and trying to get into safe mode didn't work either. You're supposed to be able to use the Recovery Console to fix problems like this caused by a corrupt registry by following Microsoft's instructions from KB 307545. Instead, I found this thread with instructions on how to use System Restore while in the Recovery Console. When running a "chkdsk /r C:" from the recovery console wasn't enough, I gave this system restore option a try. It worked just fine and after I was done and rebooted, the system booted and I was able to login and do an actual restore using the GUI tool. In order to get to the recovery console, you can boot from your Windows installation disk and press R when asked to get into the repair section. If you'd rather not take use this system restore workaround, feel free to use Microsoft's instructions instead by following the link above.

When you get to the recovery console follow these instructions.
1. Type cd \ then Enter
2. Then cd system~1\_resto~1 then Enter. If you get an access denied error, skip down to the bottom of this post for now.
3. Type dir then Enter. When you hit enter it will list all the restore points folders like rp1, rp2 …….. If the restore points have more than one page then u have to keep on hitting the key to view the last restore point folder. You will have to choose the second to last option folder
4. Type cd rp {the second to the last restore point no. } (Note: Example: cd rp9, if rp9 is the second to the last restore point where the last restore point no. is 10
5. Then type cd snapshot Now the command prompt will look like this c:\system~1\_resto~1\rp9\snapshot
6. Type: copy _registry_machine_system c:\windows\system32\config\system and press enter
7. Then type: copy _registry_machine_software c:\windows\system32\config\software and press enter.

8. Type exit and press enter

I ran into the Access Denied error at step 2, and this workaround worked for me:

1. Type cd \ then press Enter
2. Type cd windows\system32\config then press Enter
3. Type ren system system.bak then press Enter
4. Type exit press Enter
5. After the machine reboots, go back into the Recovery Console and try again

Free FTP client for Mac OS X and Windows XP/Vista

If you deal with transferring files via FTP a lot, then you probably have an FTP client. If you don't have a client, you should. OS X actually requires you to have a client in order to upload to an FTP server, so it's a good thing there are a couple of free ones out there. In Windows it's built into Internet Explorer for both upload and download, but a client is nice to have anyway. Rather than paying for something like Fetch, why not save the money and check out one of these

FileZilla is a free FTP client for download that supports both Windows and Mac OS X. It also has a free FTP server download in case you're looking to host your own FTP site. I prefer FileZilla because it's can be used across platforms (supports XP, Vista, OS X, and Linux). That way you can support users on other systems who are having problems with it because you can familiarize yourself with it on whatever system you have. Plus it just works.

If you're on a Mac and don't necessarily like FileZilla, you can also try CyberDuck. It's very similar to FileZilla, and also has Apple's endorsement.

Disable email address autocomplete in Outlook

If you want to completely disable the autocomplete feature, within Outlook, go to Tools->Options. Then under the Preferences tab, go to E-mail Options, then Advanced E-mail Options. Uncheck the "Suggest names while completing To, Cc, and Bcc fields check box" and click Ok a few times to get back to the main screen. That will disable the autofill feature. If you want to know how to remove a single address, or how to copy the autocomplete file to another computer, you can click those links to be directed to my earlier posts about them.

Thursday, October 2, 2008

Creating a signature in Microsoft Entourage for Mac

If you're an Entourage user and want to create a signature to use with your messages, here's a how-to guide.

1. Create a new signature by opening Entourage, then going to Tools->Signature
2. Click New, then enter a name for the signature.
3. The signature creation box will open. Create your signature, and then close. You can add images to your signature by dragging them into the window. Save it when prompted
4. Close the signature list
5. Now go to Entourage->Account Settings
6. Click on the account and then click Edit
7. Go to Options
9. Under the Message Options area, change the Default Signature to be the one you just created and saved
10. Click Ok to get back to your normal Entourage window

At this point you can test your signature to see if it works. Try composing a new message, and if the signature doesn't show up, it's probably because your formatting is a little too fancy for plain text. You can fix that by going on to the next steps. If your signature does show up though, you're done and can skip the next part.

11. Go to Entourage->Preferences
12. Click on Compose
13. Under General, change the Mail Format to HTML.
14. Click Ok to get back to Entourage

Now your signature should be in place for your new messages

Set or change a Microsoft Outlook signature

If you don't know how to set up a signature in Microsoft Outlook, you've come to the right place.

1. Open Outlook, then go to Tools->Options
2. Go to the Mail Format tab, then click the Signatures button
3. Click on New
4. Enter a name for your signature, which can be anything you want
5. Now you can create your signature in the box below. Format it how you want, insert images, and do whatever else. Then be sure to save it.
6. Now make sure you select that signature to be used in your emails. You can create different signature to use in new messages and replies, or just use the same for both.

Click OK a few times to get back to the main screen and you're set. If you have multiple signatures and decide you want to change it up for an individual message, you can go to Insert->Signature and then choose which one to use for that message. This process would be pretty much the same if you wanted to modify a signature you had set up before. Go into Signatures, change the one you want, then save it.

View someone else's Outlook calendar

First off, this is assuming a few things.

1. You're using an Exchange server
2. Both you and the person you're trying to view the calendar of are on the same Exchange server
3. You have permissions to view the other person's calendar
4. You are using Outlook

If those four are all true, then you should be in luck. To view someone else's calendar should be fairly simple. Open Outlook, go to Calendar, then you should see some options on the left. One of those is "Open a Shared Calendar..." Click on that, search the directory and select the person you want to view the calendar of, then press Ok. To browse the directory, you can press the Name button. If the permissions are correct, the other person's calendar will open alongside yours within Outlook. You can toggle their calendar on or off by checking or unchecking the entry for them on the left of the window.

I'll be posting an entry on how to do this in Entourage soon as well

Rename file and append date or time stamp using batch script

I found an even easier way to do this, but have left the original post below. You can use a combination of environmental variables and substring commands to do the rename right inline. All you have to do is add the following, depending on what you want to include:

%date:~-4,4% - Year
%date:~-7,2% - Month
%date:~-10,2% - Day
%time:~-11,2% - Hours
%time:~-8,2% - Minutes
%time:~-5,2% - Seconds
%time:~-2,2% - Milliseconds

If you want to datestamp a file with YYYYMMDD, you can use the command

ren file.txt file-%date:~-4,4%%date:~-7,2%%date:~-10,2%

If you want to timestamp a file with HHMMSS (no milliseconds), you can use

ren file.txt file-%time:~-11,2%%time:~-8,2%%time:~-5,2%

Then you can also use any combination of those to create a date and time stamp if you'd like.

To see where I found this information, check it out here

Original Post

You can use a simple batch script to rename a file and add a datestamp to it. The code is below. You can modify the filename to be the path and name of the file you want. You can change "copy" to "ren" if you want to just rename the original. Leave it as "copy" if you want to create a copy of the file. You can also change the path where you add the date to the name too if you want to create a copy in a different location. Here's the example code:
for /f "tokens=2-4* delims=/ " %%a in ('DATE /T') do set THEDATE=%%c%%a%%b

copy /Y/V C:\filename.txt C:\filename%THEDATE%.txt
In the code above, THEDATE is defined by variables a, b, and c. Those stand for the day, month, and year.
a = month
b = day
c = year
You can rearrange them as needed, which I already did for my purposes. The code above with show the date as yyyymmdd. You'll want to make sure the lines of code all appear on the same line. I could've posted an image with everything looking nice, but this way you can copy and paste that code which I know most will be grateful for.
The original post that helped me can be found here. There is also more code in that post that includes using the time rather than just the date.

Wednesday, October 1, 2008

Restore Fortigate firewall and gain admin access

I'm not sure what happened, but at one point I ended up losing all access to one of our firewalls. It was a Fortigate-60, and there really was nothing I could do. It started out as not being able to login at all, but then it progressed to no web access, and even telnet wouldn't work. I contacted Fortinet support and they were able to help. You can reload the firmware by connecting to the firewall with the console cable (provided with the unit), and using a TFTP server to host the firmware image. You can find free software to create a TFTP server on your machine. The one I used is here from SolarWinds. Hopefully you have a backup of your configuration file though, because reloading the firmware this way will wipe out any information you may have already saved. I didn't have a saved config when I ran into the problem, but to me, it was either do the restore or have a useless piece of equipment so it was a no-brainer.

The instructions for the restore are found here, at Fortinet's official site. I had problems with my cable when I did it, but I didn't have the one provided so I had to make my own. It was a mess, but it accomplished what it needed to do if I held it in just the right position... If you're like me and end up misplacing cables, you can make your own too. Hopefully it comes up better than mine did. The pin-outs for the cables can be found here. The process ended up being pretty simple, and afterwards my firewall was as good as new. Hopefully this doesn't happen to you, but if it does and you find this post, you should be able to get it back up and running. Good luck!

DIY Ethernet patch and crossover cables

If you want to make your own ethernet patch cables, then you need to know the correct configuration of the colors on each end. If you don't know the colors, they are:


That also happens to be the correct order, from left to right, of a straight-through patch cable. That's the most common, and used for network traffic. You can also create a crossover cable for specific uses. If that's what you want, then the order of colors is a little different. I'm including a couple of pictures to make it easier for you.

Crossover Configuration

Straight-through Configuration (standard)

Then all you need is some Cat5e cable (or Cat5, or Cat6, whatever you want to use), a few RJ-45 jacks, and possibly a patch cord tool that will help with the crimping of the jack. I've done it with a pair of pliers and a screwdriver, but trust me, the crimping tool is MUCH easier. One other thing to keep in mind is that some RJ-45 jacks are easier to work with than others. Check where the wires go into them, and make sure that they are flat, straight vertical separators for each wire. I've tried using others that are round holes, and some that are staggered high and low, but that just makes for a hard time of getting the colored wires into the right spot. The plain, straight vertical separators are by far the easiest to use.

Install or remove fonts in Windows XP or Vista

First off, you can only use TrueType or OpenType fonts in Windows, so if you have PostScript fonts you're stuck. There are ways to do it, but they're not openly supported in Windows. If you need to do it anyway I'll add a quick blurb about it at the end of this.

If you're running Vista, then it's really simple. Just right-click on the font file and choose Install. That will install the font on your system.

If you have XP then there are two options. One is to copy and paste (or just move) the font file into the C:\Windows\Fonts directory. That will install it on the system. Or you can do it through the Control Panel, which is how Microsoft shows how to do it. If you want to remove a font, just go in and delete it from the Fonts directory.

To uninstall fonts in Vista you're best off using the Control Panel. Go to Appearance and Personalizations, then choose Fonts. Select the font(s) you want to remove, then go to File->Delete. The Microsoft article for this is found here.

Now, about PostScript, you have to install additional software in order to use the fonts. You also must have a printer that supports PostScript, and not all of them do. If you have Adobe Type Manager, then you're in luck. Here's an article that explains how to do it: There may be other ways, but I've never bothered looking into them since I don't really need any fonts other than the defaults.

Free Internet connection speed and bandwidth test

My favorite is at You can find it at It's Flash-based, so you need to have Flash installed for it to work. You have different options of where to test the connection to, but they're limited to the United States.

If you're from outside the US, another option is It lets you pick from several different locations around the world to test your connection, so you can find one close to where you will be downloading/uploading to. I actually just found this one, and after looking at it, it may be my new favorite.

Here are some others: