All Posts in the ‘Misc’ Category

When Can I Reuse This Calendar (dot com)

November 11th, 2009 | By Ian in Development, Hobbies, Made by isnoop, Misc, PHP, Related sites, Sites of Interest | 3 Comments »

My wife dug up a 2008 calendar still in the shrinkwrap and it got me thinking… When can I reuse this calendar? Well, I had a spare hour and $6.99 to register a domain, so I whipped out this little site:

http://whencanireusethiscalendar.com/

Now you can go digging through that chest of crap from the 1990s and pull out your favorite cute puppies calendar. In 2010, you can re-use calendars from 1999, 1993, 1982, 1971, 1965, 1954, 1943, and 1937.

Return of the Rum Runners

August 4th, 2009 | By Ian in Misc, Opinion, Rants, The Emerald City | No Comments »

Liquor bottlesLast weekend Washington state just upped its liquor prices an average of 13% per bottle in a bid to help fill its 6 billion dollar budget gap. The estimated proceeds from the increase in liquor tax should cover about 1.3% of the budget shortfall. The problem is, I don’t think they will take in nearly as much as they have estimated.

It hasn’t even been a week and I’m already hearing several people talking about making booze runs down to Portland, Oregon. A casual web search reveals some insightful answers.yahoo.com advice suggesting there is no peril in shuttling copious quantities of booze across state lines, but I remain dubious. However, with over 75% of the cost of a bottle now profits to the state, it will become harder for people to resist a little bit of sales and use tax evasion.

I hate to say it, but it will probably take a horse’s ass to spearhead an initiative to reduce state liquor taxes. It can’t be many more years before people start whining about the ever-increasing rates in general and I know someone will come riding in on their white horse to rescue the taxpayer’s hard-earned dollar once the general consensus agrees that the economy has sufficiently recovered.

Photo credit Thomas Hawk

Firefox’s Refreshing Source View

June 25th, 2009 | By Ian in Misc | 2 Comments »

Did you know you can trigger a refresh while viewing the source of a page? This feature has been around since the dawn of Firefox 2.0, but it is still unknown to many web professionals.

All the standard keyboard shortcuts work, including the F5 and Ctrl+Shift+R for a cache flush. Give it a try on your favorite dynamic page.

Me blog pretty

June 18th, 2009 | By Ian in Misc | 2 Comments »

no_kubrickThey say clothes make the man, so it stands to reason that the theme makes the blog. After receiving several moans about my blog’s styling, I’ve finally decided to do something about it. No more Kubrik theme for me.

For those who don’t care for the WordPress default theme, I do hope this one is more appealing. For tech and convenience oriented folk like myself, this new theme was easily customizable to support multiple widget bars. Plus, I hear three column fixed width layout is in this year.

10 Rules to Protect User Passwords

May 1st, 2009 | By Ian in Development, Misc, Opinion, PHP, Rants, Security | 5 Comments »

loginformMost programmers take a pragmatic approach to security and scale their efforts based on an estimate of the sensitivity of the data they are storing.

The unfortunate truth is that password security is frequently underestimated, making it easy for credentials to be sniffed or stolen.  Users often keep a very small collection of passwords, with many people memorizing a small collection and using them on almost every site and service they use. A password compromise on one site can lead to a compromise on many.

#1 Only store salted password hashes, not the plaintext password itself

The cardinal rule for handling user passwords is to never store the password itself.  You should only store a hash (one-way encrypted representation) of the password, cryptographically salted with a string at least 16 characters long. When you want to check a user’s login, simply re-hash their input with the same salt and compare it to the hash stored in your credentials table. 

#2 Never display a user’s password

There is never a good reason to display a user’s password on a web page.  If they have forgotten their password, send the user through a password reset procedure.  This also includes displaying their password in HTML forms.  Don’t send the user’s password out as the value of a password form field input.  This is almost as bad as displaying it on the page.

#3 Use the password field in forms

On occasion, a site will not use the “password” input field type on a login form.  Any sensitive input acting like a password should be presented as a password input.  This provides basic protections against caching, copying, and prying eyes.  This applies to passwords, PINs, SSNs, and other private authentication data.

#4 SSL encrypt pages where users create new passwords

Prevent packet sniffing password theft by encrypting pages where the users are changing or creating new passwords.

#5 Protect passwords sent over non-encrypted connections

If you can, SSL encrypt any page where a user is sending their password for login.  In places where this may not be an option, consider using javascript to prevent the password from being sent in plaintext.  (More info on this in a later blog post)

#6 Never store passwords in cookies

Many developers don’t consider the fact that cookies are sent by the user’s browser for every request to a domain, including requests for images, CSS, and javascript.  All this traffic makes it extremely easy to sniff passwords stored in cookies. Passwords stored in cookies are also easily found by someone who has access to a computer’s harddrive.

#7 Enforce reasonable password rules

All sites need some basic rules around passwords to keep users from using poor passwords.  However, don’t think you’re doing yourself or your users any favors if you implement rules like setting a maximum password length, requiring users to change their passwords too often, or preventing users from ever re-using a password once they’ve changed it.  

Forcing users into situations like these frequently leads to password post-it notes stuck to monitors or the underside of keyboards.  Sometimes, it even drives site users away (I’m talking about you, sharebuilder.com).

#8 Send confirmation emails when their password is changed

Whenever a user’s password changes, send a confirmation message to their verified email address.  Tangentially, any email address change should trigger confirmation emails to both their new and old addresses.  This behavior helps your users quickly find out when they’ve been compromised, which can limit the damage done by a malicious user.

#9 Never email a user’s password

Many sites feel they are doing their customers a courtesy by emailing them their own password when they change it or sign up.  However, if your email account is ever compromised, a simple search for ‘password’ can reveal a treasure trove of passwords, allowing a malicious person to gain access to many more sites and services used by a user.  The resultant password list may also be used against any other site that hasn’t emailed a user their password, such as their bank, PayPal, or social networking sites.

#10 Use a proper password reset system

When a user forgets their password, generate a random temporary password and email it to their verified email address.  This should not overwrite their old password.  Instead, it should be set to expire within a reasonable amount of time (a few hours) and if it expires, the old password should remain in place.  If the user logs in with the temporary password, they should be required to enter a new password before continuing to the site.  The temporary password should then be expired and unusable on that account.

Want to know your Google Voice Number?

April 19th, 2009 | By Ian in Misc, Rants, Sites of Interest, The Emerald City | No Comments »

Google.jpgGoogle Voice is the long awaited re-release of Grand Central, an online voice communications service. Based on their beta, Google Voice will essentially be a Gmail for voicemails with call forwarding, filtering, SMS, VOIP, and speech to text.

They appear to be assigning Montana area code (406) phone numbers to folks who call or SMS a Google Voice user. I can only assume that the generated number will be your default Google Voice number if you eventually sign up.

If you would like to know your default Google Voice number, send an SMS to 206.855.5330. I’ll reply back to you with your number. Once established, you can start receiving calls at that number that are forwarded to your phone.

Disclaimer: I don’t know if the numbers are permanent, but they appear to keep working after at least two weeks.

Bread & Butter, Home Made

March 23rd, 2009 | By Ian in Misc | 4 Comments »

It only took a few minutes in the food processor to turn a quart of heavy buttermilk into one of the tastiest butters I’ve ever had. The transition from creamy liquid into butter is almost instantaneous and is very interesting to watch.

The leftover buttermilk went into a quick and easy batch of bread machine bread. A few hours later, we had a great homemade treat.

Buttermilk costs just over $2 a quart here. The yield was just under 2 lbs of butter. That’s about a 60% savings per pound for a better product than you can buy at Safeway or QFC.

I’ll be making my own butter from now on.

Looking for RSS Feed Sponsors

March 17th, 2009 | By Ian in Misc, Related sites | 2 Comments »

rssI’m looking for one or more advertisers who would be willing to sponsor the package tracking RSS feeds generated over at Boxoh.com. As it stands, only about 5% of the traffic to the site is via web browsers. Last month alone, I got just under 1.5 million hits to the dynamically generated RSS feeds for package tracking. The Google ads on the web page are hardly reaching my audience.

Unfortunately, commercial RSS advertising systems such as Feedburner will not work as they are geared towards blogs with a small number of feeds to monetize. Since Boxoh delivers individualized feeds based on package tracking numbers, the number of unique RSS feeds is vast.

If this sounds appealing to you, please get in touch with this contact form.

Tags:

PHP Changelog RSS Feed

December 9th, 2008 | By Ian in Misc, PHP, Sites of Interest | No Comments »

Thanks to the site Feed43.com, I was able to quickly and easily generate an RSS feed to the PHP5 Changelog, a very large page that doesn’t already have a feed.

Check out the PHP 5 Changelog Feed.

Feed43 beats Yahoo’s Tubes service because if a page is too large, it simply truncates it to a usable length. Tubes will simply fail to process a page that it deems is too big.

Tags:

A Quick Explainer on Tax Brackets

December 7th, 2008 | By Ian in Finance, Misc, Rants | 2 Comments »

It is a common belief that moving into a higher tax bracket will cause you significant financial hardship. People have given away large sums for a tax deduction or even accepted lower pay believing they are actually saving money by maintaining a lower tax bracket. This post explains why this is incorrect and illustrates what a tax bracket transition really means for you.

The Myth
The basic belief is that tax brackets are retroactive and that all income is subject to your highest tax bracket’s percentage rate. The chart below illustrates the tax amounts a person would be subject to if this logic were applied.


(Click to enlarge)

The Reality
Only the income above the minimum amount for any given tax bracket is subject to that bracket’s rate.

For example:
If you are filing single and made $30,000 in 2008 you would be in the 15% tax bracket. Your first $8,025 would be subject to 10% in taxes. The remainder ($21,975) would be taxed at 15%.

This chart illustrates the actual tax breakdown for each taxable income group:


(Click to enlarge)

This detail view illustrates the different tax brackets as they apply to the income of a person filing single. The red line is a reference to help illustrate the slope of the tax amounts below.


(Click to enlarge)

This final chart illustrates the myth vs reality when one’s income moves from one tax bracket to another. The blue vertical bars indicate the tax brackets. The red zone illustrates the incorrect assumption that your tax rates apply retroactively. The green zone is your true net income.


(Click to enlarge)

Summary
This post should dispel the myth that your current tax bracket applies to 100% of your income. While taxes are complicated by many factors, this basic rule still applies. Don’t let yourself be fooled into believing that you are actually saving money by lowering your tax bracket. You should make tax-deductible donations as you see fit, but don’t think you’re saving any money by doing so.

More information
IRS 2008 tax tables
Chart source data (Google Docs spreadsheet)