Python, Java, and Netbeans links for December 11th, 2008

Thanassis Tsiodras, Dr.-Ing.: The Knight’s Tour in Python. Discussion at Slashdot.

Ted Leung: Python in Netbeans

Thinlet in Netbeans: thinnb

NetBeans Wiki: Getting Started With Python in the NetBeans IDE 6.5

NetBeans Python IDE download

ars technica: Getting a grip on Python: six ways to learn online

Artima: Python and the Programmer: A Conversation with Bruce Eckel, Part I

Elliotte Rusty Harold: Java is Dead! Long Live Python!

/var/log/mind: Java : the perpetually undead language

Bonus link 1 – start it simple: Bokardo: What if Gall’s Law were true?

Bonus link 2 – fight your fear: iBanjo: Programmer Insecurity

Bonus link 3 – Code less: willCode4Beer: Code Reduction or Spartan Programming

Retrying Netbeans

While I live in Emacs, Eclipse won me over for Java development a long time ago. I’ve been keeping my eye on Netbeans for a while. Each major release I’ve given a try by checking out a current project from SVN and attempting some basic development tasks. Usually I’d hit a snag that would discourage me just enough to not get over the hump. Netbeans 6.5 has been different so far, so I’m going to give it an honest try now.

Some notes:

1. Choosing View | Show Versioning Labels makes it easier to cope with having multiple versions (branches) of the same project open.

2. In OSX, Netbeans, like many non-CLI applications, does not respect terminal set environment variables (.bash_profile, etc). This handly Python script updates your “~/.MacOSX/environment.plist” file from your environment variables. Set up a cron job and you’re done.

3. This handy guide to Mac keyboard shortcuts is a keeper.

The Visual GC Module looks like something to try out.

Two on project process

Aaron Held, coworker at CIM, “A House With No Front Door Keeps you off the streets”:

Scrum and Agile are desinged to solve this by making it a team effort. So in Scrum it is not the “developers” that build this Dr Seuss house, but the team. I think this is why many people fear Scrum. There is no “justifiable failure”.

CIO.com: When Agile Projects Go Bad:

Agile development also depends upon the engagement of the sponsors or customers in the process. That’s a difficult transition for some, according to Cockburn. “It looked like for a while that we were pushing all the power down to the programmers, but in fact we were evening out the power and responsibilities. Everyone gets to feel awkward about that.” In some organizations, he says, programmers ignored their bosses and built whatever they wanted.

At the other extreme, programmers expected the bosses or managers or sponsors to tell them accurately what the priorities were–not something the managers were used to. “So you get a breakdown on both sides,” says Cockburn. “The sponsors aren’t used to being asked to show up and care about the project, even [about] the requirements. … They say ‘No, that’s what we hired you to do.'” The programmers respond, ‘We don’t know; we need you to help us figure it out,'” he adds. And the sponsors say, ‘We don’t have time. Work it out yourselves.'”

Scrum – when practiced as intended, makes it hard to for CYA measures in development, planning, or management. Aaron has a point. That’s scary to some I would think.

Python links for Saturday, November 29th, 2008

news.ycombinator.com: Python+Scipy+Matplotlib vs Matlab?

Drawing Machines: TIOBE Index: Java on top, Python up, Ruby down and no longer in Top 10

Zea Partners: Python Shows Continual Growth in Open Source Projects

Siafoo: Python, Tips, Tricks, and Hacks

YouTube: Python Design Patterns

The Python Challenge

The more things change….

Dave Rogers: Blind Faith:

As the stock market continues its free fall into the Clinton era, and the economic news grows worse and worse, we are cheered by the report of a study that indicates that “Teenagers’ Internet Socializing Not a Bad Thing.” Of course, irony being the fifth fundamental force of the universe, that little online headline was placed immediately across from this one: “Woman Who Posed as Boy Testifies in Case That Ended in Suicide of 13-Year-Old.”

John Scalzi: Technology Changes, People Not So Much:

Technology changes, social trends change, hairstyles change, but people – the actual human animals inside all that technology, sociology and tonsorial grooming — are the same as they have been for thousands of years. Grab a time machine, go back to ancient Egypt, and swap an infant there with an infant from today, and in twenty years you’ll likely find two people perfectly well integrated into their cultures because there is no difference in the human animal between now and then. Even within generations (which are an artificial construct in themselves, but never mind that now) there’s enough variation to drive you a little batty: The same generation that gave us the hippies went for Nixon in 1972, and that same generation gave us both Bill Clinton and George W. Bush. Go figure.

Jon Udell: Carl Hewitt on cloud computing, scalable semantics, and Wikipedia:

In one of the most striking moments in that talk, Carl says:

“What can I change? Just me. For anything else, I send a message, I say please, and I hope for the best.”

Then he laughs and adds:

“Does this sound like some circumstances you are familiar with?”

Having thought deeply, for 40 years, about the intersection of computation and human affairs, he has arrived at an elegant synthesis: The same organizational and communication patterns govern both realms.

More on Bad Agile

Steve Yegge talks about Google’s development (circa 2006) process – a process that is focused on being agile – and riffs on just how bad “Bad Agile” can be: Good Agile, Bad Agile:

Bad Agile hurts teams in several ways.

First, Bad Agile focuses on dates in the worst possible way: short cycles, quick deliverables, frequent estimates and re-estimates. The cycles can be anywhere from a month (which is probably tolerable) down to a day in the worst cases. It’s a nicely idealistic view of the world.

In the real world, every single participant on a project is, as it turns out, a human being. We have up days and down days. Some days you have so much energy you feel you could code for 18 hours straight. Some days you have a ton of energy, but you just don’t feel like focusing on coding. Some days you’re just exhausted. Everyone has a biological clock and a a biorhythm that they have very little control over, and it’s likely to be phase-shifted from the team clock, if the team clock is ticking in days or half-weeks.

Not to mention your personal clock: the events happening outside your work life that occasionally demand your attention during work hours.

None of that matters in Bad Agile. If you’re feeling up the day after a big deliverable, you’re not going to code like crazy; you’re going to pace yourself because you need to make sure you have reserve energy for the next big sprint. This impedance mismatch drives great engineers to mediocrity.

There’s also your extracurricular clock: the set of things you want to accomplish in addition to your main project: often important cleanups or other things that will ultimately improve your whole team’s productivity. Bad Agile is exceptionally bad at handling this, and usually winds up reserving large blocks of time after big milestones for everyone to catch up on their side-project time, whether they’re feeling creative or not. Bad Agile folks keep their eye on the goal, which hurts innovation. Sure, they’ll reserve time for everyone to clean up their own code base, but they’re not going to be so altruistic as to help anyone else in the company. How can you, when you’re effectively operating in a permanent day-for-day slip?

Bad Agile seems for some reason to be embraced by early risers. I think there’s some mystical relationship between the personality traits of “wakes up before dawn”, “likes static typing but not type inference”, “is organized to the point of being anal”, “likes team meetings”, and “likes Bad Agile”. I’m not quite sure what it is, but I see it a lot.

Read the whole thing.