Writing

Feed Software, technology, sysadmin war stories, and more.

Friday, August 16, 2013

My new development environment solution

Earlier this week, I wrote about my woes in trying to do my usual brand of dev work on a Mac machine. I went to some lengths to get it to work, but kept running into some subtle problems here and there.

I got a bunch of feedback about this, and I figured I'd reply to some of them publicly just to clarify my position on my UI.

One reader asked if the Mac OS still supports X11, since it might help. Well, sure, it does. You have to jump through some hoops, but you can in fact get an X server on the machine. Then you can kick off X programs and they will pop up. You can even ssh to another machine with X forwarding enabled and run something (xterm, xclock, xeyes, whatever) and it will actually start the X server and then open a window for the program. This is pretty neat.

But... it's still running within the overall scope of the Mac OS. The X stuff fits into it, but doesn't replace it. It's the window management regime of the Mac OS which bugs me, so that's not a fix, unfortunately.

...

Regarding my colors, I actually shifted to green-on-black after buying a beautiful new monitor in 2011. It's just too bright and powerful to run the black-on-white thing I do on my Mac laptop display. Even the usual bright backgrounds of web pages are too bright to look at with that thing sometimes.

Did I mention that I wind up using it at night, and the ambient light in the room isn't exactly high? I'd have to boost the light in the room considerably to make that monitor not be the brightest thing in it after dark. I'd really like to have something like f.lux running on there, but it seems to be binary-only incompatible craziness on Linux.

I guess if I had to actively use that screen with bright backgrounds then I'd have to sit down and figure out a way to dial down the brightness without turning everything into mud. It's a tricky balancing act.

...

I was off a little about Terminal.app and spaces. It looks like you can have some windows on one space and some windows on another, too. I forgot this was possible since I have it set to be on all spaces on my personal laptop. This is because I tend to want them to stay around no matter whether I'm in Firefox (one space), Mail.app (another space), iTunes (yet another), and so on.

...

I think I also said something about switching terminal windows with CTRL-TAB. It's actually CMD-`... that's a backtick: right above tab and right below esc. It's close enough to almost be the same movement. Neither of them loop in all of the windows across all apps, though.

...

I should note that it's not possible to solve all of my woes by switching terminals. iTerm is not the answer, in other words. It would take something akin to replacing the OS X window manager to really get things the way I like them, but that's just not an option. The system is not built to let that be negotiable. You take what they give you or you leave it.

Note: I mean window manager in the X11 sense. There seem to be "window managers" for the Mac which amount to "things which will shovel windows around within the existing regime". That's not at all what I mean. A WM in the X11 sense is basically responsible for taking an ordinary rectangle and giving it borders, scroll bars, title bars, making them movable and resizable, and all of that.

...

Anyway, there's actually closure to this story. Someone introduced me to VMWare Fusion. I had no idea that anything like it existed on the Mac, and that such a thing would actually run full-screen and not just in its own window (or worse, as multiple first-class OS X windows).

So, I installed it and dove in. It turns out the folks at VMWare have obviously been paying a lot of attention to new user experience. For instance, it realized I was installing Ubuntu and did things to make it work properly and removed some manual setup steps I'd ordinarily have to do.

An hour or two later, I had switched everything over to my new virtualized Linux environment. I now run it full-screen and get all of my work done in there.

I also managed to rip through two good-sized projects in the day and a half I've had it running.

Coincidence? Nope. Just paying attention to my gut feelings about what makes me effective.

Mac fans, don't take it personally. Everyone's different in this regard. I'm sure my setup would grate on you just as much as this problem grated on me.

It's fortunate that we have options in these matters.