Sunday, October 24, 2010

Top Ten application, part three

TOP FIFTEEN THINGS OVERHEARD AT THE SUMMIT ON GLOBAL WARMING

15. Plans for a field trip to the brothel in Nevada that draws 10% of its power from solar energy

14. "Can we speed this up? I left my truck running and it's double-parked."

13. "Whoo, put your hand there! Now that's warm!"

12. "Jerry Lewis is the funniest person of all time."

11. "Two large ice waters, please."

10. "Ozone, schmozone. Did you get the keg?"

9. The quiet, gentle lullabye of environmental activists' fists hammering on the inside of 55-gallon drums out back

8. "If the greenhouse effect is going to produce tomatoes like that attendee from Finland, shovel on the coal!"

7. "Got a light?"

6. Members of the hired band arguing about whether or not to play "Smoke Gets in Your Eyes"

5. "Actually, burning sod is a viable alternative to solar energy."

4. "Now you're cooking with gas!"

3. That wacky Dr. Feldman going on and on about his "Pig Methane and Hamhocks" franchising idea

2. "They said that the ice cubes in these drinks came from genuine melted Alaskan glaciers!"

... and the number 1 thing overheard at the Summit on Global Warming:

1. "I love the smell of napalm in the morning."

(Third in a series: part one, part two)

Sunday, October 17, 2010

Top Ten application, part two

Second in a series of retroblogging from 1997.

TOP ELEVEN WAYS TO TELL THAT YOUR SOCKS DON'T MATCH

11. Just "don't feel fresh"
10. Midget chicks at the local dive look the other way when you saunter in
9. "Use the Force, Luke!"
8. One hip wader left behind when buddies pull your drunken a** out of the mud flats
7. "Spiked Vietcong Sock of Death" usually requires stitches
6. Cars always veer to your *left* when night jogging on the median
5. I don't know, but that's the last time I show Michael Jackson where I stash my underclothes
4. Keep having to drop pom-poms to pull up one knee-high, but it won't come up any higher
3. When used as a filter, left sock mysteriously produces decaf
2. That blue-tick hound always goes for the leg with the Smurfs on it whenever you show up at Uncle Carl's trailer

and the number one way to tell your socks don't match ...

1. "But I *am* wearing the other sock!"

Saturday, October 09, 2010

Top Ten application, part one

Back in 1998, I tried out to be a contributor to a humorous web site. To apply, you had to take a seemingly hard-to-be-funny-about topic and make a "Top Ten"-style list about it. I stumbled upon one of them today.

TOP FOURTEEN TOOTHBRUSH-HANDLE STYLES

14. Hari-Kari Combo
13. Hands-Free (with jaw strap; batteries not included)
12. Early Colonial Wood Grain
11. Ribbed (for her pleasure)
10. Hollow-point
9. Shaped-just-like-Ernest-Borgnine-naked
8. Bouffant
7. Self-cleaning (heats to 600 degrees)
6. Flared
5. Louisville Slugger
4. Mark IV (with "stun" option)
3. Dr. Guillotine's Razor-Edge Grip(tm) with realistic Finger-in-the-Sink Action
2. Pre-greased

and the number-one toothbrush-handle style ...

1. Thighmaster

I would have rocked.

Thursday, April 01, 2010

Committing to FreeBSD


After significant effort, I am thrilled to announce that I am now a FreeBSD documentation committer!

I am proud to be part of a history of great design, POLA, and doing things The Right Way. I look forward to contributing in earnest.

Read the official announcement.

Friday, October 09, 2009

A Glorious Dawn - a musical tribute to Carl Sagan



At the age of 8, I was transfixed by Cosmos. Sagan's articulate sincerity was irresistible, and it shaped my view of just about everything.

I actually get a lump in my throat when I watch this video. It makes me want to go work for NASA, or at least contribute to some open-source project that NASA uses.

John Boswell has a keen eye for what Carl Sagan was passionate about: the wonder of the universe. If you are a fan of Sagan, I hope that you enjoy this as much as I do.

Thursday, May 14, 2009

The Bill Paul clause to the BSD license

One of the lesser-known variants. I use "clause" here loosely; it's really in the disclaimer.

THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.

I'm attributing this to Bill Paul based solely on the frequency count in the FreeBSD source tree, though there are others. This sample is from 7.2-RELEASE:

147 ENT SHALL Bill Paul OR THE
28 ENT SHALL THE AUTHOR OR THE
10 ENT SHALL NICK HIBMA OR THE
9 ENT SHALL ICHIRO FUKUHARA OR THE
1 ENT SHALL Ivan Sharov OR THE
1 ENT SHALL David Hulton OR THE

The "THE AUTHOR OR THE VOICES IN HIS HEAD" instances are mostly in some ACL-related code, primarily by Chris Faulhaber. Hard to say which of these are cut-and-paste, and which are deliberate.

Either way, I'm using it from now on. :-)

Saturday, May 09, 2009

Colin Percival's scrypt: a new chapter in the history of encryption


Today at the 2009 BSDCan conference, Colin Percival (of FreeBSD and Tarsnap) announced a new key derivation function called scrypt. I am not a math person by any means - and the slides from the presentation explain it pretty well - but what Percival has done here is phenomenal. I feel lucky to have been there in person for the presentation.

The basic concept is that sequential memory-hard algorithms make dedicated encryption ASICs significantly more costly because they are sequential (difficult to run in parallel) and memory-hard (require a significant amount of RAM relative to the size of the input.)

In other words, making the math hard and difficult to run on ten thousand cores increases the time required, and making the math need a lot of room to be worked on increases the money required to crack the password. This is because it's relatively cheap to put 10,000 encryption-specific CPU mini-cores on a single die, but it's expensive to feed them piles of fast RAM in a small space.

This is nothing short of historic.

Brute-force attacks against encrypted passwords will change overnight - for passwords created after scrypt becomes available, that is. What was once a trivial password to crack becomes decidedly less trivial - literally by an order of magnitude. By Percival's back-of-the-slide-rule math, an 8-character password with good entropy (pretty random-looking) encrypted in .1 seconds (good enough for authentication speeds) will take on the rough order of CAD$4.8M to crack. By contrast, the previous best method (bcrypt) would cost $130K.

Longer strings (source text longer than passwords) become decidedly stronger by much greater factors because the function can spend more time on them, as the user has less of an interactive expectation for file encryption. If allowed to chew on the data for 5 seconds or less, a relatively short English text string encrypted using scrypt would take CAD$210B (vs $47M for bcrypt(!))

This table from the presentation shows the rough cost estimates to crack a string in 1 year (click to enlarge):


The last column may look odd because I've taken this slide out of context. Because the 40-character string is English text, it has decidedly less entropy, and is therefore easier to crack.

This isn't just theory; Percival has published version 1.0 of working FreeBSD demonstration code.

I decided to check it out in its early state. Out of the box, the demo code makes some quick checks of your system to see how much RAM you have, and tries to sanely limit how much it uses - because it can use a lot of RAM, very very quickly. There are also limits on how large a passphrase it will currently accept, as well as other parameters automatically sized based your system's memory size.

On a quick check of the code, the options are:

  • m - maximum memory fraction (default: .5, or 50% of RAM as reported by the hw.usermem sysctl for decryption; .128 for encryption)

  • M - maximum memory in bytes (default: 0)

  • t - maximum time in seconds (default: 5 for encryption; 300 for decryption)

In my testing on a 512M system, I couldn't immediately get it to eat more than 128M of RAM; not sure if this is fully by design, or if I'm passing the parameters incorrectly.
royce@heffalump$ time ./scrypt enc -m 1 -t 20 rand.in rand-scrypt.out
Please enter passphrase:
Please confirm passphrase:

real 0m25.090s
user 0m17.017s
sys 0m0.143s
The resulting file's header may not survive in future versions ... but for now, you can tell where it came from in the first six bytes:
royce@heffalump$ cut -b1-6 rand-scrypt.out | head -1
scrypt
At the presentation, FreeBSD Core Team member Brooks Davis asked a good question about the impact of large volumes of users trying to authenticate simultaneously on a system without huge amounts of RAM. Percival replied that the memory and other options could be tuned to fit the profile of a particular system. These parameters would be stored in the shadow password field, much as the salt and rounds are stored there today.

I look forward to seeing a full-fledged scrypt(3) show up in FreeBSD and OpenSSL ... and I'm sure that the Three Letter Agencies do not.

Thursday, April 30, 2009

update4.freebsd.org via ACS

Speaks for itself (if you speak geek):

$ host -t srv _http._tcp.update.freebsd.org | sort -k8
_http._tcp.update.freebsd.org has SRV record 1 10 80 update1.FreeBSD.org.
_http._tcp.update.freebsd.org has SRV record 1 25 80 update2.FreeBSD.org.
_http._tcp.update.freebsd.org has SRV record 1 5 80 update3.FreeBSD.org.
_http._tcp.update.freebsd.org has SRV record 1 30 80 update4.FreeBSD.org.
_http._tcp.update.freebsd.org has SRV record 1 50 80 update5.FreeBSD.org.
_http._tcp.update.freebsd.org has SRV record 1 5 80 update6.FreeBSD.org.

$ host update4.FreeBSD.org.
update4.FreeBSD.org has address 209.193.13.98

$ whois 209.193.13.98 | grep OrgName
OrgName: Alaska Communications Systems Group, Inc.

I am not authorized to speak on behalf of my employer (as some of you may remember from the May 17, 2002 edition of the ADN), but I'm personally pleased to be helping out with the upcoming release of FreeBSD 7.2!

Update: Note that our update server is only temporary, to help with the expected increased use of freebsd-update(8) for upgrading to the new release.

Also note that freebsd-update selects servers at random; if you're in Alaska, you can use -s update4.freebsd.org to select the ACS server.

Contributing more to FreeBSD

Next week, I am headed to BSDCan. I hope to meet people involved in the BSD family of projects, to learn about what people are working on, to talk about interesting problems ... and to stretch my CS brain that has been occupied by operational issues in the years since college.

But the truth is that I have a larger goal.

(deep breath)

To substantially improve my contributions to FreeBSD.

There. I said it.

I've read that public commitment to a goal increases the odds of success, and this seems pretty public. :-)

So the question is, how? I could use some advice or suggestions, especially from people who have traveled this road. (And if you're in the same boat with me and will be at BSDCan, let me know - I'd love to compare notes!)

So far, my plans for BSDCan are:

  • Spend some time with the FAQs for the topics covered, so that I'm not asking well-known questions.

  • Play with unfamiliar technologies in advance, to have questions ready.

  • At the Getting Started in FOSS session, find some buddies with similar goals - both for the conference and for contributing.

  • Strive to not be too much of a fanboy. :-)


My plans for ramping up in my contributions:

  • Tackling small outstanding problem reports, submitting patches, testing existing patches that are waiting for feedback, and contributing to bug busting.

  • Watching the FreeBSD mailing lists in more depth, looking for problems and practicing figuring out the solutions (and if I can't, find the solution posted and strive to understand it). It's also an opportunity to get a better feel for the culture.

  • Learning SGML so that I can contribute to the docs project.

  • Working through the Deitel & Deitel C book.

  • Use the source, Luke. :-)

  • Find a project that interests me and use it to fuel my C learning.

  • Study the FreeBSD Committer's Guide - I won't need to know most of it any time soon, but it should provide me with a framework to start understand the philosophy of the project in more detail.

  • Ponder the advice from Michael Lucas on becoming a committer (also long term planning).

  • Studying Design and Implementation and Modern Operating Systems.


What other tips or advice do you have?

Update: I'll keep a running list of other suggestions I've gotten below:

Tuesday, March 24, 2009

Ada Lovelace Day: Remembering Grace Hopper


I've always been a fan of Grace Hopper, the US Navy programmer who wrote the first compiler(!), popularized the term 'bug' for computer programming problems, pioneered software validation, and deeply influenced the early design and standardization of COBOL.

Hopper believed that programming in a human-readable language would unlock the potential of computing. She worked hard towards this end, and CS continues to benefit from that effort today.

March 24th, 2009 is Ada Lovelace Day - an international day of blogging to draw attention to women excelling in technology. Maybe you know someone who might have a knack for CS and is looking for a direction to go. Maybe you know a woman in CS, and haven't told her lately how much you appreciate her work.

Female perspectives can enhance many traditionally male disciplines. How can women make CS better?
A ship in a harbor is safe, but that is not what a ship is built for. - Grace Hopper
(More quotes from Grace Hopper)

Wednesday, March 18, 2009

Pidgin episode #8726

... in which I argue that frecency, while good for digging into a list of URLs, is not a good metaphor for presenting IM status.

Pidgin Trac #8726 (new enhancement): User selection of saved statuses for the quick/popular list

In a nutshell: having a predictable, configurable list of saved IM statuses is better than an algorithm that tries to guess based on what your most-often-and-recently-used ones are.

I also am insufferably pleased with myself for coining the phrase power user limbo: a state in which a user has graduated from novice in a particular portion of the interface, but is held back from transitioning to full power usage by a mismatch between the presented and implied interface design metaphors.
Populating the list using frecency data without allowing the power user to control the content leaves them in a kind of 'power user limbo': the user wants to use saved statuses for the purpose that they were designed for (ease of changing statuses), but they are subtly constrained in a way that contradicts that purpose.
Given how rare original thoughts are ("Failure, Mr. Jones, is hardly original!" - Bloom County), there's probably a much better phrase for this concept. But I like the visual that accompanies power user limbo, so I'm stickin' with it.

You can go back to whatever you were doing now.

Saturday, March 14, 2009

Automatic calorie counting for the digital diet

Have you ever gone to the computer to look up something "just really quickly", and then looked up to realize that it's 3am?

"Wow, where did the time go?" you ask yourself. And you feel sorta sad inside, because you've broken an implicit promise to yourself - the promise to not do that ... or at least, to not do it as often. If you've ever struggled with your weight, this sad feeling inside might seem familiar - like the moment when you realize you've just eaten an entire pint of ice cream.

These feelings are similar because they are both moments of reality. In an ad-hoc way, you've suddenly become aware of the difference between what you are doing and what you want to be doing.

The key to turning this from a moment of despair into a simple moment of data collection along the long arc of progress towards your goal is simple ... treat it as a data point. A data point to be measured, along with the others. A data point in a cast of thousands. A data point to be collected and judged in the larger context. In a word: science.

As a geek, I found the idea of turning self-flagellation into science to be transformative. I did the research, started counting calories (all of them), and it worked. I lost 35 pounds, about 2 pounds a week, like clockwork. All it took was scientific rigor: being fiercely honest with myself about the thing I was trying to change, recording all of the data - no discarding outliers.

Unfortunately, this data collection required energy -- physical, emotional, and motivational -- and it took a long time for me to start. If I could have found a way to automatically measure all of the calories I was taking in, I could have started along the path to reaching my goal much sooner.

It turns out that there is a calorie counter for your digital diet: Manictime (Windows).

Recently covered by Lifehacker, it's a simple system tray app that sits in the background, noting what applications you're using. By tracking the title of each window and exactly how long you spent on it, you can tell exactly where your time went - what web pages you looked at, which emails you composed, how long you spent on that document, etc.)

A key feature is Manictime's 100% customizable tagging. You can easily mark chunks of time by activity (socializing, working, paying bills, etc.), by project, by client, or any other way that makes sense to you.

The tagging is well-implemented. The same period of time can have overlapping tags. The tagging interface snaps to the closest change in activity when you get close to it, making it easy to start and end tagging at activity boundaries. And the realtime summary graphs total up the time spent at a per-application or per-tag level, depending on which bar you hover over with your mouse.

Best of all, the data is yours - locally stored, and easily exported as CSV. I never engaged with RescueTime (a similar application that uploads your data to a centralized server) precisely because I wasn't comfortable with uploading so much personal data.

The screenshots may look a little daunting, but let's face it: the myriad of things that people -- especially knowledge workers -- do with their silicon every day are complex.

If you look up and it's 3am, you know there's a problem. But the next morning over breakfast, it's easy to pretend that there's no problem, that the curve that best fits the points is OK with you.

But if -- in those flashing moments of realization -- you can be aware of all of the data, then you can see the pattern - and you can start changing it, and you can tell if your attempts to change are working or not.

Sunday, October 26, 2008

Amazon's Wish Lists ate my baby

Okay, not really. But I went to look through my lists today for something to bring the total up to the $25 threshold in order to get free shipping (very important for Alaskans!), and on one of my lists, I found this as the second item:



There are no links or pictures in the entry to show me what it was. No breadcrumbs of any kind. WHAT WAS IT? I have no idea.

I was interested in buying it at some point, and I trusted Amazon to keep that knowledge for me. Now, I don't want to add anything to the lists without tracking them somewhere else for fear of losing them. Which is exactly not the point.

I'm going to try to contact Amazon support/service, but I'm just not feeling optimistic on this one.

UPDATE: Bryan suggested that I look at the HTML source - and sure enough, the table header had this string in it:

tbody name="item.0.I1N2UK0PDLSG38.B00024WN3G"

The first part beginning with I1 yielded no results, but the second part is an Amazon product ID, which yielded plenty of Google results - it's the Wonder Cup Adjustable Measuring Cup!



Photo from ShopFosters.com

You saved the day, Bryan!

Friday, October 17, 2008

Daniel DeNardo: Independence from more than just the Union

I was astonished to find that the official election statement from Daniel DeNardo, the Alaska Independence Party's candidate for my own House District 31, was not available anywhere on the Internet as far as Google could tell ... so I had to act immediately.

What follows is an exact copy of the text found on page 110 of the 2008 Official General Election Pamphlet Region II (50M PDF) from the State of Alaska Division of Elections, mailed this week to each voter's address of record. I've tried to preserve the spirit of the formatting as much as possible.

I believe that DeNardo's statement speaks for itself.

BIOGRAPHY:

I study the creation and impact of the Luciferian Marxist-Leninist Dialectical Sovietism that is the most encompassing secular historical force controlling every incorporated political party; the world's exchange systems based on perpetual indentured slavery through interest bearing irredeemable security obligations, i.e. federal reserve notes; Law Merchant advisory panels masquerading as 'juries'; bar associations composed strictly of card carrying Kommunist Komrade Kriminals acting in Alaska under the Alaska Supreme Soviet in conjunction with Soviet counterparts in NKVD through the Khabarovsk-Alaska Collectivization Project; and state sponsored Kriminal Globalism's "perpetual War for perpetual peace".

1990 Soviet-Alaska Maritime Boundary Treaty transferred part of the Aleutian Chain back to the Soviet Union allowing Soviet military occupational of Alaska for 48 hours before rendering notice.

Soviet controlled Conoco-Phillips/British Petroleum are expanding in Alaska with Soviet military intelligence (GRU) controlled Gazprom. Treaty created Pebble project is another aspect of Soviet Perestroika-Glasnost deception/strategy of state sponsored Kapitalist terrorism.

STATEMENT:

CALL TO REVOLUTION

Alaska's Divine Destiny
Holy-Writ Book Revelation repeatedly references Alaska, Land of Great Eagle: Independent Republic leading Trinity's forces against Lucifer, Antichrist, Kommunist International.

Great Arctic Wealth
Alaska's Arctic Islands: Wrangell, Herald, Henrietta, Jeannette, Bennett contain 1,000 times Middle East reserves. Alaska Supreme Soviets: Fabe and Ostroumov, aka Bryner, conspiring under Soviet Khabarovsk-Alaska Collectivization Project merging legal systems, surrendering islands to Soviets.

Mark Begich-Knowles Student Loan Kriminalism
Begich, Student Loan chairman, overcharged interest on 27,000 student loans to reduce program.s millions negative net worth. AG Theresa Williams, Diane Barrans, Ken Dodson aided, abetted 100's millions in interstate bond fraud.

Internal auditor, I caught them.

Promise prosecution, loans nullified.

Gas Line
Initiate immediately. Build free under Common Law gold and silver Coin. No transshipment. Create Alaska Great Eagle Republic infrastructure under Holy Writ's Revelation.

Bar Association
Marxist-Leninist Kriminals imposing Kommunist Korporate feudalistic perpetual Usury servitudes destroying Common Law Republic. God-Man declared Satan attorneys' father: Eternal Punishment. Insane for Alaskans to allow continued existence.

Alaska Supreme Soviet
Marxist-Leninist Kriminals: destroyed fundamental Republican Principles, Declaration of Independence: advocate Soviet self-perpetuating elite dictatorship.

Fabe, Matthews, Eastaugh, Carpeneti, Rabinowitz aided, abetted rape of court employee at weekly biznezz meeting in Girdwood.

Largest Alaska cocaine operation located Anchorage state law-library: complicity of court administrator Arthur Snowden, Jay Rabinowitz.

Corrupt Soviet style organization: history of millions in kickbacks.

Constitutional Convention
People: Great Land of Great Eagle declare Organic Common Law Rights of Man based on Trinity's Divine Word. Death of Attorney's Luciferian Kommunist Korporate Kapitalism.



Couldn't have said it better myself.

Related information can be found here.

Monday, September 22, 2008

New Metaphors for Information Overload - Clay Shirky

Brilliance like Shirky's can only be realized by taking the advice that he gives here.



He keeps knockin' em out of the park!

Wednesday, September 10, 2008

Statehood photomosaic poster



I know that I separated my plates out to another blog, but I wanted to share Statehood license plate photomosaic. You might have been wondering what I was going to do with all of those photos!

Thursday, September 04, 2008

Hyper detailing

This is love of detail, pure and simple. I had no idea that people could go to such lengths.

Polished Bliss: Lamborghini Gallardo - Ne Plus Ultra (TM)

When you're measuring how much surface paint you're sanding off in microns, you're in a whole other class of car maintenance.

Wednesday, July 30, 2008

Use your laptop to detect earthquakes


Wow!

The Quake-Catcher Network lets you tap into the accelerometer in your laptop to detect and report earthquakes. (Note that not all laptops have accelerometers in them yet).

Apparently, the Quake Catcher Network detected the recent Los Angeles 5.4 earthquake in 7 seconds.

Brilliant!

Update: The only downloadable clients available now are for Macs. They're working hard on a Windows version.

Thursday, July 17, 2008

New portupgrade features: portversion origin and fullname flags, pkgdu

portupgrade's portversion command is handy tool for tracking which third-party packages on your FreeBSD system have newer versions available.

portversion has some new flags and features in version 2.4.6 (committed just yesterday), and a new utility called pkgdu.

First, here's a quick summary of the changes to portversion. (This is just a simplified diff between the previous manpage and the current one):
<    portversion [-hrOqRv] [-l limit_chars] [-L inv_limit_chars]
> portversion [-hFOoQqRrv] [-l limit_chars] [-L inv_limit_chars]

> -F
> --fullname Display a package full name.
>
> -o
> --origin Display package origin instead of package name.
>
> -Q
> --quiet Do not display status chars.
>

Now, for some usage examples. In these examples, I'm using -L = to leave out all lines of output that indicate that the installed version and the version available in the ports tree are equal).

portversion now defaults to not showing the version on the left-hand side.
[royce@heffalump ~]$ portversion -v -L =
lsof < needs updating (port has 4.81A,2)
mytop < needs updating (port has 1.6_4)
net-snmp < needs updating (port has 5.4.1.2)
p5-Pod-Parser < needs updating (port has 1.35_2)
p5-Sub-Uplevel < needs updating (port has 0.1901_1)
p5-Test-ClassAPI < needs updating (port has 1.05)
p5-Test-Harness < needs updating (port has 3.12)
p5-version < needs updating (port has 0.75.01)
rsync < needs updating (port has 3.0.3)
sudo < needs updating (port has 1.6.9.17)
vim < needs updating (port has 7.1.330)

The new default behavior looks cleaner, but if you're used to the old output, it does make it hard to tell just how out of date you are. You can use -F to get the old behavior (with the version number of the currently installed software is displayed):
[royce@heffalump ~]$ portversion -vF -L =
lsof-4.80,2 < needs updating (port has 4.81A,2)
mytop-1.6_3 < needs updating (port has 1.6_4)
net-snmp-5.4.1_5 < needs updating (port has 5.4.1.2)
p5-Pod-Parser-1.35_1 < needs updating (port has 1.35_2)
p5-Sub-Uplevel-0.1901 < needs updating (port has 0.1901_1)
p5-Test-ClassAPI-1.04 < needs updating (port has 1.05)
p5-Test-Harness-3.11 < needs updating (port has 3.12)
p5-version-0.75 < needs updating (port has 0.75.01)
rsync-3.0.2_1 < needs updating (port has 3.0.3)
sudo-1.6.9.15_1 < needs updating (port has 1.6.9.17)
vim-7.1.315 < needs updating (port has 7.1.330)

You can display the ports' origins instead with -o. If you're not sure what a particular port is, you can get a good idea by knowing what subdirectory it's in:
[royce@heffalump ~]$ portversion -o -v -L =
sysutils/lsof < needs updating (port has 4.81A,2)
databases/mytop < needs updating (port has 1.6_4)
net-mgmt/net-snmp < needs updating (port has 5.4.1.2)
textproc/p5-Pod-Parser < needs updating (port has 1.35_2)
devel/p5-Sub-Uplevel < needs updating (port has 0.1901_1)
devel/p5-Test-ClassAPI < needs updating (port has 1.05)
devel/p5-Test-Harness < needs updating (port has 3.12)
devel/p5-version < needs updating (port has 0.75.01)
net/rsync < needs updating (port has 3.0.3)
security/sudo < needs updating (port has 1.6.9.17)
editors/vim < needs updating (port has 7.1.330)

What I'd love to see is an option that leaves the fullname data, but
puts whitespace between ... so that I can still see versions, but
have easy one-click highlighting of the package name:
lsof 4.80,2                 <  needs updating (port has 4.81A,2)
mytop 1.6_3 < needs updating (port has 1.6_4)
net-snmp 5.4.1_5 < needs updating (port has 5.4.1.2)
p5-Pod-Parser 1.35_1 < needs updating (port has 1.35_2)
p5-Sub-Uplevel 0.1901 < needs updating (port has 0.1901_1)
p5-Test-ClassAPI 1.04 < needs updating (port has 1.05)
p5-Test-Harness 3.11 < needs updating (port has 3.12)
p5-version 0.75 < needs updating (port has 0.75.01)
rsync 3.0.2_1 < needs updating (port has 3.0.3)
sudo 1.6.9.15_1 < needs updating (port has 1.6.9.17)
vim 7.1.315 < needs updating (port has 7.1.330)

... or even:
lsof                        <  needs update (inst: 4.80,2     port: 4.81A,2)
mytop < needs update (inst: 1.6_3 port: 1.6_4)
net-snmp < needs update (inst: 5.4.1_5 port: 5.4.1.2)
p5-Pod-Parser < needs update (inst: 1.35_1 port: 1.35_2)
p5-Sub-Uplevel < needs update (inst: 0.1901 port: 0.1901_1)
p5-Test-ClassAPI < needs update (inst: 1.04 port: 1.05)
p5-Test-Harness < needs update (inst: 3.11 port: 3.12)
p5-version < needs update (inst: 0.75 port: 0.75.01)
rsync < needs update (inst: 3.0.2_1 port: 3.0.3)
sudo < needs update (inst: 1.6.9.15_1 port: 1.6.9.17)
vim < needs update (inst: 7.1.315 port: 7.1.330)


Finally, here's the new pkgdu command, which shows disk space used by the
port and pretty much speaks for itself:
[royce@heffalump ~]$ pkgdu | sort -n | tail -20
970 ruby18-bdb-0.6.4
1151 perltidy-20071205
1332 gmake-3.81_3
1512 p5-Perl-Critic-1.08.5
1740 p5-DBI-1.60.4
1853 pcre-7.7
2235 bash-3.2.39_1
2255 autoconf-2.61_2
2385 joe-3.5_1,1
2492 libtool-1.5.26
3147 libiconv-1.11_1
3453 mysql-client-5.0.51a
7548 net-snmp-5.4.1_5
8946 ruby-1.8.6.111_4,1
9322 db41-4.1.25_4
9561 aspell-0.60.6_2
10182 gettext-0.17_1
12822 coreutils-6.9_3
28953 perl-5.8.8_1
30434 vim-7.1.315

Monday, June 16, 2008

Talk amongst yourselves

The idea of personalized, centralized comments from everywhere that I post is intriguing. So here's some Disqus. Discuss.