fullcircle 39

download fullcircle 39

of 45

Transcript of fullcircle 39

  • 8/8/2019 fullcircle 39

    1/45

    full circle magazine #39 contents

    full circleISSUE #39 - June 2010

    REVIEW - iRobot aPad (Android OS)

    FEDORA 13

  • 8/8/2019 fullcircle 39

    2/45

    full circle magazine #39 contents

    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 attributethe 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 www.fullcirclemagazine.org (but not attribute the article(s) in any way that suggests that they endorse you or your use of the work). Ifyou alter, transform, or build upon this work, you must distribute the resulting work under the same, similar or a compatible license.

    full circle

    Understand VM Stats p.14

    My Opinion p.23

    Virtual: Fedora 13 p.12

    Program In Python Pt13 p.07

    Ubuntu Women p.35

    Ubuntu Games p.36

    Command & Conquer p.05

    Top 5 p.42

    Team Interviews p.29

    In this new feature, each month,we'll be publishing interviewswith LoCo (Local Comminity) andTranslation Team members..

    MOTU Interview p.27

    Review - iRobot aPad p.25 Letters p.33

    http://creativecommons.org/licenses/by-sa/3.0/
  • 8/8/2019 fullcircle 39

    3/45

    full circle magazine #39 contents

    UBUNTU NEWS

    New Ubuntu Font Being Testedscheduled Beta testing for everyone on August 8th, 2010 -

    http://design.canonical.com/2010/07/the-ubuntu-font/

    August 2010:

    Maverick Meerkat hits Alpha 3

    Maverick User Interface Freeze

    and every Thursday is Bug Day!To find out more information go to: https://wiki.ubuntu.com/UbuntuBugDay/Planning

    Other Important Dates:

    Ubuntu App Dev Week

    Ubuntu Open Week

    Full Circle Podcast

    Released every two weeks,

    each episode covers all thelatest Ubuntu news, opinions,reviews, interviews and listenerfeedback. The Side-Pod is anew addition, it's an extra(irregular) short-form podcastwhich is intended to be abranch of the main podcast. It'ssomewhere to put all thegeneral technology and non-Ubuntu stuff that doesnt fit in

    the main podcast.

    :

    http://fullcirclemagazine.org

    http://fullcirclemagazine.org/http://creativecommons.org/http://www.openoffice.org/http://www.gimp.org/http://www.scribus.net/https://wiki.ubuntu.com/UbuntuBugDay/Planninghttp://design.canonical.com/2010/07/the-ubuntu-font/
  • 8/8/2019 fullcircle 39

    4/45

    full circle magazine #39 contents

    LINUX NEWS

    Indian Govt. Unveils

    $35 Tablet

    Costing only $35, and withR&D saying that price willdrop, is this the future of tabletPC's? India's Human ResourcesDevelopment Minister KapilSibal has unveiled what hasbeen claimed as the world'scheapest tablet.Costing a mere $35, the

    prototype touchscreen deviceruns on the Linux operatingsystem, has 2GB of RAM anduses a memory card slot to actas its hard-drive. Boasting aUSB port and built in WiFi aswell, these are impressivespecs for a device that costs solittle.

    The tablet, which utilises solarpower, is the work of theIndian Institute of Technologyand has been created with the

    purpose of being a cheapcomputer that can be widelydistributed and is easy to use.It's just one part in thecountry's program to educatethe huge number of youngpeople in India via technologyand the internet.While this is simply a

    prototype, with no commercialdistributor or manufacturerconfirmed, it's definitely apunch in the nose for thosecompanies who have beenleading the tablet market withdevices that cost significantlymore.

    : T3.com

    Sabayon Linux 5.3

    XFCE and LXDE Spins

    Are Now Availble

    The Sabayon Linux team hasnow released two newflavours of the Gentoo-basedLinux distro packed withalternative desktopenvironments for those whoprefer them or have slowercomputers. The Sabayon 5.3XFCE and Sabayon 5.3 LXDEspins are more experimentalin nature than the regularrelease though they areconsidered stable enough forregular use. This is just thefirst step, more spins areplanned, and these two willcontinue to evolve until theyreach a more mature state.

    theSabayon team announced.

    theannouncement explained.

    : Softpedia.com

  • 8/8/2019 fullcircle 39

    5/45

    full circle magazine #39 contents

    B

    efore I start thismonth's article, I havea few corrections tomake for my last

    article. Reader pointedout that patch isn't installed bydefault in Ubuntu, and alsowanted to make me aware of

    (vim-style diffinterface).

    Moving on to this month, Ithought it would be fun tocover two command-line tools

    for downloading websites/web-pages, namely, and

    . You may be thinkingbut I have Firefox, why would Ineed cURL or Wget?. Themain reasons I use themnowadays is when I need tomake an offline copy of awebsite (not just one webpage) or to download a webpage/file when behind afirewall that blocks thatwebsite. There are plenty ofother uses for them, such asarchiving your own website,parsing websites within scripts,quickly downloading somethingwithout opening Firefox, or

    downloading all files of a type(useful for students who haveweb-portals with lots ofresearch PDFs). For those

    wondering what the differenceis between cURL and Wget, it'sa subtle, but important,difference. cURL pulls down theHTML code and prints it toSTDOUT (i.e. returns it as theoutput of the command), whileWget downloads the .html files.

    This means that cURL is idealfor parsing certain streams (if

    you're writing a Google searchscript, for example), whileWget is useful for making a fullarchive of a website.

    Here are a few examples forcURL:

    curl -L www.w3schools.com/css

    This command tells cURL tofollow any redirects on the CSSpage of w3schools.com(specifically, Location:pointers). On this site, it shouldfollow the Next Chapter linksautomatically.

    curl -u name:passwordhttps://mail.google.com/gmail/feed/atom

    This command gives cURL auser-name and password toallow it to authenticate on thewebsite (in this case, Gmail'satom feed), thereby gainingaccess to the site without youhaving to open Firefox.

    These examples could beused in a script that accesses

    Google, searches for

    something, and returns theresults/HTML of the top result.It can also log you into yourGoogle mail account.

    And Wget examples:

    wget -r -l3http://w3schools.com/css/

    This command sends Wgetto w3schools.com, and followsthe links recursively for 3 levels(i.e. 3 Homepage --> CSS Intro -

    -> CSS Syntax). It should be

    COMMAND & CONQUER

  • 8/8/2019 fullcircle 39

    6/45

    full circle magazine #39 contents

    has learned all he knowsfrom repeatedly breaking hissystem, then having no otheroption but to discover how to fixit. You can email Lucas at:[email protected].

    COMMAND & CONQUERnoted that using a recursivewebsite travel in Wget can puta large strain on a webserver,so it should always be usedwith the levels argument, inorder to minimize websitetraffic.

    wget -c -U Mozillawww.website.com

    I didn't include an actual linkin this example, because Icouldn't think of a site thatapplied off the top of my head.However, this Wget commandpretends to be Mozilla'sbrowser (by altering the user

    agent) in order to get around

    restrictions on downloadmanagers. The -c option tellsWget to store any partiallydownloaded files so that thedownload can be resumed.

    wget -r -l1 -A.pdf --no-parent http://url-to-webpage-

    with-pdfs/

    This command tells Wget torecursively follow a website forone level, and download anypdf files it finds. The --no-parent option tells Wget tonever follow a link up to theparent directory (i.e.www.test.com from

    www.test.com/something),

    which is useful for avoidingstrain on the server as well.

    The -A option accepts a comma-separated list of fileextensions, orwildcards/patterns. In order toreject any files of a certaintype, use -R instead of -A.

    Hopefully this (admittedlyshort) article has made thepower of Wget and cURL clear,and, as always, plenty moreinformation can be found intheir respective manpages. Foranyone who has requests forcommand-line tools that Ishould cover, you can send mean email [email protected] withFCM C&C or Command &Conquer in the subject line. IfI don't already know the tool,I'll figure it out before I writethe article. For anyone whocomes up with a use for cURLor Wget that they find quite

    clever, feel free to share it withme in an email as well.

    http://curl.haxx.se/docs/httpscripting.html Great cURLtutorial/manpage (someexamples were borrowed fromhere).

    http://linuxtuts.blogspot.com/2008/03/tutorials-on-wget.htmlGreat tutorial on Wget (someexamples were borrowed fromhere).

    mailto:[email protected]://linuxtuts.blogspot.com/2008/03/tutorials-on-wget.htmlhttp://curl.haxx.se/docs/httpscripting.htmlmailto:[email protected]
  • 8/8/2019 fullcircle 39

    7/45

    full circle magazine #39 contents

    HOW-TO Program In Python - Part 13

    T

    his month, we talkabout using Curses inPython. No, we're nottalking about using

    Python to say dirty words,although you can if you reallyfeel the need. We are talkingabout using the Curses libraryto do some fancy screenoutput.

    If you are old enough toremember the early days ofcomputers, you will remember

    that, in business, computerswere all mainframes - withdumb terminals (screens andkeyboards) for input andoutput. You could have manyterminals connected to onecomputer. The problem wasthat the terminals were verydumb devices. They hadneither windows, colors, or

    much of anything - just 24 linesof 80 characters (at best).When personal computersbecame popular, in the olddays of DOS and CPM, that iswhat you had as well. Whenprogrammers worked on fancyscreens (those days),

    especially for data input anddisplay, they used graph paperto design the screen. Eachblock on the graph paper was

    one character position. Whenwe deal with our Pythonprograms that run in aterminal, we still deal with a24x80 screen. However, thatlimitation can be easily dealtwith by proper forethought andpreparation. So, go out to yourlocal office supply store andget yourself a few pads of

    graph paper.

    Anyway, let's jump right inand create our first Cursesprogram, shown above right.I'll explain after you've had alook at the code.

    Short but simple. Let'sexamine it line by line. First, we

    do our imports, which you arevery familiar with by now. Next,we create a new Curses screenobject, initialize it, and call theobject myscreen. (myscreen =curses.initscr()). This is ourcanvas that we will paint to.Next, we use the

    myscreen.border(0) commandto draw a border around our

    canvas. This isn't needed, butit makes the screen look nicer.We then use the addstr methodto write some text on ourcanvas starting on line 12position 25. Think of the.addstr method of a Cursesprint statement. Finally, the.refresh() method makes ourwork visible. If we don't refresh

    the screen, our changes won'tbe seen. Then we wait for theuser to press any key (.getch)and then we release the screenobject (.endwin) to allow ourterminal to act normally. Thecurses.endwin() command isVERY important, and, if it

    doesn't get called, your

    terminal will be left in a majormess. So, make sure that youget this method called beforeyour application ends.

    Save this program asCursesExample1.py and run itin a terminal. Some things tonote. Whenever you use aborder, it takes up one of our

    usable character positionsfor each character in theborder. In addition, both theline and character positioncount is ZERO based. Thismeans that the first line in ourscreen is line 0 and the last lineis line 23. So, the very top left

    #!/usr/bin/env python# CursesExample1#-------------------------------# Curses Programming Sample 1#-------------------------------import curses

    myscreen = curses.initscr()myscreen.border(0)myscreen.addstr(12, 25, "See Curses, See Curses Run!")myscreen.refresh()myscreen.getch()curses.endwin()

  • 8/8/2019 fullcircle 39

    8/45full circle magazine #39 contents

    PROGRAM IN PYTHON - PART 13

    position is referred to 0,0 andthe bottom right position is23,79. Let's make a quickexample (above right) to showthis.

    Very simple stuff except thetry/finally blocks. Remember, Isaid that curses.endwin is VERYimportant and needs to becalled before your applicationfinishes. Well, this way, even ifthings go very badly, theendwin routine will get called.

    There's many ways of doingthis, but this way seems prettysimple to me.

    Now let's create a nicemenu system. If you rememberback a while, we did acookbook application that hada menu (Programming Python -Part 8). Everything in the

    terminal simply scrolled upwhen we printedsomething. This time we'lltake that idea and make adummy menu that you canuse to pretty up thecookbook. Shown below iswhat we used back then.

    This time, we'll useCurses. Start with thefollowing template. Youmight want to save thissnippet (below right) soyou can use it for your ownfuture programs.

    Now, save yourtemplate again ascursesmenu1.py so thatwe can work on the fileand keep the template.

    #!/usr/bin/env python# CursesExample2import curses#==========================================================# MAIN LOOP#==========================================================try:

    myscreen = curses.initscr()myscreen.clear()

    myscreen.addstr(0,0,"0 1 2 34 5 6 7")

    myscreen.addstr(1,0,"12345678901234567890123456789012345678901234567890123456789012345678901234567890")

    myscreen.addstr(10,0,"10")myscreen.addstr(20,0,"20")myscreen.addstr(23,0, "23 - Press Any Key to Continue")myscreen.refresh()myscreen.getch()

    finally:curses.endwin()

    ===================================================RECIPE DATABASE

    ===================================================1 - Show All Recipes2 - Search for a recipe3 - Show a Recipe4 - Delete a recipe5 - Add a recipe6 - Print a recipe0 - Exit

    ===================================================Enter a selection ->

    #!/usr/bin/env python#-------------------------------# Curses Programming Template#-------------------------------import curses

    def InitScreen(Border):if Border == 1:

    myscreen.border(0)

    #==========================================================# MAIN LOOP

    #==========================================================myscreen = curses.initscr()InitScreen(1)try:

    myscreen.refresh()# Your Code Stuff Here...

    myscreen.addstr(1,1, "Press Any Key to Continue")myscreen.getch()

    finally:curses.endwin()

    OG O

  • 8/8/2019 fullcircle 39

    9/45full circle magazine #39 contents

    PROGRAM IN PYTHON - PART 13

    Before we go any furtherwith our code, we are going todo this in a modular way. Here(above right) is a pseudo-codeexample of what we are goingto do.

    Of course this pseudo codeis just that...pseudo. But itgives you an idea of where weare going with this whole thing.Since this is just an example,we'll only go just so far here,but you can take it all the wayif you want. Let's start with themain loop (middle far right).

    Not much in the way ofprogramming here. We haveour try|finally blocks just as wehad in our template. Weinitialize the Curses screen andthen call a routine namedLogicLoop. That code is shownbottom far right.

    Again, not much, but this is

    only a sample. Here we aregoing to call two routines. Onecalled DoMainMenu and theother MainInKey. DoMainMenuwill show our main menu, andthe MainInKey routine handleseverything for that main menu.

    Tthe DoMainMenu routine isshown right.

    curses.initscreenLogicLoop

    ShowMainMenu # Show the main menuMainInKey # This is our main input handling routine

    While Key != 0:If Key == 1:

    ShowAllRecipesMenu # Show the All Recipes MenuInkey1 # Do the input routines for this

    ShowMainMenu # Show the main menuIf Key == 2:

    SearchForARecipeMenu # Show the Search for a Recipe MenuInKey2 # Do the input routines for this optionShowMainMenu # Show the main menu again

    If Key == 3:ShowARecipeMenu # Show the Show a recipe menu routineInKey3 # Do the input routine for this routineShowMainMenu # Show the main menu again

    # And so on and so oncurses.endwin() # Restore the terminal

    # MAIN LOOPtry:

    myscreen = curses.initscr()LogicLoop()

    finally:curses.endwin()

    def LogicLoop():DoMainMenu()MainInKey()

    def DoMainMenu():myscreen.erase()myscreen.addstr(1,1,

    "========================================")myscreen.addstr(2,1, " Recipe

    Database")myscreen.addstr(3,1,

    "========================================")myscreen.addstr(4,1, " 1 - Show All

    Recipes")myscreen.addstr(5,1, " 2 - Search for a

    recipe")myscreen.addstr(6,1, " 3 - Show a recipe")myscreen.addstr(7,1, " 4 - Delete a recipe")myscreen.addstr(8,1, " 5 - Add a recipe")myscreen.addstr(9,1, " 6 - Print a recipe")myscreen.addstr(10,1, " 0 - Exit")myscreen.addstr(11,1,

    "========================================")myscreen.addstr(12,1, " Enter a selection: ")myscreen.refresh()

  • 8/8/2019 fullcircle 39

    10/45full circle magazine #39 contents

    PROGRAM IN PYTHON - PART 13Notice that this routine does

    nothing but clear the screen(myscreen.erase), and thenprint what we want on thescreen. There is nothing heredealing with keyboardhandling. That's the job of theMainInKey routine, which isshown below.

    This is really a simpleroutine. We jump into a whileloop until the key that is

    entered by the user equals 0.Within the loop, we check to

    see if it's equal to variousvalues, and, if so, we do aseries of routines, and finallycall the main menu when weare done. You can fill in most ofthese routines for yourself bynow, but we will look at option2, Search for a Recipe. Themenu is short and sweet. TheInKey2 routine (right) is a bitmore complicated.

    def MainInKey():key = 'X'while key != ord('0'):

    key = myscreen.getch(12,22)myscreen.addch(12,22,key)if key == ord('1'):

    ShowAllRecipesMenu()DoMainMenu()

    elif key == ord('2'):SearchForARecipeMenu()InKey2()DoMainMenu()

    elif key == ord('3'):ShowARecipeMenu()DoMainMenu()

    elif key == ord('4'):

    NotReady("'Delete A Recipe'")DoMainMenu()

    elif key == ord('5'):NotReady("'Add A Recipe'")DoMainMenu()

    elif key == ord('6'):NotReady("'Print A Recipe'")DoMainMenu()

    myscreen.refresh()

    def SearchForARecipeMenu():myscreen.addstr(4,1, "-------------------------------")myscreen.addstr(5,1, " Search in")myscreen.addstr(6,1, "-------------------------------")myscreen.addstr(7,1, " 1 - Recipe Name")myscreen.addstr(8,1, " 2 - Recipe Source")myscreen.addstr(9,1, " 3 - Ingredients")myscreen.addstr(10,1," 0 - Exit")myscreen.addstr(11,1,"Enter Search Type -> ")myscreen.refresh()

    def InKey2():key = 'X'doloop = 1while doloop == 1:

    key = myscreen.getch(11,22)myscreen.addch(11,22,key)tmpstr = "Enter text to search in "if key == ord('1'):

    sstr = "'Recipe Name' for -> "tmpstr = tmpstr + sstrretstring = GetSearchLine(13,1,tmpstr)break

    elif key == ord('2'):sstr = "'Recipe Source' for -> "

    tmpstr = tmpstr + sstrretstring = GetSearchLine(13,1,tmpstr)break

    elif key == ord('3'):sstr = "'Ingredients' for -> "tmpstr = tmpstr + sstrretstring = GetSearchLine(13,1,tmpstr)break

    else:retstring = ""break

    if retstring != "":myscreen.addstr(15,1,"You entered - " + retstring)

    else:myscreen.addstr(15,1,"You entered a blank string")

    myscreen.refresh()myscreen.addstr(20,1,"Press a key")myscreen.getch()

    def GetSearchLine(row,col,strng):myscreen.addstr(row,col,strng)myscreen.refresh()instring = myscreen.getstr(row,len(strng)+1)myscreen.addstr(row,len(strng)+1,instring)myscreen.refresh()return instring

  • 8/8/2019 fullcircle 39

    11/45full circle magazine #39 contents

    is owner of, a

    consulting company in Aurora,Colorado, and has beenprogramming since 1972. Heenjoys cooking, hiking, music,and spending time with hisfamily.

    PROGRAM IN PYTHON - PART 13

    Full CirclePodcast

    The is back and better thanever!

    Topics in episode ten include: News Opinion - Contributing articles with the FCM Editor. Interview - with Amber Graner Feedback...and all the usual hilarity.

    The podcast and show notes are at:http://fullcirclemagazine.org/

    Again, we are using astandard while loop here. Weset the variable doloop = 1, sothat our loop is endless untilwe get what we want. We usethe break command to dropout of the while loop. The threeoptions are very similar. Themajor difference is that westart with a variable namedtmpstr, and then appendwhatever option text has beenselected...making it a bit morefriendly. We then call a routinecalled GetSearchLine to getthe string to search for. We usethe getstr routine to get a

    string from the user ratherthan a character. We thenreturn that string back to ourinput routine for furtherprocessing.

    The full code is at:http://pastebin.com/ELuZ3T4P

    One final thing. If you are

    interested in looking intoCurses programming further,there are many other methodsavailable than what we usedthis month. Besides doing aGoogle search, your beststarting point is the officialdocs page at

    http://docs.python.org/library/curses.html.

    OOPS!

    It seems that the code forisn't properly

    indented on Pastebin. Thecorrect URL for Python Pt.11code is:http://pastebin.com/Pk74fLF3

    Please check:http://fullcirclemagazine.pastebin.com for all Python (andfuture) code.

    http://fullcirclemagazine.pastebin.com/http://pastebin.com/Pk74fLF3http://docs.python.org/library/curses.htmlhttp://pastebin.com/ELuZ3T4Phttp://fullcirclemagazine.org/http://url.fullcirclemagazine.org/88a985
  • 8/8/2019 fullcircle 39

    12/45full circle magazine #39 contents

    HOW-TO Virtualization Pt2 - Fedora 13

    B

    efore we start, I needto mention, foranyone who may runinto the same issues,

    that reader was kindenough to inform me that heran into a few issues with USBdevices in a Windows XP virtualmachine, which were onlysolved after installing the USBdrivers via the HardwareManager in XP.

    Now that we've covered

    creating the virtual machinesthemselves, I felt we couldstart with a Linux distributionthat's different (uses the RedHat package manager), but nottoo different, from Ubuntu.Specifically, I want to start withFedora Core 13. You candownload the most recentrelease (13) here:

    http://fedoraproject.org/en/get-fedora. Whether you downloadthe 32-bit (i686) ISO image orthe 64-bit one, the process isthe same. Of course, the Linuxdistribution you choose in thedrop-down list for the VirtualMachine should be the same as

    the one you downloaded.Please note that if your systemisn't 64-bit compatible (andrunning a 64-bit Operating

    System), you can't run a 64-bitVirtual Machine. It's possiblethat Oracle has enabledemulation of 64-bit systemsfrom within a 32-bit host, but Idon't know this for a fact, as allmy Operating Systems are 64-bit. In plain English: VirtualBoxmight let you run a 64-bitVirtual Machine from a 32-bit

    Operating System (the host),but it's fairly unlikely. Foranyone who's like me, and hasan archive of all 32-bit and 64-bit ISOs for the last tworeleases of every Linux andUnix distribution they could gettheir hands on, just go aheadand grab a Fedora ISO image.

    Step 1:

    After you've downloaded theISO image, start the Machineyou wish to install it on. Uponstarting up a Machine for thefirst time, you'll be greeted bya First Run Wizard (see Fig.1),

    unless you're re-using a virtualdisk. In the First Run Wizard,you'll need to hit Next, andclick the folder icon with the

    green arrow to open the VirtualMedia Manager (Fig. 2), whereyou can add the ISO image(Fig. 3).

    Step 2:

    Once you connect the ISOimage to the Virtual Machine, it

    should boot and greet you withthe Oracle VM BIOS splash (orthe older VirtualBox BIOSsplash), as seen in Fig 4. Itshould then show Fedora'sGrub menu (Fig. 5), and, finally,the Login Window. I've alsochanged my keyboard to thecorrect layout, and selectedthe automatic login user. In

    order to sign in, just press thelog in button.

    VIRTUALIZATION PART 2

    http://fedoraproject.org/en/get-fedora
  • 8/8/2019 fullcircle 39

    13/45full circle magazine #39 contents

    VIRTUALIZATION - PART 2

    has learned all he knowsfrom repeatedly breaking hissystem, then having no otheroption but to discover how to fixit. You can email Lucas at:[email protected].

    Step 3:

    After the desktop hasloaded, you'll want to launchthe Install to Hard Driveapplication (Figs. 7 & 8).Continue on to the KeyboardLayout selection screen, whereyou can choose yourcorresponding layout (Fig. 9).Once you've selected the rightlayout, you'll be presented witha choice ofBasic StorageDevices and SpecializedStorage Devices, of which youwant to choose the BasicStorage options (Fig. 10).

    Step 4:

    Now you're asked to choosethe hard drive to install on, ofwhich there should only be one(the Vbox drive), select it, andif you're asked to re-initializethe disk, do so (the disk shouldbe empty if you just created

    the machine). See Figs. 11 &12.

    Step 5:

    Feel free to choosewhatever hostname you'd like,select the right time-zone, andenter your root password in thenext 3 steps of the installation.

    Step 6:

    Now you'll be greeted with awindow asking you whatpartition layout it should use(see Fig. 13). On virtualmachines, I generally just let ituse the entire disk, unless I'mplanning on installing the same

    OS onto a physical PC anddecided to do a test run in avirtual machine first. All otheroptions are up to you. Confirmyour decision with write todisk. When asked, be sure tochoose install to Master BootRecord for GRUB, in order tobe able to boot.

    Close the installationprogram, reboot the virtualmachine, and be sure to go toDevices > CD/DVD Devices,and choose unmount CD/DVDdevices, in order to boot intothe install - instead of the ISOimage.

    I hope this has been a clearexplanation for anyone new toinstalling Fedora. In the nextfew issues, I plan to coverinstalling OpenSolaris,FreeBSD, Ubuntu Server, andArchLinux. However, I'm morethan happy to coverinstallations of most any Unixor Linux systems, or WindowsXP/Windows 7 in a virtualmachine. If you have a request,send me an email [email protected] withVirtualization Series or FCMVirtualization in the subjectline.

    mailto:[email protected]:[email protected]
  • 8/8/2019 fullcircle 39

    14/45full circle magazine #39 contents

    HOW-TO Understand Virtual Memory Stats

    W

    e are givenexcellent toolssuch as vmstat ortop to monitor our

    systems condition. If textmode doesn't suit your need,there are graphical versionssuch as KSysGuard or GNOMESystem Monitor applet.However, for some peoplethese don't provide enoughdetailed information. Forexample, since we are going totalk about virtual memory, this

    question might arise: "from atotal of 512MB of used RAM,how much is taken strictly foranonymous page allocation?"

    There is no obvious answer ifyou just check vmstat or top.

    So, what is the alternative?Go to the source: top, vmstatand the like actually extractthe information from certainfiles in /proc. By directlyviewing their contents, you arelooking straight at the heart ofthe information provided bythe Linux kernel itself. Some ofthem might not be prettilyformatted, and may require

    precise knowledge justto know what the firstor second columnsmean, but the

    payback is to have themost complete data inyour hand.

    For system-widevirtual-memorystatistics, theinformation is in/proc/meminfo. Amongthe other files are

    /proc/loadavg forsystem load,/proc/cpuinfo fordetailed processorspecification andcapability, and/proc/vmstat for evenmore detailed virtualmemory statistics.

    One clear advantage inchecking /proc files over usingtools like vmstat is that youneed just a simple text viewer,like "cat". But if you want, youcan do something like thatshown above right to betterformat the output.

    The above sample output istaken from my laptop, whichhas 2GB RAM installed.

    Let's start with the easiest:MemTotal. It shows the size ofyour physical memory that ismappable by the kernel.What's the meaning of"mappable" here? The short

    answer is: addressable insidethe kernel memory space,

    whether permanently or viatemporary mapping.

    What is that supposed tomean? Although the BIOS(Basic Input/Output System)detects - let's say - 2GiB, thereis a chance the Linux kernel is

    $ pr -t -T --columns=2 /proc/meminfo

    MemTotal: 2064980 kB Mapped: 50228 kB MemFree: 789700 kB Shmem: 9288 kB

    Buffers: 40172 kB Slab: 34576 kBCached: 672872 kB SReclaimable: 15436 kBSwapCached: 0 kB SUnreclaim: 19140 kB

    Active: 412140 kB KernelStack: 964 kBInactive: 695540 kB PageTables: 6536 kB

    Active(anon): 188132 kB NFS_Unstable: 0 kBInactive(anon): 215788 kB Bounce: 0 kB

    Active(file): 224008 kB WritebackTmp: 0 kBInactive(file): 479752 kB CommitLimit: 2084704 kBUnevictable: 16 kB Committed_AS: 930940 kB

    Mlocked: 16 kB VmallocTotal: 122880 kBHighTotal: 1179464 kB VmallocUsed: 13100 kB

    HighFree: 137520 kB VmallocChunk: 50720 kBLowTotal: 885516 kB HugePages_Total: 0LowFree: 652180 kB HugePages_Free: 0SwapTotal: 1052216 kB HugePages_Rsvd: 0SwapFree: 1052216 kB HugePages_Surp: 0Dirty: 0 kB Hugepagesize: 4096 kB

    Writeback: 0 kB DirectMap4k: 147448 kB AnonPages: 394708 kB DirectMap4M: 761856 kB

    UNDERSTAND VIRTUAL MEMORY STATISTICS

  • 8/8/2019 fullcircle 39

    15/45full circle magazine #39 contents

    UNDERSTAND VIRTUAL MEMORY STATISTICS

    able to address less than that.It depends on how the kernel isconfigured during compilation.Basically, there are threesettings:- Detecting up to 896MiB, alsoknown as "no highmem"- Detecting between 896MiB

    and 4GiB- Detecting up to 64GiB. Itrequires a processor featurenamed PAE (Physical AddressExtension) to be enabled first.

    Default kernel imagesshipped by most moderndistros are able to detect anduse up to 4GiB. In order to usemore, you need to install akernel image package usuallynamed with the "hugemem" or"pae" suffix. Check yourdistribution documentation tofind out more. You can alsoselect the mode in "HighMemory Support" inside the"Processor type and features"

    section during kernelconfiguration, and thencompile the kernel source byyourself. It's your choice.

    "MemFree" is the amount ofmemory which is assigned fornothing. In most modern OSs,not just Linux, this field tends

    to drop quickly over time. Thisdoesn't neccessarily meanthere are aggressive memoryallocations from applications. Itcould also mean the kerneldoes a lot of caching, thusreducing disk access frequency.

    Total size of all your activeswap partitions and files canbe seen in SwapTotal. Again,only the active ones! SwapFreesimply denotes how muchspace is available, so Linuxmemory manager could pushinactive or least recently usedpages out of RAM.

    Buffers and cache have asomewhat confusing meaning.Both actually refer to pagecache, runtime allocated pageframes which are used tocache recently accessed blockdevices contents. Buffers arespecifically allocated if diskmust be accessed other than in

    page size granularity (4KiB, in32 byte Intel x86 architecture).Inodes, directory entries,superblocks or results fromdirect I/O end up here.

    On the other hand, cachefield (which is a shorthand forpage cache itself) contains

    results of filesystem-based I/O. Forexample, if you do"cat /etc/services",the content of the fileends up in "cache",while the inode thatdescribes the metadata

    of the file is cached inbuffers.

    Buffers and cache are notjust useful for readoperations. During writeoperations, they act astemporary storage before thecontents are pushed to thebacking device. By doing this,and coupled with asynchronousI/O employed by the Linuxkernel, the write operationscould be deferred later, andtasks could resume to dosomething else faster. Thisdeferred I/O style also makeswrite-merge possible. As a netresult: an increased throughput.

    Swap cache is a special kindof cache. OK, we know thatswapping means moving somepages (most likely inactive fora certain period) to swap area.However, in a busy system, itis likely that those pages arebrought back to RAM shortly

    afterwards. Paging-in from theswap area takes time,

    therefore, with the same logicapplied to normal file readoperations, some of the pagedout pages are cached in RAM.So, when they are needed tosatisfy page faults, no disk I/Oneeds to be generated.

    The following statistics havea loose relationship with active

    and inactive counters. They arehigh-memory and low-memoryones (HighTotal, LowTotal,HighFree, LowFree). Why isthere high memory? Here isthe background. In a 32-bit x86system, the kernel has 1GiB ofaddress space, while user

    UNDERSTAND VIRTUAL MEMORY STATISTICS

  • 8/8/2019 fullcircle 39

    16/45

    full circle magazine #39 contents

    UNDERSTAND VIRTUAL MEMORY STATISTICSmode has 3GiB. It is known asa 3:1 split. In this 1GiB addressrange, RAM is directly mapped.By "directly" it means thatthere is identity mapping, e.g0xC0000001 linear address isphysical address 0x00000001,0xC0000002 linear address is

    physical address 0x00000002,and so on.

    As you can quickly conclude,physical pages above 1GiBcan't be directly mapped. Inreality, it is less than 1GiB; it isabout 896MiB due to severalreservations, as we shall seelater. Everything that can bedirectly mapped is known aslow memory, and included in amemory zone calledZONE_NORMAL.

    So, how to cope with >896MiB RAM? They are stilldetected and counted by thekernel. However, if somethingneeds to access them, theyneed to be mapped, eitherpermanently or temporarilyinside kernel address space. Inthe case of user-spaceallocation, the kernel will thencreate the neccessary mappingin user-address space, andrelease the mapping in the

    kernel space. For this reason,pages above 896MiB are calledhigh-memory and included inZONE_HIGHMEM.

    Note: in x64 and IA64architecture, high-memorysimply doesn't exist because

    address space could covermuch more than 1GiB.

    Next, let's talk about theactive and inactive statisticsfamily. Just as some of thethings we humans buy for ourdaily needs may be usedfrequently, or infrequently, orrarely, the same applies tomemory allocation. Oneproblem arises: when the freememory gets tight, or thekernel wants to push them outof RAM, which ones are thetarget?

    The answer is obtained byputting allocated pages intotwo categories: active andinactive. They areimplemented as linked lists.

    These lists are further brokeninto each memory zone: DMA,normal, and highmem. Simplyspeaking, DMA zone denotesthe memory area that can bereferenced by DMA operation

    (0-16MiB in x86 32 bit), normalzone covers the 16-896MiBrange, and highmem coversthe rest. Please note that theexistence of highmem zonedepends on whether oneenables CONFIG_HIGHMEM inthe kernel configuration or not.

    Initially, pages areappointed into the active list.Periodically, the kswapd kernelthread is awakened and itscans all memory zones.Scanning could also happenwhen there is a shortage offree pages.

    For each of the zones, it firstchecks whether free pages arestill above a certain threshold.If they are, then a number ofpages are moved into theinactive list. Following that,inactive lists are also scanned.For those which are leastrecently used, they areswapped out up to a certainpredefined threshold.

    Recent kernel developmentsplits these lists into ones thathold anonymous pages andones that hold file-backedpages. The goal is to focus onreclaiming file-backed pages,

    and mostly bypass anonymouspages. The kernel developerscame to this conclusion afteranalyzing several workloads.However, this policy mightchange (even radically) in thefuture. Another advantage ofthis separation is: no need for

    kswapd to scan the entire listjust to specifically search theanonymous or file-backedpages only.

    Moving to the PageTablesfield, this might force you tothink for a few seconds. First,what is Page-Table? Page-Tableis a data structure that helps ahardware circuit called theMMU (Memory ManagementUnit) to translate virtualaddresses to physicaladdresses. Page table is like amap which gives a clue how todo such translations. Forexample, by looking up theentries of a page table, virtualaddress 100 might be resolvedto physical address 1000. Thisis the basis of protected modewhere each task is given adistinct process address space.

    Therefore, each of them "feels"like owning the entire RAM foritself.

    UNDERSTAND VIRTUAL MEMORY STATISTICS

  • 8/8/2019 fullcircle 39

    17/45

    full circle magazine #39 contents

    UNDERSTAND VIRTUAL MEMORY STATISTICS

    The size of a single pagetable varies among machinearchitectures. Most likely, it iseither 4KiB or 8KiB. The later isused if you enable PAE in yourrunning kernel. With PAE, youcan address physical RAM up to64GiB with normal x86 32-bit

    processors. The more youallocate memory, the moreentries are needed to be addedto page tables. Page tablesthemselves consume RAM,because it is not possible toput it on another storage.However, thanks to multi-levelpaging schema implemented inthe Linux kernel, page tablesmemory consumption can becompressed to its minimum.

    CommitLimit andCommitted_AS denotes thecurrent memory reservationand the maximum limit ofmemory reservation,respectively. Actual memory

    allocation is done in deferredstyle, meaning it is done whenit is really needed. Theindicator applies at themoment a page fault istriggered, be it a minor ormajor one. What reallyhappens when a program asksfor memory, let's say through

    the malloc() function - is it justvirtual memory area (VMA)allocation, or is it extending theexisting one inside a certainprocess address space? Youcan guess that this is why it isdescribed as "commit___" i.e: "Icommit to provide you

    128KibiByte of RAM".

    AnonPages (AnonymousPages) field denotes allocatedpages which have no backingstorage. This could be theresult of malloc() or mmap()with the MAP_ANONYMOUSflag. It has a somewhat tightrelationship with the sum of alltasks' resident set size(frequently shortened as RSS).If you want to see true memoryconsumption, it is likely thatthis is the field you are lookingfor. Anonymous pages arepaged out to the swap area intight memory situations, this iscontrary to page cache. They

    will simply be flushed back todisk.

    Huge page statistic

    Now well coverHugePages_Total,HugePages_Free,

    HugePages_Rsvd (reservedhuge page), HugePages_Surp(surplus huge page) andHugepagesize. But first, what ishuge page? As the namesuggests, it means pageswhose size is bigger than thenormal one allocated by the

    Linux kernel. x86 systemsupports various page sizes:4KiB, 2MiB and 4MiB, the lattertwo depend on certain flags.Usually, Linux prefers to usethe 4KiB as page size. But insome occasions, bigger pagesizes bring benefits.

    Imagine this scenario. Aprocess needs to allocate 4MiBof RAM. If the kernel uses a4KiB page, it would take 1024page frame allocations, not tomention the page allocated forpage tables. Now, if we use a4MiB page size, we need just aone-time page allocation, andlesser space for the page table.

    The real benefit actually lies ina circuit called the TLB(Translation Look-aside Buffer).

    TLB caches several latestaddress translations. As youcan guess, a bigger page sizerequires fewer page tableentries. Therefore, TLB alsocaches fewer entries too. This

    will accelerate further addresslookup, an advantage forapplications that frequentlyaccess RAM.

    Applications can ask forhuge pages using hugetlbfslibrary. The statistics are then

    reflected in "HugePage"prefixed fields.HugePages_Total,HugePages_Free are easy tounderstand. They reflect thetotal size of huge pages andfree huge pages respectively.HugePages_Rsvd is the amountof committed huge pages,much like the meaning ofCommitted_AS.HugePages_Surp is the size ofadditional huge pages that isallocated by the kernel if anapplication seeks more hugepages than HugePages_Total.

    This number can not exceed/proc/sys/vm/nr_overcommit_hugepages. Hugepagesize

    denotes the size of the page.

    Vmalloc statistics

    For average Linux users anddevelopers, the malloc()function call is probably themost well known to allocate

    UNDERSTAND VIRTUAL MEMORY STATISTICS

  • 8/8/2019 fullcircle 39

    18/45

    full circle magazine #39 contents

    UNDERSTAND VIRTUAL MEMORY STATISTICS

    memory. However, in kernelspace, there are a lot offunctions to deal with memoryallocation. Most of thesefunctions are allocatingphysically contiguous pages.Easy to predict, if you want toask for a relatively large chunk

    of memory, the probability itwould fail is high especially inhighly fragmented virtualmemory.

    The solution? Instead ofexpecting physicallycontiguous pages, why notvirtually contiguous memorychunks? By configuring pagetable entries, scattered chunksof page frames will be seen ascontiguous, just like what weactually see in user space (youdon't realize it, do you?).vmalloc() is the name of thefunction that does this. Theonly thing left in the puzzle iswhere does the kernel map the

    pages? Sufficient to say thatinside kernel address space(1GiB long), the upper 128MiBare reserved for vmalloc andhigh memory mapping, etc.Within this reserved addressspace, vmalloc() can map theobtained pages.

    VmallocTotal denotes thelength of reserved space forvmalloc. VmallocUsed tells usthe total amount of vmalloc()-ed pages. Finally,VmallocChunk denotes thelongest address space wherenewly allocated vmalloc pages

    could be mapped.

    DirectMap statistics:

    Recall that RAM is dividedinto zones and the kernel ismapped into the upper 1GiBaddress space in x86 32-bitarchitecture. This address

    space has identical mappingbetween physical page framesstarting from address 0 andvirtual address starting from

    just above 3GiB. We can justcall it direct mapping.

    There are chances thatmany page frames are neededhere. To accommodate that,

    the memory allocator usesevery available page sizeprovided by the system. As wementioned in the huge pagessection, we have 4KiB and4MiB as choices, plus 2MiB ifthe kernel enabled PAE (in thecase of 64GiB highmem

    support). During systeminitialization, the kernel will usethe highest page size availableto map the entire kerneladdress space. Later, to satisfysmaller memory request, someof these big pages are split intosmaller ones.

    DirectMap4k orDirectMap4M fields reflect thesize of RAM that is mappedusing particular page size.

    Miscellaneous fields:

    Mlocked: this determines

    the amount of allocatedmemory thats strictlyprohibited from being pagedout. Some applications, mostlikely latency sensitive and real-time ones, do this kind ofoperation. Through mlock() andmlockall(), a programmer canask the memory manager topin certain memory areas in

    RAM. Why would such anoperation be needed? Bymaking sure it wouldn't beswapped out, major page faultswon't happen. Therefore,memory access time isguaranteed to be as fast aspossible.

    Dirty: No, it doesn't meansomeone should bring some ofyour RAM banks to the nearestlaundry :) Recall that throughpage cache, writing to disk isdone in deferred style. Thus, atcertain times, pages in RAM,and their backing data blocksin storage, might not holdsame data. This is what we call"dirty pages". A large amountof dirty pages means there area lot of in-flight disk writinggoing on.

    Writeback: denotes the

    amount of dirty page frames inRAM (in KiB) which is still beingwritten back to the backingstorage. Logically, "writeback"cannot exceed "dirty". Again,in I/O bound systems, thisnumber might be higher thanzero all the time - which isnormal. But just forpreventions sake, better watch

    /var/log/messages just in casethere are I/O write errors.

    WritebackTmp: has asomewhat loose relationshipwith "Writeback". From sourcecode tracing, it seems that thisstatistic is related only with

    UNDERSTAND VIRTUAL MEMORY STATISTICS

  • 8/8/2019 fullcircle 39

    19/45

    full circle magazine #39 contents

    UNDERSTAND VIRTUAL MEMORY STATISTICS

    FUSE (Filesystem on UserSpace). Whenever a processwants to write to a FUSEfilesystem, several pages areallocated simulating dirtybuffers. These dirty buffers arethen flushed to the "backingdevice". I write it inside double

    quotes because, as you know,FUSE could realize almosteverything as filesystem: SSH,FTP, HTTP and so on. So,writing buffers in this sensecould actually mean writingdata to remote targets - usingcertain protocols - withoutinvolving block operations.

    Bounce: Size of physicalRAM that is used as temporarytransit called bounce buffer fordata stream - between certainmemory areas (likely in highmemory zone) and devicessuch as SCSI or PCI ones.During DMA operations, someof these devices cannot

    address beyond 1GiB, so thekernel allocates the bouncebuffer in a low memory zone,and copies the data there first.

    Nowadays, almost allPCI/PCIex/SCSI/SATA etc. canaddress up to 4GiB. Thus, withproper device-driver support,

    bounce buffer is almost nolonger needed. However, as wewidely know, servers anddesktops equipped with 4GiBRAM are quite common. Forcertain needs, they are soonupgraded to 8GiB, 16GiB oreven more. To cope with such

    large high memory, bouncebuffers might still be needed.

    Mapped: shows you thetotal amount of files' contentswhich are already mappedinside a process address space,and have been paged in. Forfiles being read but notmemory mapped, they aresimply excluded from thesestatistics.

    Next, we explain Slab,SReclaimable, and SUnreclaim.Slab is a kind of cache forcertain kernel data structures.

    Thanks to slab, allocate-free-allocate cycle can be

    accelerated because somedata structures are not reallyfreed but just marked asreusable.

    Within this cache, they arecategorized either asreclaimable or unreclaimable.As the names suggest,

    reclaimable means they can bereally freed (put back as freepages) in cases of free memoryshortage. On the other hand,unreclaimable means they cannot be freed by the kernelmemory manager. Only theoriginal allocator can release

    them.

    Unevictable is a superset ofthe mlocked statistic, but theyhave relatively the samemeaning: the page frames stayin RAM no matter what. Someof the reasons why they mightbe unevictable: they belong toRAM based filesystem (forexample ramfs, but notshmfs!), lack of swap space,part of locked shared memory,and so on.

    If you use NFS, you mightwant to check theNFS_Unstable field. The nameis somewhat confusing, but

    actually it has relatively thesame meaning as dirty page.Talking a bit about how NFSworks: In the context of anasynchronous NFS mount,when updated file contents arepushed by the NFS clienttoward the NFS server, theserver receives the data and

    responds promptly. However,the data hasn't been written tothe storage yet. Until ithappens, they are counted asunstable ones.

    Shmem field: depicts theamount of shared memory

    used by group(s) processes.Most likely they are pagesallocated for System V IPC(Inter Process Communication),but there are otherpossibilities: pages in tmpfsfilesystem, pages marked asCopy On Write, pages for GEM(Graphic Execution Manager - amemory manager for GraphicalProcessing Unit's memory).

    Guess what kernel stackmeans? If you think about anapplication, the term stack isnot strange. It is whereparameters' values and returnaddresses are pushed, amongother needs. But when

    applications enter kernel modeby means of system calls, thisuser space stack is not used.Here kernel mode stackreplaces the role of the userspace stack.

    The "KernelStack" simplyreflects the amount of memory

    UNDERSTAND VIRTUAL MEMORY STATISTICS

  • 8/8/2019 fullcircle 39

    20/45

    full circle magazine #39 contents

    is a 31-yearold Indonesian who lives inJakarta. He works as a freelancewriter, lecturer and trainer andhis blog is at: http://the-hydra.blogspot.com. For furtherdiscussion about this article orother Linux questions you mighthave, you can contact him [email protected]

    dedicated for this need. Themore processes you have, themore kernel stacks areallocated.

    : nowadays, the kernelcan be configured to use 4KiB(the default) or 8KiB kernel

    stack. Using smaller stack sizeallows kernel to fork moreprocesses.

    Credits

    I would like to express mythanks to the following people

    for their insights and help:Mithlesh Thukral, Peter Ziljstra,Himanshu Chauhan (thanks forpointing me to the requiredmacro definition) and BrenoLeitao. Also the Full Circle proof-reading team for fine-tuningthe spelling and grammar.

    :

    The /proc filesystem Internalkernel document inDocumentation/filesystems/proc.txt

    Explanation of Bounce Buffer

    http://www.linux.org/docs/ldp/howto/IO-Perf-HOWTO/overview.html

    GEM vs TTMhttp://lwn.net/Articles/283793/

    Linux NFS Overview, FAQ andHOWTO Documentshttp://nfs.sourceforge.net/

    UNDERSTAND VIRTUAL MEMORY STATISTICS

    http://nfs.sourceforge.net/http://lwn.net/Articles/283793/http://www.linux.org/docs/ldp/howto/IO-Perf-HOWTO/overview.htmlmailto:[email protected]://the-hydra.blogspot.com/
  • 8/8/2019 fullcircle 39

    21/45

    full circle magazine #39 contents

    MY STORY

    I

    n 2007, it became obviousthat my Chinese bride andI should each have ourown computers.

    My youngest son haddiscarded a couple of PCs byputting them in the basement,so I grabbed one and triedUbuntu on it. It seemed to workfine, so I replaced the tiny harddrive with a 250 GB unit, andbought a modern LCD monitor.I checked online for a wireless

    card which would "just work",and bought a D-Link DWL-G510. (The router is on theother side of the room, but along Ethernet cable would be,at best, unsightly.) For a minorexpenditure, I was up andrunning. My new wife could setup her (previously my)Windows XP machine to have

    Chinese Simplified as itsprimary language.

    I've been in the InformationTechnology industry since I was20, and now I'm semi-retired.Along the way, I had careerdetours as the editor of

    Canada's foremost magazinesfor the IT industry, and sevenyears as a full-time caregiver.(My first wife died from MS.)

    Twice, I've managed a largedepartment, and hated it bothtimes. I'm a techie at heart.

    I was a director of a largecomputer user group, andchairman of its annualconference for three years,which drew more than 1,000attendees each year. When I

    designed andbuilt an honest-to-Godhardware serialport for myCommodorePET, I learnedthat if youhaveunique

    hardware, you have to write allthe software yourself. Muchbetter to stay close to themainstream.

    Mainstream, yes, but Ieventually found Windowsintolerable. Apple is tooexpensive, so Linux was thenext option. Gutsy Gibbon hadeverything I needed: Officeapplications, email, webbrowsing, and much more. Ilike to take pictures, and GIMP

    let me fix them up. I gotinvolved withFull CircleMagazine asa volunteercopy-editor.I had a

    cheap

    webcam I bought in China, andCheese let me record videoswith it. Most importantly,Firefox worked nicely with my

    online broker, Youtube,Facebook, and Ability OnlineSupport Network - a site foryouth with disabilities or healthissues.

    In mid 2009, the powersupply on my elderly computerfailed, and I decided I *needed*a high-performance system,

    which was completelyunjustified. I had swappedcomponents many times, butthis was the first time I built acomputer, starting with anempty case. I actually installedLinux Mint 7, a variant ofUbuntu. It "just worked." Theonly components I carried overfrom the previous system were

    the monitor and the wirelessadapter.

    When my wife went on anextended visit back to China, Ipopped the hard drive out ofher computer and put inanother one, then installed

    MY STORY

  • 8/8/2019 fullcircle 39

    22/45

    full circle magazine #39 contents

    MY STORY

    I

    purchased an Acer AspireOne ZA3, a.k.a. AO751h, inDecember, and I sufferedwith the pre-installed

    Windows Vista Home Basic untilthe end of January. I was in themind set of purchasingWindows 7 until I went to mylocal Ham Radio club - whereone of the guys had somethingcalled Ubuntu on a Laptop.After a couple of hours chattingand having a play, I was wonover by just how easy Linux

    had become, so the morningafter I took the plunge andmade myself a bootable USBstick with Ubuntu 9.10.Well, after 15 minutesof going through theinstall questions, andcompletely wiping offWindows from my harddrive, I had

    successfully installedthe new OS. I knewthere were going to beproblems with theAO751h, with theGMA500 and thesound, but uponsearching the Ubuntu

    Wiki, I found the cures and,well, what can I say? Im nowcompletely hooked!

    As I'm a Radio Ham, all thatsoftware available at myfingertips for my hobby isgreat, and I was soon up andrunning with Xastir APRS, and,after noticing some of thegames, I was soon reliving mymisspent youth with Ooliteamongst others. Thanks guysfor a great user friendly OS,

    and putting the fun back intocomputing again!!

    Karmic Koala. That workedfine, too. I installed a LAMPserver, to test some web sitedevelopment I was doing. It all"just worked."

    With my "highperformance" system, I tried

    some video editing. I boughtan inexpensive camcorder,and used Cinelerra. There arelots of online tutorials, and thesoftware "just works." Verynice.

    I also used Skype forfrequent video-conferenceswhile my wife was in China.During the winter there's a 12-hour time difference betweenChina and Toronto, so wechatted during my evening,her morning -- and waved ateach other, which is a verynice way to connect.

    I'm active on the Ubuntu

    Forums, where I try to answerquestions from newbies, or atleast move them in the rightdirection. The same questionscome up again and again, andI try to be supportive insteadof saying, "why didn't youGoogle your problem?" Now

    I've taken on the Q&A columnin Full Circle. I can't answereverything, but I'm really goodat searching in Google.

    As for my Ubuntu, I stickwith the mainstream. I triedCairo Dock and found it

    interesting, but not as usefulas the regular menus. The eyecandy in Compiz is OK, but notreally relevant to me. I enjoysmartdimmer, a programwhich dims my monitor atdusk and brightens it at dawn.I've tried several other distros,but for me, Ubuntu is whereit's at.

    MY STORY

  • 8/8/2019 fullcircle 39

    23/45

    full circle magazine #39 contents

    MY OPINION I Don't Care About GNU... or the Slash

    I

    t is true, my friends. Theworld at large does notcare about the 'GNU' orthe 'Slash'. Or, for the vast

    majority, the 'Linux' part either.

    We are in what we call 'thesilly season': that slow-newsperiod between the publicholidays, of daylight-saving,camping vacations, and thelack of any real stories. Thetime when the anchorman's"and finally..." story is a skate-

    boarding duck. In the open-source world, we usually getanother outbreak of theargument for the 'correct'terminology. Yes, my friends, asthe purists never tire of tellingus, we must refer to ouroperating system of choice as"GNU-slash-Linux."

    And here's why you shouldignore them:

    To most people on theplanet, a Gnu is an especiallygrumpy member of the moosefamily. Slash is the guy in thesilly hat and poodle-perm from

    Guns 'n' Roses. Linux is animported vinyl floor-covering.As the name of a softwareplatform, it has not caught on

    and never will. Trying to teachthe world to 'correctly' nameGNU-slash-Linux is like tryingto teach a fish to ride aunicycle.

    Nobody outside of the ITindustry or open-sourcehobbyists has any idea whatLinux may be. Even if you

    explain that it's an operatingsystem, nobody cares what'san operating system. Unlessyou had to install a Windowsprogram yourself (and manymillions of people never do),you will think Windows is thecomputer. Most users have noidea that an iPhone needs anoperating system to work. It

    just works. Mostly. Sometimes.At least it looks cool all thetime, and that's what matters.

    To most users, an 'Android'phone is a brand name forcompatibility's sake, like 'Blue-Ray' or 'Hoover'.

    GNU is a recursiveacronymn: "GNU is NOT Unix".It fails to define what GNU isand, worse, it introduces

    another foreign word: Unix.Only geeks think recursiveacronyms are in any wayremotely cool. While thefanboys are sniggering at howclever is the GNU acronym, orpreaching at us as to why theideals of GNU's foundersshould be recognised, the restof the world is screaming

    "speak English, boy!" The restof the world wantsrecognisable brand labels,made out of proper words like'Dolce and Gabana'. M-and-M'sis just about acceptablebecause you grew up with it.

    Nobody, but nobody, tries topreserve a distinction between

    component parts of a singlebrand, especially when onepart is effectively ancienthistory, like the Enigma code-breaker and the Casiocalculator. The moment youinsert the slash you become apedant. Nobody else cares that

    GNU and Linux are, in fact,different, or why you need aslash to signify theeither/or/and/maybe/possibly/us

    ed-to-be relationship. Slash justsounds unacceptably violent,and we must censor it lest ourbabies grow up to be serial-killers.

    People stop listening.

    Life is too short.

    No apologies, then, to Mr.Stallman, or to the FreeSoftware Foundation, or to theOpen Rights Group, or to themany academics from Berkeleyto Oxford who can legitimatelyhold up their papers andlicences and Venn diagrams. Iam not going to study the listof "Words to Avoid (or Use with

    Care) Because They AreLoaded or Confusing" becauseGNU-slash-Linux is itself loadedand confusing. The battle is notonly lost, but pointless andirrelevant. Just call it Linux andinstall it on every device youcan get your hands on.

  • 8/8/2019 fullcircle 39

    24/45

    full circle magazine #39 contents

    http://www.ubuntu-user.com/subscribe-now/
  • 8/8/2019 fullcircle 39

    25/45

    full circle magazine #39 contents

    REVIEWWritten by Knightwise

    iRobot aPad

    O

    ver the course of thelast few days, Ivebeen playing aroundwith an Android

    tablet PC, and comparing it tothe Apple iPhone / iPod / iPadenvironment. In this article, I'lltry to give you an impressionof what I think of these touch-tablet-like devices, whileavoiding becoming a zealot forany of them. So I'll forgo theritual sacrifice of my Visa cardupon the altar of Steve Jobs,

    and try not to become thedreadlock wearing Androidgeek just yet. Ill try to take a

    look at all the devices, andanswer the one question that isimportant here atKnightwise.com: how does this

    technology work for us.

    Lets face it people, theApple iPad costs about thesame as a kidney transplant,well perhaps not that much,but, for those unaffected bySteve Jobs reality distortionfield, it might still be a lot ofmoney. But, what are you

    going to do? Major competitorssuch as Microsoft and Dell arestill rushing to get their version

    of the iPad fromtheir developersonto theproduction line.So, thank god forthe Chinese.These masters of

    KIRF (keeping itreal fake) don'thave fancy CEOs

    whorefuse towear atie andspeak

    about magic as though its abusiness model. The Chinesedudes just do what they dobest: knock off whatever is

    popular and throw it out thereat a fraction of the price. Andyou know what? Sometimes itworks. Sometimes, theyactually make a product that isdecent, cheap, and a functionalapproximation of whatever ispopular on the market.Sometimes. Other times theymake crap that looks like

    whatever is popular. With theiRobot aPad its a little bit ofboth. Lets start off with theprice. I paid about 200 eurosfor this little toy (~150). If youGoogle or eBay around, youllprobably find them for less. Sofor the price of one iPad youllhave 2 or even 3 of these. Thequestion is, does it show?

    : They guys whodid the box took a good hardlook at the iPad box and madea sensible clone. The Androidlogo on the side notifies youthat its not going to be anApple product. The packaging

    is nice: the aPad is nicelyseated in foam casing with allits accessories underneath. Fora cheap knockoff device, its

    well presented.

    : The iRobot aPadis a 7-inch touchscreen tabletthat looks like an undersizedversion of the iPad. It has aRockchip processor, and comeswith 1 GB of built-in storage.

    There is room for a micro SDslot at the bottom, along with

    two micro USB connectors.Along with a power switch anda power connector (5v) thereare 2 more buttons on thedevice, one on top to accessthe menu functions, and one atthe front to go back to thehome screen.

    The resistive touch screen is

    fairly responsive, and the built-in motion sensor lets you flipthe image on the 800x480display on its side just like aniPod. The screen is OK, but inno way comparable to the(three times more expensive)display of the iPad, but it does

    REVIEW - IROBOT APAD

  • 8/8/2019 fullcircle 39

    26/45

    full circle magazine #39 contents

    REVIEW IROBOT APAD

    the trick quite nicely indoors.The device comes with B/G wifiand built-in speakers. Thelatter suck, rendering the aPadworthless as a stand-alonemedia player. You need to hookup external speakers orheadphones to enjoy music.

    The casing is well done - itsmade to look like an iPad (myversion came with a cheesyApple knockoff logo on theback, though not all do), whichis something they should nothave done, because the devicestands up well by itself withouttrying to impersonate itscompetitor.

    : The aPad comeswith android 1.5 and a fairshare of apps. Although Ichanged the settings toEnglish, some dialog boxesare still displayed in Japaneseor Chinese. There are quite afew applications installed suchas the Facebook app, a Gmailclient, an audio and videoplayer, and even a few games.

    The home screen has a built inGoogle search bar that lets youhit the Web with the OS-provided browser. Once youconfigure the Wifi, you aregood to go. The aPad does not

    come with built in 3Gcapability, but should supporttethering of a 3G dongle orcellphone.

    : The aPad isa very promising device - lowcost, well built, a decent

    screen, and a great operatingsystem. The downside is it justfeels a little sluggish.Sometimes the device is a tadslow to respond. Whether thisis from an underpoweredprocessor (unlikely sincevideos run fine), or a poortouch-screen hardware choice,is unclear to me. When you runtoo many applications on thedevice at once (yes this babydoes multitasking), the aPadgets a little slow, but quittingsome apps, and clearing upmemory, speeds it up.

    : The onething that makes this tabletrock is the abundance ofAndroid applications. Since theAndroid OS is a lot more openthan the iPhone OS, you willfind a lot more applicationswith a high geek factor. Sure,there is the occasional fartapp but the Android market isa geeks Valhalla. SSH clients,

    IRC clients, podcatchingapplications, Googleintegration - you name it, theyhave it. I was so pleasantlysurprised by the Androidecosphere that Ill probablyditch my Blackberry in favor ofan Android device soon.

    : The aPad is not aniPad, but by this I don't meanits not as good. There arepoints where this little tabletdevice ranks far below theimpossible parameters set byits Cupertinian overlord. This ismostly true where the aPadtries to be an iPad. Its qualityof build is fine, but its not asgood as the iPads. The screenquality is good, but not as good

    as the iPads. But, its aboutone third the price of the iPad!For this price, you get a slightlysmaller (more portable?)device that gives you a lot of

    joy. People who say that a gooddevice has to be expensive arewrong. The best device is not

    necessarily the 600-euro tabletthat lets you surf the Web; Itmay be the 200-euro devicethat lets you do (almost) thesame thing for a lot less. Thewinner can be the device thatgives you the most bang forthe buck. This fact makes theiRobot aPad worth a look.

    http:///reader/full/://knightwise.com
  • 8/8/2019 fullcircle 39

    27/45

    full circle magazine #39 contents

    MOTU INTERVIEW Jonathan Carter

    : 27:

    Cape Town,South Africa

    :highvoltage

    How long have you used Linux,and what was your first distro?

    Ive been using Linux since1999. I started out with RedHat Linux, and did lots of distro-hopping. After that, I settled onDebian in 2003.

    How long have you been using

    Ubuntu?

    I was working for theShuttleworth Foundation at thetime, and my manager droppeda CD on my desk and saidsomething like This is the newLinux distribution that Mark is

    working on, its called Warty. Itwas a pre-release of Ubuntu4.10, which I installed on aserver the first time. Ive beenan Ubuntu user since.

    When did you get involved withthe MOTU team, and how?

    I was in London in 2005 for theEdubuntu Summit where I metOliver Grawert, my first MOTUmentor. At that time, work gotin the way a lot with my MOTUprogress. Before Ubuntuexisted, it was one of myaspirations to one day be areally good Debian contributor,and hopefully one day I will be,but universe seems like a realgood place to start.

    What helped you learnpackaging and how Ubuntu

    teams work?

    I initially looked at the DebianNew Maintainers Guide, but Ifound paging through theDebian Policy Manual to bemuch more useful. Ive alwayshad good experiences asking

    questions on the #ubuntu-motu IRC channel. Even themost experienced developersand packagers there arealways friendly and welcoming.

    Whats your favorite part ofworking with the MOTU?

    I enjoy learning, the MOTUteam is very open, and theynever mind sharing informationor knowledge. Ive worked incorporate environments wherepeople are afraid to shareknowledge because it maymake them seem less valuableif other people had the sameknowledge as they did. TheMOTUs are great at solvingproblems and helping othersdo so.

    Any advice for people wanting

    to help out MOTU?

    Be patient. Packaging can betricky sometimes - whether its

    just making a bug fix, orgetting a whole new piece ofsoftware into the archives.Also, dont be afraid to make

    mistakes, even experiencedpackagers are also human andmake mistakes. Ive never hada MOTU yell at me or beimpatient for not knowing

    anything, so just get in thereand try not to stress.

    Are you involved with any localLinux/Ubuntu groups?

    Yes, Ive been on the CapeTown Linux Users Groupcommittee for a few years andIm the co-leader (we have twoleaders who shareresponsibilities) of the Ubuntu-ZA team. Im stepping downfrom both soon since Ill beworking a lot in other countriesnext year. Ill still be involved inboth, and may take leadershiproles in them again in thefuture.

    What are you going to focus onin Lucid and beyond?

    For Lucid, Im going to focus onEdubuntu, and Ill also doupstream work on LTSP Cluster.

    There are many things that are

    http://behindmotu.wordpress.com/
  • 8/8/2019 fullcircle 39

    28/45

  • 8/8/2019 fullcircle 39

    29/45

    full circle magazine #39 contents

    TRANSLATION INTERVIEW Milo Casagrande

    Could you tell us a bit aboutyou and the language you helptranslate Ubuntu into?

    Im a Java developer by day,

    but always with myUbuntu/GNOME/Linux hat on.Im helping coordinating theItalian Ubuntu translation team,and also helping to translateUbuntu into the beautifulromance language that isItalian.

    How and when did you becomean Ubuntu translator?

    I started contributing to Ubuntutranslations just after the Wartyrelease, at the time I washelping out with GNOMEtranslations. When I startedcontributing, there wasnt areal Italian team, but, soonafter, I was contacted byMatthew East, and we startedto set up and structure a team

    for that purpose.

    What other projects do youhelp with inside thecommunity?

    Im much more involved in theUbuntu Italian communityrather than the internationalone. I did some documentation

    work in the past for the UbuntuDoc team. Right now, Imfocusing on translations for theItalian community, and alwayssome management aspectsof the Italian community.

    Do you belong to an Ubuntu

    LoCo team? If so, which one?

    Yes, the wonderful UbuntuItalian LoCo team!

    How can people who want tohelp with translating Ubuntuand all the various pieces andparts into your language getstarted?

    The most important aspect, ifsomebody wants to starthelping to translate Ubuntu toItalian, is subscribing to ourmailing list. All thecommunications happen there,and communication is a keyaspect of our work. Please, donot wander through Launchpadleaving a translation here andthere; if you dont tell us, itsvery difficult for us to alwaysknow what is going on. We

    have a wiki page athttp://wiki.ubuntu-it.org/GruppoTraduzione thatlists all the variousbureaucratic steps (create aLaunchpad account, a wikipage), the various guidelinesthat people need to follow, our

    contacts, and how the workflowis organized. I always say thatif something is not clear onthat page to let us know, so,please, let us know!

    Whats the desktop experiencefor Ubuntu users in yourlanguage? Is Ubuntu in yourlanguage popular amongnative speakers?

    I think the Ubuntu Italiandesktop experience isawesome, really. If there is apiece of software that is underour direct control, and is goingto be shipped by default inUbuntu, we ensure that thepiece of software is up to ourstandards concerningtranslations. If there is notranslation, we provide one, orwe review an existing one.

    I think the Italian translation ofUbuntu is popular amongnative speakers, albeit somecoworkers of mine use Ubuntuin English. But most of theItalian users I know are usingUbuntu in Italian.

    TRANSLATION TEAM INTERVIEW

    http://wiki.ubuntu-it.org/GruppoTraduzione
  • 8/8/2019 fullcircle 39

    30/45

    full circle magazine #39 contents

    Where does your team needhelp?

    Upstream! We need helpupstream (so that we canspend the weekends at thebeach)! I think that, right now,the team is working at its best.

    There are small parts of thesystem that are not completelytranslated, but usually thoseare the not-so-user-visibleparts. We would really like forpeople to get involved with thevarious upstream translationteams (GNOME, TranslationProject, KDE), and help there,so that the very same

    translations flow into Ubuntuwithout any work from ourside. If people want to be partof the Ubuntu Italiantranslators team, but help outwith upstream translations, wecan handle that too: we havedone that, and we still do it.

    Do you know of any projects ororganizations where Ubuntu isused in your language?

    Unfortunately not. I know thatsome universities in Italy useUbuntu in their labs, but dontknow if in English or Italian.

    That would be some great

    information to know, also tounderstand where we shouldfocus our strengths, and tohave a direct contact withsomeone that really deploysUbuntu in our native language.

    What do you feel is the most

    rewarding part of translatingUbuntu?

    To me, is watching the resultsof our work being used byother people.

    Is there anything else aboutyour team or translation effortsthat I havent asked you about

    that you would like to talkabout?

    Not at this time.

    Become an Ubuntu Translator

    Do you speak languages? Join our translation community, and make Ubuntu accessible to

    everyone in their own language. You can:

    Get in touch with a translation team (https://translations.launchpad.net/+groups/ubuntu-translators) or create your ownhttps://wiki.ubuntu.com/Translations/KnowledgeBase/StartingTeam

    Help translating this language - https://translations.launchpad.net/ubuntu

    https://translations.launchpad.net/ubuntuhttps://translations.launchpad.net/+groups/ubuntu-translatorshttps://translations.launchpad.net/+groups/ubuntu-translators
  • 8/8/2019 fullcircle 39

    31/45

    full circle magazine #39 contents

    LoCo INTERVIEW Bret Fletterjohn

    In this interview Bret talksabout the tools the team uses,events they attend as well ashelp with, and what advice the

    PA LoCo Team would give toother teams and communitymembers and much much more!

    US-Teams: Could you tell us alittle about you and what yourrole is in the LoCo Team?

    Pennsylvania LoCo Team: I amthe founder and team contact.

    US-Teams: When was theUbuntu US-Pennsylvania LoCo

    team started? How long after itwas started did it take to getapproved?

    PA LoCo Team: We got itstarted in March of 2007 andwere approved in June 2007.

    US-Teams: What tools do youuse for your team? MailingLists, Forums, IRC, websites,Micro-blogging sites, etc.

    PA LoCo Team: Mailing List,Forum, IRC, website, and wefollow each other on Twitterand Indenti.ca

    US-Teams: On the road to LoCoapproval, what were some ofthe challenges the team facedand how did the teamovercome them?

    PA LoCo Team: Awareness. Atthat point a large number ofpeople had no idea what a

    LoCo was.

    US-Teams: What are thebiggest challenges your teamfaces now, and what strategies

    does the team use to overcomethem?

    PA LoCo Team: We were topheavy in Philadelphia. Most ofthe action was happeningthere. We've now lost a keymember, so we are goingthrough a slowdown right now.I am hopeful that we can rollout more great events acrossthe state, but we are no longera new group with the sameexcitement that a new grouphas. I want/need to get thegroup excited and movingforward again. I am thinking ofa Ubuntu PA BBQ day - wherethere are groups across thestate having cookouts on thesame day, to build moreregional coherence.

    US-Teams: What types ofactivities does the LoCo Teamparticipate in? Are there anyevents the LoCo team

    sponsors?

    PA LoCo Team: SoftwareFreedom Days. We haveworked with a couple of

    Colleges (Millersville,Harrisburg Area CommunityCollege, and Penn State) withevents, and provided guidancefor more Ubuntu gearedclasses and programs. We'vealso worked with a couple ofnon-profits (such as the Boysand Girls clubs of America)installing Ubuntu on donatedmachines - for their facilitiesand to give to needy families.

    US-Teams: What are some ofthe projects your LoCo teamhas worked on? What are someof the upcoming projects theUbuntu community can expectto see from the LoCo teamthroughout the next cycle?

    PA LoCo Team: We're workingon participating in the CentralPA Open Source Conferenceagain this year. That is inOctober. Right now, we have topush again to build up steam

    LOCO TEAM INTERVIEW

  • 8/8/2019 fullcircle 39

    32/45

    full circle magazine #39 contents

    for the Fall. I'd like to see atleast three or four SoftwareFreedom Day events across thestate. We're also working withHACC (Harrisburg AreaCommunity College) with anupcoming class in the Spring of2011 for Open Source

    Development, to offerresources, become thepreferred platform (currentlyFedora and Centos are used inother classes), and perhapscover Ubuntu Packaging andhow the community isstructured.

    US-Teams: What are some of

    the ways in which the LoCoactively recruits newmembers? What resourceshave you created or do you use(i.e. posters, fliers, businesscards, banners, etc.)?

    PA LoCo Team: We've had abanner printed up, and we'veused posters, fliers, andbusiness cards to promote theteam. However, most of ourmembership has come fromword of mouth.

    US-Teams: What do you think isthe best aspect of being part ofa LoCo team?

    PA LoCo Team: Honestly, I thinkthat a lot of people who believein Ubuntu and what it standsfor want to spread the wordand share the feeling ofcommunity with as manypeople as they can.

    US-Teams: What has been themost rewarding and excitingmoment for the LoCo Team todate, and why?

    PA LoCo Team: Seeing andsharing the excitement of theteam. I think it's pretty muchself explanatory.

    OK, here's another gratifyingmoment: At the Central PennOpen Conference last year, wehad a booth, and, as peoplecame by, we'd talk with themand ask if they were familiarwith Ubuntu, and a hugemajority of the people whowent by were running Ubuntu.Many in the enterprise. I wasamazed how many were usingit in mission critical areas oftheir business.

    US-Teams: What suggestionswould you offer for newly

    formed LoCo teams or thoseteams working toward approvalright now?

    PA LoCo Team: Use that initialenthusiasm and get a lot ofevents going. Your enthusiasmis contagious. Don't shut

    people out, embrace everyone,and listen to all ideas. Workwith schools and nonprofits.LUGs are your friends. Addredundancy to theadministration of your team(we have at least 3 admins foreach area (mailing list,launchpad, website, IRC, andforum).

    US-Teams: What tips, tricks,tools, references, etc. wouldyou suggest for the leadershipof a LoCo team?

    PA LoCo Team: Keep balance onthe team. I guess it's like

    juggling. You have to keep asmany people invested in theteam. We try to let everyonedo their own thing, withoutletting one faction alienateanother. Despite thesedifferent approaches, you stillneed to keep on target for ourultimate goal of promotingUbuntu in a consistent manner.

    US-Teams: When you think ofthe Ubuntu Community and thespirit of Ubuntu, how does theLoCo embody and share thatspirit?

    PA LoCo Team: I think its the

    camaraderie, sense ofbelonging, the desire to helpanswer peoples questions andhelp with problems, and thegenuine sense that Ubuntushould be shared.

    US-Teams: Is there anythingelse about the LoCo team, orsuggestions for being aneffective and successful LoCoteam, you would like to sharethat you haven't already?

    PA LoCo Team: Keep gettingnew blood into the team.Figure out a way to reachunder-served areas of yourstate (for bigger states this is abigger challenge!). Listen toyour teammates.

    https://wiki.ubuntu.com/LoCoTeams

    https://wiki.ubuntu.com/LoCoTeams
  • 8/8/2019 fullcircle 39

    33/45

    full circle magazine #39 contents

    LETTERS [email protected] NOTE: some letters may be edited for space reasons.Streaming To PS3?

    Iread the article explaininghow to stream media fromUbuntu to a Xbox360 and Iwas wondering what

    options are available for PS3and whether or not we will seea comparable article on thetopic. Thanks for a greatmagazine.

    Ed:

    MyPad

    Ilove Full Circle and have

    been a long-time reader,but in the future do youthink we could do without

    the Apple flamebait cartoons?They're not funny. Saying"MyPad" isn't fooling anyone,and I think petty cross-platformsniping just drags down

    Ubuntu's good name. I'mpretty sure Linux users don'tlike it when peoplecharacterize them as being"too broke to use a real OS." I

    think Full Circle works bestwhen it's being positive andtrying to build things up ratherthan tear them down. And, forthe record, I don't own an iPadand switched away from Macyears ago.

    Still love your magazine.Thanks for your time andconsideration.

    Ed:

    Survey Says...

    Idiscovered your magazinethrough an add in UbuntuUser, downloaded a coupleof issues & thought it was

    great, so I downloaded somemore and saw that youconducted a survey with someinteresting results.

    Now that you've hadexposure in print to people likeme would you consider doing

    another survey to see if/howthe results would change?

    I know your magazine isaimed at Ubuntu, but I quitelike the idea of some coverageof a "Guest distro" every threemonths or so.

    Ed:'

    Horses For Courses

    Iread Robin Catling'sarticle on the iPad withinterest. I could never buyany product from a

    supplier who overcharges andlocks their customers in theway Apple does.

    I have purchased a Kindleand would prefer it to an iPadto read documents any way. Iwill list just two things that the

    Apple can't do. I can readbooks on the Kindle in thebrightest African sunlightwithout any reading difficulties.And, I read every day and don'thave to recharge the batteryfor at least two weeks.

    Steve Jobs has never heardof the saying "horses for

    courses".

    My friend has an iPad andwas quite disconcerted when Ishowed him my old FujitsuSielens Lifebook Tabletportable, about the same sizebut a little thicker. That also

    LETTERS

    mailto:[email protected]
  • 8/8/2019 fullcircle 39

    34/45

    full circle magazine #39 contents

    has a touch screen and if youlift it and twirl it around, youhave a full size keyboard aswell.

    I don't think I would buy aniPad, even if it were open-source. Not at the prices Apple

    charges for the hardware.

    List Of Packages

    In addition to the dpkgmethod: open the Synaptic

    package manager and goto File > Save Markings as.

    Choose a name & location,where it won't get written overin the upgrade e.g. a USB stickif you don't have a separate/home partition. Make sure thatyou tick the 'Save full state,not only changes' box before

    you save.

    After upgrading, enter allyour apt-sources, and openSynaptic, go to File > Readmarkings and go to the file youpreviously saved. Click 'Apply'and Synaptic will download &

    install all the packagespreviously installed.

    New Lease Of Life

    Iwas particularly interestedin your series of articlesrelated to setting up aserver system using

    Ubuntu server. Recently I hadcome to the conclusion that my2 year old Asus EEE PC 2G Surfhad become pretty muchuseless and hence I hadn't

    actually used it in quite awhile. Then I looked backthrough some of your articlesand it got me thinking aboutusing the machine as awebserver. Obviously not forhigh traffic, but still it's awebserver none the less.

    The EEE PC (or any netbook)

    at first glance doesn't seem tobe an obvious choice for aserver. However, a second lookat its low power consumption,low level noise and tinyphysical size make it ideal foranybody looking to run aserver in their home for

    personal and experimental use.

    I would just like to thank youand keep up the good workbecause without your articles Iwould never have had eitherthe knowledge or even theidea of using my old EEE PC as

    a webserver. You have alsosaved it from hitting therecycle bin as well, or finding anew home via ebay.

    OOPS!

    It seems that the code forisn't properly

    indented on Pastebin. Thecorrect URL for Python Pt.11code is:http://pastebin.com/Pk74fLF3

    Please check:http://fullcirclemagazine.pastebin.com for all Python (andfuture) code.

    O

    http://fullcirclemagazine.pastebin.com/http://pastebin.com/Pk74fLF3
  • 8/8/2019 fullcircle 39

    35/45

    full circle magazine #39 contents

    UBUNTU WOMEN

    : Tell us abit about yourself

    : My name isIsabell Long, I'm 16, and I nowlive in England - after spendingfour years living in France. Ihave an extensive interest intechnology and open-sourcesoftware. I am a communitycoordinator for the freenodeIRC network and a proudofficial Ubuntu communitymember, amongst other things.

    PS: How did you getinvolved in Ubuntu?IL: I think it was about two

    years ago when I made friendswith someone who usedUbuntu. I then started using iton and off for about a year,then I got my own computerand got rid of Windowscompletely. I now have Ubuntu

    on both my computers, and noWindows in sight! With regardto my involvement in theUbuntu community, however, Ibecame an official Ubuntucommunity member in Marchthis year. It has made me veryhappy!

    PS: What do you do withUbuntu?

    IL: At present, I help

    Penelope with these interviewsfor Full Circle Magazine (yeah,it's weird being "the other side"on this occasion!); I do BritishEnglish and French translationon Launchpad; I help peoplewith their problems in theAnswers section of Launchpad;I am involved in Ubuntu UK andUbuntu Women; and that's

    about it for now! Not muchreally, eh?

    PS: What would you like todo that you're not alreadydoing?

    IL: Go to more events, andlearn to triage bugs, in asentence.

    PS: I know you're still astudent; has working withUbuntu helped this at all?

    IL: Not really, in fact I preferto keep my school life separatefrom what I do online outsideof school. I do have a fainthope that my school (or any

    school!) will recognize Ubuntu,or even open-source softwarein general, but they are firmlystuck to Microsoft. It is a greatshame. To properly answer thequestion, it has helped mepersonally by giving me abroader outlook, teaching methings that I would never havelearned if I had just stayedwithin the confines of normaleducation (not that myeducation has been thatnormal having moved

    countries and having to learnFrench from scratch, but that'sa totally different story!), and Ihave got to know someamazing people thanks to allthat I'm involved in online.

    PS: How do you think theUbuntu community could reachout more to get more younger

    women (so teenaged-ish)involved? What are we alreadydoing right?

    IL: Younger women? Maybewe shouldn't focus so much onthe female differentiation sideof things, and just concentrateon getting more young people

    in general, either male orfemale involved? Ubuntu Youthcould (and should) definitely berevived (I hang out in the IRCchannel and not very muchhappens) and the "gettingUbuntu in schools" road couldbe continued upon, but nodoubt people will agree withme here that that road is anextremely long and difficultone!

    PS: When you're not working

    on Ubuntu or schoolwork whatare your interests?IL: I love music as well as

    technology, and I have apassion to learn things.Learning to code is one of mygoals, hence why I'm currentlylearning Python. I also lovedata, statistics, and makingcool stuff out of freely available

    data and statistics, which alsofuels my great desire to learn.Everything I do is great fun.

    You can find out even moreabout me in general athttp://issyl0.co.uk/

    UBUNTU GAMES

    http://issyl0.co.uk/
  • 8/8/2019 fullcircle 39

    36/45

    full circle magazine #39 contents

    UBUNTU GAMES

    This month, I interviewedNicolay Korslund, the maindeveloper behind a new gameproject called .

    What is OpenMW?

    OpenMW is an enginereplacement for the gameMorrowind. It replacesMorrowind.exe, and is opensource.

    It is a completely unofficialgame engine replacement.

    This means it is a completelystand-alone executable, and itdoes graphics, sound, scripting,AI, the GUI, and all the othergame features - entirely from

    scratch, without using theoriginal exe in any way.However, we do NOT replaceany game data, so you stillhave to own a copy of thegame to play with OpenMW.

    The project runs natively onWindows, Linux, Mac and otherplatforms, largely due to beingbased entirely on cross-

    platform libraries like OGRE,OpenAL, and Boost.

    What is the purpose ofOpenMW?

    Our primary goal is to makea better Morrowind. It's a greatgame that we all love, but Idon't think I've met anyone inthe Morrowind community whodoesn't have a ton ofsuggestions for how it could bemade better. I guess it's agame that invites people todelve in and use theirimagination. There has been aton of feature requests so far,including better graphics,(even) more flexible modding,better scripting, bug fixes, anda new editor.

    However, we realize thatbefore we start on these grandplans, we have to make aworking and finished remake of

    just the original features of thegame first. So that is ourroadmap for OpenMW 1.0 - torecreate Morrowind more orless exactly as the original.

    How much support are yougoing to pr