I've been trying to implement David Allen's Getting Things Done productivity system, in particular the to-do lists, for a little while. This hint isn't exclusive to that system -- it would work for any to-do list, or any document that a single user wants to edit from multiple locations, for that matter.
My main criteria for a useful to-do list were that the lists be available from any of my three computers at any time, and that they be as easy as possible to use (including drag-and-drop list ordering -- I can't stand having to set priority numbers!). For a while, I optimized on my first criteria by using an online wiki, but the editing wasn't nearly as drop-dead easy as a native Cocoa app. I considered using OmniOutliner, which has a much better interface, but keeping track of different versions of the to-do list would be more of a hassle than I wanted.
Finally I found a happy medium: an Applescript wrapper for OmniOutliner that will automatically sync to my main machine before and after I make changes.
Apple uses Broadcom chipsets in their AirPort cards (at least the 802.11g ones), and a lucky little thing in both Tiger and Panther (maybe Jaguar, too) is that if you have a Broadcom chipset connected via the PCMCIA slot in your computer, the OS will treat it as if an AirPort card had been installed -- with no configuration or software whatsoever.
Now, even better, Broadcom sells their chips to generic manufacturers, which allowed me to schlep down to Fry's Electronics and purchase a "PC only" generic wireless 802.11g notebook adapter for $14 (with a Broadcom chipset), slap it in my PowerBook (that's really all you've got to do), and enjoy wireless connectivity at a greater speed and price that would have otherwise been possible.
I have been testing this out on my 500mhz PowerBook G4, and it has been working as primary mode of connectivity for some time now (about five months), and has let me get wireless on my laptop (802.11g, even) for a grand total of $14, compared to the $120ish Apple would have charged me for an original AirPort card (that is slower).
This method is "plug and play," as in you put the card in, go into Network Preferences, and it says that you now have AirPort (you can even drag the PCMCIA icon out of the menu bar for that clean look). However, it isn't "unplug and play again without a restart." You cannot take the card out while the computer is on and the put it back in again. For some reason in both Panther and Tiger, it requires a restart for the system to recognize the card as an AirPort card again. You also cannot use the PCMCIA menu to turn the card off, then turn it back on again and use it.
Workarounds: You can turn off AirPort using the AirPort drop-down menu. As far as I can tell, this accomplishes the same end. While your computer is asleep, you can take the card out and put it back in before the computer wakes up (for transporting in a small case, for example), and your computer will be none the wiser. If you don't put it back in before the computer wakes up, then you will have to restart, which is a pain for those of us who try to have run times measured in months rather than days (though following a few guidelines can prevent restarting from ever having to happen).
This is sort of a "try at your own risk thing," as I have no idea whether this method works on computers other than my own, though I have no idea why it wouldn't.
When I'm surfing the web at home, I am easily able to use my DNS server to block content that I don't want to see on web sites. Though I'm using a Gentoo box (can't quite afford the nice Mac server I want), this hint covers this process on an OS X box.
Since I have a PowerBook and often surf the web at all sorts of places, I got to thinking of a way to do this locally. With DNS, adding a simple 'deny' entry is easy, but using someone else's DNS server usually means I don't have access to their config files.
Another way to do this is to redirect the DNS to point to a false IP address. The easy way to do this is to use /etc/hosts. By aliasing the DNS name of a site I want to block to 127.0.0.1, I can block all traffic to that site. Using sudo nano -w /etc/hosts, add the DNS names of the sites you want to block after the IPv4 localhost entry, separated by spaces.
No logout or restart is needed, just a refresh of the page. Since this blocks the site at the DNS level, this should work with any web browser.
Of course, I do not recommend using this on all ads, especially on free sites you support, since those sites most likely make a good portion of their money off of ads, thus keeping their site free! I do recommend this solution on sites with an excessive amount of ads (including pop-ups and/or pop-unders), or sites that have ads not particularly appropriate to a school or workplace environment.
[robg adds: Yes, it's easy to block ads. And yes, there are many ways to do it either within a given browser or system-wide, as shown here. And there are sites out there that take ads to the extreme, to the point where it's impossible to read the pages due to the amount of distraction one sees. But please, heed the author's advice about the sites you enjoy reading each day -- if everyone blocks ads all the time, then the future of the free web isn't necessarily good. Here on macosxhints, I don't directly make money off the ads on the site, but the ad revenue helps to pay my salary, and keeps the site (including the huge archive) free to readers. That's a good thing...]
When enabling Internet Sharing in the Sharing preference pane, those using the built-in firewall are warned that computers sharing their internet connection will be unable to browse the web. The proposed solution is to enable the Personal Web Sharing service, which launches the Apache web server and opens the ports necessary for web traffic across the firewall.
Fortunately, it's easy to share an internet connection without running Apache. Under the Firewall tab, click the New button to add a firewall rule. Set the Port Name to Other, and enter the following list for both the TCP and UDP Port Numbers: 80, 443. In the Description field, enter Web Access for Internet Connection Sharing, and click OK to finish.
As long as the new entry is checked, computers sharing the internet connection with your Mac will be able to browse the web using http (port 80) and https (port 443).
I've had absolutely horrible speeds while copying files from my Samba server, and it was starting to drive me nuts. Well, for those of you that experience this, there is a very easy fix. Simply add the following line to /etc/sysctl.conf (this is the file that is read on boot to set sysctl variables):
This simply tells the TCP stack in the kernel to not delay packet acks. The reason the slow down occurs is that when you are not sending anything to the Samba server, but attempting to copy a huge file from it, your computer will queue up a bunch of acks, and then send them after a bit. This causes the Samba server to stop sending files as fast, and then you end up going only a few kilobytes per second.
If you want instant gratification, open up a terminal window and sudo su -. Then, paste this in:
sysctl -w net.inet.tcp.delayed_ack=0
This is the same as what is in /etc/sysctl.conf, but the setting will be lost after a reboot. Enjoy!
I like to use a wildcard DNS entry for my localhost. The reason? If I want to establish a new virtual domain in Apache for testing, I need only go in and create my own arbitrary virtual domain (like railsdev.localhost), and the DNS side will "just work." On Linux machines, you can just edit /etc/hosts and put a *.localhost entry in. This didn't appear to work on OS X, so I instead enabled a local nameserver and went down that path.
I gathered hints from various parts of the net when it came to enabling DNS on OS X Tiger, and I think I have found the most efficient way to do that.
I work at a large company that blocks all Internet ports, only allowing access to the web through a proxy server on ports 80 and 443. I have a fast connection at home and a nice shinny PowerBook sitting on my coffee table all alone. I searched high and low to find exactly how to accomplish this, but I could only find bit and parts.
I connect from Windows with ssh through the work proxy to my Airport Express then to my Mac. I tunnel a VNC connection through ssh, and control the desktop remotely. Make sure you are not violating your company's policies before attempting this.
My company forces me to use a Windows computer at work, but there are tools that will let you connect back home. I chose PuTTY (for Windows) for connecting via ssh to home. I configure PuTTY to go through the proxy, and to tunnel port 5900. I also set up a dyndns host to deal with the changing IP address of the home computer. I enabled remote login and Apple Remote Desktop (ARD) in the Sharing panel of System Preferences. After enabling ARD, click the Access Privileges button on its Sharing screen, select ‘VNC viewers may control screen with password,' and type in a password.
You will need to set up your Airport Express to forward ports 22 and 5900 to your PowerBook. Do this buy opening Airport Admin and selecting Port Mapping, press the Add button, and type public port 22 to the PowerBook's internal IP address (i.e. 10.0.1.2), and private port 22. Do the same for port 5900.
For work, I login with PuTTY via ssh and then I use TightVNC to control the desktop at home. I also found this link, which covers PuTTY tunnel configuration. Now you are on your way to setting up other home server services such as WeDAV, FTP Web etc.
I have found that the cheapest of all the network print server hardware boxes works the best when trying to print to HP Deskjet printers. I was originally trying to use a D-Link DP-300U with my Deskjet 970cxi, but found it wouldn't use the HP drivers for the printer. Instead, it used the Gimp drivers, and those drivers did not work well with my printer.
So I bought a dirt cheap Netgear PS101 print server and was able to install HP's own print drivers because the printer saw the PS101 as a Jetdirect Print Server. All I had to do was make sure I had uploaded the latest BIOS to the PS101, and then gave the HP install program the PS101's IP address. I'm not sure if this would work with other Deskjet models, but I would assume it should.
After spending a day fiddling around with ports and Bonjour to get a USB printer attached to an AirPort Express to print from my XP Desktop, I finally figured it out. It was my XP firewall software; I disabled it, and could at last print. The firewall I was using was the Zone Alarm freebie version; I'm now reliant on the XP built-in firewall along with Spybot, AdAware, and Mozilla, but at least I can print.
I hope this helps someone else -- there's a lot of stuff out there about printer configuration, port fiddling, and using Bonjour, but in the end, it was nothing to do with any of that. It was a simple software issue...
The story goes that, in 10.4, you could set up a LEAP-authenticated wireless network as a preferred network in the Network preferences pane. Some time later (and I'm not sure when, maybe 10.4.1) when you tried to do this, the network would not remember that it was LEAP, and then failed to authenticate.
I recently had the pleasure of finding out about this problem. Fortunately, Apple published a workaround. The short version is to choose "WEP Password" as the security type for the network, then specify your LEAP login in the password field. OS X will interpret this as a LEAP login and use it. Hopefully the behavior is fixed in future releases.