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. ;-)

the inevitable minecraftness

So I worked through Minecraft over Thanksgiving weekend. It doesn't have an ending as such, but I got to the bottom of my cave, found some diamonds and redstone, mined some obsidian, built a portal, and saw the Nether. I built the things I was interested in building. I didn't get into the whole trap business or the multiplayer. It's a really compelling little piece of art, and I'm boggled with joy at the amount of money it's made for its creator.

The whole experience got me thinking about the power of open land, and the effect that the concept has on us. American history in particular is full of the idea that land is there for the taking: just move in and set up shop. Even setting aside moral/ethical questions, that idea hasn't really been operable for over a hundred years, but I think we find it compelling anyway, because land is so inherently desirable to us. Almost like gold, or jewels.

It gets me thinking about how and where people like to live. People love water, and love to live next to water. People love to live near their food. People love to live next to other people. People love to have their own land. People love to have ownership over their space. From an evolutionary point of view, it makes a lot of sense. Games like Minecraft and Dwarf Fortress hit a lot of these notes, and add just enough game to keep us hooked.

progress

The diet is going pretty well. I'm fitting back into my old pants, and I'm still on a pretty good downward slope. It's still stressful though; I've had to recommit lately, and it's been painful. But the results keep me moving forward. So far I've lost 40 pounds, and I think I have about 20 more to go.

In other news, the job is going well. I'm starting to understand how this place works, and I've been able to solve some hard problems, which is always gratifying. But the double stress of job + diet has been wearing me down, and my home life has been suffering. I've basically been a zombie at home, which is kinda bad. I miss working on stuff and I've been feeling a bit hollow. Probably because I basically just play LoL all the time. Breaking the funk is hard. Maybe I should throw a party and make tacos for everyone. :-P

a new job

Hay guys, I got a new job.

It's at Riot Games, they make League of Legends. LoL, as they call it, is a free-to-play team PvP DotA-style game.

Um look idunno. But they're in Culver City, which is way way closer than my old job. I've been playing the game like crazy for the past few weeks, Annie can attest, and I'm really excited about working there. Riot owns their own IP, they are their own publisher, they're profitable, and they're growing very fast. That is exciting.

I feel like there's a lot to say about changing jobs, but when it comes right down to it, I'm not sure I need to say it. It's stressful, and I'll miss the old people, and I'm nervous and excited about the new thing. So there you have it, in a nutshell. I am definitely looking forward to having an hour of my day back. More to come.

holy wars: are we in one?

from: Who Is Us? | Talking Points Memo

The only way this makes sense is if you imagine we're actually involved in a sort of global half-racial holy war against Islam. From this perspective, it's sort of like some 'good' Germans trying to set up a Beer Garden in Tel Aviv in 1950 or perhaps 1944. To which folks might say, 'Look, we know you guys didn't do the Holocaust yourselves. And maybe you mean well. But it's just not right. Go somewhere else.' And most of us would probably see the logic of that sentiment.

Now, I get it. Quite a few people think this is precisely the point. (Not a lot of TPM readers. But a lot of people. Let's not kid ourselves.) We are engaged in a half-racial holy war against Islam. It's not us versus a series of interconnected terrorist networks which are relatively small but episodically quite lethal. It's us, the white Christians and our Jewish junior partner sidekicks versus the brown Muslim people. (If you're keeping score at home, let's call it the Judeo-Christians -white jerseys- vs. the Muslims -brown jerseys.) So isn't it a bit soon for these Muslims, even if these are some of the good ones, to come over here from wherever they're from in the Middle East and set up shop on Judeo-Christian territory? Particularly where the first battle of the Holy War was fought? Soon? ... heck, the Holy War is still on. As Eric Cantor said a couple days ago, C'mon!

Sometimes I wish that it were possible to have an open and honest discussion about worldviews. I think there's a lot of stuff like this that could use a few gallons of sunlight dumped all over it.

For the record, I do not believe that we should consider ourselves to be in a holy war. I find the controversy over the Mosque to be embarrassing. But considering this point of view is illuminating. It's a good reminder that other people see the world differently.

achievement unlocked:

fit back into old pants. 10 pts.

progress reports

I have succeeded in reducing my portion sizes at meal times. In fact, I've almost been too successful, in that I can eat almost nothing for breakfast and lunch, and really be pretty much ok with that. Which means I can eat basically whatever I want for dinner without blowing my diet. So that's cool. But of course, it's pretty much against the advice of "eat more, smaller meals, and don't starve yourself." For now I'm going with it though; I can worry about maintenance after I lose another 40 pounds. Until then, I basically want to lose the weight as quickly and painlessly as possible.

Regarding my new phone. It does feel like the future. It's not perfect yet, I wish the reader and picasa integration were a bit better. I wish there was a netflix app (I hear there will be someday). But so-far it is strikingly easy to use, and astonishingly capable. I like reading my rss and listening to audiobooks at the gym. The battery life seems sufficient, which was one of my big concerns. They've spent a lot of time and attention sanding down the rough corners of the interface. I can see how this thing wants to integrate itself into my identity. It's offering me a kind of cyborg symbiosis that I find strangely alluring.

<_<

game goals

We playtested the zombie boardgame on Sunday. I think it was a lot of fun, even though we didn't get past the first room and at no time did it really feel "balanced." I learned some specific things and some general things.

Specific things:
-threat needs to scale with players.
-blundering is no fun, or at least it was happening too often.
-balancing the stats was very difficult, nerve seems mad OP, melee weapons were not compelling.
-gear is not yet well understood.
-controlling spawning via line-of-sight can be grossly unfair and forces the humans to do weird counter-intuitive things to maintain sight lines. Which also kinda breaks the story a bit. Perhaps all spawning should be "when an area is revealed" or via "exterior points" (i.e. windows, etc.)

But with all that, the core mechanic seemed fun.

General things:
The game needs a thesis. Or, it needs a story. When you sit down to play it there should be a shared expectation of where the game will go. With this game specifically, I wrote it to be a game about the heroes getting inexorably worn down by zombies. So they start strong, but by the end of the map they just barely escape with their lives. But I think the playtesters expected to start weak, and get stronger while facing increasing danger over the course of the map. So, either I need to adjust my perception, or I need to find a way to adjust the perception of the player. It might be possible to do this by calling on various genre tropes in the way the game is described. Or, perhaps my perception is simply out of step.

The game doesn't handle player death very well. We have a cool mechanic where when a stat drops to 0, you're "bitten," you get a +3 bonus on all rolls, but you can't win, and the next hit kills you. But after that there's no way for dead players to participate. If death is permanent, then the maps need to be really short. If death is temporary... then that needs to be designed in somehow. Descent has a concept of "Conquest" that deals with this problem rather neatly, but I don't know if there's a corresponding horror genre trope.

So I know what I need to focus on for the next iteration.

contractors are funny people

No offense.

We got a few windows quotes. We picked one. Now I'm trying to give this guy money and he won't show up at our house. Well, no-doubt he will eventually. But I think it's funny how the relationship suddenly changed when we said we were ready to start, and the change is that suddenly he's way too busy.
:-)

coin jar dinner: cafe pierre

Yesterday we took the coin jar in for cash. The coin jar is a nalgene bottle, so that's about $80. We had a really nice dinner at Cafe Pierre at Manhattan Beach. The coin jar *almost* covered it.

It's nice to have a fancy meal once in a while.

what do I want to think?

I wonder if I could use a tool like cognitive behavioral therapy to intentionally change my attitude about failure and public risk-taking? It's usually used for more clinical purposes, such as treating PTSD, anxiety disorder, etc.. But the focus on the connection between thoughts and emotions, and our ability to change how we think, is appealing to me.

It's interesting to try to figure out, if I could change how I think, what would I change?

Programmer, program thyself.

boiling it down

A few days ago we made pasta sauce from scratch in our slow-cooker. Fresh tomatoes from the garden, tons of delicious ingredients. It came out pretty tasty. But it could have been better. It was too watery, and when you took just the chunky parts, they lacked some of that intense flavor that we had been expecting. Usually when we make it on the stove that's not a problem, because the excess water boils off and the flavor sticks in the sauce, but the slow cooker has such a good seal that you don't get the same effect. Interesting, and it will be remembered.

After reading slacktivist for a while, I think I've boiled down his essential thesis to this: "self-delusion makes you stupid; intelligence means examining yourself and your beliefs. Anyone can be smarter or stupider by following the corresponding path." Which I think is an incredibly strange and powerful formulation of a thing that people have been saying for a long time, "the unexamined life is not worth living." See also: the scientific method. I'm trying to figure out if I believe it literally, or just allegorically, but he makes some interesting arguments, especially regarding empathy and bearing false witness.

It's really difficult sometimes, for me to keep an open mind in the face of my visceral emotional response. This comes up at work, and when reading the internet, playing a game, etc.. Really anytime. But I value the struggle. Regardless of (or in addition to) simply wanting to think that I'm "being smart" by considering a point of view, I'd also like to (smugly) think that when people, generally, consider other points view, the world is a little bit of a better place for all of us. In other words, when you consider another point of view, you make the world a better place.

It's like planting a (literal) tree. Most of the trees you plant may not grow above 2 inches tall, but if you plant enough, you will have facilitated many grand trees by the time you're old. And that's a pleasant thought, no?*


*damn I need to start planting some trees I guess.


file under: unrelenting smugness.