fullcircle 39
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