≡ Menu

My MD5 Hash Generator

I recently finished my latest web project. It’s an MD5 hash generator. It’s nothing fancy – just a quick and dirty MD5. But if you need something one way hashed, it will do the trick for you.

I need to build some links so it will rank on GOOG. I also need to add some ads so it will make me some $$.

If you’re a sw developer, please don’t store passwords in plain text. MD5 is one method many people employ to avoid this. It’s not the best, but it’s one of the most common.

{ 1 comment }

Ways to Spend Money

Every time I spend money, I try to mentally place the expense in one of five categories. Those categories are:

  • Helping myself and my family
  • Helping other people
  • Needs and material comforts
  • Memory creation (experiences)
  • Waste

Some expenses don’t categorize neatly. It’s not an air tight system. It’s just a useful way for me to think about money.

I don’t spend much effort on this. I just kind of casually consider it whenever I spend. I really only have one goal in doing this, and that is keeping the ‘Waste’ category as small as possible.

Waste

Waste is any expense that doesn’t fall under one of the other categories. The way I think about it, if I spend money and the result is not something in one of my four good categories, then I’ve wasted that money.

The whole point of this mental classification is to minimize wasteful expenditures.

Helping Myself and My Family

Helping myself and my family encompasses expenses that meet two criteria. First, it must improve my family’s condition. Second, it must compound.

If I buy an asset intended to provide us with money, that investment falls under this category. Examples are shares of stock or CDs. (The money that investment provides will compound).

If I spend money to develop some useful skill that enriches our lives, that expense falls under this category. Skills that increase earning power, make us more efficient or effective, or help us create memories qualify. (I’ll explain memory creation in a minute). Examples are learning to cook, fix cars, program computers, dance, take pictures, pick stocks, etc. (The money, efficiency, or enjoyment the new skill provides will compound).

If I spend money on something that helps me get more money, that expense falls under this category. An example is gasoline to get me to work. (The money I earn will compound).

Helping Other People

This is charity. This can be giving to organizations that help people or directly to individuals. I prefer that this money compound, but I don’t insist. One thing that I do insist is that this money be used for genuine help and not for enabling destructive behavior.

Needs and Material Comforts

Needs are food, shelter, water, clothing, healthcare – things necessary for survival. Material comforts are things like air conditioning and transportation.

This category is tricky for two reasons. First, it can be tough to distinguish between an acceptable material comfort and a wasteful extravagance. There is no clear rule. I have to be careful with these.

Second, sometimes it’s tough to know whether something belongs in this category or in the ‘Helping Myself’ category. For example, fuel to get to work belongs to ‘Helping Myself.’ I also need food and clothes to work, but I put those in ‘Needs and Material Comforts’. So what’s the difference? I don’t dwell on it. Neither of them belongs to ‘Waste’, and that’s really all I care about.

Memory Creation

Memory creation just means doing something fun that I and my family will remember fondly. Taking a family trip, going to a rodeo, or going to a concert are all examples. It just has to be fun and memorable.

An ordinary outing to the movies doesn’t count. Neither does sitting around and watching television. It has to create memories that me and my family will cherish forever.

I used to think that spending on fun, memorable experiences was wasteful. As I’ve gotten older I’ve learned better.

Don’t misunderstand me: I’m not saying creating these memories requires spending money. The memories come from doing fun activities with the people you love. There are plenty of these activities that don’t require money. But I’ve learned that money can facilitate these activities, and when it does it is money well spent.

Incidentally, if you think (like I foolishly did) that these kinds of memories aren’t valuable, I have a couple of exercises for you. First, think of your fondest memory. It can be something from childhood, high school, wedding day, whatever. Now imagine that some scientist will pay you to allow him to erase that memory from your mind. It will be as if it never happened. How much would you charge him? I bet it’s a lot.

If that doesn’t make you appreciate fond memories, try this. Go talk to an old person whose health is declining. Notice her demeanor when she talks about ordinary stuff – the news, food, the weather, etc. Then notice her demeanor when she talks about fun times with her children. How much do you think she values those memories?

Conclusion

This is not a rigorous system, and it’s certainly not all that I do to scrutinize my expenses. It doesn’t say anything about the proportions among the categories. But it does give me a framework for identifying and eliminating wasteful expenditures. Of course, that leaves more money for spending on the four good categories, which is the whole point.

I hope this will be a useful framework for you to consider your expenses.

{ 1 comment }

In Defense of Property Rights

I like Stossel’s defense of Rand Paul.

This discussion illustrates a favorite statist power grab formula:

  1. Have the state interfere with the free market. (In this case the method of interference was Jim Crow laws).
  2. Observe and deplore the undesirable consequences.
  3. Blame the imaginary ‘free market’ which the state has rendered un-free by its interference. (Seriously, how was the free market supposed to eliminate racism when it was the law?)
  4. Enact more laws to compensate for undesirable consequences. Of course these laws interfere even more with the free market.

People and businesses should not be forced to use their property in a way to which they object. It’s important to defend this principle, even in those scenarios we find distasteful (or in the case of Jim Crow, disgusting). Once we accept the notion that government can tell you how to use your property – even if we deem the use desirable – we have no grounds to resist when they mandate a use which we don’t find desirable. Put another way, if some jackass wants to exclude some group of customers because he doesn’t like the way they look, that’s his right. We should defend it, even if we find it disgusting. (It’s the old principle vs. pragmatism tradeoff. If we’re willing to erode principle to achieve some expediency, one day we’ll wake up with the principle destroyed and expediency determined by whomever is the best armed.)

It’s sad that defending property rights gets one tagged as a racist.

Update: Dr. Williams says it better than I do.

{ 1 comment }
A few quick objections to Paul Krugman’s 10.12.2009 NYT column, “Misguided Monetary Mentalities”:
Falling Dollars and Apples
Krugman states, “The truth is that the falling dollar is good news.” I object. A falling dollar is an effect of a natural law – the law of supply and demand. From July 2008 to July 2009, the world’s supply of US dollars (as measured by M1) increased over 17%. http://www.federalreserve.gov/releases/h6/hist/h6hist1.txt Of course the purchasing power of the dollar is falling. The dollar supply has increased by 17% in 12 months!
Saying this is good is like saying a falling apple is good. Both are natural phenomena obeying natural laws. For the apple, the law is gravity. For the dollar, the law is supply and demand. A falling apple could be good. It could make a tasty dessert for a family on a picnic. It could also be bad. It could break the silence and spook away a hunter’s prey.
Likewise, a falling dollar could be very good for borrowers as they repay their debt with inflated dollars. For lenders, owners of dollars, or anyone with a stream of fixed future cash flows, a falling dollar is decidedly bad.
Krugman saying that a falling dollar is good is like Newton saying that a falling apple is good.
Created Jobs
Krugman objects to the contention that government should not seek to ‘create’ jobs. I object to his objection.
Any job the government must create is one that the free market would not create on its own. That is, the free market does not value the product of the created job highly enough to pay for it. When the government creates it coercively, they are effectively saying, “We bureaucrats are smarter than the dumb old free market. The free market doesn’t know what’s good for it anyway. This job should exist, so we’ll confiscate some of your money to pay for it.”
For the government, creating jobs is easy. They can just pay people to dig holes and fill them in. Obviously, hole digging and filling is a misallocation of resources. The artificial work created by the government is also a misallocation, only not so obvious.
The Fed’s Inflation Target
Krugman wants the Fed to hold interest rates artificially low because, “the unemployment rate is a horrifying 9.8 percent and still rising, while inflation is running well below the Fed’s long-term target.” I object.
Why does the Fed even have a long term inflation target? Why is it ok for them to reduce our dollar’s purchasing power a little (via inflation), as long as it doesn’t exceed their long term target? Why does the Fed even exist?
My Fundamental Objection
Krugman is quite an accomplished economist. That means he’s a good scientist – good at sorting out cause and effect. But when he interjects his values by advocating for certain effects, he’s no longer speaking as a scientist. He’s just another academic who thinks he knows better than the rest of us how to spend our money.

A few quick objections to Paul Krugman’s 10.12.2009 NYT column, “Misguided Monetary Mentalities”:

Falling Dollars and Apples

Krugman states, “The truth is that the falling dollar is good news.” I object. A falling dollar is an effect of a natural law – the law of supply and demand. From October 2008 to October 2009, the US monetary base increased about 80%. Of course the purchasing power of the dollar is falling. The dollar supply has increased by 80% in 12 months!

Saying this is good is like saying a falling apple is good. Both are natural phenomena obeying natural laws. For the apple, the law is gravity. For the dollar, the law is supply and demand. A falling apple could be good. It could make a tasty dessert for a family on a picnic. It could also be bad. For example, it could break the silence and spook away a hunter’s prey.

Likewise, a falling dollar could be very good for borrowers as they repay their debt with inflated dollars. For lenders, or owners of dollars, or anyone with a stream of fixed future cash flows, a falling dollar is decidedly bad.

Krugman saying that a falling dollar is good is like Newton saying that a falling apple is good.

Created Jobs

Krugman objects to free market advocates’ contention that government should not seek to ‘create’ jobs. I object to his objection.

Any job the government must create is one that the free market would not create on its own. That is, the free market does not value the product of the created job highly enough to pay for it. When the government creates it coercively, they are effectively saying, “We bureaucrats are smarter than the dumb old free market. The free market doesn’t know what’s good for it anyway. This job should exist, so we’ll confiscate some of your money to pay for it.”

For the government, creating jobs is easy. They can just pay people to dig holes and fill them in. Hole digging and filling is an obvious misallocation of resources and no one advocates for it. The artificial work created by the government is not so blatant a misallocation, but it is a misallocation nonetheless.

The Fed’s Inflation Target

Krugman wants the Fed to hold interest rates artificially low because, “the unemployment rate is a horrifying 9.8 percent and still rising, while inflation is running well below the Fed’s long-term target.” I object.

Why does the Fed even have a long term inflation target? Why is it ok for them to reduce our dollar’s purchasing power a little (via inflation), as long as it doesn’t exceed their long term target? Why can’t the free market set its own natural inflation target?

Something We Agree On

I agree with Krugman that a return to the gold standard is a bad idea. Linking our currency to a precious metal artificially restricts the money supply. I’m against that, just as I’m against artificially inflating it. (Sometime when I have more time I’ll write about what I would do instead. It involves repealing legal tender laws and ‘collectable’ taxes. I know you’re on pins and needles.)

My Fundamental Objection

Krugman is quite an accomplished economist. That means he’s a good scientist – good at sorting out cause and effect. But when he interjects his values by advocating for certain effects, he’s no longer speaking as a scientist. He’s just another academic who thinks he knows better than the rest of us how to spend our money.

{ 0 comments }

1) Begin with a clear goal.

Software developers often work from vague specifications. We’re used to it. It doesn’t surprise us. We’re also used to reworking the products of vague requirements.

In software development, ‘firming up the spec’ is one step that’s going to happen. The question is when. It can happen on purpose at the beginning of the project. This rarely happens. When it does, it usually leads to a smooth implementation with a good final product. Let’s call this scenario ‘focused execution.’

It can happen incidentally during the course of the project. This is more likely. This usually leads to some rework, some wasted effort, but an acceptable product. Often the product can be improved in the future. Let’s call this scenario ‘incremental improvement.’

It can also happen at the end of the project. This can go two ways. One is, “We should have done x. After all that effort, it’s finally clear what we should do. Great – let’s do it.” The result is lots of wasted effort, lots of rework, but often a good (but late) product. Let’s call this scenario ‘do-over.’ It’s fairly common in the software business.

The other way ‘firming up the spec’ can happen at the end of the project is, “We should have done x. Too late. Let’s just give up on the whole thing.” This is also common. It happens all the time in undisciplined software shops. After all that time and effort, it’s finally clear what everyone wants. And it’s too late. Let’s call this scenario ‘regret’.

The same is true in life. If you invest the effort to clarify your goals (focused execution), you can avoid the wasted effort of do-overs and the pain of regret. Note: this doesn’t mean you won’t make some adjustments as you learn more (i.e. incremental improvement). In life as in software development, things seldom work exactly as planned. But generally speaking, the clearer and earlier you make your goal, the better your result will be.

2) Setup your environment.

For a long time, when I began a project, my inclination was to just start with no planning or preparation. I didn’t like configuring my editor, arranging my files, setting my OS settings, etc. I would often use whatever tools were installed by default (think notepad editor).

I used to do the same thing on physical projects. Instead of taking the time to get out a ladder, I’d spend twice that time installing a light from a too-short chair. Instead of retrieving a real screwdriver, I’d labor away with my swiss army knife, jabbing my hands every few seconds. All that to avoid a few minutes to retrieve the right tools. That was foolish.

I no longer do that. Now, I’ll take the time to acquire and configure good tools and arrange my work space. The productivity gains far outweigh the time invested in setting up. Work is easier and more enjoyable that way, too.

3) Tighten your feedback loop.

Software development is heavy on experimentation. So is life. There is a lot of ‘test – observe – correct – repeat’. You need to know if what you’re doing is getting you closer to your goal. The sooner you can enter this loop, the sooner you can begin correcting course where necessary. The tighter you can get this loop, the faster your work will go.

I’ve worked on projects where (largely for security reasons, but also for bureaucracy reasons) this debug loop was painfully slow. There were many barriers that inhibited me from testing my work quickly. This created a big gap between the ‘correct’ and ‘test’ items in my loop. That gap makes it difficult to create momentum toward the goal.

That’s no way to work. Now, whenever possible I write a pushbutton script (basically a program that tests my work and tells me whether it’s correct) to test my work for me. This way, I know almost immediately whether my changes produced the desired effects. I might complete 20 debug loops per hour this way.

Life is like that also. If your goal is to improve your health, you might begin by switching your exercise from walking to swimming. Or maybe you replace your morning cereal with a protein shake. Or maybe you go to bed 1 hour earlier. Regardless, if you have to wait months between appointments for a doctor to tell you how it’s working, it’s going to be a long process of experimenting to find an optimal solution for you.

Instead of waiting for your doctor for feedback, what if you bought a fat caliper and measured your body fat percent periodically? Or maybe you could track your resting heart rate? Whatever metric you’re trying to optimize, the shorter your feedback loop, the sooner you can correct where necessary.

Note: this doesn’t mean that all feedback must be acted upon immediately. Some things take time to work. You may have to persist through a period of recalibration. That’s fine. The point is that by working in this tight loop you have the information to decide if a correction is in order.

4) Get started.

In software development, there are many distracting tasks that – while moderately productive – are not the best use of time. There’s always something else to do instead of actual work – something that gives the illusion of moving you closer to your goal. There’s another article to read about how to do whatever it is you’re trying to do. Or some email to process. Or some meeting to attend. There’s always that temptation to avoid starting.

The best engineers I know avoid this temptation. Every day they sit down and open their editors and get started.

Until you’ve begun, inertia is your enemy. If you want to achieve your goal, you must defeat that inertia every day by getting started. And every time you defeat it, it becomes easier to defeat it the next time. Soon, you’ve developed the habit of getting started. Also, after you get started inertia is working for you instead of against you. It’s easier to keep making progress than to stop. Inertia has become your ally.

Conclusion

Put all this together – clear goals, conducive working conditions, tight feedback loop, and positive inertia – and you will be a productivity machine.

{ 0 comments }

Have To vs. Can

Want to excel at work? Want to delight your customers? Whenever you think, “How much do I have to do?” replace that with “How much can I do?”

{ 0 comments }

How to make more money

There are so many angles for getting/keeping money. Legitimate investments and arrangements like stocks, bonds, options, futures, derivatives, commodities, arbitrage; real estate, commercial real estate, REITs; savings accounts, IRAs, Roth IRAs, HSAs, 401Ks, 403Bs, 529s; I could fill up this page with various financial instruments intended for wealth maximization. And that’s not a bad thing. I’ve spent considerable time and effort learning about these instruments and employing them for my own ends. They have their place.

There are also schemes, cheats, and tricks. These mostly involve fooling customers, cheating on taxes, skipping out on debt, etc. These are for losers. You can’t prosper long term by cheating.

Over the long term, your economic reward will likely be dominated by one component: the value that you deliver to others. (There are exceptions – Gandhi, Mother Teresa, etc.) Don’t waste your energy looking for a shortcut. Stop trying to work the system. If you want more, earn more. Focus on maximizing the value you provide to others and the money will follow.

{ 1 comment }

Persistence

Take a moment and think of some great achievements. Scientific discoveries, engineering feats, athletic victories, wealth, business, service, philanthropy – any fields you like. What accomplishments do you admire most?

Now consider the characteristics of the people behind those achievements. What did they have in common? Superior intelligence? I doubt it. Access to capital? Try again. Good looks? Great education? Luck? Not likely.

Behind any great achievement you’ll find a person or people who didn’t quit. They may have been smart, or rich, or beautiful, or strong, or lucky. Or maybe they were none of those. But I bet they were persistent.

Anyone can set a goal. And anyone can have enthusiasm for that goal – for a while. But few choose to persist through setbacks, ridicule, failure, or overwhelming odds. Few can muster the mettle to carry on for years, or even decades, not knowing if they’ll ever prevail.

What about you? Do you have a fire burning within that fuels you toward your goal through all circumstances? Can you carry on when everyone expects you to fail, and you wonder if they’re right? Can you carry on like that for years? For the rest of your life?

Here’s an exercise.

  1. Complete this sentence: I will ____ or die trying.
  2. Write it down.
  3. Put it somewhere you’ll see it every day.
  4. Pursue it until you get there or die.

Figure out what you will do or die trying. Articulate it. Keep it on your mind. Do this and I bet you’ll find energy and guts you didn’t know you had.

Whenever you feel like quitting, ask yourself, “Am I dead?” If the answer is “No”, don’t.

{ 0 comments }

Why Goldman is golden

I believe this week’s drama over the AIG bonuses is a diversion. It’s meant to distract from the unveiling of AIG’s counterparties. The media and some Washington demagogues got Americans all fired up over $165 million in executive bonuses. This sum is a little less than 1/1000th of the bailout money AIG has received so far. But it makes for good television.

Far more distressing is the question of how AIG has used the rest of the bailout money. I don’t feel like spending a lot of time on this. You can see the links below for elaboration. The short version is that Americans had to cough up to pay off AIG’s debts to foreign banks and Wall Street firms.

Exhibit A:  AIG Counterparties

So why did Americans have to pay for this? Weren’t we told that the whole world economy would implode if we didn’t save AIG? Why couldn’t AIG just file for bankruptcy like any other insolvent firm?

I believe it’s because they owed the wrong folks – namely well-connected Goldman Sachs.

Exhibit B: http://abcnews.go.com/Blotter/Blotter/story?id=5891663

If AIG were allowed to go bankrupt, Goldman and others likely wouldn’t get all their money. By saving AIG, the government effectively made it a conduit to transfer hundreds of billions of dollars from taxpayers to foreign banks and Wall Street firms.

For more elaboration, see these:

http://www.slate.com/id/2213942/

http://www.slate.com/id/2214076/

One more thing: why was bankruptcy ok for Lehman brothers, but all the other big boys required rescue? The line you hear from the media and from Washington is that there was no political will to save Lehman. Everyone was bailout weary and someone had to be made an example. I’m not so sure that’s the real story.

Exhibit C: http://www.thedeal.com/dealscape/images/Lehman_show_case_doc-3776.pdf

This lists Lehman’s top 30 creditors. Goldman is nowhere to be found.

I’d like to see a study on price movement of stocks of the largest corporate contributors to winning Presidential campaigns. My hypothesis is that they outperform. Let’s watch GS stock for the next 5 years.

Someone please comment and explain why this is all nonsense conspiracy talk. Please point out what I’m overlooking.

Full disclosure: I own an AIG life insurance policy. Thanks for the bailout.

Update:

Looks like Paulson and Blankfein had a lot to talk about prior to AIG’s rescue. http://www.nytimes.com/2009/08/09/business/09paulson.html

{ 0 comments }