software rant

Alright, nobody is going to care about this, but I am a usability zealot, so I'm going to tell you anyway.

http://www.johndcook.com/blog/2011/12/30/advantages-of-everything-is-text/
I read this post about Emacs (don't get me started please) and some of the features he describes made me realize how low our standards are for usability of a command line interface.

Much in the same way that Microsoft hasn't fundamentally improved MS Paint since well, ever, it is my perception that command line interfaces haven't significantly improved since well, Unix.

I might be wrong, I am not a CLI guy. But here's what I keep looking for that I don't find:

  • resize the window with my mouse and have that be meaningful (change the number of columns interactively)
  • select, copy, paste text with common mouse and keyboard commands
  • autocomplete, intellisense
  • persistent command memory (across sessions)
  • directory awareness, content visibility
  • application awareness (ant, maven plugins that autocomplete targets, projects, etc.)
  • hey, tabs?
  • unlimited or very large buffer (like a txt file in an editor. You delete history when I tell you to, stupid computer.)
  • saving sessions and/or making results accessible as text files
  • text folding so I can hide verbose output

I work primarily in Windows, and I've been looking for a DOS prompt replacement that gives me any of this, and I've always been very underwhelmed. It's like getting excited about the next version of windows because you think MS Paint might suck less. Eternal disappointment.

I can see that a lot of what I'm asking for is what Emacs seems to provide, which is basically that your commands are editable in a sane and modern way. Does anyone actually use this feature? And, am I alone? Does the Linux CLI suck just as bad as the Windows prompt? Or am I asking for things that I can never have for some (historical, bad) reason?

Stuff like this really makes me question my own sanity, because the gaping lack of quality tears at my face every time I use these tools, but the people who use and advocate this stuff don't seem to notice it. Perhaps they know tricks I don't, but I think they've just gotten really good at MS Paint.



Also to the point of the article, the big win is not so much that everything is text. It's that somebody paid attention to how the tool is actually used, and put some effort and imagination into it.

you tell me

Today I wrote my first self-motivated FlexUnit tests to test my as3 quaternion utilities. At my laptop in our rented condo in Kauai. While my wife is out snorkeling on the beach 100 yards away.

...

but the baby physics engine* is looking pretty good, I've got angular joints working now (though they don't handle torsion? I think that's a separate joint?) and stick joints look pretty good too, and I built a little inspector panel with tabs so that I can easily tweak stuff. And the math is all in 3D, which is a bit of a leap for me (much more thinking... such a pain.)

Unit testing is still a little unfamiliar to me I must admit, but I'm enjoying the added confidence it gives me about the math I'm using. Now it might be time to work on plant biology and rendering, which is after all what I sat down to do in the first place before I got distracted by all this 3d math.

Or, it might be time to head over to the beach I guess.


*Annie likes to call it a "baby-physics engine" instead of a "baby physics-engine." I like the mental image. :-)

in kauai*

Some places are a letdown. They don't live up to the hype and the advertising, you get there and you think, oh, that's nice I guess. I was sorta expecting more.

Kauai is not one of those places though. Neither is the the Grand Canyon (actually grand). But yeah Hawaii in general is a little mind-blowing.

We were walking through the grounds of a hotel down the coast from where we're staying (in a condo cause it's cheaper and way better) and I got to thinking about how posh hotels terrify me.

Not as a guest. They terrify me from business perspective. It's such an amazing risk, to take, what, tens of millions of dollars and sink it into building a resort on some piece of coast near a natural wonder, with the confidence that you can earn it all back and change, in what, 5 years, 10 years, what? And all of the tens of thousands of details that go into it.

Anyway the magnitude of the business venture staggers me a little, and it makes me a little queasy to be a place like that, because it puts me in mind of the kind of people that could pull that off. I know I guess that they're just people on some level, but on another more childish level I suspect them of being well basically, cold calculating psychopaths, to be able to risk that much.

Which goes to show that I am still a small town boy, fresh off the farm, etc.. I have relatively small ambitions on that scale. Build a castle. Doesn't sound so hard.

Also I'm having a good time working on a grass growing sim in my down time. :-) I'll post the results if there are any.

*we got married!!! it was great. pictures may show up at some point.

not a great sign

Is it bad that I'm excited that I might be getting sick, because I'll finally be able to get some work done?

my profession

I talked to a guy on the phone today, who wants to work at my company. Smart guy. I asked him a bunch of tricky questions, and from this I surmised that he'd be likely to survive an onsite interview. That's great. That's what you want out of every phone screen.

It got me thinking about my profession. A lot of what makes me good at my job is incredibly arbitrary, like knowing what connects to what, and who worked on that. But then again a lot of it is what you might call "intrinsic." I like finding out how stuff works. I like solving hard problems. I hate admitting defeat. I enjoy finding workarounds. That sort of thing.

But there's another category of traits that is in-between. I understand when to comment my methods and when to move on. I have a feeling for what to name my classes and variables. I have a good hunch for when a breakpoint will tell me something, and when a file search will help. Sometimes I can just type out a class or three. I guess this space in the middle is what I call "software engineering." I place a value on this stuff, which is independent of the value that I place on seniority, and different from the value I place on ability.

Maybe it's simply because I realize, the older get and the more I move around, the less I can rely on ability OR seniority to govern my salary. It's in my interest to promote the value of professionalism at this point in my career.

;-)

hawthorne real estate report

I saw this place while walking back from the hardware store with some lamp parts.



It's a cute little two house setup very similar to ours. Nice and private in the back. The houses look like they're in decent shape though they probably need new windows and the yard needs a ton of love.

Anyway it made me hungry. After the wedding and a couple other financial milestones are reached, I want to start working on a down payment for something like this... The business makes too much sense.

If you're looking for an investment property in Los Angeles and you aren't brave enough for Boyle Heights, you should consider Hawthorne.

sup

I've been thinking about the BuildGrow thing a lot lately. Isaac has some really good ideas for a generated Crystalis-style game, which I think would be super cool. So I started back in on the socket server. I got login working and I'm happy with my amf serialization layer. I don't know if I need to add compression to it as well. I might have to I guess depending on how the game ends up shaking out.

At work I've been doing a lot of advocacy lately, which is a new role for me. But as our little corner of the business is starting to look like it's in pretty good shape, I'm able to pull my head out of the code for long enough to notice that there are other departments, too. So some of this socket server stuff I'm working on at home is a way of limbering up to tackle the broader challenges at work, I guess.

Sigh. I think about work a lot but, I can't really write about it too much here, because a lot of the stuff I want to talk about it not public knowledge. That's frustrating but I love my job too much to risk it. ;-)

The other thing about this BuildGrow stuff, is that it's a great way of procrastinating. What I should be working on right now is wedding stuff. <_< That stuff is mostly under control I guess. I feel really good about the plans we do have, at least. It's the ones we don't have that are starting to be a concern. I guess we should figure out a honeymoon pretty soon here...

Also my diet is going pretty well. I have about 7 pounds to drop to reach my long-term goal, which is to be 185 at our wedding. I think I will make it. Then after the honeymoon I'll have to work on getting back down to it. Then I'll reevaluate.

There's a lot of crunchy minecrafty, dwarf-fortressy stuff on my mind these days, and a lot of wedding and adulthood stuff too, but I want to break all that out into separate posts.

inspiration and humility

I've been thinking a lot lately about growing up, and professions, and learning, and such. I tend to do this kind of thinking internally for the most part, because I'm a pretty cautious and private person by nature, but I wanted to see if I could set some of it down here.

I want to be the kind of person who keeps learning, and keeps doing cool things, basically indefinitely. In order to live up to that image of myself, it's necessary to cast aside another image of myself, namely, that I am a competent person who does everything right the first time. I think my revelation is that inspiration and humility have to go hand in hand. In order to realize the fruits of your inspiration, you need to allow yourself to wade through the mud a bit. You need to get down there and learn, and grow.

Having a good career protects me from having to do that kind of re-evaluation very often, and I'm starting to feel like a weaker person because of it. I think that's funny.

***

So I'm writing a java socket server for a game, or loose collection of games, that I want to write, probably in AS3. It's provisionally called BuildGrow. We'll see if anything comes out of it, but I've decided that I'm not going to grade myself on the outcome of the project, but rather I'm going to enjoy the process of learning and building. I think that by focusing on that I might be able to recapture some of the fun and excitement that I used to feel about the work I do.

By the way happy new year, and cheers, and everything is going pretty great for me/us. I don't want to let the somewhat melancholy nature of this post to lead you astray; these are excellent problems to have, and I am happy to be at a point in my life where I can worry about tertiary stuff like this. ;-)