Rick's blog

Everyday software that I can't live without

I end up reinstalling operating systems a lot, and most of the time that operating system ends up being Windows much to my best effort.  I just wanted to throw out a quick list of essential pieces of software that I end up needing on every new installation that I complete.

  • Agent Ransack - a free non-indexed file searching utility that I prefer over the indexed Windows search.  Allows for searching inside of archived files, as well as regular expression-based searches.
  • BareTail - a free version of their very flexible file tailing program.  Allows for tabbed file viewing, as well as line highlighting.  Essential for anyone interacting with servers of any sort.
  • Mozilla Firefox - pretty self-explanatory free web-browser.  I hope you are viewing this post on either Firefox or Chrome, although Firefox has seen some (perceived) performance slowdowns in the past couple of years.
  • Google Chrome - my new go-to free web-browser.  Lacks some of the support that Firefox has gained, but performs much quicker and does not degrade when left open for long periods of time, often weeks.
  • Notepad++ - the must have for anyone editing text files.  Whether they are coding projects or simple notes, this powerful open-source text editor is what the Windows Notepad could only hope to be.
  • 7-zip - an open-source file archiving utility that can handle almost any form of compressed file formats. 
  • Filezilla - the hands-down best FTP client available, and it's open source to boot.  I use this everyday and even on all of my home computers.

These are the handful of programs that I need to survive my interactions with any Windows computer.  Feel free to let me know of any positive or negative experiences with these products.

The amazing, wonderful ... iPad???

So maybe I lied about posting more once I started using Qumana. But as the saying goes, the best laid plans... Anyway, I am now typing up this post from a new iPad that I have for work purposes. I've played with it a couple times since the release, never looked at it from the standpoint of a business productivity tool. I was initially impressed with the on-screen keyboard and it's simplicity. However, the more I type, the more unnatural it feels. But everything is typed quickly and correctly. Go figure! I just can't quite get used to it yet. But aside from that, the only real negative that I have encountered is the inability to run applications in the background. I would love to be listening to my Slacker Radio channel while typing this. But that's what I have my Droid for, I guess.

There are a number of great enhancements from the iPhone interface. The Settings app has some very functional upgrades, namely moving the VPN toggle switch up a level for easier access. The VPN functionality seems a lot more stable as well. I've only played with a couple apps so far, as I search for UI inspiration. I can definitely see some niche uses for this device, which I would write apps for, if only it weren't in Objective-C.

Anyway, I will try to not be as delinquent with future posts, what with my abundance of free time and all. Look for some more useful and useless Android apps in the future as well.

Tags:

Leap Year? We're talking 'bout Leap Year?

Apparently a bad calculation of what is a leap year crippled the majority of Sony's Playstation Network.  Obviously, this had to happen once I finally had time to play my PS3, but nonetheless I was able to hold off and not corrupt my system data.
Looks like Sony's programmers missed this little calculation when programming the machine that "does everything":  (I grabbed this from my high school AP Computer Science projects):
bool Leap(int year) {
   bool leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
   return leap;
}

Now hopefully I can find time to play my working PS3 before the next actual leap year.

Tags:

Remote blog editing...

This is my first post using Qumana, an offline blog editing tool.  Hopefully this will help me to post more frequently as I usually never find myself near an internet connection when I have a thought I must absolutely share!  Look for much more frequent activity in the coming weeks...

Tags:

Runtime detection of Dojo Widget types

I ran into the problem of needing to determine at runtime the type of Dojo Widget (er Dijit Widget) I was receiving events from. I didn't think this would be too hard, as I figured I could use dojo.byId() or dijit.byId() and some method or property would point me in the right direction. This unfortunately was not the case. <frown>

After much scouring and eventually console.debug'ing widget.toSource(), I was able to find the hidden attribute -- as denoted by the underscore in its name - _stateClasses. This attribute returns a string like dijitTextBox or dijitComboBox. This was necessary to determine whether or not I should be querying for widget.attr("value") or widget.attr("displayedValue"), and passing these values into the rules engine that I was creating. With a simple switch statement on the result of widget.attr("_stateClasses"), I can grab the correct attribute needed without the need for some complicated logic comparing the values of value and displayedValue.

Hooray for Javascript's Object.toSource() method!!!

Mostly Cloudy

It seems that these days cloud is just as overloaded a word as service. If you're in the cloud, does that mean that you are using someone else's software on their servers, are you running your own software on someone else's servers, are you providing the servers for others to run software on, etc.... As you can see, embracing the cloud is not one simple action. To try and bring this down to the simplest level to which I would convey the cloud concept to the computer illiterate, running with the cloud comes down to two simple roles: provider and consumer. Are providing software/services/hardware to the cloud, or are you consuming them? These roles however need not be mutually exclusive. One can both provide to and consume from the same cloud.

To consume pieces of the cloud, you essentially go to a site and just start using it. This can be a desktop e-mail replacement (see GMail), a targeted community site for business enablement (see BPM Blueworks), or an off-site synchronized backup service (see Dropbox). The common thread across these services is a single point of entrance and that is the only address you will ever know. It does not matter whether your data is stored in California or Maine, whether the actual host you are working on is running in Dallas or Seattle. The rich-internet application, paired with the cloud, moves much of the desktop capability into the browser. So instead of needing to install an application on your desktop, just point your browser to the correct location and you are off & running.

To provide pieces to the cloud, you can either provide hardware or software. To provide hardware, you'll need to dynamically or predictively allocate system resources, usually across multiple sites (see WebSphere Cloudburst Appliance). To provide services, you will generally implement a security-enabled web application that can be accessed from multiple points, be it a browser, appliance, or mobile device. You will no longer need to manage an install base for each set of users. It's almost the Java philosphy of write once, run anywhere applied to application consumption -- deploy once, use by anyone.

The biggest advantage of the cloud is that 99% of the people in the cloud do not even know it. There is no need to address the fact that one is using a cloud-enabled application. One of my biggest goals for software is it should just work. Out of the box, with little to no configuration, the general user should be able to navigate. The cloud model allows users to sign up and start leveraging whatever is being provided.

Feel free to add comments to below, and build on a working defintion of cloud.

The postings on this site are my own and do not necessarily represent IBM’s positions, strategies or opinions.
No compensation is received for product mentions on this site. All references are due to positive personal experiences.