2008-03-16

Eternal Memory: Metropolitan Laurus

From ORA ET LABORA:

His Eminence, Metropolitan Laurus of Eastern America and New York, First Hierarch of the Russian Orthodox Church Outside Russia, has reposed in the Lord.

From what I have heard, he served the Liturgy of the Presanctified Gifts on Friday, then felt too ill to perform tonsures later that evening. He was found in his "skete" (his small cell a few hundred yards from the monastery) this morning, having reposed in his sleep.

The Lord chose to receive Vladyka Laurus on the Sunday of Orthodoxy...

Please pray for the soul of the newly-departed servant of God, Metropolitan Laurus.

May his memory be eternal!

Ban All Cars Getting Less Than 35 MPG?

In the midst of rethinking my own Jeep ownership (20/24 mpg US rating for the Liberty - but I doubt I get that much) I came across this commentary/opinion - via Autopia from Wired.com:

The former head of Royal Dutch Shell has gone way out on a limb and urged the European Union to ban all vehicles that get less than 35 mpg, saying it is the only way to significantly address global climate change and force the auto industry to build more efficient vehicles...

Sir Mark Moody-Stuart, who spent his career working for the giant oil company, says an outright ban is needed because so-called "gas-guzzler" taxes do not work - and aren't fair because they let those with the means to pay them skirt responsibility for reducing greenhouse gas emissions...

Moody-Stuart, who is currently chairman of the mining group Anglo American, says he is a great fan of the free market, "but like most things, they have a failing. Without regulation to channel their power, markets will not deliver things which are of no immediate benefit to the individual making his or her choice, even though they may be beneficial to society."

P.S. I just worked out my most recent gas mileage (US gallons): 12.3 mpg. (And that's with spending almost as much time on a tow truck hook as driving.) Groan.

Enough!

From RORATE CÆLI:
"At the end of this solemn Celebration, in which we have meditated upon the Passion of Christ, I wish to remember the late Archbishop of Mosul of the Chaldeans, Paulos Faraj Rahho, who died tragically a few days ago. His beautiful testimony of faithfulness to Christ, to the Church, and to his people, whom he had not wanted to leave, despite numerous threats, prompts me to raise a strong and heartfelt cry: enough with the bloodshed, enough with the violence, enough with the hatred in Iraq!

Benedict XVI - Angelus (March 16, 2008)

2008-03-13

Eliza Programmer Dead

From DevTopics:

Joseph Weizenbaum, who invented the famous "virtual psychiatrist" computer program Eliza, died from cancer on March 5 in Groben, Germany at age 85.

> How does that make you feel?

Weizenbaum was a pioneer in computer science and professor at the MIT Artificial Intelligence Lab, where he created Eliza in 1966.

> Tell me more…

Eliza was a simple question & answer program in the form of today's online chat software. Eliza parodied a Rogerian psycho-therapist, mostly by rephrasing the user/patient's statements as questions and posing them back to the patient. This eliminated the need for a large real-world database.

> I'm not sure I understand you fully.

Eliza foreshadowed the potential of artificial intelligence, but Weizenbaum was stunned to discover how many people became engrossed in conversations with Eliza, even revealing intimate personal details. Over time, Weizenbaum grew skeptical about technology's ability to improve the human condition.

> Can't you be more positive?

In his 1976 book, Computer Power and Human Reason: From Judgment to Calculation, Weizenbaum criticized systems that substituted automated decision-making for the human mind. He also believed there were "transcendent qualities in the human experience that could not be duplicated in interactions with machines" such as "the wordless glance that a father and mother share over the bed of their sleeping child." (source)

> What does that suggest to you?

As Theodore Piszak wrote, Weizenbaum's book was "Superb…The work of a man who is struggling with the utmost seriousness to save our humanity from the reductionist onslaught of one of the most prestigious, active, and richly funded technologies of our time."

Try Eliza online

More on Joseph Weizenbaum

2008-03-11

How to Make the Time for Your Personal Goals

From Zen Habits:

“Obstacles are those frightful things you see when you take your eyes off your goal.” - Henry Ford

One of the biggest challenges in trying to accomplish any personal goal is that we tend to put them off until tomorrow, or next week, in favor of more pressing matters at work and home. Unfortunately, tomorrow never gets here.

If you want to accomplish a goal, you have to start on it today...

  1. One goal at a time.
  2. Make sure you really want it.
  3. Make it your top priority.
  4. Reduce your commitments.
  5. Keep it simple.
  6. Stay focused.
  7. Block off time.
  8. Make it your most important appointment.
  9. Show that you’re serious.
  10. Find your time wasters.
  11. Make it a part of your daily or weekly routine.

2008-03-10

10 ways to improve your code

A summary of Neil Ford's Software Development West 2008 "advanced code hygiene" presentation, 10 Ways to Improve Your Code, aimed originally at Java programmers, but with wisdom for coders of many [or any!] stripes. (Ford is a senior application architect and "meme wrangler" at ThoughtWorks, an IT consultant that specializes in development and delivery of software, and that is home to object-oriented development, refactoring and agile authority Martin Fowler.) From Reg Developer:
  1. Write the tests before writing the code.
  2. Use static analysis tools.
  3. Practice "good citizenship" by paying attention to how well your objects interact with the outside world. "Never let them exist in an invalid state."
  4. Avoid indulging in speculative software development. "The goal should be to build the simplest thing we need right now."
  5. Simplify essential complexity and kill accidental complexity.
  6. Challenge programming conventions, such as writing long, unreadable test names, and blindly following the JavaBean specification to the detriment of your code.
  7. Embrace single level of abstraction principle (SLAP). From Kent Beck's book Smalltalk Best Practices and Patterns: every public method should be as short as possible, and should consist of steps, each one of which is a private method. "Don't make abstraction leaps in your code."
  8. Leverage existing platforms with languages targeted at specific problems and applications.
  9. Learn every nuance of the languages you're using.
  10. Change your perspective and consider "antiobjects." An antiobject is a kind of object that appears to do the opposite of what we think it should do. The object metaphor sometimes impedes the solution "by making us try to create objects that are too inspired by the real world."

It's the libraries, stupid!

From Why Apple Will Dominate Next Gen Computing - ReadWriteWeb (by Alex Iskold):

Let's be clear. It is not the language, but the libraries that matter. Every time I hear developers talk about a new language and say it is by far the best one, I just shake my head. A new language is not going to be usable in today's world unless all of the libraries are in place. As the complexity of our software increases, so do demands on libraries. Microsoft learned it the hard way with years of set backs when it rolled out .Net. Had it simply embraced and optimized Java, it could have been years ahead instead.

Apple choose a different path. For the last decade Apple has been wowing the crowds and investors with its flawless and lightening quick execution. Every new Apple announcement, we keep thinking that they won't top it. But every time, Jobs and his crew pulls another trick out of the hat. Clearly, Apple is a well-oiled machine that has perfected the art of execution. But beyond that, Apple's secret sauce has been its software. While others have been inventing new languages and frameworks, Apple kept perfecting and building up its code.

Since the early days, Apple embraced a language called Objective-C - an object-oriented flavor of the popular procedural language. When Jobs returned to Apple, one of the early smart decisions was to ditch the old operating system in favor of Unix. This moved allowed Apple to instantly tap into serious programmers while retaining a beautiful and simple UI. When Java came along, Apple was unmoved, because it was just too slow. In general, over the years Apple has ignored new languages and just stuck with its platform. Smart, disciplined and mature...

2008-03-09

Lessons Learned at 37 Signals

From Sean Ammirati's summary on ReadWriteWeb of a talk by Jason Fried of 37signals at SXSW 2008:

37signals is a software company headquartered in Chicago that started as a interactive design company and has since become one of the leading software companies for personal productivity software. Currently over one million people and businesses use their productivity applications... They also are responsible for creating and then open sourcing the popular web developer language [sic] Ruby on Rails. Jason Fried is the company's founder.

Lesson 1: Ignore The Great Unknown

"...often as entrepreneurs, we worry about the impact of our decisions rather than just making the right decision. ...this is crazy, because decisions made today don't have to last forever - we 'must optimize for today.'"

Lesson 2: Watch Out for Red Flags

Red flags are ... words or phrases that end up causing problems in communications. For example: need, can't, easy, only, fast.

Lesson 3: Be Successful and Make Money by Helping Other People be Successful and Make Money

...This has become part of [37signals'] philosophy, looking for opportunities in the marketplace to "spot chain reactions and be the catalyst" around helping others.

Lesson 4: Target Nonconsumers and Nonconsumption

...The idea [from Clayton Christensen of Harvard Business School] is that there exists an entire market of nonconsumers, or people who have a need but existing players aren't targeting these people. The advantage of targeting this segment is that you minimize the chance for competition from entrenched players.

Lesson 5: Question Your Work Regularly

  • why are we doing this?
  • what problem are we solving?
  • is this actually useful?
  • are we adding value?
  • will this change behavior?
  • is there an easier way?
  • what's the opportunity cost?
  • is it really worth it?

Lesson 6: Read your Product

"The biggest sin on the internet right now is bad copywriting ... paying too much attention to pixels and not enough attention to words."

Lesson 7: Err on the Side of Simple

...always "start with the easy way."

Lesson 8: Invest in What Doesn't Change

Lesson 9: Follow the Chefs

Jason called chefs the smartest business professionals. ...they are aware that you become famous and successful by giving knowledge away. For example, chefs have cooking shows and write cook books. Yet it doesn't stop their restaurants from being successful. In fact, he claimed they are probably more successful because of their sharing.

Lesson 10: Interruption is the Enemy of Productivity

Lesson 11: Road Maps Send You in the Wrong Direction

When talking about business plans, financial projections, or features for products 37signals believes road maps are bad, because "they lock you into the past." The only exception is APIs, because people are counting on it. ..."do the right thing at the right time."

Lesson 12: Be Clear in Crisis

At the beginning of this year, 37signals had some infrastructure problems that resulted in a few hours of unscheduled downtime. This was widely discussed on the internet. They quickly posted about what had happened and during the technical problems they kept their homepage updated with status messages. Through this experience, it reinforced their belief that people love you even more if you are open, honest, public and responsive during a crisis.

Lesson 13: Make Tiny Decisions

Rather than trying to make major decisions, when possible, Jason encouraged entrepreneurs to break problems down to the atomic level. In web properties, this is especially powerful because they've been able to break features down to the atomic level and then launch them one at a time. This is good because the team can gain momentum and celebrate little launches. However, it's also good because "when you make tiny decisions, you can't make big mistakes."

Lesson 14: Make it Matter

Jason ended his presentation by encouraging the audience to make sure their work was significant. He talked about how meaningful he felt the products they were creating were for individuals. ..."everything you do should matter."

2008-03-08

Interface "Wow" Factor

From Code Commit:
That’s what it really all comes down to: user perception.  Jeff Atwood harps on about this constantly, but just because it’s oft-repeated doesn’t make it less true.  It doesn’t matter what your application can do, just what your users think it can do.  It’s all an elaborate illusion anyway, we just have to realize how complete that illusion really is.  If a user looks at your application and thinks, “Wow!  I don’t know what it is, but it looks powerful,” then you have succeeded as a developer.  Your application could do nothing more than print “Hello, World!” an infinite number of times; so long as it is impressive looking, it will be a success (think iPhoto 1.0).  Likewise, your application may desalinate water and hold the key to world peace, but if it looks wimpy, users will never give it a chance.

How to Find Good Ideas for Business and Life

Excellent article by Donald Latumahina from Life Optimizer:

There is a lesson ... I learned from the book On Writing Well:

You should always collect more material than you will use. Every article is strong in proportion to the surplus of details from which you can choose the few that will serve you best.

...to find good ideas, you should:

  • Have as many ideas as possible, and then
  • Choose the few ideas that serve you best

...here are some steps to find good ideas:

  1. Expect ideas from every situation
  2. Bring a capture tool wherever you go
  3. Don’t filter the ideas you get
  4. After you’ve collected enough ideas, filter them

. . .

Besides collecting as many ideas as possible, it’s good to increase the quality of your input. That way you can have higher-quality ideas to choose from. Here are some tips to increase the quality of input:

  1. Diversify your reading
  2. Choose the most important book to read next
  3. Get the most out of your reading
  4. Surround yourself with positive people
  5. Find a mentor
  6. Use the art of arbitrage and increase your arbitrage power