Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: /. Resurgent: On Stemming Audience Decline and Rebuilding that Good Ol' Brand 13

I'd like to talk about Slashdot. We all remember that old troll, Netcraft confirms it, only these days you don't need pagerank to see the decline in comments and community involvement. It's a problem. And facing that truth is the first step in finding solutions. But before I begin, a bit of meta about this journal entry:

First of all, while I've submitted to the editorial queue I don't expect front page placement. I know this kind of navel gazing isn't FP worthy. The intended readership is editors and those interested in /. enough to vote on submissions. Any upvotes it gets will thus hopefully encourage site editors and Dice management to read, perhaps comment, and maybe even change direction. Because we all know the direction Slashdot is currently going will ultimately lead to a bad place.

Secondly, this journal is not a bitch session. I don't want to talk about which editors suck, why the beta should or shouldn't be tossed, or how much better things were when Malda ran the shop. All that is gazing into a rear view mirror. And you can't drive a car based on what's already passed by. Success requires looking out the front window at oncoming obstacles and steering clear. Otherwise, you tumble off-road and crash and burn.

Thirdly, I like Slashdot. I want it to succeed. And I think there are exploitable opportunities to regain audience. So this diary is about grasping opportunity for renewed success. I want to offer hopeful suggestions. For there is no point in promoting defeatism and failure.

To begin, let's look at what's wrong. Most of it is inertia following an old model that was once wildly successful. The editorial policy still focuses on short blurbs about off site articles. Yet these days a well written subject line conveys everything one needs. That's why Twitter is so successful.

The next problem is slow turn-around for material already publiziced by competitors. It might take a half-day to a day between submission to front page. Which were editors carefully selecting from a vast deluge of stories might make sense, particularly if most of them were somehow folded within the Slashdot umbrella and not already publicized. But right now, that's not the case.

There's a competitor that's taken over link aggregation. We all know who it is. Reddit. The once Smiling Alien has become a Ravenous Gorilla, eating everything and everyone in its path. Reddit has already eaten Slashdot's lunch. Now it's taking seconds and thirds from the nerd site's breakfast and dinner plates.

In particular, /r/technology, /r/science, and more recently /r/futurology. These subreddits reap the exact audience Slashdot targets, publicizing submitted material almost instantly. Communities at those subreddits quickly drives popular submissions to notice. Anyone following there learns those stories long before they're published on Slashdot. Game over.

Combine these two, redundant write ups of old news already popular elsewhere and you get decline. In link aggregation, Reddit won and Slashdot lost. Get over it. Because Slashdot lost that war long before Reddit even came on the scene. The question is why. Answer that and it's a first step toward putting Alien Kong on a much needed diet.

Sometimes examining history is a helpful lens through which to understand the present. Slashdot has always been a community driven site. That is, back in its founding, Malda et all took users seriously and tried to meet their needs. On occasion this led to site editorial policy contorting itself around conflicting community demands. And was that community demanding. It's as if Slashdot's success seemed to have knit together too many groups with differing interests. It seemed impossible to please everyone.

By the end of the 1990s, there was recognition the site couldn't rely entirely on externally generated content. That link aggregation was only a partial means to drive audience. Should the site promote user submitted content or hire professional writers? On the one hand, community submissions engage the core audience. On the other hand, professional writers produce professional content. Some users expected professionally copyedited submissions given the site dominated 'Net tech discussion. Others wanted to retain its amateur community charm.

The downfall of Jon Katz as Slashdot professional writer and editorial staffer said more about this community divide than it did about his competence. Even if he did screw up. A real editorial process would have caught his mistakes before publication. And he is a good writer. Even if only marginally competent with tech news. But that community breach - not Jon Katz but the divide between amateur community and professional - provided opportunity for competition.

One dev took advantage of dissatisfaction on Slashdot and developed a community driven competitor, Kuro5hin. Its unique claim was that users could vote on story submissions rather than the site's press being controlled by a central editorial body. It offered a private submission queue where community members could propose editorial changes prior to publication. Then a story 'election' stage where voting would decide success or failure. Those stories that succeeded made it to the front page. A community voting model was tried many times before Reddit took the reigns as self-proclaimed "Front Page of the Internet."

This led to a debate on Slashdot over whether community managed or centrally managed models should win out. Slashdot was the market gorilla then and Kuro5hin a semi-popular upstart. Slashdot continued their traditional editorial approach, with editors who selected community submitted content. They continued publishing Jon Katz. And ran on the inertia of success.

Kuro5hin challenged Slashdot by letting the community write, edit, and choose stories by popularity. And in this challenge the site became very popular very quickly. Not as big as Slashdot, but big enough to gain real attention. And Kuro5hin did this by at first slicing away a noticeable portion of the Slashdot community. But people stayed because the system allowed successful contributors to build notoriety, creating a symbiosis between writers, community, and publisher. Something Slashdot only partially embraced with open submissions.

But there's a reason why few remember Kuro5hin today. It had a slow-burn downfall. The more popular it became the more valuable was front page real estate. Just like with Slashdot, community members began to split off into different groups each with their own vested interest. And here was where the story voting queue transitioned from an enticing unique feature to its Achilles Heel.

Soon the queue became gamed by those groups, organized around parochial interests particular to each. Some were trolls, others political ideologues, and still others wanted a pure focus on tech. None could share a communal printing press. And the owner, in his infinite folly, decided to step away and not interfere with community choice. It was a community driven site, right? Let the community decide! Idiot.

People began to leave. Over a couple years that trickle of departures became a rush. Then a scandal or two and a huge migration cleaved the community in two. The site imploded. Finally, a focus on trolling for click-throughs left it publishing such insightful fare as Fuck Natalee Holloway, attracting eyeballs by impugning some girl who'd disappeared and became a media sensation.

Controversial stories like that can generate lots of short-term clickthroughs by an angry and indignant public. Hey, it's an advertising model. Click-bait. Before Gawker there was Kuro5hin. But it didn't last. Because it tarnished the brand for a bit of short-term gain. Kuro5hin lived off googlesearch results to old controversial stories for a time. But now it's a ghost town of 'Net-tumbleweeds and World Wide Cobwebs where a once vibrant community once stood.

The decline of Kuro5hin might have convinced Slashdot's editors they had made the right choice. It's demise is instructive. Centralized editors can prevent organized trolls and political insurgencies from taking control of a site's press. But as Kuro5hin devolved to infighting over an increasingly less relevant front page, another community driven site emerged. And this one would beat Slashdot at its own game in every way imaginable.

Digg. For those who remember its spectacular implosion the name evokes sneers of derision. But there was a time when Digg overtook not just scrappy media startup Slashdot with its little focus on 'news for nerds'. Using Slashdot's link aggregation model, Digg took over 'Net everywhere. Newspapers, magazines, music, film, television... promoting everything media. It became a powerhouse portal relevant to every press outlet and publisher, discussed on television, courted by public relations specialists, ultimately becoming worth billions of dollars on paper.

Contrasting Kuro5hin and Digg against Slashdot, one might call the founding of Kuro5hin a writer's dream of what community publishing could be; content, written by local authors and democratically selected for promotion by the community itself. Digg, on the other hand, represented a marketeer's fantasy of how to aggregate audience without doing the hard work of content creation. While Slashdot sat somewhere in the middle, promoting a little bit of community content on the front page and a whole lot of professional content published elsewhere.

Digg won. Its devs took Slashdot's model, transformed their editorial focus away from nerds to the general public, and reaped vast rewards in audience share. Then, like a self-inflicted gunshot to the head, it spectacularly died in a bloody 'Net mess. And, curiously, for much the same reason as Kuro5hin before it. Internal infighting. Corrupt vote rigging. A public scandal that destroyed credibility.

For a site that had prided itself on community content selection, ultimately a kind of payola system infected Digg. Perhaps not with money changing hands, but the power over a vast audience engendered a corrupt system of power users who self-coordinated to rig the selection process. Digg became Rigg, so to speak. Thereby undermining its entire raison d'etre for existence. Goodbye Digg.

Digg has changed hands and - like Kuro5hin - exists as a shell of its former self. They've even transitioned to a centrally managed editorial model, just like Slashdot. But it mostly remains dead. Reddit reaped their userbase and walked away with The Grand Prize. And to this day Reddit remains Alien King Kong, a giant gorilla eating everything off of everyone else's plate. Including Slashdot's.

So now we've seen two examples of site implosion by internal corruption. Perhaps there's a cyclic lesson to be learned here. A point I'll return to after discussing what I think is wrong with Slashdot's community partnership model. Now, I want to shift focus away from link aggregation to content production. Because today original content is king. There is no link aggregation without content. And what was once a vast diversity of publication houses and outlets has consolidated into a paltry few. Forcing content creators to either partner with corporate leaches or else die in obscurity.

Let's start with an old-timer, Dailykos. It's been around since Kuro5hin. Almost as long as Slashdot. And it's still highly popular with large audience share.

Forget about Dailykos' political leanings. The site is openly partisan, left leaning, and exists to promote Democratic candidates. And that's not why Dailykos is interesting. The site is interesting because it's old and yet still successful. Therefore Kos is doing something worth learning from. However, partisanship is not the lesson here. That's never been a viable model for Slashdot.

Instead, the lesson to learn is how a central editorial body sustains audience through community content generation. That's what Slashdot needs to foster. Because in this era, as long as Slashdot is focused on promoting material produced elsewhere the Giant Alien Gorilla will eat its lunch.

Diaries, not comments, are what drive community involvement at Dkos. That diary system creates a symbiosis between community and publisher. True, most diaries suck. But that's the case with all content. Most everything sucks. So what matters is not that sucky diaries are published but that quality filters exist to pick out diamonds in the rough.

There are two levels. Dkos has a voting system that publicizes the titles of popular diaries in a side box to the main page. If someone writes a recommended diary, it can generate thousands of page views and hundreds of "Recommended" upvotes. From there some diaries are chosen for promotion to the main page. Now you're talking tens or hundreds of thousands of page views for a story. That's real name recognition for a writer. And very well received diarists might get an offer to write for the front page regularly. Talk about incentive.

This mix of content by official site writers and promoted diary entries creates a path of upward mobility for lower ranks of creators and contributors to aspire to. It is these aspirations that sustain a community. Because getting noticed isn't merely some popularity content. Several writers have wound up landing professional gigs. What dkos gets from in content by diarists the site returns to writers with increased notoriety and even potential employment opportunities. Symbiosis.

All while the site publisher retains control over their press. Kos doesn't let trolls and other organized groups direct editorial policy. Slashdot editors should take note.

This model has been copied with more recent successful web startups. For example, Medium and Vice are sites that attract high quality content by providing an easy means for new contributors to get a foothold while retaining editorial control to weed out crap. The 1% rule is relevant here. The trick with a viable community model is to pair the interests of creators and contributors with the publisher. Rob Malda knew this from the beginning. But somewhere along the line that symbiosis between contributor and publisher on Slashdot broke down.

It's not as if Slashdot didn't try. There's a Journal system that was intended to replicate diaries on dkos. But it doesn't work. The place is a ghetto. Mostly because the promotion system is broken. On the one hand, only friends see new journal entries. On the other, journal entries can be submitted as stories to the Slashdot submission queue. But this creates a dead area in between. Journals on their own can't be used to build audience.

If you want to submit, there's little reason to write a journal entry. If you want to write a long form journal entry, there's cultural baggage opposing self-promotion. You might as well publish on your own blog and find some way to pass it around competitors and Slashdot. Which only diminishes its value as a potential Slashdot submission. You've got a negative feedback loop going here with Slashdot's most important potential community asset.

Earlier, after finishing up the history of Kuro5hin's and Digg's respective implosions, I said I'd discuss a special opportunity emerging that Slashdot could perhaps exploit. Implying that such an event might happen again. And I definitely think that's the case. However, there is a big difference between then and today.

When Kuro5hin died it wasn't even a leader in its field. There was significant competition not just from Slashdot but numerous other sites as well. Similarly, Digg imploded with Reddit standing by ready to fill that market gap. But today Reddit is a last site standing. They hold an effective monopoly on link aggregation. As they say, they're the "Front Page of the Internet." And these days they are. This makes Reddit sticky in a way prior sites weren't.

However, like Kuro5hin and Digg, there are serious problems with a perception of submission queue rigging and censorship by Reddit moderators. And it's pervasive across the large subreddits.

For example, back in October of last year it became clear that moderators in /r/politics were engaged in wholesale censoring of major publications. Even by publishers who had won Polk and Pulizer prizes. I wrote about that and made a short video.

Then, a few months later in February 2014, a new scandal emerged whereby the mods in /r/techology were exposed as having employed a bot to censor all sorts of keywords from submissions. "Tesla," the car maker, was one. "NSA," another. Even "bitcoin." Terms clearly relevant to a technology forum. The scandal was so serious Alexis Ohanian - a site founder - removed himself from the mod team and site management demoted the subreddit from default status. That is, /r/technology is no longer a subreddit users are - by default - subscribed to when they first create new accounts.

Just recently, a web developer was banned from for submitting a project of his own. He created a video, asking:

Has Reddit become a place for celebrities and big brands benefit from free advertising while the average Redditor who wants to share a personal project gets shoed away?

In the video he then spoke to why this is a bad thing for community relations and how this experience has impacted his trust in the site. At least discussion of his experience hasn't been censored on /r/videos.

Regardless, the issue here isn't about this guy's trouble. There have been so many other examples of this kind of manipulation a pervasive expectation of community exploitation by Reddit admins and mods has developed. The community knows - or at least believes - they're being actively censored for Public Relations purposes. Which is exactly what happened at Digg right before implosion. And Kuro5hin before it, for slightly different reasons.

That means there's market pressure building for a free-as-in-speech competitor to appear. That's called opportunity.

Slashdot? This situation is exploitable. The publisher and editors should take this opportunity to punch that Alien Gorilla in the face and give Reddit a well deserved bloody nose. You can't get everything. But if you're aggressive you could cleave off a chunk of audience at /r/technology, /r/science, and /r/futurology.

This is YOUR OLD NERD AUDIENCE. Bring these people back to the fold by offering them what they want. An open community portal.

After these messes at Reddit and before that Digg perhaps they'll remember you fondly. Slashdot may have been incompetent but it was never corrupt. Not like that. At least nobody thought so. In contrast, that Big Bad Alien Gorilla wants it all so badly they've grown complacent to competition and arrogant to their community. Reclaim your community by promoting Slashdot as the free speech alternative to a now corrupt competitor. Just like Reddit did to Digg.

Combine that with fresh community content creation and you've got a strong means to rebuild your brand anew. With real community involvement and original content hosted locally. You'll know you're hitting them hard when Slashdot comment forums begin competing with Reddit in new comment numbers and page views. You'll know you're winning when Slashdot stories starts popping up in the Reddit new submissions queue.

In summary, it's my belief that Slashdot should change focus away from link aggregation to publishing professional and semi-professional original content. It should do this with community involvement by tweaking journal promotion to focus on community-publisher symbiosis. Dailykos is a model for process, Medium and Vice standards of quality. But most of all, you've got to change direction. The old model doesn't work any more. And recognizing that truth is the first step to change for the better.

I hope this has been an interesting read for /. editors and site stalwarts. And maybe even provided some useful suggestions. Good luck and may success follow regardless.

User Journal

Journal Journal: In general support of /. editors 6

I've seen the comment forums filled with off-topic posts about a badly deployed beta upgrade. Community members are pissed and they're venting and they want site owners to not just listen but act on community concerns. And so we see a temper tantrum that likely has only alienated corporate owners and made life for editorial staff miserable.

I have sympathy for both perspectives. The upgrade really is a mess. Commenting doesn't work, layout wastes space, fonts are poorly chosen, etc. Yet I also recognize that software upgrades are necessary. Slashdot is looking pretty creaky. Another coat of whitewash over cracks in the woodwork won't do. Deciding to rewrite and build something new is a defendable choice. But owners should know that simply deploying something new is not the same as building something that works. As an old timer here, I'd like functionality considered above mere design. Ideally, a good new site would merge the two seamlessly.

Of course, no one screaming out there in the community cares what I have to say. I've been absent so long I'm barely a member these days. But I think the continued tantrum is going overboard and risks causing more damage than good. Destroying /. to save it is no solution. Make a stink, get your views known, but editors have posted a place for dialog and it's time to use it. Crapflooding every article with off-topic rants about the beta now diminishes community goals. It's counterproductive.

I'd like to see /. resurgent. I think Reddit has gotten too big and the Internet needs competitors in link aggregation and commenting as a checks and balancing mechanism. Slashdot still has popular heft and a functioning community. I'd encourage owners and editors to consider this community response as an encouraging sign. People care. And that means that with appropriate management-community dialog, the site remains viable going forward. The question is: after this period of decline, how do you retool to challenge competitors like Reddit and grow at their expense? Throwing away your community doesn't solve that problem.

User Journal

Journal Journal: 2001: A Space Odyssey - Discerning Themes through Score and Imagery

2001: A Space Odyssey is one of my favorite films. Recently, I wrote a ~25,000 word analysis, with image stills and video clips, discussing Nietzsche's philosophical themes of Ascent of Man and Eternal Recurrence implied therein. Comparing HAL's murder of the Discovery One's crew in contrast to Moonwatcher's killing of a competing ape tribe leader over a water hole, I note that both gain sentience through violence. Another argument proposes that the apes are as maladapted to their savana environment as is modern man by his tools and socialization, leading to dehumanization by technology rather than triumph. I list several motifs in imagery, contrapuntal use of musical score that evokes emotion in opposition to visual narrative, analyze actor micro-expressions used to imply character intent, and end with subsequent impact of the film on depictions of artificial intelligence. There are numerous citations from Bizony, Freud, Kracaeur, Nietzsche, Zizek, and more. Perhaps some /. members who also love the film might be interested in the read.

User Journal

Journal Journal: WTF happened to you, Apple? 3

As a long time Apple customer (I still even own an original Apple II), I've come to rely on the firm to design high quality equipment and provide top tier support to sustain consistent workflow. I don't expect the firm to work miracles, but I do expect honest communication when problems arise.

I have a 2010 27" iMac. Recently, the firm has recalled 1TB drives shipped with units from this era. I had purchased Applecare, so the machine was still even under warranty. It had never been opened, it was - other than some minor cosmetic blemishes on the screen - as original as it had been sold. So, I contacted the nearest Apple Store and arranged to have the unit serviced.

On the 23rd I spoke with a Genius Bar (tm) representative who assured me it would almost certainly be same-day service. Though, it might - if there were problems - take up to three days. Regardless, he assured me, a representative from the firm would call me and give an update regarding the status of the repair. Since I've moved from the United States to Australia, he also offered a power cable with the new connector. Great! On the 24th at 9:45am, I brought the unit in for servicing in its original box and coating with its original foam cover.

I asked the representative to also check the superdrive, as I thought that it wasn't reading discs properly any longer. And, no that isn't because of region coding differences. It really did seem to be a head alignment problem in the drive.

'No worries, we'll fix it up for you! Expect a call late this afternoon.' Came the reply.

They conducted an analysis of the machine, we did some paperwork, and then I left with an empty box at a bit after 10am.

No call that afternoon was forthcoming. But, OK. Maybe they had a backlog. Whatever. Then no call came the next day. Fine. And then no call came the next day - three days in. However, it was the weekend and I thought, 'hey, I'll give them a break. Maybe they don't service machines on Saturday or Sunday, even though the store is open.'

Then no call came on Monday. By Tuesday morning I was angry. Not only were they five days into a repair that was - at most - supposed to take three (with a verbal promise of same day), but they hadn't even bothered to call or email me to give a status update on the repair. And I have a work backlog to deal with.

So I called and spoke with the manager. I told him that the issue wasn't that they were taking longer than expected to resolve the repair. The issue was a lack of communication with their customer. The firm wrote on my sheet that a staffer would call with an update within 48hrs and nobody did. Further, they made me wait thirty minutes on hold calling for a status update only to lose track of me and hang up.

A staffer called back and told me the machine was ready for pick up.

I get to the store and immediately I feel like I am not wanted by these staffers. They segregate me off to the side. Then they bring me to the back genius bar desk and bring out the machine and paperwork, but - unlike when they inventoried the machine during the initial sign in - they didn't turn the machine on to prove its functionality during check-out. The staffer clearly wanted me to sign the paper and leave as quickly as possible.

I asked about the power cord. She refused and suggested I speak with a staffer who would sell me one.

'OK, fine.' I thought, 'I don't need a power cord and I definitely don't want to be here any longer. These people are rude.'

I picked up the computer and left as fast as I could.

Only two years ago you offered best in service. While I don't expect freebies, I certainly do expect follow through on promises. Your store failed in every respect, from meeting policy obligations your company set for staffers in dealing with the customer to fulfilling verbal promises your staffers provided on the side.

Bad bad bad bad bad. Frankly, worse than Dell.

Apple, what the hell has happened to you? This professional customer who buys top of the line equipment to support his business workflow now wants to find an alternative. For Adobe is where I butter my bread, not Apple any longer. And its clear to me, Apple has determined that I'm not how they butter their bread either.

User Journal

Journal Journal: Widenius on "selfless" quest to destroy GPL MySQL "in order to save it" 3

It's not "his baby" any more!

And the "selfless" argument accepts as a given that Oracle will let MySQL die on the vine. There are many rational reasons why they would not.

If Oracle's intentions are opaque, Widenius' motives are no less opaque. He risks serious embarrassment himself by advocating that the EU, as Deus ex machina, strip the GPL, the last layer of protection for the MySQL community and platform. To that extent this issue is *very much* "about Open Source"!

It's time to let go and build "what comes after MySQL". Even a casual observer can see conventional RDBMS architectures straining to keep up with today's data environments, hence the growth of the NoSQL movement. If a fraction of the talent already shed by MySQL AB, combined with the brains at Primebase, and all the other community contributors can rise to that challenge, Oracle may easily find itself on the defensive once more - to the market's gain!

Mr Widenius, you've created one technology so incredibly disruptive that Oracle (the market leader) finally had to buy it - why not move on and create the next one? You already have the support and respect of geeks and suits alike. But you won't keep it by insisting on this contrarian, easily misconstrued campaign.

Databases

Journal Journal: SQL: random member of each of many groups

Question asked on comp.databases.mysql, which I solved as follows:

mysql> select T.n, T.rnd, L.id, L.street, L.town, count(R.id) as idx
from (
select count(*) as n, rand() as rnd, town
from addr
group by town
) T
join addr L on L.town = T.town
join addr R on R.town = L.town and R.id <= L.id
group by L.id
having ceil(T.n*T.rnd) = idx;
+----+---------------------+-----+---------------------------------
+-------------+-----+
| n | rnd | id | street |
town | idx |
+----+---------------------+-----+---------------------------------
+-------------+-----+
| 12 | 0.00842807908396058 | 1 | 601 West 5th Avenue |
Anchorage | 1 |
| 10 | 0.650273804227145 | 37 | 9190 Parkway East |
Birmingham | 7 |
| 11 | 0.226084814617489 | 55 | 3494 BEL AIR MALL |
Mobile | 3 |
| 16 | 0.179602691139656 | 117 | 4940 S Gilbert Rd |
Chandler | 3 |
| 10 | 0.219759042579456 | 154 | 7123 N. 138th Ave. |
Glendale | 3 |
| 18 | 0.559987170211959 | 187 | 2832 North Power Road |
Mesa | 11 |
| 63 | 0.14065875405507 | 213 | 340 East McDowell Rd |
Phoenix | 9 |
| 26 | 0.0233322903731207 | 275 | 15660 N Frank Lloyd Wright Blvd |
Scottsdale | 1 |
| 16 | 0.694685220434037 | 325 | 5000 Arizona Mills Circle |
Tempe | 12 |
| 35 | 0.403429261784469 | 345 | 3901 W Ina Rd |
Tucson | 15 |
| 19 | 0.933090678353878 | 454 | 2200 Panama Lane |
Bakersfield | 18 |
| 15 | 0.45516563714963 | 513 | 4000 Warner Blvd |
Burbank | 7 |
+----+---------------------+-----+---------------------------------
+-------------+-----+
12 rows in set (0.16 sec)

Databases

Journal Journal: Uses for self JOIN: 11) winning streak

Cluber on #mysql wanted to find the longest winning streak in a series of matches, like this:

mysql> select * from m;
+----+--------+-------+
| id | winner | loser |
+----+--------+-------+
| 29 | A | B |
| 30 | A | C |
| 31 | C | B |
| 32 | B | A |
| 33 | A | D |
| 34 | B | C |
| 35 | C | D |
| 36 | E | D |
+----+--------+-------+
8 rows in set (0.00 sec)

Longest winning streak per user is the longest series of wins by a user before they lose a match. The wins need not be consecutive. Here is a SQL solution:

mysql> select Streak.winner, max(Streak.cnt)
from (
select m0.id, m0.winner, count(Game.id) as cnt
from m m0
join (
select m1.id, min(m2.id) as minid
from m m1
left join m m2 on m2.loser = m1.winner
and m2.id > m1.id
group by m1.id
) Loss on Loss.id = m0.id
join m Game on Game.winner = m0.winner
and Game.id >= m0.id
and (Loss.minid is null
or Game.id < Loss.minid)
group by m0.id
) Streak
group by Streak.winner;

+--------+-----------------+
| winner | max(Streak.cnt) |
+--------+-----------------+
| A | 2 |
| B | 2 |
| C | 1 |
| E | 1 |
+--------+-----------------+
4 rows in set (0.01 sec)

User Journal

Journal Journal: generate Solaris package file lists directly with install-sh

As part of the Solaris pkg creation process, a prototype file is created listing every file and directory created in the process of installing the package.

There are various ways to extract this information, but not all are convenient. By patching about 12 lines of install-sh we can generate the prototype file directly (as /tmp/prototype), with appropriate user/group/mode settings. In parallel we generate a simple file list (/tmp/files) that can be used to safely 'uninstall' the package during experimentation with packaging.

-bash-3.00# diff -c dovecot-1.1.14/install-sh TLGRdovecot-1.1.14/install-sh
*** dovecot-1.1.14/install-sh Mon Jan 5 16:24:36 2009
--- TLGRdovecot-1.1.14/install-sh Sat May 23 19:51:18 2009
***************
*** 128,133 ****
--- 128,136 ----
RMPROG STRIPPROG
"

+ CLASS=none
+ OWNER=bin
+ GROUP=bin
while test $# -ne 0; do
case $1 in
-c) ;;
***************
*** 136,142 ****

-d) dir_arg=true;;

! -g) chgrpcmd="$chgrpprog $2"
shift;;

--help) echo "$usage"; exit $?;;
--- 139,145 ----

-d) dir_arg=true;;

! -g) GROUP=$2; chgrpcmd="$chgrpprog $2"
shift;;

--help) echo "$usage"; exit $?;;
***************
*** 150,156 ****
esac
shift;;

! -o) chowncmd="$chownprog $2"
shift;;

-s) stripcmd=$stripprog;;
--- 153,159 ----
esac
shift;;

! -o) OWNER=$2; chowncmd="$chownprog $2"
shift;;

-s) stripcmd=$stripprog;;
***************
*** 327,335 ****
--- 330,341 ----
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
+ echo d $CLASS $dstdir $mode $OWNER $GROUP >>/tmp/prototype
else
+ echo d $CLASS $dstdir 755 $OWNER $GROUP >>/tmp/prototype
mkdir_mode=
fi
+ echo $dstdir >>/tmp/files

posix_mkdir=false
case $umask in
***************
*** 405,410 ****
--- 411,417 ----
do
test -z "$d" && continue

+
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
***************
*** 442,447 ****
--- 449,457 ----
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else

+ echo f $CLASS $dst $mode $OWNER $GROUP >>/tmp/prototype
+ echo $dst >>/tmp/files
+
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_

(Actual diff here)

As an example, let's package Dovecot 1.1.14 in a manner suitable for a Solaris non-global zone:

$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
...
# make install
...
# cat /tmp/prototype
d none /usr/libexec/dovecot 0755 bin bin
f none /usr/libexec/dovecot/dovecot-auth 0755 bin bin
f none /usr/libexec/dovecot/checkpassword-reply 0755 bin bin
d none /usr/lib/dovecot/auth 0755 bin bin
f none /usr/libexec/dovecot/dict 0755 bin bin
f none /usr/libexec/dovecot/ssl-build-param 0755 bin bin
f none /usr/sbin/dovecot 0755 bin bin
f none /usr/libexec/dovecot/imap-login 0755 bin bin
f none /usr/libexec/dovecot/imap 0755 bin bin
f none /usr/libexec/dovecot/pop3-login 0755 bin bin
f none /usr/libexec/dovecot/pop3 0755 bin bin
f none /usr/libexec/dovecot/deliver 0755 bin bin
f none /usr/libexec/dovecot/rawlog 0755 bin bin
f none /usr/libexec/dovecot/gdbhelper 0755 bin bin
f none /usr/libexec/dovecot/idxview 0755 bin bin
f none /usr/libexec/dovecot/listview 0755 bin bin
f none /usr/libexec/dovecot/logview 0755 bin bin
f none /usr/libexec/dovecot/maildirlock 0755 bin bin
f none /usr/sbin/dovecotpw 0755 bin bin
d none /usr/lib/dovecot/imap 0755 bin bin
d none /usr/lib/dovecot/lda 0755 bin bin
f none /usr/lib/dovecot/lib01_acl_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib01_acl_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib01_acl_plugin.a 0755 bin bin
d none /usr/lib/dovecot/pop3 0755 bin bin
f none /usr/libexec/dovecot/convert-tool 0755 bin bin
f none /usr/lib/dovecot/lib20_convert_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib20_convert_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib20_convert_plugin.a 0755 bin bin
f none /usr/libexec/dovecot/expire-tool 0755 bin bin
f none /usr/lib/dovecot/lib20_expire_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib20_expire_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib20_expire_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib20_fts_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib20_fts_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib20_fts_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib21_fts_squat_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib21_fts_squat_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib21_fts_squat_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib02_lazy_expunge_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib02_lazy_expunge_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib02_lazy_expunge_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib20_mail_log_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib20_mail_log_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib20_mail_log_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib20_mbox_snarf_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib20_mbox_snarf_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib20_mbox_snarf_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib10_quota_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib10_quota_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib10_quota_plugin.a 0755 bin bin
f none /usr/lib/dovecot/imap/lib11_imap_quota_plugin.so 0755 bin bin
f none /usr/lib/dovecot/imap/lib11_imap_quota_plugin.la 0755 bin bin
f none /usr/lib/dovecot/imap/lib11_imap_quota_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib11_trash_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib11_trash_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib11_trash_plugin.a 0755 bin bin
f none /usr/lib/dovecot/lib20_zlib_plugin.so 0755 bin bin
f none /usr/lib/dovecot/lib20_zlib_plugin.la 0755 bin bin
f none /usr/lib/dovecot/lib20_zlib_plugin.a 0755 bin bin
d none /usr/share/doc/dovecot/wiki 0755 bin bin
f none /usr/share/doc/dovecot/wiki/ACL.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AixPluginsSupport.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.CheckPassword.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.LDAP.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.Passwd.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.PasswdFile.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.SQL.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.VPopMail.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/AuthDatabase.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.Caching.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.Kerberos.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.MasterUsers.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.Mechanisms.DigestMD5.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.Mechanisms.NTLM.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.Mechanisms.Winbind.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.Mechanisms.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.MultipleDatabases.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.PasswordSchemes.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.RestrictAccess.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Authentication.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/BasicConfiguration.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Chrooting.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Clients.NegativeUIDs.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Clients.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/CommandLine.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/CompilingSource.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Debugging.Authentication.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Debugging.ProcessTracing.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Debugging.Rawlog.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Debugging.Thunderbird.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.AuthProcess.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.Indexes.Cache.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.Indexes.MailIndexApi.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.Indexes.MainIndex.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.Indexes.TransactionLog.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.Indexes.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.MailProcess.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.Processes.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Design.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/FindMailLocation.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/FinishBasicConfiguration.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.EximAndDovecotSASL.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.PopBSMTPAndDovecot.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.PopRelay.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.PostfixAndDovecotSASL.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.Rootless.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.SimpleVirtualInstall.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/HowTo.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/IndexFiles.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/InetdInstall.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Iptables.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.Exim.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.Indexing.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.Postfix.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.Qmail.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.Sendmail.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.Sieve.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LDA.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Logging.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/LoginProcess.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MDA.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MTA.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailLocation.LocalDisk.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailLocation.Maildir.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailLocation.Mbox.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailLocation.SharedDisk.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailLocation.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.Cydir.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.MH.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.Maildir.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.dbox.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.mailstore.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.mbox.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.mbx.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MailboxFormat.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/ManageSieve.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MboxLocking.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MboxProblems.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.BincIMAP.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.Courier.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.Cyrus.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.Linuxconf.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.MailFormat.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.Teapop.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.UW.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.Vm-pop3d.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Migration.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/MissingMailboxes.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/NFS.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Namespaces.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/OSCompatibility.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/POP3Server.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.BSDAuth.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.AllowNets.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.Host.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.NoDelay.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.NoLogin.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.Proxy.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.User.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.ExtraFields.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.PAM.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.Shadow.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PasswordDatabase.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PerformanceTuning.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Autocreate.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Convert.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Expire.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.FTS.Lucene.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.FTS.Solr.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.FTS.Squat.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.FTS.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Lazyexpunge.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Listescape.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.MailLog.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.MboxSnarf.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Trash.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Virtual.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.Zlib.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Plugins.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/PostLoginScripting.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/QuickConfiguration.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Quota.1.1.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Quota.Dict.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Quota.Dirsize.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Quota.FS.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Quota.Maildir.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Quota.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/RunningDovecot.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SSL.CertificateClientImporting.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SSL.CertificateCreation.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SSL.DovecotConfiguration.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SSL.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Sasl.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SecurityTuning.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SharedMailboxes.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/SystemUsers.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/TestInstallation.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/TestPop3Installation.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/TimeMovedBackwards.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Upgrading.1.0.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Upgrading.1.1.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Upgrading.1.2.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Upgrading.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/UserDatabase.ExtraFields.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/UserDatabase.NSS.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/UserDatabase.Prefetch.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/UserDatabase.Static.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/UserDatabase.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/UserIds.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/Variables.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/VirtualUsers.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/WhyDoesItNotWork.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/maildrop.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/mutt.txt 644 bin bin
f none /usr/share/doc/dovecot/wiki/uw2dovecot.sh.txt 644 bin bin
f none /etc/dovecot-db-example.conf 644 bin bin
f none /etc/dovecot-ldap-example.conf 644 bin bin
f none /etc/dovecot-sql-example.conf 644 bin bin
f none /usr/share/doc/dovecot/auth-protocol.txt 644 bin bin
f none /usr/share/doc/dovecot/documentation.txt 644 bin bin
f none /usr/share/doc/dovecot/securecoding.txt 644 bin bin
f none /etc/dovecot-example.conf 644 bin bin
d none /usr/include/dovecot 0755 bin bin

This leaves the package installed, creates /tmp/prototype ready for packaging - accomplished roughly like this:

$ echo i pkginfo=./pkginfo >>prototype
$ cat pkginfo
PKG=TLGRdovecot
NAME=Dovecot IMAP/POP3 server
ARCH=i386
VERSION=1.1.14
CATEGORY=application
VENDOR=http://www.dovecot.org/
BASEDIR=
CLASSES=none
DESC=Dovecot Secure IMAP/POP3 server, by Timo Sirainen
EMAIL=support@telegraphics.com.au
$ pkgmk -r `pwd`
$ cd /var/spool/pkg/
$ pkgtrans -s `pwd` /tmp/TLGRdovecot-1.1.14

Remove the installed files (I suggest reviewing the file list first!)

# rm -fr $(< /tmp/files )
or
# xargs rm -fr < /tmp/files

User Journal

Journal Journal: Retired Gates "too busy, important" to finish deposition

Watch Gates lie through his teeth in Novell vs Microsoft - until the Microsoft side cut the deposition short. Another appointment? Or did they not like the line of questioning? Groklaw reports; you decide. But as the Novell lawyer remarks,

I ... can't remember a single case where I was able to extract a monetary settlement from an opponent by harassing its Board Chairman through a deposition. Perhaps there is something deeper at work here.

Mr. Gates is one of the richest and most powerful persons in this country. His foundation is engaged in good works. Yet we are all equal under the law. Despite his central role in this action, we have requested nothing more than would be expected of any other litigant, a deposition not exceeding 7 hours in length in accordance with Fed. R. Civ. P. 30(b)(1).

(emphasis mine).

This cartoon sums up the true situation very well.

User Journal

Journal Journal: say whut? 1

Cloud computing is emerging as the computational and storage paradigm for ultra-scale data and analytics. A cloud is a pool of virtualized, commodity computer resources accessible via a Web-based interface in conjunction with a highly automated mechanism for managing those resources. Upon this infrastructure, a computational framework brings analytics to the data, effectively implementing a key tenant of cloud computing - ingest data once, move data rarely, and re-use data often. Thus cloud enables the rapid configuration and allocation of vast computational resources while supporting massively parallel processing over petabytes of distributed data to deliver both agility and power at scale. Google, the progenitor of cloud, and others have proven the extraordinary capability of cloud for specific applications within certain well defined domains (e.g. web search/index). Within the Intelligence Community (IC), substantial cloud computing initiatives already underway are poised to do similarly, tailoring cloud for specific objectives. Considered more broadly however, as an enterprise wide platform for the IC, several aspects of cloud are in need of further research and development. Principal among these is the cloud analytic tool set. Analysts working high op-tempo missions down range tell us the most rapid time scale is not of the data or the mission, rather it is the frequency with which they must change the way they view and manipulate the data. For these warfighters, sophisticated tools built nationally are obsolete the day they get deployed. What they clamor for are basic, elemental tools that they can apply in diverse contexts and compose into workflows that help them do their job easier and faster. This SBIR seeks to develop an analytic tool set designed to operate within cloud computing infrastructure, on cloud data. In addition to being cloud-native, the set of tools should reflect a basis-set of functions that together span the range of analytic activity. Each tool should capture / enable a basic element of analytic activity while presenting minimal dependencies on other elements or on application specifics. By developing a complete set of cloud-native tools that may be used independently or composed into workflows to build analytic product, this SBIR aims to provide the warfighter with the means to harness the full power of cloud in the face of rapid change.

Let's play buzzword bingo...

21 the
16 of
14 cloud
10 and
9 to
9 data
8 a
6 for
5 is
5 set
5 they
5 analytic
4 tools
4 computing
4 that
4 are
4 in
3 on
3 computational
3 resources
3 or
3 with
3 rapid
3 tool
3 scale
2 this
2 SBIR
2 range
2 workflows
2 these
2 native
2 analytics
2 basic
2 an
2 do
2 infrastructure
2 activity
2 into
2 specific
2 change
2 while
2 IC
2 within
2 should
2 as
2 power
1 full
1 elemental
1 sophisticated
1 way
1 paradigm
1 enables
1 both
1 Upon
1 Intelligence
1 framework
1 independently
1 based
1 over
1 nationally
1 index
1 emerging
1 massively
1 functions
1 pool
1 Principal
1 developing
1 effectively
1 key
1 complete
1 parallel
1 compose
1 once
1 re
1 aims
1 further
1 enterprise
1 at
1 rather
1 application
1 tell
1 managing
1 development
1 deliver
1 agility
1 applications
1 may
1 computer
1 highly
1 move
1 addition
1 working
1 allocation
1 need
1 not
1 ultra
1 mission
1 Within
1 warfighter
1 interface

Slashdot Top Deals

fortune: cpu time/usefulness ratio too high -- core dumped.

Working...