Random story, for your (unlikely) amusement. I'm in Turkey now visiting my in-laws. For an internet connection, interestingly, they've actually dropped their wired DSL and have gotten a 3G usb dongle instead because it's both faster and cheaper here (!?) and they split their time between two houses, so this way they only have to pay for one connection. This is great for them, but it means that only one computer can be on the net at a time, which sucks when my wife and I come to visit and both want to work all day.
So, I decided to roll up my sleeves and (1) get the USB dongle to work on my linux laptop, and then (2) re-export the 3G link by turning my laptop into a wifi access point. After reading some docs, it turned out I had to configure the AP firmware in my driver and set up dhcp, nat, and dns for the network I was creating. All no problem, done it before. But, it turned out my wireless card (iwl-agn driver) doesn't support AP mode, and I had some dhcp configuration issue, and blah blah blah... before I knew it I was reading kernel documentation for the wireless AP API trying to figure out how hard it would be to write the missing AP support code for the driver. As a second thread, I had to find the right software to configure and run the 3G dongle, because there is some random pin you have to use to auth to the device before you can even set it up to connect, and blah blah blah. This was very quickly looking like it was going to be a nightmare. Then, out of curiosity, I clicked on the NetworkManger icon on my desktop. It had automatically discovered the USB dongle ("Mobile Broadband DLS Connection"), and when I clicked the connect button, I got a GUI prompt for the device PIN and then in a few seconds, it had an IP and was completely working without touching a config file or even thinking about a device driver. Then, I happened to find --- also in net manager --- the "Create a new wireless network" button, which --- in one click! --- created an ad-hoc network[1], and setup an ip, ip range, dhcp, dns *and* the natting[2]. A quick test from a windows laptop and everything pretty much worked right out of the box. I am completely blown away by how far linux has come... it was %)(*@ crazy :-) I mean, I'm used to stability and flexibility, but the pure ease-of-use is really new to me. Windows doesn't work this easily (my first attempt at this project was to try to the same thing with the window vista and windows 7 boxes that are also here...). Thought I would share, - Rob . [1] For all I know, it auto detected that my wifi card doesn't support AP mode, and thus didn't prompt me about becoming an AP :-) [2] Interestingly, all implemented with a single binary, /usr/sbin/dnsmasq, which configures the nat, and handles the dhcp and dns transparently.