Epsilon XFWM theme

I just posted one of my custom XFWM themes that I use pretty heavily, as I figured I’ve been using it enough that there’s a chance someone else would want to use it too.

I’ve used Epsilon with a number of GTK themes, and it works pretty well with the (relatively new) Die Hard 4 theme which I’m using now. See it on XFCE-Look.org for more screenshots.

Making bad passwords better

There’s lots of different things people can do to improve passwords. Most people know that there are better and worse choices (‘password’), and most people know that adding in a number helps (‘password1’). And, if you turn the password into some mishmash of symbols like you wish you were a hacker back in ‘94 (‘p@$$w0rd’) it must be impossible to decrypt.

While a longer password (‘ultrasecurepassword’) is certainly more secure, for something like my own user account password that I have to type numerous times a day, having to deal with successfully typing a password that long without typos definitely gets slower and more obnoxious. On the other hand, completely random passwords (‘dJ2a#0xr’) require memorizing (or worse, a postit) and are terrible for sharing with a group of users.

Another simple way to improve a password is to use the layout of the keyboard itself. For example, instead of ‘password’, type the letter or symbol directly to the right of each letter: ‘[sddeptf’. Or, if you prefer, do above-left (‘0qww294e’) or above-right (‘-wee305r’).

Don’t think this is a magic bullet; some dictionary-based password cracking tools will try these kinds of ‘shifts’ as well to break your passwords. But, password cracking tools are even more likely to try simple letter/character substitutions, and substitutions like that still require memorization, and may need lead to postits. So, from worst to best,

  • password
  • password1
  • p@ssw0rd
  • [sddeptf
  • dJ2a#0xr
  • ultrasecurepassword

PhoneGap Plugins: Updates to SaveImage and EmailComposer

I’ve forked and updated both plugin on Github. The first allows sending DataURI images as image file attachments via EmailComposer. The second is just compatibility updates to keep the plugin current and working.

How to Upgrade Minecraft to a Pre-Released Version (like 1.0 Release Candidate 2)

First things first: download the client jar from either the original source (probably a tweet by Jeb or Notch) or find the link somewhere else reliable, like the Minecraft forum. Or, for 1.9pre4, click here. For 1.9pre5, click here. For 1.0rc2, click here.

Next, Fire up Minecraft, and go to the Texture Packs screen.

Click the button that says Open texture pack folder and you should end up with a folder open like this.

You may not even have any texture packs, but I have quite a few installed. Now, you want to up go a folder; you can do that by clicking on ‘.minecraft’.

Next, double-click on the ‘bin’ folder and open that up.

You’ll notice that in this directory, there’s a file called ‘minecraft.jar’, and you started this all off by downloading a file called minecraft.jar.

Make sure Minecraft isn’t running.

Rename (or delete) the minecraft.jar already in this directory, and put the new one in this folder. Fire up Minecraft again, and you’ll be running 1.9!

Note: there are two different jar files called minecraft.jar. One is this one that lives in the bin directory, and the other is the Java based launcher that’s cross platform. They aren’t the same.

If you want to share this via a server message or such, I recommend using this link instead: http://bit.ly/mcupgrade

Apple

So, in the last hour or two I’ve spent energy praising Jobs, mentioning some of his flaws, and attacking Apple. So, This is a follow up from what I last wrote about Apple and Steve Jobs.

There is an attitude, encouraged by Apple, that Apple products are undeniably superior products to all others available because Apple made them. I’m not sure where the attitude originates, but I feel I became aware of it in popular culture in the 1990’s. The attitude goes beyond just that Apple makes better products to suggest that questioning whether Apple makes a better product is a poor choice; that Apple has done all the critical thinking and has made the best choices for you so you don’t have to make any choice besides buying Apple.

Further, Apple goes on to push that Apple products are for better people. I like this ad, from Wired magazine in 1999 (source) that associates Apple not only with brilliance but with identity.

With few exceptions (like to avoid self-contradiction), I vehemently oppose this kind of attitude. I am the best person to decide what’s best for me, even better than the late, great Steve Jobs. I take my time to make my decisions and will try most alternatives as I can. I routinely switch through the different web browsers available to see differences and try to find which one is the best for me. While I don’t expect anyone (even myself) to exert that kind of energy before every choice, I do expect to act appropriate to the amount of time they’ve invested in the matter. If someone had only ever driven one brand of car, didn’t know how cars worked, and hadn’t spent any time researching other brands of cars, if they announced that their brand was undeniably the best they’d be viewed as the unreliable source of biased data that they were.

Apple promotes this culture. Genius bars (source) and the majority of the Think Different advertising campaigns are examples of Apple glorifying its user base.

This kind of mentality reminds me of a few other groups that have had a lot of media attention lately. While I can think other examples, I’ll pick on Glenn Beck:

I don’t have strong political opinions, but I identify with the point that Jon Stewart and Stephen Colbert were trying to promote with the Rally to Restore Sanity and/or Fear. They were trying to counter cultural extremes through comedy.

I think that Apple has created extremists and now counter-extremists. To those Apple users who are just using Apple and aren’t oozing superiority at every Android, PC, and other non-Apple customer they meet, I apologize for the gauntlets I throw. Still, Apple seems to be focused on reinforcing the extremes. I can’t help but think that this is the effect that Richard Stallman is hoping will begin to subside with Jobs passing.

It’s the end of the Beta as we know it

Notch posted yesterday, announcing that it looks like 1.8 is the last beta for Minecraft, and 1.9 will be labelled the full release. This is instead of Notch’s previous plan to release 1.8 before Minecon and spend this month bug fixing, optimizing and tuning Minecraft before release.

So, what this means to the Minecraft community is that we need to be testing the pre-releases heavily. The separation between pre-releases and releases is not without its drawbacks, but regardless, it’s the way that Mojang has now been operating.

On the plus side, it means that nearly every major SMP community are all running 1.8 now, while texture pack authors, modders, and people like the Bukkit developers can work on hotfixing 1.8 and developing for the upcoming 1.9.

Unfortunately, it also means that 1.9 is getting very little SMP/CMP exposure. Without any easy for communities to run multiple versions its very difficult for communities to expect all players to patch Minecraft themselves, especially since that it’ll have to be patched again to return to 1.8. Historically, there have been lots of bugs that are only evident in multiplayer; which means, there’s lots of 1.9 bugs that aren’t being exposed well.

Further, a lot of the larger communities had a lot to gain from optimization and tuning. With Notch and Jeb really overloaded just with features and bugs, I’d guess from my own experience that they haven’t been able to spend a lot of time worrying about optimization. I bet they’d be able to make a lot of head way (albeit not being very shiny work) helping smooth out the communication between clients and servers. Most of these large communities (Reddit, Voxelbox, Super Earth, Yogiverse) also are truly dependent on some of the functionality that Bukkit brings, and anything that Mojang can do to support their requirements should be looked at carefully.

These core multiplayer servers are truly the core of the community. Whether through the impressiveness of their content, the skill of the builds or photos and video they produce, they’ve affected the entire player base. Further, since Mojang doesn’t provide any hosting themselves, these groups really are vital to Minecraft. To lose these groups would be extremely detrimental, and I feel like multiplayer really is Minecraft’s future. I think Mojang even sees eye to eye with me on this, as even the mobile edition can both host and join multiplayer games.

So, Notch, let us suffer for a couple weeks (or more?) before MineCon, when these communities can thrash around with 1.9, and you can get a sense of what would really help prove that Minecraft is not only going to keep cranking out features and content, but will become capable of larger and larger servers to keep up with its popularity and player base.

Just used Tumblr’s redesigned customization interface; it seems like an upgrade and looks like it may be based upon ACE (Ajax.org Cloud9 Editor.) The remnants of Mozilla Bespin got merged into ACE, and the editor seems okay, although I did run into a bug where the sidebar was taller than my display, so when I scrolled to the bottom of the Edit HTML pane with arrow keys, I had to do some Web Inspector hackery to get back to the buttons up to (running Chrome 14.)

Just used Tumblr’s redesigned customization interface; it seems like an upgrade and looks like it may be based upon ACE (Ajax.org Cloud9 Editor.) The remnants of Mozilla Bespin got merged into ACE, and the editor seems okay, although I did run into a bug where the sidebar was taller than my display, so when I scrolled to the bottom of the Edit HTML pane with arrow keys, I had to do some Web Inspector hackery to get back to the buttons up to (running Chrome 14.)

What I’ll Remember Steve Jobs For

While there are many things I don’t like about the philosophy that Steve Jobs subscribed to, there’s one thing that I find undeniably admirable about him: commitment.

Jobs’ commitment to standards and vision really allowed the Apple philosophy to manifest itself without carrying along the baggage of convention. NeXTSTEP and Apple have both, at times, shown that its possible for innovation to overcome convenience. Having the will and the drive to see this through time and again is exemplary and few can compare with the effect it’s had on the world.

With computing platforms changing shape and such a strong focus on computing culture and style, I look forward to what will emerge from that fine balance between practical and radical.

New Look for BecauseRobots

So, I’ve made my first pass at creating a Tumblr theme from scratch. The new BecauseRobots is running an HTML5 theme which seems to render properly in Opera, Chrome, Firefox, and IE9+. I’m guessing if your primary browser is IE6 or Netscape Navigator 3.0 you’re probably not interested in much here anyway.

I’ve picked colors from the Tango Desktop Project for my theme. I’ve tried to keep things simple, with plenty of white space, and yet keep as many of the non-tumblr-controlled content fluid width. It should fit even on most smart phones and tablets.

Anyway, enjoy.

My submission into the iMarc Apple Cookoff. I cut up granny smith apple, strawberries, and apple smoked cheddar cheese into appropriate slices. I also threw in a batch of Nishiki sushi rice.

I woven the bacon. I found the biggest, manageable bacon ‘mat’ I could handle was one strip long and half a strip wide. After cooking the bacon, I flipped it over on some paper towels to get rid of some excessive grease, then put it directly on aluminum foil over the sushi mat. I quickly added ingredients down teh center, rolled it up and twisted the aluminum foil together to hold the shape.

I tried cutting some rolls after 20-30 minutes, but they were too fragile. I put the other rolls into the fridge overnight. They were delicate but I managed to cut them up into slices for serving. I served them with maple syrup in place of soy.

If there’s ever a next time, I may see what happens if I mixed something like, BBQ sauce and preserves or such to create a sauce too. Still, it did pretty well (I didn’t win) and I enjoyed proving it could be done.

Better Bash Prompts

After reading Steve Losh’s article on fancy, mercurial empowered Zsh prompts, the idea has been floating around in my head. After checking out an example for Bash on Codeography, it was time. Here’s what I ended up with:

And here’s the source for this:

C() {

	local color=

	if [ -z $1 ]; then

		color="0"

	else

		if [ -z $2 ]; then

			color="$1"

		else

			if [ -z $3 ]; then

				color="$1;$2"

			else

				if [ -z $4 ]; then

					color="$1;$2;$3"

					echo -e "\033[$1;$2;$3m"

				fi

			fi

		fi

	fi

	echo -e "\\[\033[${color}m\\]"

}



sc_rev() {

	local rev=

	if [[ -d ".svn" ]]; then

		rev=$(svn info | sed -n -e '/^Revision: \([0-9]*\).*$/s//\1/p')

	else

		rev=$(hg log -l 1 2>/dev/null | sed -n -e '/^changeset: *[^0-9]*\([0-9]*\).*/s//\1/p')

	fi

	if [ -n "$rev" ]; then

		echo " r$rev"

	fi

}

scsw() {

	local sym=

	if [[ -d ".svn" ]]; then

		sym="$2"

	else

		if hg summary 2>/dev/null 1>/dev/null; then

			sym="$3"

		else

			sym="$1"

		fi

	fi

	echo $sym

}



PS1="$(C 1)\u$(C 2)@$(C 1)\h$(C 2):\w$(C 1)\$(sc_rev)$(C)\n$(C 2)\T$(C) \$(scsw \$ '$(C 1 33)☇$(C)' '$(C 1 34)☿$(C)') "



Got Keyswitches?

Well, the Steelseries 6Gv2 didn’t last long. While I was able to adapt to the differences with the Meta vs Fn key, I could not adapt to the larger L-style enter key, the movement of the ‘|' key and the smaller right shift. So, I returned the Steelseries. While I expect the Steelseries may be better layed out for gaming, it just wasn’t for programming.

This is the the Leopold FC200RL. I decided to stick with the Cherry MX Black keyswitches, as those did have the kind of feel I was hoping for, and while I do still tend to bottom out some, I’m not convinced that the tactile keys would actually change my habits much.

This keyboard is very similar to the Steelseries G6v2, except it has the more traditional, smaller enter key and  two meta keys. Both are tenkeyless keyboards (no numpads), as I think the last time I used the num pad was for Sid Meier’s Pirates in 2004.

I did still make one change to the keyboard… I flipped the space bar. I’m so used to just resting my left thumb on the space bar that the edge of the space bar was a little uncomfortable (just as it was on the G6v2.) Flipping the spacebar basically slopes the spaceboard to match my thumb perfectly, and doesn’t change how it types in the least. While it might look a little unusual if you stare at it, it’s not noticeable at first glance and it much more comfortable.

I do recommend this keyboard to anyone whose considering getting a nicer-than-Dell keyboard to thwack away on. I expect I may get one of these for home as well.

What Mozilla and Mojang have in Common: Release Schedules and Communities

Mozilla Firefox had a fairly slow release schedule up to Firefox 4; roughly once a year. New releases were fairly significant in terms of features, although there were lots of performance and security updates along the way. Especially pre-Chrome, Firefox had a strong community and the addon community really pushed Firefox’s limits; Firebug in particular comes to mind. Firefox addons are required to say which versions of Firefox they are compatible with; which is good, as most Firefox addons are tied to a particular version.

Google Chrome came out and it really raised the bar in terms of performance. Chrome follows a very rapid release schedule getting 3-4 versions out a year. This means that extensions written for Chrome are nearly forced into following the same release schedules.

In practice, extensions are almost always open source side projects and very rarely get the kind of dedicated development time to match Chrome’s schedule. Google chose to allow extensions designed for older versions of Chrome to be installed on newer versions, which leads to a lot of ‘Will it work?’ moments, but since Chrome’s extensions are closer to glorified bookmarklets, often they still will.

Mozilla Firefox is still struggling to get near Chrome’s performance, and one of the decisions Mozilla made was to adopt Chrome’s rapid release schedule. This is terrible to the Firefox addon community. At this point, every Firefox addon requires an update every few months, which is just out of scope for what most of these side projects get.

Enter Mojang. First off; I know Minecraft is in beta, Firefox is not. Minecraft seems to be switching towards an (even more) rapid release schedule. This is dangerous territory, as the game changes so much with every release that even texture packs break every release, let alone the websites (texture pack customizers), mods, server wrappers and variants that the community has built around Minecraft. This really drove home the point to me that community software really can’t keep up with corporate development, as the time investments are just too high for most community members.

I’m not advocating that Minecraft be released more slowly. “Release Early, Release Often” is an excellent decision for Mojang, as it allows the community to be involved with finding bugs and suggestions for feature design. Creating a modding API will also help. Making sure to document or distinguish between which releases will affect the server commands, for example, would help server wrapping software. Lastly, perhaps adding the ability for textures to ‘fallback’ to the default textures when they’re missing from a texture pack would reduce the pressure on texture pack artists to crank out new textures as fast as possible after releases. 

Distinguishing between Android Phones and Tablets

We ran into this today; android phones and tablets were being lumped together, so in particular, the Motorola Xoom got the mobile version of our (iMarc’s) website even when it shouldn’t have. That’s all fixed now; the key is that useragents for Android phones all contain ‘Mobile’ (before Safari) and tablets don’t.