The time has come for a new Macintosh operating system. Mac OS X 10.6, or Snow Leopard as the cool kids call it, will arrive in stores this coming Friday and bring a host of new features with it. The name of the OS differs very little from 10.5, which was just Leopard, and that is exactly what Apple wants to convey.

OS X 10.0 was by most accounts, a good start, but far from perfect. Through 5 other iterations, the software has grown from novelty to mainstream, with advanced features added with each new release. Snow Leopard takes a slightly different approach in that it forgoes the usual list of blockbuster features and instead improves the existing codebase significantly. This new version will be faster, lighter (on hardware) and will offer new ways for developers to take advantage of the latest hardware.

The big new features of Snow Leopard involve the graphics card and CPU. With the advances in technology of these two components, programmers can take advantage of the new power by using Grand Central Dispatch and OpenCL. Grand Central Dispatch is a suite of tools available to developers to use every core in the multi core systems Apple sells today. OpenCL does something similar with the graphics cards. When these tools are included in new software, they will be much more powerful than today’s applications.

Buying opinions

The most important new feature of Snow Leopard is the cost. At just $29USD, it is priced like an upgrade, and even in Canadian funds it works out to much less than other software ($35). Based on this price point, and the new features that will be available, I will be purchasing a copy soon after it is released on Friday. I may even spring for the family pack, which comes with 5 licenses for only $59 CAN.

For the benefits to users, and the price point of $30, this will be a very popular upgrade, and is highly recommended for users of Leopard, and especially those with older machines. If you’ve been holding out for a solid version of OS X that you can build on and use for many years to come, this may be it.

Look for more information about Snow Leopard here next week.

Tagged with: , , , , ,

After planning and building a Ubuntu-based fileserver, it’s time to add software to the mix, so that the computer does the work it was originally meant for. In the case with my command-line only server, the software I added was for file sharing and media serving.

The software I’m explaining here was all installed via the command line. To do any of this with the GUI of Ubuntu, simply open a terminal window.

Mediatomb

The priority of my project was that the media on the computer would be accessible on my PS3 via wireless network. To do that, I researched a number of software projects, and settled on MediaTomb because I had heard good things about it. MediaTomb has lots of great features including, but not limited to: web administration, daemon operation, transcoding and instantaneous library additions.

After finding an excellent tutorial on adding all the necessary and optional libraries to get every feature working, I had a good setup. I highly recommend reading that blog post and others on it to find out about all that MediaTomb can do. Essentially, the task involves downloading and compiling MediaTomb to use all the features. While initially the MediaTomb daemon did not run, I was able to fix the problem and got everything working. I’ll be sharing the process in an upcoming post.

Webmin

Using the command-line doesn’t really bother me, but I wanted another way to administer the server over the network and a browser. To do that, I used Webmin, which enables users to change many aspects of the system, without using the terminal.

Installing Webmin is quite easy, because it is included in the Ubuntu repositories. Simply open a terminal window and type

sudo apt-get install webmin

Enter your admin password when prompted, and Webmin will be downloaded and installed automatically. Once it is installed, open a new browser window and navigate to https://ip_of_server:10000 then enter your user credentials. Once logged in, you can do many operations without using the terminal. I have found the best benefit so far to be local disk management — after all, mess that up, and your data vanishes.

ffmpeg

Ffmpeg is a suite of libraries and applications for operating on videos and multimedia. Once installed with all the add-ons, nearly every type of video can be modified and converted. Once again, the blog of Julien Simon has an excellent tutorial about making the program work with Ubuntu. Following his instructions, you’ll have a fully operational ffmpeg installation for other applications to use.

The only thing I’ll add to his tutorial is a fix for ffmpegthumbnailer, which is necessary for MediaTomb thumbnails. Install ffmpegthumbnailer by running

sudo apt-get install libffmpegthumbnailer2

then make an addition to the ffmpeg configure code. Add the text --enable-libffmpegthumbnailer2 to the configure stage, and you should see ffmpegthumbnailer — yes when the configuration has finished.

Netatalk

Netatalk is an open-source file server that can be configured to use the Apple File Protocol. To do this, I followed these instructions, and was up and running in no time. Once installed, Netatalk is very easy to administer from the command line. I was able to create multiple shares for guest and user access and can now access my files from any Mac in the house.

To enable guest access, an additional element must be added to the /etc/netatalk/afpd.conf file. Add the following text

uams_guest.so

so that the entire line is

- -transall -uamlist uams_randnum.so,uams_dhx.so,uams_guest.so - nosavepassword -advertise_ssh

This will enable you to access shares without entering a password, provided the shares themselves are open to the use nobody.

rtorrent + screen

Torrents are a convenient way to download large files like Linux distributions, and a media server is a perfect platform for unattended downloads. rTorrent is a powerful but easy to use command line client that can be customized for any situation. On its own, rTorrent will not run as a daemon, but coupled with screen, it can run in the background.

Install rTorrent and screen by executing the following commands in the Terminal.

sudo apt-get install rtorrent
sudo apt-get install screen

Once installed, start screen and attach rTorrent to it.

screen -S torrents
rtorrent

Detach the screen session by pressing ctrl + a, d and you’ll be back to the main prompt. Now rtorrent will remain running even when you disconnect from SSH.

To rejoin the rTorrent session, you must attach to it.

screen -r torrents

avidemux

Avidemux is set of audio/video tools for the command line that can do many operations. So far I’ve used it to shift audio inside video tracks. Like most other programs, it simply requires a few arguments to do whichever job you need.

sudo apt-get install avidemux

mencoder

Slightly different than ffmpeg, mencoder is another suite of video conversion for a variety of formats. This is an excellent tool to use for converting MKV or OGM files to AVI (video does not need to be converted). Again, it requires basic command line arguments, and can be used in a screen session to work in the background.

sudo apt-get install mencoder

lm-sensors

An important part of running a headless media server is making sure the hardware is operating within its temperature restraints. A tool do monitor that is called lm-sensors and must be set up with the specific hardware in your computer. I could explain the system, but a post on the Ubuntu forums does a much better job. Once installed, simply issue the command sensors to see the temperature of various compontents, and — if your motherboard supports it — the chassis fan speed.

Of course, this only begins to scratch the surface of possible software for a Ubuntu fileserver, but I think the applications shown are important for running a system without local input. Set them up, and enjoy central storage for all the computers in your house.

Tagged with: , , , ,

This is a quick tip about WordPress blog emails. Ever since this blog was started, I received emails about comments from my webhost default address. It was ugly looking and didn’t provide any details about who really sent the comment.

The solution is to create an email account on your server with the address wordpress@domain.com where domain.com is, of course, the domain of your website. Once this change has been made, comment moderation notifications will be from WordPress <wordpress@domain.com> and new comment details will be sent from the actual person emailing.

Tagged with: , , ,

As home networks become larger and larger, new technology will be required to get gadgets connected that are sprinkled around the house. D-Link, along with other manufacturers, has recognized that many electronics now require internet connectivity, but are either not wireless, or located next to an ethernet plug.

A possible solution to this problem is network adapters that work over existing electrical wires embedded in walls. There are multiple technologies in the market now, and many do not work together, but most work in the same way. An adapter is plugged into the wall socket, with an ethernet cable connected to a device, then another adapter is plugged into a socket and wired router. Now the device is connected to the network, and can enjoy (theoretical) speeds of 200 Mbps.

Setup

In terms of installation, I don’t think I’ve used a network product with an easier setup. With an adapter connected to my router, and another connected to my Playstation 3, I had internet within seconds. The adapters are small enough to fit in convenient places, and the LEDs provide feedback about device status and network connectivity.

Performance

I bought a set of these adapters to connect my PS3 to my network and enjoy media shared on my computer. After the setup and a quick connectivity test, I was excited to try a movie. Sadly, this was where the set fell short.

D-Link says that under ideal conditions, these adapters can provide up to 200 Mbps throughput (which is about 25 MB/s). In my house, I achieved about 3 MB/s. This was found by using my MacBook to transfer files over ethernet. Disappointed but not defeated, I moved the second adapter through my house to test the transfer speeds. Speeds ranged from 768 KB/s on the opposite side of the house to 6 MB/s in the same room as the router. This was about the same as my previous solution, so I decided to return the adapters.

Conclusions

I can’t say I’m all that surprised about the performance, as wiring varies from house to house. My house was especially tough because the router room is on a different subsystem than the living room. This product would probably work best in a fairly new house, with sockets in basically the same area.

If you’re planning on purchasing a set of PowerLine adapters, be sure to check your supplier’s return policy. Test them immediately in a variety of locations and configurations, and look at alternative solutions if they don’t perform close to the manufacturer’s estimation.

Tagged with: , , ,

The WordPress community is a great group of people dedicated to furthering a terrific open-source product. After setting up my website originally, I began messing around with plugin code to see what I could do. PHP got more and more interesting, and eventually I was able to release my first plugin, Comment Connection. That got me thinking, and after reading a WordPress forum post, I wrote Mass Page Maker, which now has 3,500 downloads as of July 27.

This post is dedicated to explaining more about the plugin, and chronicle updates I make.

v1.0


The first release was very straight forward. It was basically a form that filled out the information found in the post table of the WordPress database. While it did the job that the initial forum post had suggested, it did not offer category, template or any other details on the page. All supporting entries in the database were basically ignored.

As is the case with most software releases, I added multiple features in the next few releases. Shortly after releasing 1.0, a user requested the ability to add separate titles for each page. This was added to v1.1, along with additional page properties (comments and pings) and a better way to protect from faults, or improperly filled out pages.

Version 1.1.1 and 1.2 mostly smoothed out the code, but also included the ability to add categories. This was not as straightforward as I had hoped, because of the way WordPress associates categories. Rather than simply add a field to the database query, I had to add an additional query to the category table. It was a good challenge to make it work properly, while still making it super fast to add at least 100 pages (my goal throughout writing the plugin was to make it as efficient as possible).

Each of the next versions added an additional feature — mostly those requested by comments to the original post. Page parents were added, and it became possible to add different content to each page. That was another good challenge, because I had to add arrays to deal with the different page data.

Finally, the big deal with version 1 was that someone asked to translate the plugin into German. I really appreciated this because it meant something I made was being used in a different country, and people wanted to contribute. Speaking of that, if you’d also like to translate any of the plugins I’ve made, please email wesg [at] wesg [dot] ca.

v2.0


As should be expected with version 2.0 of any software, this version brought many changes. The primary changes were additions to the date/time handling system of the plugin. Again as a result of comments, I made it possible to add pages with specific dates, either in the past or future. In addition, an interval was added so that pages could be entered with a customizable space between them. This update was complex to write, as the time and date system requires multiple computations to make everything fit together. The biggest issue was the cron system, or the component that publishes posts in the future. There are still slight problems with my implementation, but it’s a work in progress.


Version 2.5 brought a feature that has generated the most feedback I’ve ever had for a plugin. The comma separated values component of the plugin means that multiple posts can be entered at once, all with unique properties. Since many programs can output the format, it makes adding hundreds of pages to the database very easy. Of course, this added a lot of complexity to the plugin. In the end, I was able to build it in such a way that I can now use different methods of entering pages, without changing the major elements.

Continuing with the user comments, version 2.5.3 includes custom field support. The next few updates simply fixed the CSV component of the plugin.

V2.5.6 brought updates that help me as a developer. When the CSV import or web page interface doesn’t work, I have to figure out what failed, and how to fix it for the future. This update included checks while the CSV file is being processed that find errors in the format. By explaining immediately what is wrong, users can more easily enter data.

After hearing about problems with MPM and WP 2.8, I looked them up with version 2.5.8. Additionally, tag support was included. Due to the way WordPress interacts with the database, tags are a very involved process, that require loops, processing and updates. Despite all this, MPM still inserts pages faster than other methods, and offers much more customization.

Version 2.6 finally solved the WP 2.8.x problem. It turns out that WP 2.8 changed the database structure, and the plugin was trying to insert an entry to a column that no longer exists. That is one of the problems with developing a plugin: constant maintenance is required to keep compatibility up.

Like the plugin? Want to help test the latest version and eliminate bugs? Email wesg [at] wesg [ca] to find out how you can help.
Tagged with: , ,