31 Jul 2010
Planet Ubuntu
Ronnie Tucker: Server issues

There seem to be some server storage issues with our host, so some downloads of FCM might show as not being found for the next few hours. Sorry for the inconvenience!
31 Jul 2010 4:59pm GMT
Paul Tagliamonte: How I spent my Saturday

Hello, World!
So, I got an Android. Heck yes.
Having played with the Recovery image, I was hooked in. So I rooted it. Then Fixed up the install to Cyanogen 6 ( Upstream 2.2 Froyo ).
Well, then I got done with that. Lame. So, I thought to myself, what's next?
I settled on trying to program the thing. I downloaded the SDK and installed everything nice and neat. I got it fired up and figured out that the Android VM is almost identical to the Java VM, with some small ( SMALL ) differences. Not watered down Blackberry Java, but real Java. This'll be easy!
So, because it's Java, I decided to skip Hello, World. So, I figured I would design "GeoLoc" - a Socket-based bridge to the GPS system on my Android.
But it's all text if there's nothing to tie into. A quick rewind to some old code I wrote for Flight Gear, and I had myself a KDE Marble interface to my GPS location. Although it's super late, I'd really like to thank jmho, who did some really amazing work to help me make the interface work. Thanks, jmho!
This code does is accept connections on port 20017, and watch for input. When the system on the remote end requests either "lat" or "lon" it returns data in the format "data:information until end of line".
A simple session would be:
lat
lat:12.34567
lon
lon:12.34567
So, our GUI tickles for information every few seconds, and re-draws the map.
So, let's get down to some 'droid programming!
My basic class ( GeoLoc.java ) looks like this:
import java.io.IOException;
import java.net.ServerSocket;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
public class GeoLoc extends Activity {
TextView tv;
MyLocationListener mlocListener;
boolean running;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.running = true;
int port = 20017;
this.mlocListener = null;
this.tv = new TextView(this);
tv.setText("Waiting on port " + port );
setContentView(tv);
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
try {
this.mlocListener = new MyLocationListener( port );
mlocManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, this.mlocListener);
} catch (IOException e) { }
}
public class MyLocationListener extends Thread implements LocationListener { /* Inner class */
ServerSocket s;
ArrayList childs;
public MyLocationListener( int port ) throws IOException {
this.s = new ServerSocket( port );
this.childs = new ArrayList();
this.start();
}
@Override
public void run() {
while ( true ) {
try {
// System.err.println("[ ST ] Waiting on Thread" );
ServerThread t = new ServerThread( this.s.accept() );
t.start();
this.childs.add(t);
// System.err.println("[ ST ] Thread Spawned" );
} catch (IOException e) {
// crap-tastic but managable.
}
}
}
@Override
public void onLocationChanged(Location loc) {
for ( int i = 0; i this.childs.size(); ++i ) {
if ( this.childs.get(i).running ) {
this.childs.get(i).sendLoc(loc);
//System.err.println("[ GL ] Updating Child " + i );
}
}
}
@Override
public void onProviderDisabled(String provider) { }
@Override
public void onProviderEnabled(String provider) { }
@Override
public void onStatusChanged(String provider, int status, Bundle extras) { }
} /* End of Class MyLocationListener */
}
This uses a server thread that looks like:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import android.location.Location;
public class ServerThread extends Thread {
Socket s;
BufferedReader input;
OutputStreamWriter output;
Location location; //location
double lat;
double lon;
boolean running;
ServerThread( Socket s ) throws IOException {
//System.err.println("[ ST ] Connection rcvd, " + s.getInetAddress() ); // REMOVE ME
this.running = true;
this.lat = 0;
this.lon = 0;
this.location = null;
this.s = s;
this.input = new BufferedReader(
new InputStreamReader(
s.getInputStream()
)
);
this.output = new OutputStreamWriter(
s.getOutputStream()
);
}
public void pipeout( String s ) {
try {
this.output.write(s + "\r\n");
this.output.flush();
} catch ( IOException e ) {
this.running = false;
}
}
public void outputLat() {
if ( this.location == null ) {
this.pipeout("error:latitude being aquired");
} else {
String output = "lat:" + this.lat;
this.pipeout(output);
}
}
public void outputLon() {
if ( this.location == null ) {
this.pipeout("error:longit being aquired");
} else {
String output = "lon:" + this.lon;
this.pipeout(output);
}
}
public void sendLoc( Location loc ) {
this.location = loc;
this.location.getLatitude();
this.location.getLongitude();
this.lat = this.location.getLatitude();
this.lon = this.location.getLongitude();
//System.err.println("[ ST ] Lat: " + this.lat );
//System.err.println("[ ST ] Lon: " + this.lon );
}
public void backPort( String s ) {
if ( s != null ) {
String input = s.trim();
if ( input.matches("lon" ) ) {
this.outputLon();
} else if ( input.matches("lat" ) ) {
this.outputLat();
} else {
this.pipeout("error:error working out command");
}
} else {
this.running = false;
}
}
public void run() {
String s;
while ( this.running ) {
try {
s = this.input.readLine();
this.backPort( s );
} catch (IOException e) {
this.running = false;
}
}
}
}
Remember, folks. There are some missing bits. If you want the full code, check it out on Github - here
So far, I took it out for a spin in the car, and it looks good!
Viva La Open-Source!
31 Jul 2010 4:04pm GMT
Benjamin Mako Hill: Grades

Over the last couple years, I have begun teaching. At first just a reading group or seminar with a handful of attendees. Last term I helped teach two large lecture classes.
I know that, compared to some of my colleagues, I spend an enormous amount of time assessing and evaluating students' assignments. I try very hard to give detailed, substantive, feedback on each piece of student work. At the end of the day, however -- at my school at least -- there's always a grade.
For someone who went well out of his way to go to a college with no grades, there's a tragic irony to the whole situation: I think grades mean little and are often worth much less. Today I am forced to to inflict them on people who, almost universally, do not.
31 Jul 2010 4:04pm GMT
Paul Tagliamonte: Locoteams Microblog Tag

Hello, World!
So, do you like LoCo Teams?
Do you like Microblogging?
ME TOO!!
But you know what would almost be as good as Jono? Combining the two ( POKE POKE mhall119 ). So, why not?
Use #locoteams for all your microblogging needs. Twitter? Sweet. Identi.ca? Killer, comrade! Status.net? Heck yeah.
Use the tag enough and you will get free hugs from the LoCo Council! ![]()
31 Jul 2010 4:04pm GMT
Paul Tagliamonte: Ubuntu Hour Mass, Jun 6th

Hello, World!
Just got back from Ubuntu Hour in Arlington, MA. It was rock'n. Got to meet up with the notorious doctormo, and have some great times. A total of 10 MA LoCo members showed up, and good times were shared by all ![]()
Some pictures!
Ubuntu Hour MA Part I
Ubuntu Hour ( Part II )
Ubuntu Hour
Ubuntu Hour
See the rest of this fantastic set over at my people.ubuntu. These photos are the dear craftywork of the MA LoCo ( Thanks, leftyfb, you rock! )
Cheers, Ya'll!
31 Jul 2010 4:03pm GMT
Nigel Babu: Ubuntu Hour in Bangalore

Woo! After a while, the Ubuntu loco community is awakening in Bangalore again. I had announced a meet up on the mailing list a while back. I had my fingers crossed as to how many would turn up and how it would be. Most people assured me "if there are 2 people and the other person isn't your imaginary friend, its a success!"
I'm glad to report that we ended up with 7 people coming in. It started out a bit slow with just me sitting alone in Cafe Coffee Day on Richmond Road. To be a little more noticeable I opened up the laptop and sat in such a way I could see everyone who walked in. Anyone who looked lost was definitely looking for the Ubuntu Hour (note to self: Sticker on laptop sounds like a good idea now).
Ganesh walked in first followed later by Harish and Arjun almost at the same time. We sat chatting for some time until I saw noticed another guy looking lost and Manish joined the party. Later on Venkatesh also joined us giving us more life!
We talked for quite a bit about what we do for a living and what we do for the free software community. All of the people seem to be contributing in one way or the other and it was fun to hear about what others do. We packed up at around 5 and walked out to run into a DD, Ritesh, who was planning on making it but got late.
And we ended up talking for some more time outside the coffe shop. Meeting geeks is fun! We've plan to meet up every on the last Saturday of every month with announces sent to ubuntu-in and ilug bangalore list. As soon as the venue for the next one's confirmed I'll blog and tweet about it! Thank you all for coming
The pictures are all on my flickr.
31 Jul 2010 4:02pm GMT
Paul Tagliamonte: Best practices and Guidelines for LoCos

Howdy folks! As the most outstanding Laura Czajkowski blogged about ( read all about it over here! ), we came up with some guidelines for the LoCo teams globally.
But wait, that's not all! We need some help translating this! Sprechen sie Deutsch? Shoot over to https://wiki.ubuntu.com/LoCoCouncil/LoCoTeamsBestPracticesandGuidelines and help us translate!
So, here is what we have:
MONTHLY TASKS
Monthly meeting - publish mins to mailing list/forums and update wiki.o Someone to publish mins to mailing list/forums and mailing list (share out the roles)
- Set a chair for 2-3 months and rotate it
Update/create a monthly report
- One person to create the report and add content to it. Mail the list and ask for input in case folks had organised or participated in events within the OSS/Ubuntu community.
Meet ups - face to face , publish you had these events, link these to the report
- Take pictures!
- Blog about them
- For larger events publish a report after the event to the loco contacts mailing list
- Add All of the events to the LoCo Directory!
CYCLE BASED GOALS
- Release Party
- Global Jam
LONG TERM GOALS
- Help get existing members of the community into positions in the LoCo where they can do the most good
- Help new ( and novice ) members find members to provide some level of help to ensure the new member can contribute in a useful way
- Encourage and mentor for Ubuntu Membership
- Try to create contact with the locos around you, in order to find any potential cross-action
Delegate the roles on the team
Chair of meetings
- Hold the monthly meeting, set the agenda ( create an agenda page under meetings and let people add to it ) process the agenda with the team.
- Moderate the meeting
Web Admin
- Maintain the LoCo's website
- Maintain the LoCo's wiki site
Mailing list admin
- Clear out the pending queue of messages
- Moderate the mailing list and deal with policy violations over private email exchanges before escalating the issue to the team administrator
IRC Ops
- Ensure the CoC is followed in #ubuntu* namespace.
- Regulate bans, voice and ops ( if needed )
31 Jul 2010 4:01pm GMT
Paul Tagliamonte: The Bet

Forewarning, this is a goofy post.
My twitter is here.
Hey all. I need some help. I'm in a superstar deathmatch with one of my good buddies. Help me win. Why? I'm the person you can follow on twitter that won't kidnap and hold your family hostage. Contribute HERE.
What does my opponent look like?

Don't want to give him votes? Good. Head over to Twitter and follow me.
31 Jul 2010 4:01pm GMT
Paul Tagliamonte: CDS!

Check 'em out!

31 Jul 2010 4:00pm GMT
Paul Tagliamonte: Global Jam 10.04

Howdy, Ya'll!
Big thanks to Ken, who snapped these pics. Big shutout to Ken!!
Without further ado, I give you pictures!
The team installing away
You can see all the rest of the photos Here.
Hard at work getting Lucid up and running
A bewildered paultag staring at the projector ![]()
All in all, I can safely say that we gave Michigan a good run for their money, take that Jorge!
The team was able to:
Test out all the hardware at the event. Nothing broke. - Score one Ubuntu! ( but really the Ohio Jammers, today!! )
One kernel patch against some odd Hardware - Score one for Chase!
One new Debian Package ( rinputd ) making it's way in - Score two for Chase!
One closed CVE-2009-1299 - Score one for Gilbert!
Some minor Fluxbox and WebCalendar work - Me ![]()
Great times, guys! Thanks to everyone who showed up. Really productive today, you guys rock!
Humbly,
Paul
31 Jul 2010 4:00pm GMT
Paul Tagliamonte: LoCo Council Stuff

Howdy all,
I'm one of the new LoCo Council members. Sweet, I know.
I've been meaning to write a long and thoughtful article about what I plan to do and how I plan to do it, but I'm really strapped for time. Rest assured it's coming. I just did not want to post that I made it so far after the fact that it's no fun to announce ![]()
More to follow
-Tag
31 Jul 2010 4:00pm GMT
Paul Tagliamonte: F/OSS and Donations

Hey All
So, making a few bucks in the F/OSS field.
I have not done it, heck I have not even tried it. All the code I write is out there for public use, with the exception of a few GPL stipulations.
I figure I'll try the most non-invasive thing I can do - add a donate button to my website.
I'm going to let this roll for a month, and see what it does. My guess is there will be a exponential growth in returns from the run of the mill hacker to the high-profile F/OSS preacher.
Will follow up with my results
Heck, if you feel like supporting my coffee addiction, hit that cup right below this post to donate ![]()
31 Jul 2010 3:59pm GMT
Paul Tagliamonte: What is Linux?

Howdy Ya'll.
I hope by now you all understand that I am way past writing articles like this. This, however, is an exception. I got this email this morning. It's worth the read.
Names have been changed. Except for mine.
Hi, Paul and <redacted>!
Paul: I hope you don't mind my having included you on this. If you're no longer involved in the Ubuntu Beginners Team, just reply and tell both <redacted> and me to go take a long walk off a short pier. <redacted> is a 90 year old, retired bus driver who is married to my cousin. Wait, maybe he isn't 90 yet, but he's close.
By the way, <redacted>, you are a "newbie", and if you decide to dip your toe in the Linux pool, it is a good idea to identify yourself as such so that other people, who are technically advanced and who commonly referred to as "Mr. or Ms. Smartie Pants", have an idea of how to compose any answers to your questions.
> … my computer took a "sleep" or some other "S" word. Had a worm. Is that the word I want?
A worm or a virus or a MIB (Man In the Browser) or a trojan (not THAT kind, you sick puppy) _ there are all kinds of bad guys out there. Years and years ago, most of this stuff was being done by what we called "script kiddies". Those were 14-year-old jerks playing on their computers in their parents' basements. They weren't really skilled at computer stuff, but they would get these annoying programs from computer bulletin boards and just aim them at other computers just for the fun of it. As I said, they were just jerks. Today, however, it has all changed. The bad guys are highly organized, completely ruthless and very, very skilled with computers, and their aim is to steal all of your money and/or your identity. It is incredibly dangerous out there, believe me. My basic advice, which I don't follow myself, is never shop on line or do on line banking.
> So I had it worked on and this guy told me about a thing called a Linux. That is not how you spell it, is it?
Yep, it's called Linux, and it was built by a young Finnish fella (at least he was young at the time) by the name of Linus Torvalds. He made his very own version of a commercial operating system called "UNIX". So, you get it? LINUX = LINUs + uniX. Anyway, UNIX was commercial, as I said, but Linus didn't have money to pay the industrial rates for it, so he made a version himself without ever looking at the computer code that made UNIX, only by re-inventing WHAT UNIX did, not HOW it did it. It would be kind of like some smart kid looking at a Corvette and, not knowing anything at all about HOW a Corvette works engine, brakes, steering, etc. he would build a Corvette that behaved just like the real thing. Some smart cookie, eh? Then the kid could cruise the hamburger stand and pick up chicks, but I digress. Anyway, I should back up and explain what an operating system is, right? Well, you've been using one all along by the name of Microsoft Windows, but there are others out there, too.
Apple Computer sells one called Mac OS X, and I already mentioned UNIX. In a nutshell, an operating system is the MOAP (Mother Of All Programs) on your computer. It's the software that controls the hardware _ hard disk drive, video monitor, internet connection, printer, etc., etc. _ and schedules all the other programs that you run, such as your web browser, word processor, video player, etc., etc. As a side note, those of us who use Linux sometimes call it GNU/Linux, but that's
another story altogether, and we usually don't call the Microsoft operating system Microsoft Windows. We call it Micro$oft Windoze. That's because we believe that Bill Gates, who started Micro$oft, and Steve Ballmer, who is the CEO of Micro$oft, are the spawn of Satan. At least, that is what I have heard.You've already guessed that I use GNU/Linux, right? Now, one of the really great things about GNU/Linux is that it's free! We make one slight distinction, though, by saying that's it's "free as in liberty", not "free as in free beer". So, if you wanted to do so, you could modify GNU/Linux however you like and make your own version of GNU/Linux and sell it for money, and some companies do that, because so many big commercial companies, like many on Wall Street, run GNU/Linux but don't want to spend the time to hire people to take care of it, so they pay a company like RedHat or Novell for their particular version of GNU/Linux so that RedHat or Novell will take care of the operating system for the big company that buys it. The important thing, though, is that there are plenty of versions of GNU/Linux that are absolutely free, as in "free beer", and my personal favourite and the one that I have been using myself for many years is called Ubuntu. Wait! Let me back up again and explain why there would be multiple versions of GNU/Linux instead of just one, like Micro$oft Windoze. Well, because GNU/Linux is free and because anyone can modify it however they like, different people and companies tweak GNU/Linux so that it is stronger in some areas than in others. So, one version of GNU/Linux, Gentoo, has arranged so that when it gets installed on your computer, it gets optimized for speed for your very own computer gear. Another version is called Debian, and its strength is that, although it doesn't have the very latest and greatest versions of all of the extra software _ web browser, word processor, video player, etc. _ it is very, very stable, meaning that it almost never crashes. So, howcum I like Ubuntu? Because it is the easiest version that I have ever worked with since 1991 and is the one that I used when I was a systems administrator for the past 22 years at <redacted> University of <redacted> and convinced the entire Department of Earth Sciences to use, too. Yeah, GNU/Linux has been around for nearly twenty years! Here's where you can take a tour of Ubuntu's version of GNU/Linux and download an image of it to burn onto a CD or DVD.
With the CD or DVD, I'm almost certain that you can try it out without actually installing it. If the latest version is like the ones that I've used in the past, you can simply insert the CD or DVD into your PC, restart the computer, and the computer will run Ubuntu right from the CD/DVD and let you try it out without actually having to install it on your hard drive. Keep in mind, though, that, since the CD/DVD player on your PC is much, much slower than your PC's internal hard drive, running Ubuntu GNU/Linux from the CD/DVD drive will take a lot more time to fire up any particular application, such as the web browser. There's even a local support group for Ubuntu in <redacted>, as I mentioned above, kind of like AA, I guess, except that we Ubuntu addicts have no interest in kicking our habit. Anyway, they seem to have a get together every two weeks.
So, if you can make it there to meet these young whippersnappers, just walk in and say "Hi, I'm <redacted>, and I'm a newbie."
> He told me that it was the best to run.
I think so, too. It is also the easiest to maintain. Most
importantly, it is fun!> Nothing can get to it. IS THAT TRUE??????.
Absolutely not! You still have to be careful, but it is very, very secure compared to Micro$oft Windoze. As Glen Zimmerman, a technology expert with the Pentagon's cyberspace task force, once said, "… the only totally secure computer is one that is switched off, filled with concrete and dropped to the bottom of the Mariana Trench." (http://en.wikipedia.org/wiki/Mariana_Trench).
Lookie: The bad guys are businessmen, and they want to maximize their profits and minimize their efforts. (Ain't capitalism great?) So, considering that Linux accounts for, very, very roughly, about 0% of the PC operating systems on the planet, why would a bad guy invest all that time in trying to write software to break into GNU/Linux-based computers. Think of it like this: Imagine that there are a bazillion branch banks run by a given company and that those banks don't lock their doors or their vaults, and imagine that there is one bank that is locked up tighter than a drum in comparison. If you were Willie Sutton (sorry, Paul, you're too young, so you'll just have to look that one up) which banks would you go after.
Cheers,
Sender
God speed, Sender and <redacted>! This is the best cold email I have ever gotten in my life. Had me reading, that's for sure.
31 Jul 2010 3:59pm GMT
Mohamad Faizul Zulkifli: Ubuntu-hams Malaysia At KL Tower Hamfest 2010

Event: Hamfest 2010 http://www.hamfest.my
Date: 30 July, 31 July and 1 Aug 2010
Time: 10 am to 10 pm
Who we are:

Malaysian Ubuntu-hams ( Attendee: 9W2PJU, 9W2HDZ and SWL Tony )
What we do here: Promoting Ubuntu to all Malaysia ham radio operator and giving free Ubuntu CDs to them.
Pictures:




See more photo here http://www.flickr.com/photos/9w2pju/sets/72157624490701603/
Credits: Thanks to all Ubuntu-hams, supporters, Malaysian hamradio operators, 9W2FYI the event manager, Apogee for the great logo, 9M2AR, 9W2PYT, 9W2HDZ, SWL Tony for the picnic table, friends, foes, and big thanks To mypapit 9W2WTF for the non stop supports.
31 Jul 2010 1:37pm GMT
Ronnie Tucker: Quick download page update

We've slightly tweaked our downloads page. The page should be full-width (finally!) and there's also an extremely beta option to download an archive of issues.
Enjoy!
31 Jul 2010 4:14am GMT
The Fridge: Meet Benji York

Recently, Benji York joined Canonical's Launchpad team. I asked him a little about himself and his work.
Matthew: What do you do on the Launchpad team?
Benji: I work on the Foundations team. Right now I'm concentrating on the web service APIs and improving the OpenID integration.
Matthew: Can we see something that you've worked on?
Benji: There's not much to see yet. Most of my changes thus far have been bug fixes or purely internal.
Matthew: Where do you work?
Benji: I work from my home in Virginia, USA.
Matthew: What can you see from your office window?
Benji: Just the shrubs that border my lawn. Once the weather cools off a bit I want to try working from the wifi-covered park/beach near my house.
Matthew: What did you do before working at Canonical?
Benji: I worked at Zope Corporation for about 6 years, most of that time as the team lead for their main product. Before that I worked in the automotive industry, mostly writing supply chain and manufacturing software.
Matthew: How did you get into free software?
Benji: I think the first piece of open source software I used to any degree was Python 1.5. Since then open source software has slowly taken over almost every niche of my computing world.
Matthew: What's more important? Principle or pragmatism?
Benji: Pragmatism. If a thing doesn't do what it needs to do, it's not worth much.
However, I believe that principles are there to help us be pragmatic in a scope larger than the immediate moment. It's not pragmatic in the long term to skimp on good design or testing just to get something out the door. Any good principal is grounded in pragmatism.
Matthew: Do you/have you contribute(d) to any free software projects?
Benji: When I was in college the console (NES, SNES, Genesis, etc.) emulation scene exploded and I had a side project that let people connect console controllers to their PC. I was approached by one of the Linux input device guys about contributing some of that code. That was my first open source contribution.
Since then I've made large and small contributions to dozens of open source projects. Most of those have been in the Zope ecosystem.
Lately I've put most of my open source hacking time into Manuel, a system for writing better tested documentation and better documented tests - it's sort of a spiritual successor to Python's doctest.
Matthew: Tell us something really cool about Launchpad that not enough people know about.
Benji: I'm sure most readers of this blog will know, but I didn't know that the Launchpad and Bazaar integration is as nice as it is. Being able to branch from LP, make changes, mark the branch as fixing a particular bug, push the branch to LP, view the diffs online and then generate a merge proposal that will be automatically emailed to reviewers is very convenient.
Matthew: Is there anything in particular that you want to change in Launchpad?
Benji: I'm not familiar enough with LP yet to have strong feelings about changing it. Give it a few months and I'll be plenty opinionated.
[Discuss Benji York's Interview on the Forum]
Originally posted by Matthew Revell here on Thursday, July 29th, 2010 at 12:44 pm
31 Jul 2010 1:44am GMT



