Some unorganized thoughts on just having taken the 8-hour FE exam today

  1. It was warmer in the morning. It got chilly in the afternoon. Bring a jacket.
  2. Make a checklist of the things you need to bring. Don’t just bring the things you need to bring — make the checklist. This way, you can check against it the day of, and make sure it all goes with you to the exam.
  3. I didn’t think I’d need a straight edge, but I brought one anyway. Turns out it came in very handy on several questions. Bring a straight edge.
  4. The kinds of questions you’ll be asked cover just about everything that can be covered. The FE reference book is 200+ pages long. Unless you familiarize yourself with every equation in the book — and the specific terminology it uses — you might have to let go of answering every question correctly, in time.
  5. Speaking of time, in the morning, you have 120 questions to answer in 4 hours. Doing the fancy engineer math on that tells me that you have about 2 minutes per question. Some questions definitely are designed to take longer than others. A few questions take a split-second, depending, of course, on your familiarity with the material. They’re all weighted equally. So blaze through and do the ones you definitely know how to do first. Then go back and do another pass on the ones that take a little longer. Repeat until time runs out.
  6. I don’t know how applicable any of that previous point will be to the new computer-based tests. The computer format neutralizes a lot of quality time-management techniques, sadly.
  7. Happily, however, I’m done. Now I will sip margaritas until the scores are delivered, I presume, by Engineer Santa Claus.

Scott Adams on success and failure

Scott Adams has written new book on his view of success and failure. He had some interesting things to say about the subject in an interview with the Wall Street Journal.

On goals:

Goals are okay in their place, but what you need more than goals, is a system, a process. So, for example, one of my processes for writing this book was that I blogged every day, because it was practice, and because I thought that people would read it, and they would maybe say, let’s reprint this article. And it would give me an idea of what I could write that would be a full book. So I didn’t have a goal, of, “write a book, this specific book, by this day,” I had a process that I was pretty sure was going to get me there. So likewise, if you’re trying to lose weight, I would say it’s bad to say, I’m going to lose ten pounds, but it’s probably a lot more useful to say, I’m going to learn how to eat right and I’m going to be active every day.

On succeeding:

In the real world, luck is the biggest factor in anybody’s success. And if you try one thing and it doesn’t work, and you stop trying, luck doesn’t really have a chance to find you. So what I’m recommending is, you try lots of stuff — things that won’t kill you, won’t bankrupt you, won’t leave you debilitated in some way — and just keep trying until something works.

The man makes some sense.

The thinking child is not antisocial (he is, in fact, the only type of child fit for social relationships). When he develops his first values and conscious convictions, particularly as he approaches adolescence, he feels an intense desire to share them with a friend who would understand him; if frustrated, he feels an acute sense of loneliness. (Loneliness is specifically the experience of this type of child—or adult; it is the experience of those who have something to offer. The emotion that drives conformists to “belong,” is not loneliness, but fear—the fear of intellectual independence and responsibility. The thinking child seeks equals; the conformist seeks protectors.)

– Ayn Rand, Return of the Primitive: The Anti-Industrial Revolution

On what’s most important

I hope the message that people really take, really internalize is that being yourself, as hard as you can, is the way to have important and lasting impact on our world. … The thing that matters most is to figure out what’s important to you, what’s core to you, and do that. Be that. And do it as well as you possibly can, every single day.

The highest form of design

But what you should recognize is that there are a lot of ways to be a designer, and a lot of ways to use your design skills. What we think of as the traditional boundaries of design are enforced mostly by the design industry… But nobody else cares. … Be courageous. Take risks. Challenge ideas. Go the opposite direction. Raise standards. Make trouble. Invest your humanity. Because that’s what design wants from you. That’s the highest form of design. And we need it more than ever.

 – Matthew Butterick, Reversing the Tide of Declining Expectations


Heard on the WSJ This Morning podcast today:

[Managers] try to delegate, and it doesn’t work out so well, and they think: it’s just easier if I just do it myself. And so I like to encourage people to think about delegating not so much just about getting the work off your plate, but about helping people grow and developing capability in your organization. Because as a manager, if you keep jumping in to do work you should be delegating, you’re preventing your whole organization from getting more capable. Your job is to pull everybody up — not to keep jumping down.

Moving my git repositories to BitBucket

I moved my git repositories to BitBucket and it was super-easy.

As part of my annual digital spring cleaning, I decided it was time to find a new home for the dozen or so git repositories taking up space on my virtual server.  I’d set up gitosis a few years back (way back before gitolite was even a thing), without any fancy web interface or DAV access.  Only command-line access, operating under the full Ron Popeil server-admin philosophy: Set it and forget it.

All was fine and dandy until I realized that having several working copies (along with the master copy) of a dozen repositories, operating on the same server, was kind of silly.  (No, I didn’t plan it that way, but, well, you know.  Things happen.)  One of those repositories was a few hundred megabytes on its own.  I started to get notifications about the disk being full and such.  I hate those notifications.  I actually hate all notifications.  It goes very much against the “forget it” part of the aforementioned server-admin philosophy I outlined in great detail above.  So, I went to the Cloud to find a new home for my gits.

GitHub charges by the repository.  Bleh; no thanks.  As one writer put it: GitHub charging by the repository is as asinine as if Dropbox charged users by the folder.  Then I got all caught up with the times and discovered that not only is BitBucket in the git game now, it’s also offering essentially unlimited repositories for up to five users, for the price of free.

After a few hours of researching how best to migrate all this data and all my commit history over to its new home, I found a very easy way to get it done, thanks to Oscar Merida.  First, you create a new repository in BitBucket.  Then run the following two commands in the folder where your repository currently lives:

git remote add origin
git push -u master:master

Repeat for each repo.

On my first attempt, however, I did run into one problem, which was actually very easily solved, thanks to BitBucket’s excellent documentation.  The first time I tried a push, I got the error:

Permission denied (publickey).

Which meant that BitBucket didn’t know that it was okay to accept my pushes.  So I just followed their instructions for how to fix it, and, boom.  Done.

Very easy.

Music tagging oddness

Why do digital music publishers do stuff like this?

Better clarify that it's the "Album Version", for every track on the album

Maybe it’d make sense if the album was a compilation and there were different versions of the songs, so there’d be a reason to distinguish between, say, the “Album Version” and the “Hot Dance Mix”. But not when all of them are the same, and not when the album is just basically the regular plain-old album.

Maybe there’s actually some rationale. Odd though.

Who starts you? Who keeps you going?

He saw an evening when he sat slumped across his desk in that office.

It was late and his staff had left; so he could lie there alone, unwitnessed. He was tired. It was as if he had run a race against his own body, and all the exhaustion of years, which he had refused to acknowledge, had caught him at once and flattened him against the desk top. He felt nothing, except the desire not to move. He did not have the strength to feel—not even to suffer. He had burned everything there was to burn within him; he had scattered so many sparks to start so many things— and he wondered whether someone could give him now the spark he needed, now when he felt unable ever to rise again. He asked himself who had started him and kept him going. Then he raised his head.

Slowly, with the greatest effort of his life, he made his body rise until he was able to sit upright with only one hand pressed to the desk and a trembling arm to support him.

He never asked that question again.

Side-stepping the absolute URL requirement in WordPress

This is a limited use-case, but it’s one I’ve just successfully figured out how to deal with. Hope it helps.

I have a WordPress codebase that is shared between three domains. The code executes the same on all three domains — only the domain itself is different. Which, there should be nothing inherently problematic about doing this.

Problem is, when you set up your blog’s settings, WordPress requires that you enter a fully-qualified absolute URL for the blog’s root directory — and that URL is inserted throughout every nook and cranny of the app. For whatever reason, you can’t supply it a domain-less path, even though it seems like this would be a perfectly reasonable thing to expect. (I read one explanation that this would be too problematic for many users.) There are way too many references to this absolute URL to fix by hand, and if it can be avoided, it’s not generally a good idea to go monkeying around in the guts of the app to try to change its behavior. Maintenance becomes a lot more hands-on. Upgrading can easily become a migraine.

So: database hacks to the rescue.

You can actually force WordPress to use a domain-less root path, by altering two settings directly in the database. In the wp_options table, change the siteurl and home values to whatever URL you like. Like, say, the perfectly reasonable / or /blog. The only downside is that if you ever try to change anything on the General Settings page from within wp-admin, WordPress will bark at you and give you a couple of error messages. It’s okay. You can ignore them. Everything else works just fine.

Update: Apparently, everything else does not work just fine. Setting the URL in the database broke Akismet.

Akismet requires the home value in the database options to be the URL associated with your API key. Unsurprisingly, if it doesn’t have that URL, the service requests will fail.

WordPress is great and all, but like every other off-the-shelf software package, there are times where if you want to customize it and color outside the lines they’ve drawn for you, you end up diving down a frustrating rabbit hole.

I’m sure I’ll port this bad boy over to Django soon enough. Then: sweet, satisfying, complete control.

Return top