FreeBSD 7.0 was released last week, and while the beta's been available for quite a while now, I'm quite excited to see it finally released. It's supposed to run faster, have a better kernel, and updated software. Here's the release notes from freebsd.org:
The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 7.0-RELEASE. This is the first release from the 7-STABLE branch which introduces many new features along with many improvements to functionality present in the earlier branches. Some of the highlights:
* Dramatic improvements in performance and SMP scalability shown by various database and other benchmarks, in some cases showing peak performance improvements as high as 350% over FreeBSD 6.X under normal loads and 1500% at high loads. When compared with the best performing Linux kernel (2.6.22 or 2.6.24) performance is 15% better. Results are from benchmarks used to analyze and improve system performance, results with your specific work load may vary. Some of the changes that contribute to this improvement are:
o The 1:1 libthr threading model is now the default.
o Finer-grained IPC, networking, and scheduler locking.
o A major focus on optimizing the SMP architecture that was put in place during the 5.x and 6.x branches.
Some benchmarks show linear scaling up to 8 CPUs. Many workloads see a significant performance improvement with multicore systems.
* The ULE scheduler is vastly improved, providing improved performance and interactive response (the 4BSD scheduler is still the default for 7.0 but ULE may become the default for 7.1).
* Experimental support for Sun's ZFS filesystem.
* gjournal can be used to set up journaled filesystems, gvirstor can be used as a virtualized storage provider.
* Read-only support for the XFS filesystem.
* The unionfs filesystem has been fixed.
* iSCSI initiator.
* TSO and LRO support for some network drivers.
* Experimental SCTP (Stream Control Transmission Protocol) support (FreeBSD's being the reference implementation).
* Much improved wireless (802.11) support.
* Network link aggregation/trunking (lagg(4)) imported from OpenBSD.
* JIT compilation to turn BPF into native code, improving packet capture performance.
* Much improved support for embedded system development for boards based on the ARM architecture.
* jemalloc, a new and highly scalable user-level memory allocator.
* freebsd-update(8) provides officially supported binary upgrades to new releases in addition to security fixes and errata patches.
* X.Org 7.3, KDE 3.5.8, GNOME 2.20.2.
* GNU C compiler 4.2.1.
* BIND 9.4.2.
For a complete list of new features and known problems, please see the online release notes and errata list, available at:
http://www.FreeBSD.org/releases/7.0R/relnotes.html
http://www.FreeBSD.org/releases/7.0R/errata.html
For more information about FreeBSD release engineering activities, please see:
http://www.FreeBSD.org/releng/
Well, I don't really have time to write now, I've got an operating system to install.
No, this isn't a howto hardware-oriented tutorial for adding more hard disks to a Macintosh computer. What I'm going to cover is what to do after you've added the hard drive(s) to your computer.
Typically, Mac users run out of hard disk space, and they buy a new hard drive, format it, see it on their desktop, and start putting files on this volume instead. While there's nothing really wrong with this approach, there's a lot more useful ways to put your hard drive into use.
- Once you've installed your new hard drive and confirmed it's working, you need to draw up some sort of plan as to how you're going to use the disk space. This will become your partition map. To integrate extra hard drive space into your existing filesytem, the partition must be based off of an existing partition. Here are the most common directories you would want to mount from the new hard disk:
- /Applications - where all the system's applications are stored
- /Users - where all the userdata is stored
- /Users/yourname/Music - where your music is stored
- Fire up Disk Utility from /Applications/Utilities, select the new hard disk, and go to the 'partition tab'. Now select a partition scheme that has enough partitions for you, and make sure that they're sized appropriately. You'll probably want to use Journaled HFS+ (case insensitive) as the partition types. You can also create an extra partition if you still want an extra volume on your desktop for storing "extra" files.
- Copy all files from the old folders into the new ones. For example, if you're mounting a new /Application folder, copy the contents of /Applications into the new partition that is going to hold the applications.
- Start up Terminal from /Applications/Utilities, and type the following at the prompt:
diskutil list
This lists all the hard drives and partitions on your system. Make sure you write down the identifier for each new partition that you created on the new hard drive, as you'll need them for the next step. - Now enter the following command at the prompt:
sudo nano /etc/fstab
Enter your password when prompted, and then proceed with creating the fstab file. The format for every mount point you want should be:identifier /mount/point hfs rw 1 0
Create a new line in between each mount point. Replace "identifier" and "/mount/point" with the appropriate entries that you want. - Now move the contents of the old folders somewhere else (in case the mounting doesn't work out). Remember, it's only the content -- for example, if you were mounting /Applications, you would have your /Applications folder empty, ready for it to be mounted when you reboot.
- Reboot, and all the partitions should be integrated right into your filesystem.
I love the IRC client irssi; it's very fast, simple, and solid. Simply said, it does what I want, although a command-line application often sacrifices an easy-to-learn interface for a quick, shortcut-oriented one. While I'm not completely on either side, I do tend to like irssi's focus on fast commands.
vim ~/.irssi/config- a configuration file for irssi that quickly allows one to set up accounts on different servers, and configure command shortcuts./ig AnnoyingPerson msgignores private messages from 'AnnoyingPerson', but you can still see their messages in channels. You can also use a wildcard '*' to block all private messages, extremely useful if you don't like getting bombarded by PMs from people you don't even know. Use/unigto reverse./wjoin #channelcreates a new window in the chat interface and joins #channel in that window. You can switch between windows with Control-P and Control-N./kb nick[tab]An extremely quick way of kicking+banning a user. Type the first few letters of their nick, hit tab, and the rest of it will be autocompleted. Hitting enter will ban the user's hostname and kick them off the channel./mub- remove all bans from the channel.nick[tab]Saves you the trouble of typing out a really long nickname in a chat. When used at the beginning of a line, it changes to "nick: ", assuming that you're addressing someone./t [tab]- quickly allows you to edit the channel topic. Ah, the joys of tab completion!/helpallows you to get help from within irssi. Use/help commandfor help on a specific comamnd.
I'm pleased to announce that I've found a new (and supposedly free) web host which will allow me to create a full-blown website. I won't disclose the domain yet, as I've got a bit of work to do in the coding of the design and such, but I will mention that it is *nix related and that I've written a number of articles for it already.
The goal of this new website is going to be simplicity. In design, I believe that simplicity is beautiful. Not that everything has to be black-and-white, but that one should use "features" sparingly to draw out important details in the content. I think I'm also going to simplify the backbone of this website so as to make less work in maintaining the whole thing, although I might possibly try to integrate various php and cgi-based applications such as wordpress, drupal, phpBB, etc. as I see fit.
In the meantime, I hope to get some rough mockups done so I can begin some serious coding and uploading over the weekend.
An interesting little website I discovered today: codepad.org. It's a basic web-based compiler that supports C, C++, D, Haskell, OCaml, Perl, Python, Ruby, Scheme, and Tcl. It also creates a permalink to the source code, allowing it to be linked to in a similar fashion to how pastebin works.
It's not that this is anything new, but I love the simplicity of this website. It has a nice syntax highlighting scheme, and no bells and whistles to trip up the user. (Kudos goes to sarehu for mentioning the website in IRC.)
One thing I find interesting is that many people tend to overcomplicate things when trying to achieve nice things like shared music from a central location. Usually people achieve this by using Rendezvous for doing a multicast DNS server, and then using something like daapd to stream the files wirelessly over a network. While there is nothing wrong with this, and indeed, be my guest if this method suits you better,
However, there's a very simple way of doing this: make a file server! It doesn't matter what operating system the server is running, so long as it can serve files in a protocol your computer can understand. I recommend using the SMB protocol, as it's the easiest and most universal (and if you're using Windows, you'll pretty much have to). Another good choice is NFS if you're running mainly *nix-based systems.
Now, for connecting. On Windows systems it should be present under Network Neighborhood, or you can just type the server's IP address/hostname into the address bar: \\192.168.0.1. On Mac OS X, hit Apple-K in the Finder to bring up the connection window, and enter your server's IP address/hostname: smb://192.168.0.1. It should then prompt you for a username/password, after which it will mount the volume onto your desktop. Or you can do it from the terminal on any other type of Unix system:
mount -t cifs //192.168.0.1/share /mnt/point
...for example.
Copy your entire iTunes folder onto the file server. Everything: configuration files, library files, everything.
Finally, In iTunes, under Preferences/settings, go to the "Advanced" tab. For "iTunes Music folder location", go to the location of the network folder that you copied the iTunes folder to, and choose "iTunes Music". Hit "okay", and voila! You now have a shared library. This has some advantages to a streaming iTunes server, most notably a shared library. This way, your library can still keep track of play count, ratings, you can easily tag songs, and add to and remove from your collection. The only thing an iTunes server would have let you do would be stream the content!
Wireless hotspots are great, but unless you don't care about your privacy, you have to be careful what information you send/transmit through the connection. I recently found out an interesting feature of ssh: being able to double as a SOCKS proxy. Provided your internet connection is fast enough, it's a very useful way to transmit secure information from anywhere in the world. Setup sshd on your computer (assuming it's accessible from the internet), and then from your remote computer, simply open a SOCKS connection like so:
ssh -D 9090 user@server.com
Note that the port (9090 in this case) can be any port you want. Then configure a SOCKS-capable browser (such as Firefox) to use this newly created proxy. Note that in many cases it won't go through the SOCKS proxy for DNS lookup (for example, on Firefox you would have to change network.proxy.socks_remote_dns from about:config to true). But for most of us, this is more than enough security on a wireless hotspot.