Tuesday, September 28, 2010

Picking the Right Password

An Appetizer...


I've been spending a lot of time lately, wondering just what I could talk about that would be perfect for me to comment on. What thing could I talk about better than anyone else on the face of this planet? What thing could I shine light on that would thrill and enthrall all who read it?

...

Nothing really.

Now, I'm not being self defeatist, I'm being practical. A year and a half out of university with an abundance of enthusiasm and a smidgen of luck, I have a great job, but no real expertise to speak of.

That's when it hit me: Take it down a notch. Start from the beginning (I hear it's a very good place to start).

What's something everybody uses, something basic... Passwords.

Passwords are something of a nuisance to everyone. A necessary evil that, one way or another, everyone encounters. Different security policies force different password requirements - punctuation, capital letters, numbers, more than six characters, less that sixteen...

What Not to do


Before getting into some tips on what should be done, here are a few suggestions on what not to do.

Don't...
  • Don't use whole words, phrases or names. - If someone wants your password, it's easy to link escapades of Fluffy to your account... assuming it's not a more high-tech dictionary attack, that is.
  • Don't use easy passwords - "12345", "abc123", "password", "princess", "qwerty"... any of them familar? If so, it's because millions of other people have the exact same password!
  • Don't use your username - it's practically giving it away
  • Don't use the same password everywhere - not all sites are created equal. Some of them are in it for the money, and that means selling your data. Usernames, passwords, age/sex/location... the sky's the limit. Keeping a different password for get-free-stuff dot something-or-other and your bank... probably a good idea.

The Meat of the Matter


So, how to choose something memorable, but something that still complies with all these sometimes-conflicting rules?
  1. Keep it simple! - pick something you won't have a hard time remembering.
  2. Mix it up - Use camelCase (caPiTalIziNg random letters), l33t (numbers and symbols in place of letters)
  3. Relate it to what you're using it for - Having a hard time remembering what your password is for dizzyducksgoquack dot com? Start it off with a DDGQ and end it off with your street's first letter and house number, for something like DDGQsj129. Make sure you can remember it later
  4. Shorten phrases by picking the first letter of every word - Like so: spbptflofw (could also be: 5pBp7f103w, 5PbP7f1oew, etc.)
  5. "What about puncuation?" one might say. What about it? Use it! - Wap?0M5.u1!

Obviously there are other factors to contend with... policies that force password changes every 30 days or have specific requirements have to be taken into consideration. In the end, it can be worth it. With access logs keeping tabs on many user activities, it's easy to be caught with a hand in the cookie jar - but if you haven't eaten the cookie, it's probably not such a good thing to look like you did.

- - - - - - - - - -
But soft! What light through yonder window breaks?

b5VV17yVVb

Sunday, May 23, 2010

Changing settings in Ubuntu

The new Ubuntu 10.04 window button layout was a surprising and unexpected change. Thanks to howtogeek for helpful instructions - and only the second hit on a Google search for: "ubuntu 10.04 close button".

To summarize (without all the nice screenshots):

The Problem

Ubuntu 10.04 window buttons (close, minimize, maximize, etc) are on the left by default.

A Solution

Make configuration changes to move the buttons around:
  1. Open the gconf-editor
    1. ALT+F2 - open the Run Application window
    2. enter gconf-editor
    3. press Run
  2. Expand Applications > metacity > general
  3. Double-click button_layout - edit the button order
  4. Enter menu:minimize,maximize,close or :minimize,maximize,close - change the order of the buttons as desired.

Button Layout Syntax - An Aside

You can place different buttons in different places, as determined by their relative order and a couple of syntactical symbols:

: (colon) is like the 'middle' of the window bar. Anything to the left of the colon will be on the left-hand side. Anything to the right will be on the right-hand side. So what if you want to put something in the middle of the window? Dig deeper!

, (comma) is the separator between elements that you want displayed.

menu is the menu button. It has functions that can also be performed by right-clicking on a window's bar, things like "minimize" and "move"

minimize is the one-click button that minimizes the window it's associated with.

maximize is the one-click button that maximizes the window it's associated with.

close is the one-click button that closes the window it's associated with.

Here endith the aside.


- - - - - - - - - -

In order of preference (pun intended):

menu:minimize,maximize,close

:minimize,maximize,close

minimize,maximize:close

maximize,minimize:close

Saturday, May 22, 2010

Ubuntu Rant and Holler

Ubuntu Saga: Upgrade The Second

I upgraded to Ubuntu 10.04 today. I say 'upgraded', but what I should say is 'installed'.

With the new installation, everything's shiny and new: distro, themes, backgrounds... configuration settings...

I started an official upgrade from 9.10 to 10.04 and it failed miserably - as it did when I attempted an upgrade from 8.10 to 9.04 almost a year earlier. Before the upgrade completed it hung, stealing my time and my GUI interface. Luckily, the command line still worked, so I was able to back up my data and start from scratch with a LiveUSB.

Hence 'installation' instead of 'upgrade'. Hence new configuration settings.

Usability

I logged into my completely new Ubuntu 10.04 installation and the very first thing I noticed: Left-hand window controls. Like a Mac.

Now, I have nothing against a Mac per se, but I do have a distaste for usability changes without gain. In my mind, this was not the brightest move, and I don't understand what inspired this odd decision. How is it useful to make a fairly significant usability change ten versions and several years in?

On the plus side, I now know where to make major configuration changes - something I had neither the interest, nor motivation to do in the past eight years that I've actively used Linux.

- - - - - - - - - -
If (!system.Upgrade()) {
frustration++

system.data.backup()
sleep(60)

install = new Installation()
install.Start()
sleep(60)

if (install.window.alignment==LEFT) {
frustration++
install.window.alignment.ChangeAlignment(RIGHT)
}
}

Wednesday, January 13, 2010

Wiki world

As part of my foray into the wiki world of common good, I've written a small, but effective little script for automating conversion and reduction of JPG format images to PNG images of a specific size, using a tool called ImageMagick:
#!/bin/sh
for img in `ls *.jpg`
do
baseimg=`echo $img | sed s/\.jpg/\.png/`
convert $img -resize '300x300>' $baseimg
done

Certainly not the most versatile piece of code (yet), but it was written in minutes and has saved me quite a bit of time so far. If/when the need arises I'll modify it (and post it here).

Enjoy!

- - - - - - - - - -
ImageMagick does a number of things:

Sunday, January 10, 2010

Brave New World

After six months of shell scripting in the hopes of doing some more in-depth 'real' coding, I was laid off (budget cut-backs, poor economy in the US where my employer was based).

A week before typical Christmas holidays, and with only six months of experience but a bundle of enthusiasm I quickly found myself another (dare I say 'better'?) job writing custom aspx/C#... or at least I will be writing custom aspx/C# once I get past the preliminary learning curve of installing our product for our customers.

That brings me to a train of thought that has me wondering: How many other 'programmers' spend more time on installation, minor configuration, manual testing (not coded 'unit tests') and the like? Is it because I don't have experience that I'm pushed to these tasks? Is this the realistic expectation for the future, or do I have some hope of actually doing the work that I have been trained to (and love to) do?

I'm generally an easy person to please. Give me a work environment where the dress-code is clothing, the coffee and water never run dry, my co-workers aren't impossible to tolerate, and the keyboard isn't m ss ng the letter 'I', then I'm happy to go for a good six to twelve months just on those criteria alone.

But what about after those twelve months?

*raises glass* Here's to hoping the next year brings many coding challenges and happy times.

- - - - - - - - - -

Algorithm for ensuring job satisfaction:
if coffeepot.size == empty then: coffeepot.fill
if self.coworker.attitude == amicable then: smile; else: self.hopefor(best)
for letter in keyboard.letters:
if letter.value == null:
newkeyboard.get
Rinse and repeat ad nauseum