Planet PLUG

Planet PLUG is an aggregation of blogs written by members of the PLUG community. The opinions expressed are those of the original authors. Discussion of subject matter should be conducted on the author's blog, and not on the PLUG mailing list.


July 03, 2009

yonkeltron

Languages, platforms, paradigms and speed

Ever since the latest round of Ruby benchmarks came out and everyone got all excited, I got to thinking about the overall discussion about languages and the interpreted vs. compiled debate. To be fair, there will always be those who take a specific side for some small-but-important-to-them reason yet this has not stopped so many projects from bridging the gap, albeit with varying degrees of success. In many instances, it comes down to the different approaches taken by various language themselves and the payoffs they offer.

In my investigation, I came across some very enlightening sources of information on the overall discussion of language speed, code optimization and the tension between different paradigms. Please peruse the following:

Something missing from this list?

by Jonathan Magen at July 03, 2009 02:13 AM

June 26, 2009

JonathanD

Southeast Linuxfest: We're back.

Got back from SELF about 2 weeks ago. It was by far the best FOSS event I've been to, not that I've been to that many.
It bugs me that there aren't very many good ones. Ohio linuxfest is well spoken of, but it's pretty far, not that SELF was any better.

read more

by Jonathan at June 26, 2009 02:18 PM

June 24, 2009

Alex Launi

Jolicloud + Do bring the awesome

I’ve yet to really blog about what I’ve been doing this summer, not because it’s been top secret, mostly because I’m lazy and have been incredibly busy. I started off at UDS in Barcelona, thanks to Canonical. UDS was a blast, we got a lot done, and I can’t wait to see how Karmic turns out.

So what have I been up to since UDS? Well, I got stuck in Barcelona for a few days more than I had expected, which although expensive, was a lot of fun. I met a bunch of cool dudes from Canada (If you read this get in touch! Haven’t been able to find you guys on facebook!), and some other sweet people. Good stuff. Since then I’ve been in Paris, where I’m working for Jolicloud, where I’m putting my self-described usability expertise to good use. I’ve learned a bit of ruby, done some C, some Python, but mostly I’ve been working on making Do kick absolute ass on JoliCloud. Want to see what I’ve been up to? Check out this short screencast I made demonstrating the awesome. This stuff is a work in progress, and although I’m moving quickly some of this is brand new so expect to see some changes before the final release.


Or, if you’re getting this via a feed reader, here’s the link to YouTube.

by lamalex at June 24, 2009 04:36 PM

June 22, 2009

mjd

Gray code at the pediatrician's office

Last week we took Iris to the pediatrician for a checkup, during which they weighed, measured, and inoculated her. The measuring device, which I later learned is called a stadiometer, had a bracket on a slider that went up and down on a post. Iris stood against the post and the nurse adjusted the bracket to exactly the top of her head. Then she read off Iris's height from an attached display.

How did the bracket know exactly what height to report? This was done in a way I hadn't seen before. It had a photosensor looking at the post, which was printed with this pattern:

(Click to view the other pictures I took of the post.)

The pattern is binary numerals. Each numeral is a certain fraction of a centimeter high, say 1/4 centimeter. If the sensor reads the number 433, that means that the bracket is 433/4 = 108.25 cm off the ground, and so that Iris is 107.75 cm tall.

The patterned strip in the left margin of this article is a straightforward translation of binary numerals to black and white boxes, with black representing 1 and white representing 0:

0000000000
0000000001
0000000010
0000000011
0000000100
0000000101
0000000101
...
1111101000
1111101001
...
1111111111
If you are paying attention, you will notice that although the strip at left is similar to the pattern in the doctor's office, it is not the same. That is because the numbers on the post are Gray-coded.

Gray codes solve the following problem with raw binary numbers. Suppose Iris is close to 104 = 416/4 cm tall, so that the photosensor is in the following region of the post:

...
0110100001 (417)
0110100000 (416)
0110011111 (415)
0110011110 (414)
...
But suppose that the sensor (or the post) is slightly mis-aligned, so that instead of properly reading the (416) row, it reads the first half of the (416) row and last half of the (415) row. That makes 0110111111, which is 447 = 111.75 cm, an error of almost 7.5%. (That's three inches, for my American and Burmese readers.) Or the error could go the other way: if the sensor reads the first half of the (415) and the second half of the (416) row, it will see 0110000000 = 384 = 96 cm.

Gray code is a method for encoding numbers in binary so that each numeral differs from the adjacent ones in only one position:

0000000000
0000000001
0000000011
0000000010
0000000110
0000000111
0000000101
0000000100
0000001100
...
1000011100
1000011101
...
1000000000
This is the pattern from the post, which you can also see at the right of this article.

Now suppose that the mis-aligned sensor reads part of the (416) line and part of the (417) line. With ordinary binary coding, this could result in an error of up to 7.75 cm. (And worse errors for children of other heights.) But with Gray coding no error results from the misreading:

...
0101110000 (417)
0101010000 (416)
0101010001 (415)
0101010011 (414)
...
No matter what parts of 0101110000 and 0101110001 are stitched together, the result is always either 416 or 417.

Converting from Gray code to standard binary is easy: take the binary expansion, and invert every bit that is immediately to the right of a 1 bit. For example, in 1111101000, each red bit is to the right of a 1, and so is inverted to obtain the Gray code 1000011100.

Converting back is also easy: of the Gray code. Replace every sequence of the form 1000...01 with 1111...10; also replace 1000... with 1111... if it appears at the end of the code. For example, Gray code 1000011100 contains two such sequences, 100001 and 11, which are replaced with 111110 and 10, to give 1111101000.

by Mark Dominus at June 22, 2009 02:07 AM

June 21, 2009

Elizabeth Krumbach

Sorry sweetheart, I haven’t got time for anything else.

Well, it happened again. In spite of saying I’d blog more regularly - I haven’t! I haven’t actually been a hermit every day, either.

Going back all the way to the beginning of the month, when my friend MJ was in town we headed down to Philadelphia to see Star Trek at The Franklin Institute Omnimax. So it wasn’t optimized for the hugemongous Omnimax screen so it ended up looking a bit warped, and I’m glad I’d seen it prior to seeing it there so I didn’t miss anything, but it was quite a fun experience. And while mentioning MJ, I was quite pleased with myself to have gotten him in touch with the Ubuntu Ireland team while he was in Dublin so he could snag a couple pints with them. What an awesome team to extend such a welcome to a visiting American… or do the Irish simply use any excuse to have a pint? :) I will have to make it out to Dublin one of these days to see for myself, I’m jealous of everyone involved in said pint night.

Blinker is fixed again! Getting the mechanism in the door for the window ended up costing me a bit over $200 (ouch) but it’s nice to not be holding up the window with masking tape anymore, a week and a half of that was more than enough for me. Inspection on the car is due next month, I’m really hoping it’ll pass without too much trouble and that nothing else goes wrong with it for a while.

I’m in love with my G1. I was glued to it for the trip down to the Southeast Linuxfest last weekend so we had hours and hours to bond. Since I’ve never had a smartphone before just about everything is novel. Linux kernel on my phone? Squee! Maps on my phone? Glee! Traffic too? Beautiful screen? Yeah! Awesome interface! And the best? An excellent ssh client so I can hop onto IRC from anywhere. Oh, and when I’m on call at work I can easily forward calls to it and tunnel into work servers to check email. Oh, and it’s a phone too! Not a bad one, for that matter. Tomorrow I think I’ll skip down to King of Prussia to get a screen protector, and see if any of the shops down there have pink G1 covers before I start looking online. The only complaint about the phone is the backlit keyboard. On the black version of the phone it’s not much of an issue, I bet, but the white one has a grey keyboard which is a bit unfortunate in medium light: without backlight I can see keys fine, with backlight I can barely see them! But I figure as phone complaints go, this is pretty mild.

I did a talk on Contributing to Open Source Projects at PLUG North this month which I think went quite well. A huge thanks to MJ and David A. Harding for offering fantastic review of my slides prior to the presentation, their input and content additions really put the polish I needed into the presentation. I finally got around to uploading my slides here (they are actually somewhat useful if you check out Note view in Impress). Which reminds me, I hadn’t written a presentation in a long time, the last time I did I used S5. I was geared up to use that again until I read Emma Jane’s OpenOffice.org: an outline for preparing your slides, with the guidance from that post I had a very pleasant Impress experience, and I suspect I’ll be using it in the future. The only snafu? My desktop is running Ubuntu 9.04 with OpenOffice.org 3, while my mini9 that I did the presentation on is still running Ubuntu 8.04 LTS with OpenOffice.org 2.4, the version difference caused my pretty pink bullet points to disappear on 8.04, which I had to scramble to fix prior to heading out to the meeting.

I finally picked up a Wii Fit a couple weeks ago. It’s actually been quite fun so far. Plus I’m riding my bike some and being pretty good about eating better (the Southeast Linuxfest weekend being a gigantic exception, wahoo southern food!). I’m really looking forward to when the pool here at the apartment complex opens, it’s almost July, what are they waiting for? I’d love to be able to skip down to the pool for a little while each nice day for a swim. Love swimming.

What else… okay, so I did spend pretty much this entire week hermited in my apartment with my cats. Except for today, when I had lunch with Stephen. Oh how I adore the swiss and mushroom burgers at Stoudt’s, and wrapping up the afternoon with a brownie and coffee ice cream sundae at The Udder Choice in Ephrata was awesome. Plus it was very nice to get out and get my mind off a recent break up that’s had me down.

Now I’m going to try and get some sleep and hope this miserable, humid weather goes away soon.

by pleia2 at June 21, 2009 06:47 PM

Southeast LinuxFest!

This past weekend I rode down to the Southeast Linuxfest in Clemson South Carolina. I tagged along with Freenode reps Jonathan Simpson and Crissi, plus Andrew from the Pennsylvania Ubuntu LoCo team. I was able to take Friday off from work for the drive down to Charlotte, NC where we were staying, the drive down was long (ended up being about 12 hours) but Jonathan and Crissi had a powerstrip in the car so our laptops and cellphones could stay charged for the drive! Wahoo, G1 with IRC for the whole ride down! Plus they kept us somewhat occupied with lively discussion and proof-reading some of the freenode materials that would be available for the crowds.

Saturday morning we got up bright and early to head down to the Linuxfest in Clemson. On the way down there was a giant peach:

But other than that the drive down was uneventful. We arrived around 10AM and got the Freenode booth set up.


Photo by Andrew Keyes

Crissi and Jonathan, representing freenode!

As for me, I met up with several people I’d only known online until then, caught up with some other Ubuntu people I’d met various places, and at 11 I skipped over to Amber Graner’s “Why not You?” session where we talked about talking to people about F/OSS involvement, which was a great session and I was finally able to meet Beth Lynn Eicher who I’d only vaguely known until then through her involvement with WPLUG, and Jimmy Harris, a Florida LoCo team member who I’ve worked with on the Ubuntu USTeams project (so Jimmy, going to mentor for us? Pleeeease? :)). The only talk I ended up going to all day was Pete Graner’s Ubuntu Kernel talk after lunch, which was a very interesting and informative talk, after which I headed over to Amber’s second session of the day on Ubuntu LoCo teams. Again it was a great discussion with a lot of valuable insight to team planning offered by Jimmy, Amber, Mackenzie Morgan and others.

I’d say more, but Mackenzie and Amber have both written great entries that cover much of what I wanted to say. Most notably is something Mackenzie pointed out - the percentage of women attending! I don’t know how many actually were there percentage-wise, but there were noticeably more than other Linux events than I’ve attended, it was very encouraging. But here are their posts:

Mackenzie Morgan: Southeast Linuxfest Post
Amber Graner: My First Linux Fest: SELF (Southeast Linux Fest)

Ubuntu LoCo Teams BOF

The much of the rest of the event I spent talking with people informally, which is when I bumped into Ian Geiser, a Philadelphia local who I’d for some reason lost touch with and hadn’t seen in how long? Over 5 years? He was speaking on KDE at the fest and tending the KDE booth! I’ve hopefully successfully convinced him to come out to PLUG meetings again …or at least do some social stuff!


Photo by Andrew Keyes

After the event wrapped up we headed over to Rock Hoppers Restaurant & Bar for the SELF after party! Ian was nice enough to give Andrew and me a ride over there while Jonathan and Crissi parted ways with us and headed out to dinner. We sort of just chilled out in the back and had dinner and chatted for a couple hours until it was time to skip off for the evening (fairly early, but we did have to get back to Charlotte before it got too late). Good times :)


Clockwise from left: Chris Crisafulli (itnet7), Nick Ali (boredandblogging), Jimmy Harris (pak33m), Andrew Keyes (andrew), Elizabeth Krumbach (pleia2), CrissiD, Ian Geiser (geiseri), Ian (ik)

Photo by Nivex

Sunday morning we slept in a little bit and then started the long drive home. Huge thanks to Jonathan for driving all day :) We got back in the Philadelphia area around 9PM, snagged some burgers at Red Robin and then headed home.

by pleia2 at June 21, 2009 06:46 PM

June 18, 2009

Alex Launi

The Twitpocolypse! Do plugin updated

The other day Twitter status IDs overflowed, and as such the GNOME Do plugin was broken. Maybe this kind of thing is why people should use identi.ca? I know I’m a hypocrite and use Twitter, but maybe I’ll switch someday, now that most of my friends have stopped using it in general. Anyway, I just wanted to let everyone know that this is fixed in bzr, and we’ve pushed an update to jaunty proposed. If you’re getting annoyed at Do telling you that your post failed when really it didn’t, please enable the proposed repository and comment on this bug saying that it works for you. https://bugs.launchpad.net/do-plugins/+bug/387525. Instructions for testing are in the bug report. Thanks!

by lamalex at June 18, 2009 10:42 PM

June 16, 2009

mjd

June 15, 2009

AndyML

How to Reset a Cisco Router to Factory Defaults (or: clear a lost password)

Caution: this is a destructive process, it will completely destroy any current configuration in the router. First, you need to gain access to ROMMON - connect to the Console port on the router and send a break sequence as the router boots - typically this is Ctrl+break.   once you are at the rommon 1> prompt enter the [...]

by Safir01 at June 15, 2009 05:57 PM

June 08, 2009

yonkeltron

A good Debian package caching system

I’ve got several servers on my network and I’m ok with that. Honestly, I am. The problem I run in to is that I end up wasting bandwidth by keeping them all up to date. In the past, I’ve tried apt-proxy (not the only one who’s had problems) and, most recently, debtorrent but they inevitably fail. Why is this? It doesn’t matter, I just need something to work. I heard about Approx and am giving it a try. It’s not a daemon, but something invoked by inetd. It’s also written in OCaml, which has a decent reputation for stability. It coped easily with 3 computers updating at the same time (something which none of the others could do) so we’ll see how it works. Hopefully this one won’t choke like the others did.

by Jonathan Magen at June 08, 2009 02:54 AM