Archive for the ‘General Geekery’ Category

Safari session-saving

Wednesday, March 19th, 2008

Dear Apple, or more specifically, the Safari developers at Apple,

I would really, really, really love for one feature to be added to Safari. Just one more feature, and I think I’ll be in web browser nirvana. Seriously.

I want Safari, just like FireFox, to be able to save my session and offer to restore it the next time Safari starts up. Now, not just a “save session at quit” kind of thing, either, because that doesn’t help when Safari crashes. I mean a “save as you go” kind of thing, like Saft adds to Safari, and like Firefox has, so that if Safari does crash, I get that wonderful little “Would you like to restore your previous session?” dialog.

Now, Firefox’s dialog is a little sparse, but effective. It lets you restore your previous session, or start a new one. Starting a new session presumably blows out whatever might have been saved, which is fine. If one of the pages in your previous session caused the browser to quit, though, simply restoring that session whole-hog might not be a good idea.

Saft, I think, takes the other extreme, and allows you to pick every single URL (from all the tabs and windows) to choose whether they are part of the restored session or not.

So, here’s my idea. Save the session as you go. When you quit cleanly, log that in the session save data. When you start up, if there’s a saved session present, pop up the “start a new session or restore your previous session” dialog. If the user chooses to restore, check to see if the session exited cleanly, or crashed last time. If it crashed, pop up a new dialog, saying that it crashed last time, and one or more of the pages from the session should be disabled. Then let me select what gets restored and what doesn’t.

Of course, make the whole session saving feature optional, by putting a single checkbox on the Advanced panel of Safari’s Preferences.

I’m sure there’s a cleaner way to design the session restore choices (one dialog instead of two, with some intelligent hiding based on what the user clicks on?) I’m not a UI designer, so someone else will have to work that magic.

In summary, Safari developers, I want to have session saving and restoration built into Safari with the same fit and finish that the rest of the browser has, and that includes restoring sessions after Safari crashes and providing the ability to pick and choose what gets restored.

Thank you,

Gregory

P.S.: Yes, I could just use Saft, which I’ve paid for and used for a couple years now. However, with Safari updates becoming more common, I’m getting tired of waiting for two weeks for Saft to catch up. Besides that, I’m becoming more and more uncomfortable with the idea of any InputManager hacks running on my system at all.

Keyboard Shortcut for “Zooming” Mac OS X Windows

Thursday, August 16th, 2007

For the longest time I’ve been pining for a way to have a keyboard shortcut “maximize”, or, in Mac parlance, “Zoom” the current window. Ideally, it would be a toggle.

Well, I found a way to do it today.

First, you’ll need either FastScripts or FastScripts Lite (available at the same link). Install it, and set it up to run at login.

Next, if you don’t already have it, create a new folder at ~/Library/Scripts. Open Script Editor (/Applications/Applescript/Script Editor), and type in this script:

tell application "System Events"
	set currentapp to item 1 of (get name of processes whose frontmost is true)
end tell

tell application currentapp
	tell front window
		if zoomable then
			if zoomed then
				set zoomed to false
			else
				set zoomed to true
			end if
		end if
	end tell
end tell

It’s also here at pastebin.com.

Save it as something like “Zoom Front Window”, as a script, in ~/Library/Scripts. Then, you can open your FastScript preferences, and assign the keyboard shortcut you like to it. I currently use Option-Shift-=, because it’s the same physical keys as what I used on my Linux boxes for the maximize window shortcut.

Have fun!

Gallery online!

Tuesday, April 24th, 2007

Well, I’m not sure what’s been changed on the server yet, but I finally have Gallery2 up and running at gallery.unnerving.org. I suspect that Apache’s mod_security was getting in the way, and it might have been disabled. I’ll be able to confirm this when I hear back from my friend that’s running the hosting.

What’s most wonderful, in my opinion, is that the iPhoto2Gallery plugin works perfectly. This makes it almost painless for us to start uploading photos that we want to share, since all our recent photos (taken with our Canon digital camera) are managed in iPhoto on the iBook.

I love good technology days. Heck, I even solved some problems at work today.

An old new look? Or a new old look?

Monday, June 12th, 2006

I’ve upgraded wordpress to the latest version for this site, and also reverted back to the default Kubrick style that comes with Wordpress.

While I liked the dark color scheme, I found it hard to actually read. So, back to Kubrick we go until I find the time to tweak something else up.

In the mean time, however, it’s entirely possible that some of the formatting for the blog might be a bit off, and for that I apologize. I’ll get to it eventually.

I’m also hoping that I’ll actually have some more to write about soon. I’m really busy at work, but I’m hesitant to use that as my sole source for topics to discuss. We’ll see what happens.

Finally, I’ve added another journal for my wife at azure.unnerving.org, where she hopes to do a photo journal of sorts, starting with her recently completed trip to France.

With so much talk of Boot Camp, you’d think it was the Marine Corps

Thursday, April 6th, 2006

Apple’s Boot Camp has been creating quite a flurry of online activity. Honestly, far more than it is probably worth, but since, hey, this is Apple allowing you to run Windows on a Macintosh, it’s easy to understand why everyone’s panties are in a twist.

In between dealing with the multitudinous wildfires we have at work, which I’m still not really wanting to talk about, I manage to surface for a few minutes each day to try, in vain, to catch up on my email and RSS subscriptions. With so much buzz about Boot Camp, I was waiting to hear from John Gruber, given his very well-formed thoughts, reasoning and opinions on matters. I didn’t have to wait long, as he’s just posted an article with his thoughts on Boot Camp.

Reading through, I found something I simply had to quote here:

Right now, it’s a dual-boot situation, which is obviously less than ideal. It’s not hard to imagine, though, that the version of Boot Camp Apple is building into the upcoming Mac OS X 10.5 (a.k.a. Leopard) will be a concurrent virtualization tool — i.e. that Windows (and perhaps any other PC OS) could be hosted within a running Mac OS X session, obviating the rather annoying need to reboot to switch between OSes.

Mac OS X as a host to multiple guest virtualized systems leveraging the hardware virtualization capabilities of the Intel Core CPUs, running guest operating systems at near to full hardware speeds. All running without having to sacrifice a working, productive session in Mac OS X just to run an app or session in another OS. From the very day of the announcement of the Intel switch by Apple last year, I have been fervently hoping for this as a capability, and if I tune my Reality Distortion Field Detector just so, I think I can hear Jobs saying that it’ll be true.

As someone that lives in several OS environments for a living (Mac OS X, Linux, Windows XP), such an announcement would pretty much seal the fact that I’m buying Apple for my personal systems pretty much forever. I drool in anticipation.

What do you think?

More on Good Laziness

Sunday, April 2nd, 2006

Laziness extends to authentication and authorization systems, too. At my last job, we started out with five or so primary systems that people needed access two, and a bunch of supporting systems that nobody logged into directly. It was, at the time, no big deal to go ahead and create an account for someone on those five or so machines. That changed over the course of a year or so, when we suddently had 20, 30 and then more systems people needed to use, depending on what they were doing. Had we the foresight, we would have set up something back in the early days to centralize the management and control of user and group accounts. Where I am now, there’s at least NIS to tie everything together. It’s not the most robust technology for a network, but it does the job and will keep doing the job until we get around to LDAP.

LDAP, though, is truly the “bee’s knees”, as all the cool kids are saying these days. (I would call it the cat’s pajamas, but I did that and all the student workers looked at me like I had three heads. Cerberus, or Kerberos, depending on who you ask and whether or not you’re at MIT, has three heads, but that’s another article.) Right off the bat, LDAP offers some important things over NIS that make me positively giddy in anticipation.

First, given appropriate access rights, you can update an LDAP master from anywhere, over the network, securely. This means we can divorce our user creation tools from the “master” server and run them, well, anywhere. This means we no longer have to run them as root. This means we don’t have to have people log on to our master server directly (which is a security risk) to maintain user accounts. We can make a web-based tool if we really wanted to (and I think we do.)

Second, we can restrict it on both the servers and the clients so that LDAP connections only ever go over SSL links. This is, in and of itself, enough of a reason to move to LDAP over NIS in our security-concious world, and I’d be lying if I said it wasn’t at least part of our reason for moving to it.

Third, we can enforce unix “shadow” password expiration policies. I can’t find a way to do this in NIS, though it may be as simple as creating a “shadow” NIS map.

So, you can think of it being the perfect Lazy solution. With a bit of work, you can drastically reduce your workload while, at the same time, helping out your security situation a bit. Hell, I’ll take that any day!

Appropriate Laziness is the Hallmark of a Great Sysadmin

Sunday, April 2nd, 2006

I think, sometimes, that the truth is quite funny. Take, for instance, the goal of every systems administrator I have ever known (including myself): do nothing. Seriously. For sysadmins, a good day is a day when we get to do absolutely nothing but catch up on personal email, read our favorite magazines and web sites, play some foosball or pinball or even a little ping pong, have a beer or two at lunch out at the pub with some friends, and go home feeling like you didn’t really do anything, and feeling happy about it. It is this vision of the perfect day that drives us to pursue all manner of projects in hopes that we can someday get to have slow days every day.

The other day, I complained about one of the tools we lazy sysadmins use when we have more than, oh, say, three systems to maintain: cfengine. At my last job, we had something like 45 systems, and I was wishing we could get just enough time to put cfengine into place. Where I work now, we manage something north of 40 systems (various flavors of Linux and some Solaris) and I had the fortune of walking into a working cfengine deployment. Hooray, someone else did the hard part! Having had the joy of using cfengine for managing large numbers of systems, I never want to go without it again. It’s an amazing and efficient tool for rapidly and easily distributing all manner of configurations across a huge number of systems. It can also, at times, be an amazing and efficient tool for rapidly and easily distributing all manner of broken configurations across a huge number of systems, but that’s a story for another day.

Another tool we’re using extensively is RedHat’s kickstart. Taken from the much more capable Jumpstart from Sun, kickstart is, really, enough to get a system off the ground and mostly configured for what you want. There’s a bit of work we need to do on our kickstart server yet, and our tools for generating new kickstart configurations aren’t quite up to the quality we’d like, but all in all, it’s a serious time-saver. Instead of having to sit there and answer all the questions and configure a package set, we just boot the system off a CD, tell it to do a kickstart boot, and walk away. Depending on the system and what type of install we’re doing, the system will be ready, all on its own, in twenty minutes to an hour.

The real strengths, however, come into play when you combine the kickstarts with cfengine. In about an hour, not only do you have a new system install, but you’ve got it completely configured, along with optional software installs. How cool is that? Sure, coming up with a totally new configuration for a new class of machines can be a pain, but once that’s done, you can crank out as many of them as you want in very short order indeed. And, not only that, but you can then manage it from that point forward from your central infrastructure and ensure it’s a good citizen.

In case you couldn’t tell, I really like cfengine and kickstart. They make me happy, because they allow me (and my coworkers) to spend more time doing real productive work instead of playing box jockey. If you manage more than five machines or so, you owe it to yourself to check into cfengine. If you build machines more than once a month, you owe it to yourself to check into kickstart (or Jumpstart, if you’re a Sun Solaris shop.) Don’t cheat yourself out of valuable time.

Mac Mini as MythTV Front End?

Wednesday, March 22nd, 2006

I think this is especially tempting considering the new (top-end) dual-core Intel goodness that the Mac Mini really is. If I can build a nice, fat MythTV back-end server with lots and lots (and lots) of disk space relatively inexpensively, then all I really need is a gigabit link from that server to a Mac Mini in the living room.

Think about it. All the heat, noise and bother of a multiple-tuner-and-cable-box setup tucked away in some other room, and nothing but this nice, small, silver box on top of your TV. Add in a bluetooth keyboard and mouse, the TV-out adapter (sorry, no HTDV in my house yet), and you’ve got yourself a combination computer / TiVo-killer to die for.

There’s a short writup here about using the Mini as a High-Def video source, and it seems to work fairly well, overall.

Something bothers me, though, about having the television be the highest-powered computing device in the house…

That said, the Mac Mini is the perfect blend of cool looks, incredibly small size, and decent computing power. I wonder if the Apple Remote is useful for controlling MythTV, or if I’ll need to get something else. If I do go with a Mini for the TV, that means all my other work will be going into building the back-end server.

Parts list:

  • Athlon X2 64
  • Suitable motherboard
  • Two Hauppage WinTV PVR-250 cards
  • pcHDTV 3000 tuner card
  • 3Ware SATA RAID controller
  • Five-drive hot-swap SATA drive cage
  • Five 400GB or 500GB SATA drives (buku storage!)
  • Wheelbarrow of cash for SDG&E

There’s a few things missing from that list, but I already have most of a computer there already (granted, with a fried motherboard). Should be a freaky box. Now, it’s also on the bottom of the list in terms of priorities for budgetary issues, so we’ll see if I ever get to build it.

And here I thought CSS was hard.

Wednesday, March 22nd, 2006

I began my adventures in learning CSS tonight by setting, as a goal, cleaning up the theme I downloaded and installed to have some cleaner colors and less graphics. I like to think that I achieved my goal. Yes, the site is a lot darker than it was before, but the increased contrast makes it easier to read (in my opinion.)

If people are having problems reading the site in the new color scheme, please let me know in the comments here.

At some point in the future, I’ll take to hacking the actual PHP used to generate the overall layout of the site and clean that up, too.

The 10 Commandments (of IMAP clients)

Monday, March 20th, 2006

It seems the people over at University of Washington have a silly side.

The Ten Commandments of implementing IMAP clients.