personal website: joe crawford. code. occasional comics. toy robots. bodysurfing. san diego. california. say hi.
since 1998

February, 2022: 30 posts.

Paragraph of the Day

“I’m a big believer in Bill Joy’s Law of Startups, “success is inversely proportional to the amount of money you have”. For $2.5M we got Nvidia to working silicon that was revolutionary in two different respects. Right now, there is way too much money. If a system is to be decentralized, it has to have a low barrier to entry. If it has a low barrier to entry, competition will ensure it has low margins. Low margin businesses don’t attract venture capital. VCs are pouring money into cryptocurrency and “web3” companies. This money is not going to build systems with low barriers to entry and thus low margins. Thus the systems that will result from this flood of money will not be decentralized, no matter what the sales pitch says.”

From DSHR’s Blog: EE380 Talk (a talk on “blockchain” technology. Excellent food for thought.

Crypto and NFTs

There’s a lot of writing and thinking about what people now call “crypto” going on. The other day I linked to DSHR’s Blog: EE380 Talk (a talk on “blockchain” technology in my post Paragraph of the Day. There’s a nice summation of that more technical talk by Cory Doctorow: Pluralistic: 13 Feb 2022: Externalities.

Particularly worth a watch is the longish, but thorough Line Goes Up: The Problem With NFTs

Hard Drive Cleaning: C++ Programming ’04

In 2004 I took a course at City College in C++ Programming. As I wait for my new job to start next week I’ve been doing a bunch of maintenance. I found an old backup hard drive and found a folder called cpp from an old Windows machine I had. I think it was running Windows NT? Anyway, here’s a program!

#include <iomanip>
#include <iostream>

using namespace std;

int main()

	int intNum = 111;
	int &refIntNum = intNum;

	cout << "intNum is " << intNum << endl;
	cout << "refIntNum is " << refIntNum << endl;
	cout << "The memory address of intNum is " << &refIntNum << endl;

	int intNum2;
	int &refIntNum2 = intNum2;
	intNum2 = 222;

	cout << "intNum2 is " << intNum2 << endl;
	cout << "refIntNum2 is " << refIntNum2 << endl;
	cout << "The memory address of intNum2 is " << &refIntNum2 << endl;

	int intNum3;
	int &refIntNum3 = intNum3;
	intNum3 = 333;

	cout << "intNum3 is " << intNum3 << endl;
	cout << "refIntNum3 is " << refIntNum3 << endl;
	cout << "The memory address of intNum3 is " << &refIntNum3 << endl;
	return 0;

Definitely a kind of Hello World program possibly from a lecture. I don’t think I have notes from that class at City College anymore. But it was a solid class.

C++ programs are of course compiled. I tried initially on my current Mac (a 2013 machine running the latest MacOS Big Sur) to run cpp Hello.cpp

# 1 "Hello.cpp"
# 1 "" 1
# 1 "" 3
# 367 "" 3
# 1 "" 1
# 1 "" 2
# 1 "Hello.cpp" 2
Hello.cpp:1:10: fatal error: 'iomanip' file not found
1 error generated.

Now, iomanip is present on this Mac. It’s at /Library/Developer/CommandLineTools/usr/include/c++/v1/ but I was using the wrong compiler command. I needed to run g++ Hello.cpp. That command dutifully compiles. How do we know it compiles? Because of course it doesn’t seem to do anything when we run it on the command line! But there is now a file called a.out in the directory. And when we invoke it in the in that directory by doing ./a.out we get output!

intNum is 111
refIntNum is 111
The memory address of intNum is 0x7ffee88cf238
intNum2 is 222
refIntNum2 is 222
The memory address of intNum2 is 0x7ffee88cf22c
intNum3 is 333
refIntNum3 is 333
The memory address of intNum3 is 0x7ffee88cf21c

It’s kind of an amazing accomplishment that this rather old infrastructure for programming in C++ is built into my machine and I didn’t have to install anything on a completely new machine to compile it. When I think about the relative complexity of getting a random current JavaScript project to run, what with inevitable updates to npm, wow.

It was 21 years ago today… (happy birthday blog)

It was 21 years ago today that I started blogging. Here’s what I had to say back then:

It occurs to me that this Blogger stuff may be dull.

Still, the prospect of keeping a journal is kind of a neat one.

Of course, I’ll have to keep it up. Let’s see if I can do that.

I was on blogger dot com back then. I would write on that site, and files would get published via FTP (before we all understood how fundamentally insecure FTP without a security layer was). Those files were included as Server-Side-Includes, and later as files included via PHP.

I migrated to WordPress in 2004 18 years ago and never looked back. I considered MovableType. I considered TextPattern. Used all the candidates on other projects but landed on WordPress and have been happy with that choice since then.

If you’re reading? Thanks for reading.

Here’s a photo of me at the beach!

As I used to say with more regularity: Onward.

←January 2022March 2022→