Divide by Nought

(Mostly) Free Software Tools

with 2 comments

My list of good free software (at least most of them) tools for common operations for Windows and as much as possible Linux & Mac:

Written by me

Monday, February 9, 2009 at 8:12 pm

Posted in Software

Windows Path Compatibility

with one comment

There are lots of options when storing application data (that is, non-user data) in Windows.  Microsoft defines environment variables for a number of them and have a couple documents that list them.  I’ve yet to find a source that pulls all the information together.  This is the information I’ve collected to at least help make reasonable decisions about where to store application specific data for applications that are expected to exist on multiple versions of Windows.

Assumptions

  • Unmodified environment variables represent the appropriate location (i.e. a Microsoft standard/default) for certain types of data.
  • Application data is user-specific data used by the application; not user’s document’s etc.
  • Program data is non-user-specific data used by the application; again, not user’s documents, etc.

The last 2 assumptions are based on how Microsoft sets up the default Windows environment variables (“variables”). Essentially that application data is always in a user’s home location and program data is not.  The term “program data” is new to Windows Vista/7 but the concept was in Windows XP as application data for all users.  At least kind of, more on that is below (under the heading “Inconsistency between AppData & ProgramData on Windows XP and Widnows Vista/7”).

Local, LocalLow and Roaming Application Data

Windows Vista/7 introduced the idea of local and roaming application data; in  Windows XP application data is just application data.

The follow is from Microsoft’s Managing Roaming User Data Deployment Guide (it references Vista but seems to hold true in Windows 7):

Windows uses the Local and LocalLow folders for application data that does not roam with the user. Usually this data is either machine specific or too large to roam. The AppData\Local folder in Windows Vista is the same as the Documents and Settings\username\Local Settings\Application Data folder in Windows XP.

Windows uses the Roaming folder for application specific data, such as custom dictionaries, which are machine independent and should roam with the user profile. The AppData\Roaming folder in Windows Vista is the same as the Documents and Settings\username\Application Data folder in Windows XP.

Roaming data (data in the AppData\Roaming directory) roams in the context of Domains.  That is, a user that exists in a domain will have the same data on all computers within that domain.

LocalLow is used for low integrity data for things like Internet Explorer add-ons when run in protected mode.  But what is a “low integrity” data?  This gets into the world of system security and execution rights. Integrity levels are what’s used to assign default security tokens.  Generally speaking something is low integrity if the originating user cannot be authenticated.  This is pretty uncommon for most applications so really only needs to be considered if the application uses user created executables/plugins.  For more information this is a good starting point: http://msdn.microsoft.com/en-us/library/bb625963.aspx

Inconsistency between AppData & ProgramData on Windows XP and Widnows Vista/7

In Windows XP there is a variable for an “all users profile” (%ALLUSERSPROFILE%) but not an “all user’s application data”.  Whereas in Windows Vista/7 %ALLUSERSPROFILE% points to the same place that  “program data” (%PROGRAMDATA%) variable points to.  This shift makes sense given the assumption that program data is application data that isn’t user specific.  However, it also creates a conflict between how data is represented in Windows XP and Vista/7.

In Windows XP it’s appropriate to place user specific application data in %APPDATA% and the same is true in Vista/7.  In Vista/7 it’s also appropriate to put non user specific data in %PROGRAMDATA%, which is the same as %ALLUSERSPROFILE%.  However, in Windows XP %ALLUSERSPROFILE% generally shouldn’t be the final resting place for application data; it should go one directory further into “%ALLUSERSPROFILE%\Application Data\”.  Of course placing application data directly in %ALLUSERSPROFILE% isn’t really that big of a deal (Microsoft does it) but it is inconsistent with how user-specific data is handled.  This isn’t a critical point but it’s good to keep in mind.

From Wikipedia:

Variable Windows XP Windows Vista/7
%ALLUSERSPROFILE% C:\Documents and Settings\All Users C:\ProgramData
%APPDATA% C:\Documents and Settings\{username}\Application Data C:\Users\{username}\AppData\Roaming
%COMPUTERNAME% {computername} {computername}
%COMMONPROGRAMFILES% C:\Program Files\Common Files C:\Program Files\Common Files
%COMMONPROGRAMFILES(x86)% C:\Program Files (x86)\Common Files C:\Program Files (x86)\Common Files
%COMSPEC% C:\Windows\System32\cmd.exe C:\Windows\System32\cmd.exe
%HOMEDRIVE% C: C:
%HOMEPATH% \Documents and Settings\{username} \Users\{username}
%LOCALAPPDATA% C:\Users\{username}\AppData\Local
%LOGONSERVER% \\{domain_logon_server} \\{domain_logon_server}
%PATH% C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{plus program paths} C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{plus program paths}
%PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.WSF;.WSH .com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh;.msc
%PROGRAMFILES% %SystemDrive%\Program Files %SystemDrive%\Program Files
%PROGRAMFILES(X86)% %SystemDrive%\Program Files (x86) (only in 64-bit version) %SystemDrive%\Program Files (x86) (only in 64-bit version)
%PROMPT% Code for current command prompt format. Code is usually $P$G Code for current command prompt format. Code is usually $P$G
%SystemDrive% C: C:
%SystemRoot% The Windows directory, usually C:\Windows, formerly C:\WINNT %SystemDrive%\Windows
%TEMP% and %TMP% %SystemDrive%\Documents and Settings\{username}\Local Settings\Temp %SystemDrive%\Users\{username}\AppData\Local\Temp
%USERDOMAIN% {userdomain} {userdomain}
%USERNAME% {username} {username}
%USERPROFILE% %SystemDrive%\Documents and Settings\{username} %SystemDrive%\Users\{username}
%WINDIR% C:\Windows C:\Windows
%PUBLIC% %SystemDrive%\Users\Public
%PROGRAMDATA% %SystemDrive%\ProgramData
%PSModulePath% %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\

Written by me

Friday, February 11, 2011 at 12:30 pm

Posted in coding, Software, System, Windows

Windows Explorer Arguments

leave a comment »

The options that you can use with Explorer.exe are /n/e/root (plus an object), and/select (plus an object).

Option Function

   ----------------------------------------------------------------------   
   /n                Opens a new single-pane window for the default
                     selection. This is usually the root of the drive that
                     Windows is installed on. If the window is already
                     open, a duplicate opens.

   /e                Opens Windows Explorer in its default view.

   /root,<object>    Opens a window view of the specified object.

   /select,<object>  Opens a window view with the specified folder, file,
                     or program selected.

   Examples
   -----------------------------------------------------------------------
   Example 1: Explorer /select,C:\TestDir\TestProg.exe
              Opens a window view with TestProg selected.

   Example 2: Explorer /e,/root,C:\TestDir\TestProg.exe
              Opens Explorer with drive C expanded and TestProg selected.

   Example 3: Explorer /root,\\TestSvr\TestShare
              Opens a window view of the specified share.

   Example 4: Explorer /root,\\TestSvr\TestShare,select,TestProg.exe
              Opens a window view of the specified share with TestProg selected.

 

From: http://support.microsoft.com/kb/314853

Written by me

Thursday, January 6, 2011 at 3:59 pm

Posted in System, Windows

A more rigorous way to use the SCAMPER brainstorming method

leave a comment »

If you’re not familiar with it, SCAMPER is a brainstorming method for augmenting or “creating” new ideas, methods, etc.  The basic process is briefly described here:

How to use SCAMPER on eHow.com

This method is fine on its own and can be used without modification.  However, it can be useful to go further by redeploying the same process against its results.  In other words:

  1. Go through the basic analysis.  As you’re doing so create your list of ideas.
  2. Once you’ve complete the first pass go through the list and re-apply each of the 9 principles to each item in your list.
    1. In addition to factors outside of your list, for substitution, combination, adaptation and elimination consider whether other items on your list could be applied to the current item.
  3. Make note of any new ideas that come to mind.
  4. Repeat this process as many times as desired using the newly emerging ideas.

The point is to encourage more in-depth understanding of the ideas and generate more varied output.

Written by me

Wednesday, September 15, 2010 at 1:08 pm

Intergalactic Software publishes The Wedding Checklist

leave a comment »

Intergalactic Software has published a new application to the app store.  It’s great for determining what you need to do when planning a wedding.  Check it out here: The Wedding Checklist, or view it in iTunes.

Written by me

Tuesday, August 24, 2010 at 1:03 pm

Posted in Productivity, Software

EVO 4G vs iPhone 4

leave a comment »

Both the EVO 4G and the iPhone 4 are coming and they both look good.  Here’s how they stack up:

Physical Dimensions
4.8 x 2.6 x 0.5 inches @ 6 ounces (EVO)   vs   4.5 x 2.31 x 0.37 inches @ 4.8 ounces (iPhone)

The iPhone is smaller in every dimension including weight.  The only reason bigger would be better here is if you wanted a larger screen (or a better paper weight).  So, lets look at that…

winner: iPhone 4.

Screens
4.3 inches @ 800 x 480 (EVO)   vs   3.5 inches @ 960 x 640 (iPhone)

Having a larger window into my data would be great but I’ll take the higher resolution on a smaller screen for 3 reasons:

  1. This is still a phone and I want it to fit neatly into my pocket; larger screen = larger physical dimensions.
  2. Although 3.5 inches is smaller, it’s also same as the current iPhone, which has been working perfectly fine.
  3. The iPhone has more pixels and in a smaller physical space; these are both good things for image quality, crispness, and clarity.

While we’re talking image quality and detail, lets talk cameras…

winner: iPhone 4.

Camera
8MP (EVO)   vs   5MP (iPhone)

It’s hard to make the argument that megapixels really don’t mean that much, because these days it’s all you hear about…unless you’re really paying attention.  And if you are paying attention then the factors that Steve Jobs talked about in his keynote are very important.  Then again, none of the demo images at the keynote really demonstrated low light photography, which was part of his argument.  For the moment I’m optomistic, but we’ll see once the the phones are actually in hand.

Keep this is perspective though: as a replacement for a point and shoot either will likely be fine, while neither is going to replace a DSLR.

Concerning the front facing camera:
Personally, I don’t care about the front facing camera.  Since the quality is so much lower (in both cases, although it’s better on the EVO), this is not going to be used for much outside of video conferencing…or as a digital mirror.  Anyway, even though there are plenty of times that I WANT to hide behind my phone both have it, so it’s pretty much a moot point.

winner: tie.

Processor
1 GHz vs 1 GHz

The Nexus (same processor as the EVO) is nice and snappy.  The iPad (same processor as the iPhone) is also nice and responsive.  Since my #1 complaint with my iPhone 3G is speed (and when I played with an iPhone 3GS I wasn’t impressed), either of these would be welcome.

Now that we have more power, let’s use it…

winner: tie.

Apps & Storefronts
Android’s Market vs. Apple’s App Store

This one is sticky.  From a user perspective there are 2 factors that count: how many apps are there and how high is their quality.  Generally there do seem to be a larger number of higher quality apps on the App Store. This is likely the case for 2 reasons.  First, looking at why there are more apps on the App Store, it’s been around a little longer and is better known out in the world which means more profit potential; simple.  Second, looking at why apps in the Apps Store tend to be (or at least appear to be) higher quality, it’s harder to write in Objective-C (vs writing Java) and it’s harder to get an app into the App Store than the Market.

For owners of either type of phone (iPhone or Android) I would give an additional point in this category.  In my case that’s the iPhone and I don’t want to re-buy a bunch of apps for the Android.

Speaking of apps, and because some people just can’t shut-up about it…

winner: iPhone 4.

Multitasking
“Real” vs Service Based Multitasking

I’ve heard quite a number of people talk about “real” multitasking versus what Apple is providing, which is essentially service based multitasking.  Apple is right on this one.  This is a mobile environment, not a desktop. There are greater constraints.  People that complain about battery life and lack of processing speed in the same breath aren’t thinking this through.  Even Microsoft is going down this path for their next generation phones.  This isn’t going to kill Android but in the longer term it probably wont help them either.

But if people would just write better code!  …so, why does service based multitasking really make sense?Engineers are lazy.  If given direct access to memory and processor time they’ll use it; even if it’s not really necessary.  If nothing else service based multitasking encourages engineers to think about what they actually need to have running in the background.  And if, in the end, they really need to run some arbitrary code in the background they can do it.  Specifically, Apple has a generic “let me finish what I’m doing” multitasking service.  So really, this is not an issue; both phones do have real multitasking.

winner: tie.

Network, Carriers, and Tethering
Sprint   vs   AT&T    &    4G/3G   vs   3G (not 100% accurate, but essentially true)

4G sounds great.  When it’s an actual standard it’ll sound even better.  Oh, and when it’s in my area.  For now, in most places everything is at about 3G speeds.  Ask me again in 2 years.

But, tethering is not so easy and lack of tethering that really sucks (at least without paying more or jail breaking the phone) plus the decrease in max data transfer from AT&T makes this an easy call.

winner: EVO-4G x2

Summary

  1. Physical Dimensions: iPhone
  2. Screen: iPhone
  3. Camera: tie
  4. Processor: tie
  5. Apps & Storefront: iPhone
  6. Multitasking: tie
  7. Network, Carriers & Tethering: EVO-4G x2

Written by me

Friday, June 11, 2010 at 2:45 pm

Posted in Uncategorized

According to the FBI, 80% of mortgage fraud is committed by the lender.

leave a comment »

This is an excerpt from Zach Carter’s “Live Blogging the Washington Mutual Hearing“:

Levin: out of 132 loans reviewed in a WaMu audit, 115 involved confirmed fraud, and 80 had “unreasonable” income– meaning the borrower’s income listed on the loan documents was so totally outrageous than any reasonable person would have called it into question.

WaMu’s lending standards and practices didn’t change as a result of this audit. At all.

According to the FBI, 80% of mortgage fraud is committed by the lender. We’re not talking about stupid loan officers allowing borrowers to get away with something crazy that is bad for the bank. We’re talking about clever loan officers pushing fraudulent documents in order to score bigger paychecks, and bank executives looking the other way so that they can keep getting big paychecks from the securitization machine.

This isn’t a problem unique to WaMu. This is how the U.S. mortgage system operated for half a decade.

Written by me

Wednesday, April 14, 2010 at 1:51 pm

Posted in Uncategorized

Ah, unapportioned-tax how I love thee.

leave a comment »

The following excerpt is from “The joy of tax” in the April 10-16th 2010 issue of The Economist:

“The federal tax code, which was 400 pages long in 1913, has swollen to about 70,000. Americans now spend 7.6 billion hours a year grappling with an incomprehensible tangle of deductions, loopholes and arcane reporting requirements. That is the equivalent to 3.8 [million] skilled workers toiling full-time, year-round, just to handle the paperwork. By this measure, the tax-compliance industry is six times larger than car making.”

Written by me

Saturday, April 10, 2010 at 11:10 am

Posted in Learning, Musings, Uncategorized

Tagged with ,