Uncluttered Convenience

Icon

the simplest thing that could possibly work

Uncluttered Convenience

I’ve played with Uncluttered Convenience enough now to know it’s something worth continuing with. I write often, be it code or words, and it’s nice to be able to share it. The main reason I’ve never set up something official is simple: time.

Not necessarily a lack of it, but an unwillingness to start something that would take time on a regular basis. Spending a bit of time setting things up is fine, and enjoyable, but anything I add to my life needs to maintain itself as much as possible. WordPress + SVN + plugins + some hacks = the solution in this case, it seems. I can keep working as I normally do (with a few beneficial additions, even) and the cost in time to maintain things should balance the benefits of being able to share.

I still have much work/play to do, integrating things I’ve written, importing content of various types, polishing the automating scripts, making things look pretty and so on, but at least I have something up, right now, that works and won’t restrict my options in the future much. Keeping files in SVN and written content in a database is about as good as you can get. The handy DrainHole plugin gives me a huge head start on tying the two together.

WordPress is, most certainly, the limiting factor. It would be annoying to change systems, but it wouldn’t be difficult enough to prove a problem and the portable, extensible nature of WordPress makes it unlikely that situation is likely to occur anytime soon.

By reading all of the above, it may be clear why I chose the name Uncluttered Convenience, though it actually came from scanning through the types of things I was going to import and trying to come up with a title that would best summarize them all. I feel strongly about keeping life simple and easy, and my life and writings reflect that.

Filed under: blog

The Government Should NOT ‘Do Something’

Just that. I hear too many people saying “the government should do something!” or the equivalent. The government != surrogate parent. The government, in my opinion, should be nothing more than a system we can use for nationwide issues, and the tools we need to use it are already in existence. Taking responsibility and using it wisely is more difficult, but “with responsibility comes privilege”, as my mother oft used to say. I prefer to keep my choices, my privileges, and maintain the view that the US government was designed (and rightly so) to be “a weak central government”…as my father says.

The anthropomorphizing* of government system into parent is supremely disturbing in and of itself. Because parents are responsible for, and take care of their children, they are also expected to monitor and control their behaviour, shape them according to their beliefs, and a dozen other things I really don’t want the government doing. As an adult I still have parents, but they are no longer in the parent role – they do not set limits or take care of me, though out of affection for who I am I imagine they would were I incapable of it. A system does not feel affection, and I do not trust it to have my best interests at heart. I don’t want it taking care of me, though I don’t mind it ensuring there is a level playing field for all.

Things like education, libraries, highways, patents, etc. I do not mind. Laws saying I can’t smoke crack I mind. It’s my body, and if I want to wreck it that’s my business. Occasionally I find myself thinking along these lines:

“Hmm…I wonder if that’s safe. Well, as there isn’t a law against it…”

When I catch myself I’m disgusted. Laws should not replace thought. I have a theory: humans are lazy. If humans are lazy, and don’t bother thinking things through because there is (or isn’t) a law (‘Warning, hot coffee!**’) perhaps our ability or desire to bother thinking things through will rust, bringing about the need for yet more laws. Like ‘no smoking crack’. Well, duh.

What I’m saying with all of this is that I wish I’d see more people viewing the government as a system to be used and that those with the inclination to speak voice those views. I’m saying more non-politicians should run for offices, simply because they have something to contribute, that more people should vote on what they actually believe and not by party, and that when someone is called for jury duty they should be thankful for that right and judge according to their views. After all, if you don’t believe in a law, even if someone has broken it, you don’t have to convict them – find some links on ‘nullification’. Sssh. It’s a secret.

*sorry, I like that word and there isn’t a good substitute. Anthropomorphizing basically means applying human characteristics to something that isn’t a human.

**The ‘hot coffee lawsuit’ was perfectly legitimate to me – the lady had third degree burns, there had been previous complaints, etc. The coffee was ridiculously, dangerously, hot and they knew it. This doesn’t mean I agree with putting warning labels on hot beverages. It
means businesses serving hot beverages should check the temperature to make sure it’s not going to seriously harm someone if spilled, and people should not sue unless it’s really something to sue over. Lesson: take care of yourself.

Filed under: blog, ,

Online Writing

I look at online writing a bit differently than most – in my mind, it’s a published medium and deserves to be treated with the same respect with which you’d treat a book. Would you publish a book with improper grammar and spelling? Probably not. Nor would you include terminology or slang your readers wouldn’t comprehend. AOLSpeak is only cool with others who also think it’s cool. Most people don’t.

Part of my position comes from the difficulty of expressing yourself in writing to begin with. Lacking body language and other cues you get in person, it’s more difficult to understand what someone means. This is compounded in informal situations like IM messages, chats, or forums. Not only do participants often not know each other in person, writings are more likely to include jokes and emotional overtones that are already difficult to express in writing.

Why make this more difficult with bad grammar and spelling? Why confuse things further with AOLSpeak? If you expect people to treat your writings, and by extension yourself, with respect, you first need to respect what you’re writing, and how you’re writing it. If you think it’s worth people’s time to read, make it worth other people’s time to read. Or don’t write. Don’t waste the time of possibly hundreds of people with something that isn’t worth reading.

Cursing naturally gets included into the above. Think about it a bit.

Another thing worth considering before you hit that button – your writings may be around long after you are gone. What kind of legacy are you leaving? Do you want your grandchildren looking you up online and reading what you’ve just written? What of future employers? Posting under a pseudonym can help, but things get linked to other things which get linked to other things…if you’re not very careful a pseudonym won’t be enough. Even then, someone who is willing to put in an effort can usually find what they are looking for on this ‘information superhighway’.

The best solution here is the simplest. Write what you think is worth writing, and treat it with respect. You don’t have to be nice or respectable – just be true to what you (currently) think and write with some care.

Filed under: blog

Repetitive Code

I’m not sure why, but one of the most common things I find in code that irritates me but isn’t classical ‘bad code’ is repetition. I just spent five minutes looking at some code with about fifty functions that were all doing approximately the same thing.  In most cases, the only difference was a single string.

Just say no to repetitive code. In this case, I’d probably make one function that accepted that changing bit as a parameter. Done. Maybe add in a switch/case statement for the functions with additional requirements if it’s necessary, but stop it with the repetition. It’s annoying to have to look at fifty functions and try to decipher the differences when I could just look at one, and trying to add some additional, say, error checking (which it completely lacks), to that function fifty times would be really annoying.

Now, this same code also has a function that replicates PHP’s file_get_contents function, but I don’t mind rewrites of functions that already exist. I imagine the people don’t know they already exist, and a lack of knowledge of a language is okay with me, it’s silliness like fifty functions that do approximately the same thing that bugs me.

Filed under: blog

OO vs Procedural (not really)

Now, I don’t really want to wade into this mess, but I have a few thoughts beyond my usual canned ‘right tools for the right job’ answer. It’s along the same lines, though. Often my programming starts out as some small hack (or ‘prototype’ if you want). It is, naturally, procedural – that’s what I prefer. If it gets added onto enough, it starts to get messy, and I know it’s time to ‘refactor’ as I’ve heard it’s now called. Sometimes I’ll switch from procedural to OO style here (granted, sometimes I know I’ll be wanting to use one or the other to begin with). The key, for me, is writing backwards.

I look at either the UI or the way I want to use what I’m writing, depending on the situation. Usage is always the most important part of design. You write something once, but it will probably get used a great many times. If it’s a pain to use or find, I’m doing something wrong. So next I ask myself ‘how do I want to use this?’ and write it as though the ‘meat’ of the program were already in existence (some of it is). Whether it’s OO or procedural depends entirely on how I want to use it. This is similar to my method of writing (basic, imaginative) ‘documentation’ before writing the code. They both give a roadmap and a sort of progress bar I can use while working.

Now, this probably works best with a certain style of programming, namely, separating the ‘meat’ from the logic. Preferably separating presentation as well – MVC if you want. I’m saying write the logic first, as you’d prefer to be able to use it. Then write what you need to so it works. It takes some thought as to how you’re going to write said ‘meat’ while you’re writing the logic, and it’ll likely change a few times, but I usually end up with something that’s a pleasure to use, rather than a confusing mess. Yes, this is a big reason we have UML, but you don’t need to know or use UML to utilize the ideas.

The same principals could be applied web design: design around the content, make it a pleasure to read, get to, and use. Then design the (rest of the) stylesheet. Because that’s really all OO vs Procedural amounts to: stylesheets. It would be foolish to use some styles on some sites, it would be foolish to use certain programming styles on certain applications. You can get the job done either way, but the process and results will vary greatly. Programming styles (and there are more than just OO and procedural) are important, but I think they should be based around usage.

Filed under: blog, , , ,

I Love Flash, I Hate Flash

Nine times out of ten, when I see flash on a website It’s annoying. It’d be 99% but I’m excluding banners, as those are always annoying…they’re just more annoying in flash. Now, if something is annoying users 99% of the time, it’s going to get a bad reputation, even if it has legitimate uses. My father was quite pleased to know there was a flash blocking addon for Firefox, which he then installed, and he’s not the only one. The problem is, there are very legitimate uses for Flash. Video and audio are good examples, and that tenth time is almost always due to video or audio.

The problem lies in how Flash is used, and Flash is quite easily abused. Not necessairly because of Macromedia’s software, but because of the widespread acceptance of Flash, and large flash files. Most people on a website are there looking for something, and it isn’t likely they’re looking for your flashy design. They want to find what they’re looking for quickly and get whatever they’re trying to do accomplished. You can entice them with other things they might like, but you can’t entice them with bling alone. Content will always be king. Focus first on content.

Anything that can be used to help people find or use the content they want, or ensure the content is available to them, is good in my book. We’ll call this accessability and functionality, as those words are well known. Flash can be used to create really nifty user interfaces…but this is often useless for website design.

Because people are accustomed to standard designs, you’re probably not making things easier unless you follow those standards, and then…why use flash? It makes a page less accesable, and adds to download times. If you can afford the extra bandwidth and the users you want will be able to access things, by all means go for it. There is nothing wrong with making flashy sites if the site remains accessable and easy to use (this includes navigation and download times).

Here’s a common scenario for me: I go to a website which has a horizontal drop-down menu across the top of the page, and some flash underneath it for oomph (you know the design I’m talking about). It takes awhlie to download, and I’m irritated the site is wasting my time by downloading data I don’t want to see (usually pretty pictures and marketing fluff), but eh. I get really irritated, though, when I go to use the menu and the drop-downs appear underneath the flash. The designers who decided to use Flash in such a way have now not only irritated me, but made it so I cannot even use their site. For some oomph. This happens all too often – even my banking site does this. Not okay – I’m not going to hack the stylesheets for every broken Flash site I want to use

Filed under: blog, , ,

Colorado Springs Rainwater Tax

Having Their Cake and Eating It, Too

While visiting my father in Colorado he mentioned a ‘rainfall tax’, wherein he is charged for the disposal of his rainwater based upon how much land he owns in the city. I found this a bit absurd, having a tax beyond traditional property taxes, but where costs are high and money is needed they will find a way. Rainwater drainage is very important, and for a variety of reasons. During the latter half of my visit, when I was with my mother, I mentioned setting up a rain barrel. She said this was not legal. Say what? So dealing with rainfall is a costly problem that I must pay for but you’ve made it illegal for me to help. You want the rainwater and you want me to pay for it – isn’t that kind of like having your cake and eating it, too?

So people must use the purified city water they pay for to water their plants. The plants don’t need the expensive water treatment, nor are they likely to appreciate the PH, additives, and temperature, but it’s unlikely to kill them. However, what happens if someone has a water softener? Bottled water for the houseplants? Come on.

Now, I understand the reasoning behind all of this, but it strikes me as absolutely absurd. They need the rainwater, everything they can get, as water is scarce and highly contested – the Colorado river can only supply so many states with so much water, and it’s stretched beyond logical math already (they’ve allocated more water for usage than actually exists). So much like the state of Alaska claims mineral rights on all land, the state of Colorado claims water rights…on all water. Yes, all. You need mineral rights in Alaska, and water rights in Colorado if you want to use those resources on your land – in Colorado that includes what falls upon it from the sky and seems to even include what drifts onto it in the air.

The question for me is really who benefits. Obviously residents benefit from a good drainage system. Who, though, uses this water we’re paying to channel? Chances are it’s large agricultural farms using irrigation. No purified city water for their plants. This, hopefully, returns to people in a lower cost of food, but I think there is an equaly valid benefit to people using rainwater for their gardens – the cost of channeling and purifying the water dissapears, and it improves awareness of the problem – barrels underneath rain gutters are a visible symbol of conservation. Granted, people might go over their water ‘quota’ in drought times, but…ugh. You can only collect as much as can fall on your roof and be stored and/or used.

The benefits are greatly increased if people are using said rainwater to water food gardens – you can then eliminate transport costs for that food, lower the amount of water the big agricultural farms need, and hopefully lower the amount of chemicals going into the ground, as home gardeners using rain barrels are probably more likely to be using other ‘green’ gardening methods.

Filed under: blog, , , , ,

What Linux Needs

In My Humble Opinion.

What Linux needs is something in between GUI and command line. The GUI makes things intuitive, and can be a great tool for learning, but not if it always hides things behind the graphics. In many cases, the command line is faster, more versitile, and more powerful. However, it is anything but intuitive.

What I think would be useful, and there may well already be a way to do this, is to have a terminal that would show commands that are being run whenever possible. If I click a button, I want to know if there’s a command to do that instead. When I click “next” on xmms, I want to see:

xmms –fwd
or
xmms -f

pop up in that terminal.

When I select the nautilus file browser from a menu I want to see

nautilus –browser –no-desktop

Then, I never have to dig up the program/window/menu and click again. Unless I forget the command. Alternately, you could force it upon “newbies” by displaying it status-bar fashion like browsers do, only instead of the URL of the page you’re visiting, display the command…or hotkey. Better yet might be mini command lines in that status bar area. Not only can you see commands, you can type them. Ooo. Baby steps.

It’d also make troubleshooting much easier. For example, If something didn’t work, or didn’t work as expected, at least you’d have some sort of idea of what was going on. Right then, right there, and even if there wasn’t documentation or –help.

[ and why for goodness sake doesn't ctrl+a work in the nautilus browser location bar? Ugh! ]

Filed under: blog, , ,

Desktops and GUIs: User Friendly or Life Shortening?

I had the good fortune to be born to a wonderful man, who was (and is) a wonderful father and whom I feel privileged, as an adult, to call a friend. I was also fortunate that this wonderful father of mine made computers available to me at a young age. There was an Amiga. I could make it talk. It was better than cheese. There was a Commodore, attached to an old black-and-white TV that I spent hours on, writing “programs”, just to have them deleted when I turned it off.

Later there was a clone, running the Lotus Magellan OS. I played with that for years, and had my first experiences with BBS systems and MUDs on that. This was my equivalent of Windows 3.1. Then came the Christmas Computer with the shiny new Windows 98 on it. Now wasn’t that something? I got into the habit of digging around that computer at night, trying to figure out what every program and file did. Took rather a long time, and I never learned it all, but I learned a lot. The old Lotus computer went to my mother…and has since become FrankenComputer. Yes, “it’s alive”. It’s also running Windows 98 now, though it’s still attached to it’s old dot matrix printer. It also says “Mommy’s Computer” in my own handwriting when it boots.

In college another wonderful man showed me the wonder that was LiteStep. LiteStep is a shell replacement that allows you control over your desktop, and attempts (attempted?) to make Windows behave more like XWindows on *nix platforms. This meant nothing to me until recently, but I only went back to the original windows shell if there were problems with some program I wanted to make sure had nothing to do with LiteStep. They never did.

I loved LiteStep, and I’ve probably tried to convince most of the people reading this to try it at some point. It has two main caveats as I see it:
1) you can make your desktop look like whatever you wish
2) you can make your desktop act like whatever you wish

The biggest drawback is finding a decent theme. LiteStep in and of itself doesn’t -do- anything, it simply allows it to be done. Modules provide functionality and themes choose what modules to load, where to put them, and how to display them.

I state the above as a bit of background, as it may give insight into what follows, and it’s likely entertaining to more than a few to know there’s a computer out there that says “Mommy’s Computer” in my handwriting whenever it boots.

After some seven years of having near-complete control over my desktop and it’s behaviour via LiteStep, and a fondness for tweaking and coding, I ended up with a system that fit me like a glove. Working on computers that were not mine always brought home how much faster I worked with my customized desktop and how much more enjoyable it was to work. I’ve never regretted the time I spent coding my desktop nor the effort to remember how I’d set things up.

And I’ve always felt a bit of anger toward GUIs.

GUIs can be a wonderful tool, and appropriate in some circumstances, but by and large I prefer them be a guide toward more efficient ways of doing things. I dislike menus with options that have no hotkey listed by them. I really dislike it if that option is useful and doesn’t even Have a hotkey. Why? Because using a mouse is usually slower than using a keyboard, and it’s a bit like teaching people to believe whatever they see on TV. It’s not in the options menu? Then it can’t be done.

I think pretty GUIs steal years of people’s lives.

People often argue “but it’s only a second or two longer”. Yes, it may only be a second or two, but seconds make minutes, and minutes make hours. If I average sixty actions per hour (and I average a -lot- more than that) and each time I move from the keyboard to the mouse, click for a menu or shortcut, bring up the option/url/file I wanted I waste only two seconds…that’s two minutes every hour. I spend at least eight hours a day on my computer. That’s over a quarter of an hour, every day. Were I to look at the actual numbers, I’m betting it’d be closer to an hour or more every day.

I have better things to do with my hours, thank you.

Regaining those hours is simple, and requires one thing: watch what you’re doing. Watch for hotkeys within programs and use them – don’t forget about “global” hotkeys like alt+tab (if you hold down alt and press the tab key you can select which window you wish to focus on). Watch to see what programs you use most and assign hotkeys to them. Often you can assign something more specific than “run this program”. I had several “run notepad” hotkeys, but each one opened a different file (okay, so it was Metapad rather than Notepad). Likewise with Firefox opening different URLs. Those things that don’t deserve hotkeys of their own can have shortcuts via the desktop or a custom menu system (available in LiteStep). Watch for groups of actions that you can automate – via a program, script, batch file, or whatever. Maintenance is a good candidate for this. Look for tools that can help you with the little things. For example, I had something that would check my email accounts periodically and if I had new mail, it’d make a little letter icon glow green on the bar I had at the top of my desktop. I had controls for my music player on that bar, as well as hotkeys, I also had an area to type in commands, and a dropdown area that would show stats for my computer (temperature, memory, fan speed, etc). Eventually you may want to move beyond such things and into the wondrous lands of virtual desktops and window groups. If you’re interested in a jump-start, try unplugging your mouse for an hour or so. Preferably when you’re not planning on surfing teh interweb.

I’ve found that the easier it is to do something, like look up the definition to a word, the more often I’m likely to do it. In this way things are not only faster, but more productive.

I write this as I look at a barren desktop I’m preparing to customize. Even barren as it is it reminds me of my old LiteStep theme and a bit of my Amiga, though it’s prettier and infinitely more powerful. I’m playing with Enlightenment (DR16), a windowing system for Linux that seems to be highly functional/customizable and minimalistic, yet with the eye candy that I find makes the time on my computer just that much better. If I’m not mistaken, it’s exactly what I’ve always wanted.

Filed under: blog, , ,

Photostream

IMG014-1.jpg

Morning Walk, Fairbanks AK

Mudderflies

More Photos

Twitter Updates

Recently Bookmarked

Follow

Get every new post delivered to your Inbox.