Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Full Circle 33


Published on

  • Be the first to like this

Full Circle 33

  1. 1. full circle ISSUE #33 - January 2010 CREATE A MEDIA CENTER WITH UBUNTU, AN ACER REVO & BOXEE full circle magazine #33 contents ^
  2. 2. full circle Ubuntu Women p.28 Program In Python - Pt7 p.08 Ubuntu Games p.31 My Story p.19 MOTU Interview p.24 Read how Ubuntu is used in public education, and why one man made the switch to Linux. Ubuntu, Revo & Boxee p.13 Command & Conquer p.05 The Perfect Server - Pt3 p.15 Review - Exaile p.23 Letters p.26 Top 5 - Sync. Clients p.35 The articles contained in this magazine are released under the Creative Commons Attribution-Share Alike 3.0 Unported license. This means you can adapt, copy, distribute and transmit the articles but only under the following conditions: You must attribute the work to the original author in some way (at least a name, email or URL) and to this magazine by name ('full circle magazine') and the URL (but not attribute the article(s) in any way that suggests that they endorse you or your use of the work). If you alter, transform, or build upon this work, you must distribute the resulting work under the same, similar or a compatible license. full circle magazine #33 contents ^
  3. 3. EDITORIAL This magazine was created using : Welcome to another issue of Full Circle magazine. L ast month, Andrew gave us his Top 5 Media Center applications. This month I've written a How-To on using Ubuntu on an Acer Aspire Revo to create the foundation for Boxee. For under £150 I've created a fantastic media center which not only looks great, it's fully customizable! That's my media center story, but don't forget to read the My Story articles which this month focus on Ubuntu, Linux and open-source in public education, as well as how one man went from using old (modern at the time) computers, to using Ubuntu. Another advertisement this month! But don't panic, it's only for this month and it's Ubuntu is a complete operating our way of trying to bring more attention to SCaLE 2010. February sees the eighth system that is perfect for laptops, desktops and servers. annual . Unfortunately I can't attend, but if anyone does Whether at home, school or attend, we'd love to hear what it was like, who was there, what happened, so fill us in! work, Ubuntu contains all the applications you'll ever need Don't forget to read the Ubuntu Women interview, on page 28, with Jane Silber the including word processor, email application and web browser. COO at Canonical. As most of you will know, Jane will take over from Mark as CEO on Ubuntu is and always will be free March 1st. of charge. You do not pay any licensing fees. You can And finally, Robin Catling, the man of many words, is considering resurrecting the download, use and share Ubuntu with your friends, family, school FCM podcast. Care to help? - or business, for absolutely nothing. Enjoy the issue, and keep in touch! Once installed, your system is ready to use with a full set of productivity, internet, drawing and graphics applications, and Editor, Full Circle magazine games. use the new 'contents' link to jump to the contents page full circle magazine #33 from any other page! contents ^
  4. 4. NEWS Ubuntu Firefox shuns Ubuntu - version 10.4, dubbed Ubuntu Primes Music Music Store objective as such: Google for Yahoo! search Lucid Lynx and due in April - Yahoo! will be the default Service " engine in the search box in the The next release of Ubuntu will Although it is not yet official, top right-hand corner of the scrap Google as the default Ubuntu's next release looks likely Firefox browser bundled with search engine on its Firefox to include a music store service the OS, and Yahoo! search will similar to Apple's iTunes. browser in favor of Yahoo!, be the browser's default thanks to a new revenue- homepage. The first hint that Ubuntu sharing deal between Yahoo! developers were considering a and commercial Ubuntu backer music store came in September Canonical. last year when Canonical chief Mark Shuttleworth announced With regulators set to approve plans for Lucid Lynx, the next As is typical with Firefox, users version of Ubuntu. At the time Yahoo!'s search pact with will have the option of Shuttleworth made vague Microsoft, this means that changing the search box references to an Amazon- and " Redmond will power the future default. This means they can iTunes-like music store for the of Firefox on Ubuntu, a next release. change it back to Google, and According to the specifications combination with decidedly users will log into the music store thanks to another Lucid Lynx anti-Redmond connotations. Since then the noise around an using their existing Ubuntu One change announced by The ultimate irony is that Ubuntu music store has grown username. [...] Already a Spencer, doing so will also into a coherent direction and a Microsoft will essentially be Rhythmbox plugin for the Ubuntu switch the browser's number of details suggest that paying people to build a Linux One Music Store is listed in homepage to Google. If you the Ubuntu One Music Store is on Ubuntu's blueprints. distro. choose a search provider other track for possible inclusion in than Google or Yahoo!, Lynx Lucid Lynx which is scheduled to : Canonical's Rick Spencer be released in April this year. may or may not update the announced the Yahoo! revenue browser's homepage in similar deal on Tuesday, with a post to The most obvious clue to the fashion. Canonical has yet to the Ubuntu developer mailing Ubuntu One Music Store is the sort out the situation involving wiki page outlining plans for the list. other providers. product. Among other details, the wiki explains the Ubuntu One With the next release of : full circle magazine #33 contents ^
  5. 5. COMMAND & CONQUER N ow that we've windows). This feature is can set up the commands to covered the If you were looking through especially useful if you're the run, detach the Screen, and introduction to GNU my configuration file last kind of person who regularly disconnect from the SSH Screen last month, month, you must have noticed uses certain CLI-based server. If you want to re- we're ready to advance into the following two lines at the programs (mutt, irssi, midnight connect and get the info back, slightly more useful end of my .screenrc: commander, etc.), and want to all you have to do is re-attach configurations. I'll be covering have them readily available in the Screen session. I only a few aspects of Screen # autostart screen sessions one easy-to-access window recommend detaching before screen -t Zsh 0 /bin/zsh without opening a horde of disconnecting from SSH, but that I use and find useful, but screen -t IRC 1 they are by no means as /usr/bin/irssi terminals. Screen should automatically advanced as they get, nor are detach and keep the Screen they the only aspects worth The lines there add a new If you're an SSH user, you've running when the connection using in Screen. I'd be happy to window (the number after the probably run into the problem closes. This is useful for system have readers send in their title) to Screen with the title where you access a machine, administrators who may need favourite configuration/setting (specified after the “-t” flag), and run a command, and you to run a script to update for Screen. I can post them at and the following command. end up losing your connection, permissions or whatnot, and the start of Command & So, the .screenrc launches and then frustrate yourself by will save them the need to Conquer each month, so that Screen with window 0 running having to re-run the command send the process to the we can learn something new my Z-shell, with a title of since you lost the output. This background, or to keep the SSH from them. The things I'll be “Zsh”, and window 1 with irssi is why I, personally, feel that connection open the entire covering in this article are the running, and a title of “IRC”. Screen (or another terminal time. If I remember correctly, following: automatically Screen will default to the multiplexer) is a must for any you can even configure the starting windows with newest window, so my Screen SSH users who will be SSH shell to automatically run commands, using Screen over sessions always start in IRC, connected for longer than a Screen for any SSH login, SSH to daemonize commands, since that's what I'll most likely few minutes, and who may meaning you're always going sharing Screen sessions, use. I don't know if there is a need to run more than one to be in a Screen shell. splitting the window, and the limit to how many windows command. Even if you're one benefit of Screen over TTY Screen can have, but I would of those one-command and a Another extremely useful screens or a normal shell. So, recommend not having more few-minutes users, Screen feature of Screen is the ability lets get started and fire up our than the number of shortcuts might still be a very useful to share sessions. This is great Screen sessions, and our to quickly switch between thing for you. If you connect if you're editing a script and .screenrc files! them (so a maximum of 9 via SSH, and run Screen, you need input from another user. full circle magazine #33 contents ^
  6. 6. COMMAND & CONQUER You can allow them to SSH to article on securing Screen, and enable vertical splitting, I'll can be sent there too. the box, and share the screen. adding names to Screen post a link to a tutorial in the To do this, the host (first user), sessions to make management Further Reading section. Last command for Screen: has to do the following: easier. The last thing I want to screen -S <name of screen Ctrl + a session> The very last feature I'm cover for this article is why :multiuser on going to cover for the moment someone should use this The above command is the ability to split the instead of a TTY screen, or a The Ctrl +a is the actual creates a Screen session using window in Screen. This means normal shell. The simple keyboard combination, and you the name you supply after the - you can have two shells answer is personal preference. have to then type “:multiuser S flag, for quick and easy running parallel with a tiling The long answer is that it on”. You then need to allow the access (great for when you're window manager feel to it. allows SSH sessions to run remote user to connect to the running lots of Screen Screen only supports horizontal multi-task without any chance Screen session with the sessions). splitting out of the box; there is of losing the processes when following: a patch to enable splitting disconnecting, and it also vertically, but it requires you to allows you to minimize the Ctrl +a Vertical splitting: :acladd <ruser> re-compile Screen by hand. In amount of RAM being used. order to split the screen Also, it allows you to have a screen-with-vertical-split-support horizontally in Screen, hit the better overview of what is Substitute “<ruser>” with anual/html_node/Default-Key- the username for the remote following key combination: running - if you give the Screen Bindings.html#Default-Key-Bindings – user. Once you've done that, windows titles, and keep them The manual page for keybindings on C-a S running in one terminal the GNU homepage. the remote user can connect to emulator, you'll have a status- the Screen session using: For those who didn't read reen_9.html – Short and concise list of bar type list of running things for .screenrc files, and Screen screen -x $USER/<screen my last article, that means ctrl programs. I'm by no means in general ID/name> +a, then S (shift + s). This will saying you have to use it, but take the current window and for those people to whom the You need to replace $USER split it in half down the center. features of Screen appeal, I with the username of the Once you have your two panes, highly recommend using it and original user (the “host”), and you can switch between them getting into the habit of using the Screen ID/name with the with: it regularly (which, I have to has learned all he knows name or ID of the Screen admit, I haven't managed yet). from repeatedly breaking his session the user started. If you C-a <Tab> As always, feel free to email system, then having no other want to know how to set a any questions you may have to option but to discover how to fix Screen name, I'll be adding a where <Tab> is the actual it. You can email Lucas at: Any few quick tips at the end of the tab key. If anyone wants to suggestions for new articles full circle magazine #33 contents ^
  7. 7. full circle magazine #33 contents ^
  8. 8. HOW-TO Program In Python - Part 7 paper. In each filing cabinet and filing cabinets and wasted User, came to see See-Quill. FCM#27-32 - Python Parts 1 - 6 was something called a file time, if only people would He was very impressed with folder, which attempted to believe in computers and her. her beauty, and said “See- organize relevant papers She called this power a Quill, Please teach me to use together. But after time, they “Database”. She said that the your power.” See-Quill said would get over-stuffed, and fall “Database” could replace the that she would. apart when they got old or entire filing system. Some opened too many times. people did, and soon their lives She said, “First, you have to were very happy. Some didn't, know how your information is Using these filing cabinets and their lives stayed the laid out. Show me your papers.” Dev Graphics Internet M/media System properly required a college same, lost in mountains of degree. It could take days to paper. Being a young boy, User find all the papers that were in had only a few pieces of paper. the various cabinets. All fairy promises, however, See-Quill said, “User, right now CD/DVD HDD USB Drive Laptop Wireless Businesses suffered horribly. It come with some sort of you could live with papers and was a very dark time in the requirement. That requirement file folders. However, I can get history of man- and woman- was that whoever wanted to glimpses of the future, and you G kind. use the power of See-Quill will someday have so many ood morning Boys needed to learn a bit of a papers that they would, if and Girls. It's story Then one day, from the top different language. It wouldn't placed on top of each other, be time. Everyone get of a mountain somewhere (I be too difficult a language to taller than you by 15 times. We settled and comfy. personally think it was learn. In fact, it was much like should use my power.” Ready? Good! Colorado, but I'm not sure), the one the people already came a lovely fairy. This fairy used. It just has a different way So, working together, User Once upon a time, the world was blue and silver - with of saying things, and you had and See-Quill created a was ruled by paper. Paper, beautiful wings and white hair, to think about things very “database thingie” (a fairy paper everywhere. They had to and was about 1 foot tall. Her carefully BEFORE you said technical term), and User lived make special homes for all that name, believe it or not, was them - to use the power of See- happily ever after. paper. They were called filing See-Quill. Isn't that a funny Quill. cabinets, and were big metal name? Anyway, See-Quill said things that would take rooms that she could fix everything One day, a young boy and rooms and rooms at having to do with all the paper named, curiously enough, Of course, the story is not businesses to house all the full circle magazine #33 contents ^
  9. 9. PROGRAM IN PYTHON - PART 7 completely true. However, to create a recipe database make it very large and using databases and SQL can program. Around my house, have one record for make our lives easier. This recipes come in various forms: everything in the recipe. time, we will learn about some 3x5 card, 8x10 pieces of paper, That, however, would be Serves: 4 simple SQL queries, and how to napkins with the recipe clumsy and hard to deal use them in a program. Some scribbled on it, pages from with. Instead, we are going : Greg Walters people might think that this magazines, and even stranger to use the recipe card as a might not be the “correct” way forms. They can be found in template. One table will or the “best” way, but it is a books, boxes, binders, and handle the top of the card, 1 cup parboiled Rice (uncooked) reasonable way. So let's begin. other things. However, they all or the gross information 1 pound Hamburger pretty much have one thing in about the recipe; one table 2 cups Water Databases are like the filing common: the format. In almost will handle the middle of 1 8 oz can Tomato Sauce cabinets in our story above. every case, at the top you have the card, or the ingredients 1 small Onion chopped Data tables are like the file the recipe title and maybe how information; and one table 1 clove Garlic chopped folders. The individual records many servings it makes and will handle the bottom, or 1 tablespoon Ground Cumin in the tables are like the sheets where it came from. The the instructions. 1 teaspoon Ground Oregano of paper. Each piece of middle contains the list of Salt and Pepper to taste information is called a field. It ingredients, and the bottom Make sure you have Salsa to taste falls together very nicely, contains the instructions - installed SQLite and APSW. doesn't it? You use SQL dealing with the order that SQLite is a small database (pronounced See-Quill) things are done in, the cooking engine that doesn't require Brown hamburger. statements to do things with time, and so on. We will use you to have a separate the data. SQL stands for this general format as the database server, which Add all other ingredients. Structured Query Language, template of our database makes it ideal for our little and is basically designed to be project. We will break this up application. Everything you Bring to boil. an easy way to use databases. into two parts. We'll create the learn here can be used In practice, however, it can database this time, and the with larger database Stir, lower to simmer and cover. become very complicated. We application to read and update systems like MySQL and will keep things pretty simple the database next time. others. The other good Cook for 20 minutes. for this installment. thing about SQLite is that Here's an example. Let's say it uses limited data types. Do not look, do not touch. We need to create a plan, we have the recipe shown right. These types are Text, like starting any construction Numeric, Blob, and Integer Stir and serve. project. So, think of a recipe Notice the order we just Primary Key. As you have card, which is a good thing to discussed. Now when we learned already, text is think about, since we are going design our database - we could pretty much anything. Our full circle magazine #33 contents ^
  10. 10. PROGRAM IN PYTHON - PART 7 ingredients, instructions, and SELECT * FROM Recipes would be typing and very redundant. We the title of our recipe are all can use a method called text types - even though they If you wish to obtain just a INSERT INTO Recipes aliasing. We can do it like this: record by its primary key, you (name,servings,source) have numbers in them. VALUES (“Tacos”,4,”Greg”) Numeric datatypes store have to know what that value SELECT, r.servings, is (pkID in this instance), and r.source, i.Instructions numbers. These can be integer To delete a record we can FROM Recipes r LEFT JOIN values or floating point or real we have to include a WHERE instructions i ON (r.pkid = use values. Blobs are binary data, command in the statement. We i.recipeid) WHERE r.pkid = 1 and can include things like could use: DELETE FROM Recipes WHERE pictures and other things. pkID = 10 It's shorter and still Integer Primary Key values are SELECT * FROM Recipes WHERE readable. Now we will write a pkID = 2 special. The SQLite database There's also an UPDATE small program that will create engine automatically puts in a statement, but we'll leave that our database, create our Simple enough...right? guaranteed unique integer for another time. tables, and put some simple Pretty much plain language. value for us. This will be data into the tables to have Now, suppose we want to just important later on. get the name of the recipe and More on SELECT something to work with. We COULD write this into our full the number of servings it APSW stands for Another In the case of our database, program, but, for this example, makes - for all recipes. It's Python SQLite Wrapper and is a we have three tables, each can we will make a separate easy. All you have to do is quick way to communicate with be related together by using program. This is a run-once include a list of the fields that SQLite. Now let's go over some recipeID pointing to the pkID of program - if you try to run it a you want in the SELECT of the ways to create our SQL the recipe table. Let's say we second time, it will fail at the statement: statements. want to get all the instructions table creation statements. SELECT name, servings FROM for a given recipe. We can do it Again, we could wrap it with a To obtain records from a Recipes like this: try...catch handler, but we'll do database, you would use the that another time. SELECT statement. The format To insert records, we use the SELECT, would be: INSERT INTO command. The Recipes.servings, We start by importing the syntax is Recipes.source, APSW wrapper. SELECT [what] FROM [which Instructions.Instructions table(s)] WHERE [Constraints] FROM Recipes LEFT JOIN INSERT INTO [table name] instructions ON import apsw (field list) VALUES (values (Recipes.pkid = So, if we want to get all the to insert) Instructions.recipeid) WHERE The next thing we need to fields from the Recipes table Recipes.pkid = 1 do is create a connection to our we would use: So, to insert a recipe into database. It will be located in the recipe table the command However, that is a lot of the same directory where we full circle magazine #33 contents ^
  11. 11. PROGRAM IN PYTHON - PART 7 have our application. When we create this connection, SQLite RECIPES INSTRUCTIONS INGREDIENTS automatically looks to see if ------------ ---------------------- -------------------- the database exists. If so, it pkID (Integer Primary Key) pkID(Integer Primary Key) pkID (Integer Primary Key) opens it. If not, it creates the name (Text) recipeID (Integer) recipeID (Integer) source (Text) instructions (Text) ingredients (Text) database for us. Once we have serves (Text) a connection, we need what is called a cursor. This creates a mechanism that we can use to structure like this. Each column automatically assigned. Let's source TEXT)' work with the database. So is a separate table as shown pretend that this is the very remember, we need both a above right. first record in our table, so the Next we have to tell ASPW connection and a cursor. These database engine would assign to actually do the sql command: are created like this: Each table has a field called the value 1 to the pkID. We will pkID. This is the primary key use this value to relate the cursor.execute(sql) # Opening/creating database that will be unique within the information in the other tables connection=apsw.Connection("c table. This is important so that to this recipe. The instructions Now we create the other ookbook1.db3") the data tables never have a table is simple. It just holds the tables: cursor=connection.cursor() completely duplicated record. long text of the instructions, its This is an integer data type, own pkID and then a pointer to sql = 'CREATE TABLE Okay - we have our and is automatically assigned the recipe in the recipe table. Instructions (pkID INTEGER PRIMARY KEY, instructions connection and our cursor. Now by the database engine. Can The ingredients table is a bit TEXT, recipeID NUMERIC)' we need to create our tables. you do without it? Yes, but you more complicated in that we There will be three tables in run the risk of accidentally have one record for each cursor.execute(sql) our application. One to hold the creating a duplicated record id. ingredient as well as its own sql = 'CREATE TABLE gross recipe information, one In the case of the Recipes pkID and the pointer back to Ingredients (pkID INTEGER for the instructions for each table, we will use this number our recipe table record. PRIMARY KEY, ingredients recipe, and one to hold the list as a reference for which TEXT, recipeID NUMERIC)' of the ingredients. Couldn't we instruction and which set of So in order to create the cursor.execute(sql) do it with just one table? Well, ingredients go with that recipe. recipe table, we define a string yes we could, but, as you will variable called sql, and assign Once we have the tables see, it will make that one table We would first put the it the command to create the created, we will use the INSERT very large, and will include a information into the database table: INTO command to enter each bunch of duplicate information. so that the name, source and sql = 'CREATE TABLE Recipes set of data into its proper table. number served goes into the We can look at the table (pkiD INTEGER PRIMARY KEY, recipe table. The pkID is name TEXT, servings TEXT, Remember, the pkID is full circle magazine #33 contents ^
  12. 12. PROGRAM IN PYTHON - PART 7 automatically entered for us, place the pkID of the recipe some time reading up on SQL so we don't include that in the Why is this? Well, when we (lastid) into the sql statement. programming. You'll be happy list of fields in our insert get data back from ASPW, it Finally, we need to put each you did. statement. Since we will be comes back as a tuple. This is ingredient into the ingredient using the field names, they can something we haven't talked table. I'll show you just one for be in any order, not just the about yet. The quick now: order they were created in. As explanation is that a tuple is (if long as we know the names of you look at the code above) sql = 'INSERT INTO Ingredients the fields, everything will work like a list, but it can't be (recipeID,ingredients) correctly. The insert statement changed. Many people use VALUES ( %s,"1 cup parboiled for our recipe table entry tuples rarely; others use them Rice (uncooked)")' % lastid becomes often; it's up to you. The cursor.execute(sql) bottom line is that we want to INSERT INTO Recipes (name, use the first value returned. We serves, source) VALUES It's not too hard to (“Spanish Rice”,4,”Greg use the 'for' loop to get the understand at this point. Next Walters”) value into the tuple variable x. time it will get a bit more Make sense? OK. Let's complicated. Next we need to find out the continue... value that was assigned to the If you would like the full pkID in the recipe table. We Next, we would create the source code, I've placed it on can do this with a simple insert statement for the my website. Go to command: instructions: sql = 'INSERT INTO to download it. SELECT last_insert_rowid() Instructions (recipeID,instructions) Next time, we will use what However, it doesn't just VALUES( %s,"Brown hamburger. we've learned over the series come out as something we can Stir in all other to create a menu-driven front really use. We need to use a ingredients. Bring to a boil. Stir. Lower to simmer. end for our recipe program - it series of statements like this: Cover and cook for 20 will allow viewing all recipes in is owner of minutes or until all liquid a list format, viewing a single ,a sql = "SELECT is absorbed.")' % lastid consulting company in Aurora, last_insert_rowid()" recipe, searching for a recipe, Colorado, and has been cursor.execute(sql) and adding and deleting programming since 1972. He cursor.execute(sql) recipes. enjoys cooking, hiking, music, and spending time with his for x in cursor.execute(sql): Notice that we are using the family. lastid = x[0] variable substitution (%s) to I suggest that you spend full circle magazine #33 contents ^
  13. 13. HOW-TO Ubuntu, Acer Revo & Boxee I decided just before the Alpha) is fully compatible Once it’s installed, Boxee is FCM#32 - TOP5 MEDIA CENTERS Christmas that I'd like to with Karmic. found in Applications > Sound retire my first generation & Video. With Boxee running, I Xbox (aka media center), added my local media folders and get something more up-to- and my wireless shared date, so I bought an Acer directories. From there, Boxee Aspire Revo - a nettop, as they looks through your files call them, which is basically a guessing at their classification PC in the shape of a Nintendo (Movies/TV), but you can Wii. Needless to say, the first assign a media type to a Dev Graphics Internet M/media System thing was to get my Ubuntu particular directory if you wish. 9.10 USB stick, and use it to It does the same with audio install Ubuntu on the Revo. This files, and it will automatically is painless and is just a bog grab your album covers and CD/DVD HDD USB Drive Laptop Wireless standard Ubuntu install. The first thing to do is head band photographs. Editing over to the Boxee site audio/video, or entering But what software would I ( and sign up. The information, is quite easy too - use for playing my media? reason for this is that Boxee is even without a keyboard, as part XBMC, part social media. Boxee has an on-screen Having used Xbox Media Boxee is based on XBMC, but it keyboard which is easy to use. Center (XBMC) on my Xbox, it has several useful addons that was an obvious choice to try allow you to rate your media As well as using your own XBMC on my Acer Aspire Revo - and recommend media to media, you have access to which I did - but I thought I’d friends. All this is done via the dozens of ‘applications’ in give Boxee a try. I’d heard such Boxee website, hence the Boxee, which are basically good things about it that it signup. Once you’ve signed up, channels or feeds. Channels would have been rude of me to you can go to the downloads are video podcasts and internet ignore it. I have to say I really page, grab the Ubuntu episodes. The list is quite like it. Just this month the compatible 32/64bit .deb file, varied and has everything from Boxee developers released the and double-click it to have it CNN to Open University Boxee Beta to the masses! Not installed via Gdebi. lectures to anime. only that, but the Beta (unlike full circle magazine #33 contents ^
  14. 14. UBUNTU, ACER REVO & BOXEE Look me up on Boxee, and 'friend' me - my username is . I look forward to seeing your recommendations! The only quibble I have with sudo gedit Boxee is that my (cheapo) ~/.boxee/UserData/Lircmap.xml Cyberlink remote control (right) didn’t work as well with And, yes, UserData and Boxee as it did with XBMC, but Lircmap.xml should be I found a solution at capitalized as shown. t.php?p=433877&postcount=1 Now, load up Boxee, and the You should follow this guide to vast majority of the Cyberlink the letter until it says the remote buttons will work following in post #3: properly! sudo gedit All in all, I’m really ~/.xbmc/userdata/Lircmap.xml impressed with Boxee; I loved the Alpha, but the Beta just For Boxee you should takes it to a whole new level instead enter: with its new layout! full circle magazine #33 contents ^
  15. 15. HOW-TO The Perfect Server - Part 3 courier-imap-ssl libsasl2-2 update-alternatives --remove- # Instead of skip-networking libsasl2-modules libsasl2- all maildir.5 the default is now to listen FCM09 - 16 : Server Series 1 - 8 modules-sql sasl2-bin libpam- only on FCM28 - 29 : LAMP Server 1 - 2 mysql openssl getmail4 update-alternatives --remove- FCM31 - 32 : The Perfect Server 1 - 2 rkhunter binutils all maildirquota.7 # localhost which is more compatible and is not less aptitude install maildrop secure. You will be asked the following questions: #bind-address = You will ask yourself why we didn't install maildrop together [...] New password for the MySQL with all the other packages. "root" user Dev Graphics Internet M/media System The reason for this is a bug in Then we restart MySQL: the courier-base package - if Repeat password for the you install maildrop together /etc/init.d/mysql restart MySQL "root" user with courier-pop, courier-pop- ssl, courier-imap, and courier- Now check that networking CD/DVD HDD USB Drive Laptop Wireless Create directories for web- imap-ssl, you will get the is enabled. Run: based administration? following error: Enter: W netstat -tap | grep mysql e can install update-alternatives: error: General type of mail alternative link Postfix, Courier, The output should look like configuration: /usr/share/man/man5/maildir.5 Saslauthd, MySQL, .gz is already managed by this: Enter: rkhunter, and maildir.5.gz. binutils - with a single root@server1:~# netstat -tap System mail name: | grep mysql command: We want MySQL to listen on Enter: all interfaces, not just tcp 0 0 *:mysql *:* LISTEN (but using your .com) (Prefix each command with localhost. Therefore we edit 6267/mysqld sudo, if appropriate). /etc/mysql/my.cnf and SSL certificate required root@server1:~# comment out the line bind- aptitude install postfix Enter: address = postfix-mysql postfix-doc During the installation, the mysql-client mysql-server Next we install maildrop as SSL certificates for IMAP-SSL courier-authdaemon courier- vi /etc/mysql/my.cnf follows: and POP3-SSL are created with authlib-mysql courier-pop courier-pop-ssl courier-imap [...] the hostname localhost. To full circle magazine #33 contents ^
  16. 16. THE PERFECT SERVER - PART 3 change this to the correct and Courier-POP3-SSL: hostname ( in this /etc/init.d/courier-imap-ssl aptitude install apache2 apache2.2-common apache2-doc Install PureFTPd And tutorial), delete the restart apache2-mpm-prefork apache2- utils libexpat1 ssl-cert Quota certificates... /etc/init.d/courier-pop-ssl libapache2-mod-php5 php5 restart php5-common php5-gd php5- PureFTPd and quota can be cd /etc/courier mysql php5-imap phpmyadmin installed with the following php5-cli php5-cgi libapache2- rm -f /etc/courier/imapd.pem Install Amavisd-new, mod-fcgid apache2-suexec php- command: SpamAssassin, And pear php-auth php5-mcrypt rm -f /etc/courier/pop3d.pem mcrypt php5-imagick aptitude install pure-ftpd- Clamav imagemagick libapache2-mod- common pure-ftpd-mysql quota suphp quotatool and modify the following two files - replacing CN=localhost To install amavisd-new, Edit the file /etc/default/pure- You will see the following with SpamAssassin, and ClamAV, ftpd-common: question: ''' we run: (and you can also modify the vi /etc/default/pure-ftpd- aptitude install amavisd-new Web server to reconfigure common other values, if necessary): spamassassin clamav clamav- automatically: vi /etc/courier/imapd.cnf daemon zoo unzip bzip2 arj Enter: and make sure that the start nomarch lzop cabextract apt- listchanges libnet-ldap-perl mode is set to standalone and [...] Configure database for libauthen-sasl-perl clamav- set VIRTUALCHROOT=true: docs daemon libio-string- phpmyadmin with dbconfig- [...] perl libio-socket-ssl-perl common? [...] vi /etc/courier/pop3d.cnf libnet-ident-perl zip libnet- Enter: STANDALONE_OR_INETD=standalon dns-perl e [...] [...] Then run the following Install Apache2, PHP5, VIRTUALCHROOT=true [...] command to enable the [...] phpMyAdmin, FCGI, Apache modules suexec, suExec, Pear, And Then recreate the rewrite, ssl, actions, and Then restart PureFTPd: certificates: include: mcrypt /etc/init.d/pure-ftpd-mysql mkimapdcert a2enmod suexec rewrite ssl restart actions include Apache2, PHP5, mkpop3dcert phpMyAdmin, FCGI, suExec, Edit /etc/fstab. Mine looks Pear, and mcrypt can be Restart Apache afterwards: like Fig.1 on the following page and restart Courier-IMAP-SSL installed as follows: (I added /etc/init.d/apache2 restart full circle magazine #33 contents ^
  17. 17. THE PERFECT SERVER - PART 3 ,usrjquota=aquota.user,grpjquo,jqfmt=vfsv0 to the partition with the mount # /etc/fstab: static file system information. # point /): # Use 'blkid -o value -s UUID' to print the universally unique identifier # for a device; this may be used with UUID= as a more robust way to name vi /etc/fstab # devices that works even if disks are added and removed. See fstab(5). # To enable quota, run these # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 commands: /dev/mapper/server1-root / ext4 errors=remount- ro,usrjquota=aquota.user,,jqfmt=vfsv0 0 1 touch /aquota.user # /boot was on /dev/sda5 during installation / UUID=9ea34148-31b7-4d5c-baee-c2e2022562ea /boot ext2 defaults 0 2 chmod 600 /aquota.* /dev/mapper/server1-swap_1 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 mount -o remount / /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 quotacheck -avugm quotaon -avug wget Then we make the script Jailkit is needed only if you http://heanet.dl.sourceforge. executable, and create the want to chroot SSH users. It net/sourceforge/mydns- Install MyDNS ng/mydns- system startup links for it: can be installed as follows (important: Jailkit must be tar xvfz mydns- chmod +x /etc/init.d/mydns Before we install MyDNS, we installed before ISPConfig - it need to install a few update-rc.d mydns defaults cannot be installed prerequisites: cd mydns-1.2.8 afterwards!): ./configure Install Vlogger And aptitude install build- Webalizer aptitude install g++ libc6 gcc gawk make texinfo essential autoconf libmysqlclient15-dev make automake1.9 libtool flex bison make install Vlogger and webalizer can MyDNS is not available in be installed as follows: cd /tmp the Ubuntu 9.10 repositories, Next, we create the therefore we have to build it start/stop script (shown on the aptitude install vlogger wget ourselves as follows: webalizer following page) for MyDNS: lkit/jailkit-2.10.tar.gz cd /tmp vi /etc/init.d/mydns Install Jailkit tar xvfz jailkit-2.10.tar.gz full circle magazine #33 contents ^
  18. 18. #! /bin/sh restart) # echo -n "Restarting $DESC: $NAME" # mydns Start the MyDNS server start-stop-daemon --stop --quiet --oknodo # --exec $DAEMON # Author: Philipp Kern <>. sleep 1 # Based upon skeleton 1.9.4 by Miquel van start-stop-daemon --start --quiet Smoorenburg --exec $DAEMON -- -b # <> and Ian Murdock echo "." <>. ;; # *) echo "Usage: $SCRIPTNAME set -e {start|stop|restart|reload|force-reload}" >&2 exit 1 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin: ;; /usr/bin esac DAEMON=/usr/local/sbin/mydns NAME=mydns exit 0 DESC="DNS server" SCRIPTNAME=/etc/init.d/$NAME cd jailkit-2.10 Next month, in the final # Gracefully exit if the package has been removed. installment, we will install test -x $DAEMON || exit 0 ./configure SquirrelMail and ISPConfig3, case "$1" in make giving you the perfect server, start) ready to go! echo -n "Starting $DESC: $NAME" make install start-stop-daemon --start --quiet --exec $DAEMON -- -b cd .. echo "." ;; rm -rf jailkit-2.10* stop) Install fail2ban echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --oknodo --quiet --exec $DAEMON echo "." This is optional but ;; reload|force-reload) recommended, because the echo -n "Reloading $DESC configuration..." ISPConfig monitor tries to show start-stop-daemon --stop --signal HUP --quiet the fail2ban log: --exec $DAEMON echo "done." aptitude install fail2ban ;; full circle magazine #33 contents ^
  19. 19. MY STORY Linux, Ubuntu & FOSS In Education M uch like any change experiences with open source and, sure enough, the errors larger Linux deployment could in public education, and Linux began with a and crashes disappeared. I not occur at that time, we the decision to Washington Post article on struck gold! We eventually explored other applications for study a migration Firefox in December, 2004. Up added Firefox to all the school's deployment. Audacity to more open-source until that point, my frustration computers. Our school-based continued to receive heavy use applications and Linux occurs with Internet Explorer grew and technician shared some other for creating podcasts. We very slowly. With all the legacy grew with each new Web applications with me, and dabbled with Gimp for graphic applications a school uses application my school pointed me toward Linux as a design. We also deployed designed for one browser (IE6), purchased. At that time, I replacement operating system. applications on the network or one operating system worked as a technology I targeted an ancient desktop, side for monitoring servers and (Windows), inflexible facilitator in one school, poised to make the next trip to bandwidth, but that was the applications for state and assisting teachers to integrate the warehouse, and limit then. federal reporting paint us into technology into their reformatted it to run Edubuntu. a corner where we either classrooms. IE just never Wow! It worked, and actually After a role at the state submit to the application of worked - between the Active X ran applications smoothly, level, and seeing more choice, or rebel and receive no errors and the consistent whereas, when running examples of school systems support for running said crashes. As a K-5 school, the Windows, the desktop bogged exploring open source and applications. While the interest trend of Web-based down even when running only Linux, I wanted to transition and passion of open source applications for student one application. When into a district that actively does grip many educators, tutorials just reformatted under looked at the innovation these obstacles do take time, began, and Edubuntu, I could possible with these tools. One but, with patience, we are many of the use Open Office, district in particular continued beginning to see a trend to applications Gimp, and more to explore various applications, more school systems exploring struggled in applications at and I sought out that open-source. In spite of these the IE the same time opportunity. As I became a challenges, Linux and open environment with little director in this school system source is alive and gaining . After that performance of 14 schools, I wanted to support in K-12 education. article, we issues. While I continue to utilize their existing decided to knew the tools and investigate more As a lifetime educator, deploy challenge to uses. Some additional starting as a classroom Firefox in one even begin innovations did not receive the teacher, my personal school lab, exploring a road blocks that can occur in full circle magazine #33 contents ^
  20. 20. MY STORY - LINUX, UBUNTU & FOSS IN EDUCATION other districts. For instance, we etc.) - and settled on many open-source tools. While source and Linux, and many of opened a new elementary WordPress, installed on a in no way satisfied with the us in the field will continue to school stocked with 150 Ubuntu server. Our solution to progress, our district definitely make a strong case for them. If eeePCs running Xandros Linux course-management systems built a strong foundation with you want to help spread Linux this year. While I will not say came to the same conclusion: which we can continue to seek and open-source in public we did this without obstacles, abandoning the proprietary out solutions to our problems, education, target principals all my staff realized the Blackboard CMS in favor of solutions that will provide us and superintendents. Chances potential for using these tools, Moodle. Both of these tools with the flexibility, and are, most Technology Directors, so we worked to solve the allowed us sometimes CIOs, and CTOs, know about issues of network printers, the scalability, the benefits. Many of our wireless access, and network freedom to that will schools' principals and storage in a Windows tailor our allow superintendents probably do environment. Students teacher and growth to not. Start a dialogue with benefited from utilizing laptops student continue them, and ask them how they in a pseudo-1:1 environment, needs in throughout are utilizing open source for and became adept at using an ways that the years. cost savings and adaptability. If alternate operating system. proprietary you receive puzzled looks, you Other schools jumped on tools did While know where to begin! board, and we moved toward not. We add public the Dell Mini-9, 10, and 12 modules to education netbooks running Ubuntu Moodle to often shows exclusively. After struggling allow tight integration with up late to the party, many in with the Dell distro, we did other tools, such as an e- education now see open move to Ubuntu Netbook portfolio tool. With WordPress, source, Linux, and Ubuntu as Remix, and we continue to see custom add-ons allow teachers viable and necessary to their more of our schools purchasing functionality that replaces their futures. Besides the cost these for their classrooms. We antiquated HTML-inspired Web savings, finding applications continue to utilize open-source pages. that they can tailor to specific is first a proud papa to his four- and two-year-old girls. He applications more often now as needs, beyond what can be also serves as the Director of well. When confronted with the Now, at the end of another done with proprietary software, Technology of a school system in increasing desire of blogging year, we take a brief pause to means a great deal, and will North Carolina. His free time is by classroom teachers, we reflect on the past-year's force them to move from spent following the Carolina Hurricanes, maintaining K-12 looked for a tool we could host successes. One cannot help traditional practices to utilize Open-Source Classroom and manage as opposed to the smiling at having overcome the these advantages. While a total (www.k12opensourceclassroom.o commercial/proprietary obstacles and seeing the move may never occur, more rg), and training for marathons. products (Blogger, Edublogs, successful deployment of so and more are moving to open full circle magazine #33 contents ^
  21. 21. MY STORY Why I Use Linux T he first computer I was cooking. I upgraded MS- Then it happened... Linux, and decided to give it a used was a Televideo DOS at every opportunity, and somewhere, somehow, I try from the CD-ROM. I was 802 running CP/M on a jumped on Windows for discovered something called hooked. Everything worked. Z80 chip - with two Workgroups with both feet. I Linux. I don't remember if it After years of being a tinkerer, 5.25-inch, single-sided, floppy- read all the magazines, was Slackware or Mandrake or all I really want today is simple, disk drives, and 32K or 64K of tweaked, upgraded and Suse or Redhat. I do know I stable and clean. I installed RAM. Except for an industry reformatted with abandon. I tried every flavor on the old Ubuntu 7.04 64-bit to dual-boot specific program, the only tried DESKview and PCTools. I 486 and on the ThinkPad - until with Vista. I never looked back. application was WordStar. The bought and proudly registered the memory and disk space I recently moved to 9.04 on the next computer was an IBM PC, all my software, and had a requirements exceeded what entire disk. I can do everything followed by a Televideo bookcase of manuals. I even was left. I want to do with speed and Portable the size of a Netscaped elegance. And regardless of Samsonite. All these were text- my way When the popular opinion, I did not have based with green screens. My onto the ThinkPad finally to become an engineer to first exposure to a GUI was Internet wore out, I make things work. Any help Tandy's Deskmate. Then, with my bought my I've needed or any questions finally, came Windows on a CompuS current Acer I've had have been quickly Tandy 2500 with VGA. We also erve Notebook with resolved by generally had SCO Unix and some dumb account Vista installed. respectful and enthusiastic terminals for word processing . When While I have users like myself. Truly a with Microsoft Word and Real I took always community. The more I learn, World Accounting, and then a new been an the more I like. I have become Novell 2. These were all job that required admirer an advocate as well as a user. company owned machines. me to travel, I of Bill My next computer... Linux for couldn't wait to get Gates, sure and maybe that monster I My first personal machine to CompUSA to pick and never always wanted to build when I was a mail-order box, from out my ThinkPad with Windows personally had any big was a tinkerer. some long-gone builder, with 95 with a free upgrade to the problems with Microsoft an Intel 486DX33, 4MB RAM, a soon-to-be-released Windows Windows or the applications, 260MB HDD, 1MB Video, and a 98. I desktop published, I Vista forced me over the edge. 2400-baud modem, plus a 15- databased, I accounted, I It just didn't work very well for inch .28 SVGA Color Monitor. I spreadsheeted and emailed. me. I had read about Ubuntu full circle magazine #33 contents ^
  22. 22. ADVERTISEMENT Ubuntu User is the first print magazine created specifically for Ubuntu users. Ease into Ubuntu with the helpful Discovery Guide included in each issue, or advance your skills with in-depth technical articles, HOW-TOs, reviews, tutorials, and community reports. r for only 4 issue s p er y ea S $ 39. 95 EUR 29. 90 / U £ 24. 90 / full circle magazine #33 contents ^
  23. 23. REVIEW Exaile I would like to present my wrong with imitating a fine extensible through plugins. favorite music player in After I began learning to product? Amarok 1.4 is a great Ubuntu. It's Exaile, a program in Python, I chanced music player, because, despite I'm very happy with Exaile player for GTK+, written in upon Exaile, which is written in its many features, its interface now. It runs well without Python. It incorporates Python. I noticed that it is remains simple and intuitive. problems. Although the automatic fetching of album similar to Amarok and looks Even first-time users will be number of its plugins is tiny art, lyrics fetching, artist/album better on the Ubuntu Desktop. able to use it adequately. compared to Amarok, I don't information via Wikipedia, It also starts faster than care, because I use only a few. support for many portable Amarok, because it doesn't Since Amarok2 was media players including iPods, need the KDE libs. released, many users haven't Exaile is in active internet radio such as let go of the old Amarok player, development. Recently, Exaile shoutcast, and tabbed Exaile has an interface like because its interface is more was rewritten from the ground playlists. I would like to tell you Amarok 1.4, so some people intuitive. Exaile also has an up for release 0.3.0. This how I came to this player. say it's just a clone of the great intuitive, relatively minimalistic should make development of Amarok player. But what's interface, but this is greatly future versions much easier. When I initially used Ubuntu Because its system (Gutsy Gibson, 7.10), I requirements are low, it has immediately disliked been the default player in Rhythmbox - the standard Xubuntu since release 9.10. Gnome player. Its interface and configuration didn't appeal to If you are running Ubuntu, me. Then I read something and want a cool way to play about a popular player called and manage your music Amarok, and installed it. collection, you might want to Although it didn't fit well into give Exaile a try. You'll find the Gnome desktop, I liked it. I Exaile in the Ubuntu software subsequently replaced the repository, and you can get the unsuitable blue icons with newest version with the Gnome Icons, which I found on developers' PPA. In my opinion, Then I was Exaile is a top-notch audio very happy with the music player. player. full circle magazine #33 contents ^
  24. 24. MOTU INTERVIEW Didier Roche little before the release of Ubuntu, as a October 2004, known now as derivative Ubuntu. After testing it, I loved distribution of it. I have stuck with it, and I Debian, benefits love the GNOME environment. from the huge documentations of When did you get involved with both distributions. the MOTU team, and how? I was also part of Age: 25 the mentoring Location: Paris/France Last July, during the RMLL program, and I IRC Nick: didrocks (Libre Software Meeting in asked my mentor, France), I spoke with Andrea Colangelo How long have you used Linux Christophe Sauthier (huats) (warp10), a lot of and what was your first distro? and he told me he was making questions. High- some packages for Ubuntu. He five to him! When other/more them, you can discover a new I started using Linux with Red presented the process, and detailed explanations were thing/concept every day. How Hat 6 in 1999. I have been a then I decided to start learning needed, I jumped to #ubuntu- exciting it is to see how far regular Linux user since the how to package. motu or other Ubuntu GNU/Linux is today! arrival of KDE-based Mandrake channels. Nobody can know 7. I used Mandrake until What helped you learn everything, and that’s where Any advice for people wanting release 9.0, and then I decided packaging and how Ubuntu the team is fantastic: you will to help out MOTU? to try Debian. I was truly teams work? always find someone who will satisfied with it, despite the be able to help you. Do not hesitate to jump in! No long configuration time needed Read, read documentation! I've programming skills are for a working environment (this never ceased to read What’s your favorite part of required. Everyone can make is no longer the case). documentation, starting from working with the MOTU? Ubuntu better, and that’s a the great resource on Ubuntu great opportunity. You can read How long have you been using wiki. Now that I have finished My favorite part is, without any Ubuntu? the “how to secure Debian” contest, interaction with GettingStarted, and and the “Debian reference others. You will find great I was seeking an easy to use guide”, I am getting into the people - a big bunch of helpful DeveloperWeek (the first and install Linux distribution. I “Debian FAQ”, just for fun! and talented developers. With session is available through 5 found the “no-name-yet” just a full circle magazine #33 contents ^
  25. 25. MOTU INTERVIEW: DIDIER ROCHE languages!). Sign up for the jams in Toulouse and in Paris. mentor process if you prefer to We will participate in 3 events have a mentor guide you in France this month, one of through your MOTU journey! which is Solutions Linux. Are you involved with any local What are you going to focus on Linux/Ubuntu groups? in Jaunty and Jaunty+1? Yes! I am involved in the French I will still help in the GNOME non-governmental Ubuntu-fr desktop area with the desktop loco team - as a member of the team. People from other administration, and a part of countries, please come in! It the chair (the secretary). seems to be a French place Within this, I participate in the there! I will also try to dedicate French Ubuntu Party as a core some time to gchildcare, which organizer, and go to various will be a simple, user-friendly, French FOSS meetings to secure, parental, child- promote Ubuntu. I also have protection software application. some relations with the press. The last events we organized were the Ubuntu Global Bug full circle magazine #33 contents ^
  26. 26. LETTERS PLEASE NOTE: some letters may be edited for space reasons. Mounting Problems LETTER OF THE MONTH I n the hope that this may The Universe of Sound article help some of the poor (FCM#31) mentions that there is a hapless people who have "record" button in Exaile, which allows the recording of a radio song. had USB drive mounting This does not seem to exist on my problems and are on the point machine running Ubuntu 9.10 with of doing irreparable harm to Exaile their computers or themselves I offer what I hope to be some comfort. Fernando replies: I have two laptops, one is an updated Jaunty to Karmic system and the other is a new system. I have had little or no problems with the upgraded system, but the new fresh install will not mount a USB drive properly. The drive is seen by the system. When fdisk -l was run in a terminal, I could see the drive correctly identified as sdb1. However, the system made no attempt to finish the automount by placing a drive icon on the desktop or . opening a Nautilus window. After Googling I was no further forward other than to see that a lot of other users were having the same issue. full circle magazine #33 contents ^