tag:blogger.com,1999:blog-56818266132583139482024-02-20T00:04:40.292-08:00Cathartic for CTOmy public pensieveSteve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.comBlogger64125tag:blogger.com,1999:blog-5681826613258313948.post-30163741965040236542013-09-23T16:36:00.003-07:002013-09-23T16:37:18.875-07:00How to Know if You're an Asshole(I began this article in 2008 and it's been sitting in Draft mode ever since. Why not release it to the wild? Here it is.)<br />
<br />
While I was speaking privately yesterday with a business partner who has resigned from the position she has held in our company for 9 years, I was wondering to myself what she thought of me. I know one of my natural weak points is being insensitive to the people around me, so I've typically leaned on others when I needed professional advice on human factors. She is a great person, savagely loyal, and highly competent in high pressure situations. I'm not sure she would tell me if I was being an asshole though.<br />
<br />
<span style="font-weight: bold;">No one thinks they are an asshole.</span> At least, probably not. Maybe a drill sergeant or a cop wakes up in the morning and self-identifies as an asshole, and is happy about it. I don't know any of them. But <span style="font-weight: bold;">everyone knows an asshole</span> or two. Why this disconnect? Do those guys know they are assholes? I don't think so. I frequently encounter assholes when I drive. Sometimes they know they've been an asshole, and I make it a point to let them know my point of view on the matter, but that's different than being an asshole when you exit your vehicle and interact with people at work, in public, or even among friends and family. Assholes must have friends.<br />
<br />
So I was thinking about this, and trying to figure out a way out of this point-of-view problem: assholes don't think they are assholes. So how do you know if you are an asshole? I developed the beginnings of a strategy to determine this, because the world needs a logic based approach to this problem.<br />
<br />
<span style="font-weight: bold;">Step 1: Identify a person who is not an asshole</span><br />
Most people are not assholes. But you need to find some who is universally considered a non-asshole. If this person has coworkers who thinks that he/she is an asshole, but you think the person is actually normal, this person is still disqualified from the role of being your "Am I an asshole?" litmus test.<br />
<br />
This person should not be family. Family members might love you even if you are an asshole, but are otherwise too close.<br />
<br />
<b>Step 2: Ask them if you are an asshole</b><br />
You might need to phrase this question softly. Because the person you are talking to is not an asshole (see Step 1), if you just ask them "Hey, do you think I am an asshole?" they are likely to respond with a quick "What? Of course not!" Ignore this part of their response. Listen to the next part: "I mean, you can be a tad grumpy when you haven't had your coffee yet..." Any negative criticism they say *after* denying you are an asshole, amplify that by 10x and now you are getting their real thoughts on the matter. It is hard to give criticism to someone face to face. And you selected them because you trusted their opinion, so no rationalizations or justifications here -- that would be being an asshole. Listen to this person. Do not interrupt them. Let them keep talking until they peter out, or ask you a question. Then, thank them for there honestly and tell them you value their opinion greatly.<br />
<br />
<b>Step 3: Stop being an asshole</b><br />
Be extra kind to the person who gave you feedback, regardless of whether it was positive or negative. Prove to them you care about what others think of you. If you had any doubt that you were/are an asshole, in fact, be extra kind to everyone.<br />
<br />Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-89549507526130313072013-09-23T16:16:00.000-07:002013-09-23T16:16:46.787-07:001031 Investment Services projectI've been working with my friend Scott Sheehan on his website <a href="http://1031investmenservices.com/">1031investmentservices.com</a>. It's a Joomla website which is new for me but luckily I'm not a programmer on this project (php? yeeks!) but<i> </i>I'm always interested in opportunities to try something new. So what is the purpose of this blog entry, on a blog I rarely write to any more? I think the biggest part of this project is going to be developing the inbound links. One down, hundreds more (hopefully) to go.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-17323664003808384162013-02-08T12:25:00.001-08:002013-02-08T12:30:01.278-08:00Two Scoops of Django Review<a href="https://s3.amazonaws.com/twoscoops/img/tsd-cover.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://s3.amazonaws.com/twoscoops/img/tsd-cover.png" width="268" /></a>I've just finished reading <a href="https://django.2scoops.org/">Two Scoops of Django: Best Practices for Django 1.5</a> by Daniel Greenfield and Audrey Roy, currently for sale as an e-book for $12 and easily the least expensive (except free) form of professional investment a Django developer can make.<br />
<div>
<br /></div>
<div>
It's not a "I couldn't put it down!" book; rather you will want to put it down about every four pages so you can implement an idea before moving on to the next topic.</div>
<div>
<br /></div>
<div>
I've had one big Django project under my belt, that was my full time gig for over a year (the now defunct 10LocalCoupons.com). I had a team of developers and, for any of us, it was our first Django project and our first python project -- not for a lack of trying to find experienced djangonauts. I recall finishing the <a href="https://docs.djangoproject.com/en/1.4/intro/tutorial01/">django tutorial</a> and then looking for a resource to learn best practices and not finding much. This book fills that need well.</div>
<div>
<br /></div>
<div>
I'm currently working on a solo project in Django, and am still in the early stages, so I easily revamped my project to include many of the best practices espoused here, the first being project layout. Having a project root for your apps and within that a configuration root for settings, urls and wsgi makes sense to me.</div>
<div>
<br /></div>
<div>
The next idea was a sane settings management that avoids many of the pitfalls we encountered in the past: tests that fail in different environments due to different settings, local settings that don't get tracked in source control, and forcing developers to track changes to local-example.py settings.</div>
<div>
<br />
Other topics include best practices for class based views, templates, how to structure apps, and plenty more.</div>
<div>
So it took a week to get through the book because I kept stopping to put the ideas to work.</div>
<div>
<br /></div>
<div>
Plently of the big ideas espoused I already adhere to: using <a href="http://south.aeracode.org/">South</a> for database migrations, <a href="http://pypi.python.org/pypi/pip">pip</a> and <a href="http://pypi.python.org/pypi/virtualenv">virtualenv</a> for environment building, and others. Some of the more subtle ones, like using environment variables for your secret key and using a separate requirements file for each environment don't apply to my early stage project yet but in the future I'll be sure to adopt.</div>
<div>
<br /></div>
<div>
Some of the content in the book should be fleshed out a bit more. For example, the book recommends using logging and gives reasons why, but doesn't show logging settings or an example of how to use it. </div>
<div>
For those interested, here is how I use logging in my local development environment where I want to see all things my code is doing; most of this is bolierplate django settings but I've left them in so you can see how it interacts with my customizations. I'm not suggesting that my method is to be considered a best practice, just something to get you started. The console handler and the catchall logger '' are the key parts.<br />
<br /></div>
<div>
<pre>LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'verbose': {
'format':
'%(asctime)s %(name)s %(levelname)s %(module)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'simple': {
'format': '%(asctime)s %(name)s %(levelname)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'django.utils.log.NullHandler',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple',
},
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/my_project/my_project.log',
'maxBytes': 20000000,
'backupCount': 5,
'formatter': 'verbose',
}
},
'loggers': {
'django': {
'handlers': ['null'],
'propagate': False,
'level': 'INFO',
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'south': {
'handlers': ['null'],
'propagate': False,
'level': 'INFO',
},
'':{
'handlers': ['console', 'file'],
'level': 'DEBUG',
'propagate': True,
'disabled': False
}
}
}
</pre>
<div>
<br /></div>
<div>
And here is a drop-dead simple use of logging:
</div>
<pre>import logging
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.DEBUG)
def my_function(my_arg):
my_var = my_arg + 1
LOG.debug('my_var: %s' % my_var)
return my_var
</pre>
<div>
<br />
Another place that could have done with some easy examples is reStructuredText; I know its the fancy way to document and could clicked a link learn all about it, but this book could give a little bit more to whet my whistle than "study the documentation for reStructuredText and learn at least the basics." How do others use it for django apps?<br />
<br />
This is a good book and well-worth the money. It'll make you more productive, and so is easily worth the money. I look forward to reading further revisions.<br />
<br />
<a href="https://django.2scoops.org/">Two Scoops of Django: Best Practices for Django 1.5</a></div>
</div>
Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-49476626858527296602011-02-13T12:48:00.000-08:002011-02-13T16:19:16.129-08:0010LocalCoupons.comI realize I haven't blogged since I un-retired. So here's the story...<br /><br />We <a href="http://stevebywater.blogspot.com/2008/02/ontargetjobs-announces-acquisition-of.html">sold</a> <a href="http://regionalhelpwanted.com/">RegionalHelpWanted.com</a> in February 2008. After a year and a half off, I founded a new company with my previous partners to see if we could duplicate that success. (Anyone can get lucky once, but if we could do it again, maybe it it was more than luck?) We are using the same exact business model: working with local media partners using unsold inventory to advertise a local website on a revenue share basis. Instead of help wanted ads, or personal ads which is at the root of what <a href="http://cupid.com/">Cupid.com</a> was/is, this time around we are targeting coupon advertising. So in Nashville you'll hear ads for <a href="http://10coupons.com/nashville/">10NashvilleCoupons.com</a> on radio and see them on TV, and in Portland OR the website is <a href="http://10coupons.com/portland/">10PortlandCoupons.com</a>, but it is all one website serving local content to you based on how you get there. Hopefully, you'll find your local pizza guy on there soon, or a discount on an oil change nearby.<br /><br />Not only is the product different, but the software stack is a complete switch. RegionalHelpWanted.com we did in ColdFusion, Cupid.com in .net, both on IIS against SQL Server. All on Windows. 10LocalCoupons.com is done in <a href="http://www.djangoproject.com/">django</a>, an awesome framework for Python, on Apache behind nginx against postgreSQL, all on Ubuntu. I'm really enjoying the new way things are done. Much of the tediousness of writing control panel type stuff -- record insert, updates, deletes -- for customer service and accounting needs is a gimme with django's admin package, allowing my development team to hit the ground running. The django community has been a great resource to us.<br /><br />So the software landscape is very different, but the hardware difference between old and new is even more dramatic. In our previous endeavors, we were paying about $1500 a month per web server for managed services. Now, using open source software on Amazon's EC2, we pay less than one tenth of that. It's a running joke every month when I announce our EC2 cost. My guess is about half of that comes from dropping Microsoft licensing fees, the rest is from virtualization efficiencies and dropping the human support.<br /><br />Not all things are different however. This new project has given us the opportunity to hire back several of the <a href="http://10coupons.com/about-us/">awesome people</a> we've worked with in the past. That has made it easy for me to go back to work.<br /><br />I'll be blogging more soon about what we are up to, and pointing out things I've learned along the way, but for now know that I am having tons of fun.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-1898519428328779522010-04-14T13:56:00.000-07:002013-02-08T12:26:51.404-08:00Bulk COPY a CSV into PostgreSQL, skipping first rowLooked for a solution to this yesterday and couldn't find it. Asked my Linux guru Jeremy today and he had a easy solution, so this might be helpful to others.<br />
<br />
The scenario is you have a big CSV file, and you want to bulk copy it into PostgreSQL, but the first row of the file isn't data, it's got the column names in it. In my case, the text file is 65 Megs so it's not like you can just edit it in a text editor to delete the offending line. (The data happens to be the combined US and Canada zip/postal code database from ZipInfo.com, fyi.)<br />
<br />
SQL Server has a bulk insert GUI that lets you specify a start row. Needed that functionality here.<br />
<br />
Solution:<br />
<br />
Use wc to find out how many rows are in your file:<br />
<br />
<code>$ wc ZCUG.TXT<br />872135 1871133 69105493 ZCUG.TXT</code><br />
<br />
That first number returned, in my case 872135, is the number of rows in the file. Subtract one and and tail that number, outputting to a new file:<br />
<br />
<code>tail -872134 ZCUG.TXT > ZCUG-trimmed.txt</code><br />
<br />
Boom! A new file without the row of column names.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-76544140505134243252010-03-30T13:23:00.000-07:002010-03-30T13:37:41.517-07:00owasp-esapi-python configurationI tried to send this issue to the esapi-python mailing list (after subscribing) but it doesn't look like that is a functioning list. So any help with the following would be greatly appreciated.<br /><br /><blockquote> <br />Hi!<br /><br />Thanks for your work on owasp-esapi-python! I am trying to integrate it into a project and will certainly spread the word to help drum up support for this as I make headway.<br /><br />I've run into an issue during configuration:<br /><br />When I do this at the python 2.6 interactive shell, it returns a single line of output...<br /><br />>>> from esapi.core import ESAPI<br />>>> ESAPI.encryptor().gen_keys()<br />Creating new keys in /esapi/keyring/<br /><br />The documentation leads me to believe that it will also output an Encryptor_MasterSalt but, if it's supposed to do that here, it isn't for me. Let me know any info I can provide. This is on Ubuntu 9.10.<br /><br />Thanks in advance,<br />- Steve<br /><br /></blockquote>Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-25489415902557253282009-11-29T11:11:00.000-08:002009-11-29T11:21:22.730-08:00Is http://downforeveryoneorjustme.com Down?!? lolOk so I don't think it's down, because the homepage does serve. But when I'm trying to use it I'm getting an error dump:<br /><br /><code><br />Traceback (most recent call last):<br /> File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 507, in __call__<br /> handler.get(*groups)<br /> File "/base/data/home/apps/downforeveryoneorjustme/1.337010419190071564/main.py", line 137, in get<br /> self.render_down(u)<br /> File "/base/data/home/apps/downforeveryoneorjustme/1.337010419190071564/main.py", line 103, in render_down<br /> db.put(downer)<br /> File "/base/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1212, in put<br /> keys = datastore.Put(entities)<br /> File "/base/python_lib/versions/1/google/appengine/api/datastore.py", line 179, in Put<br /> apiproxy_stub_map.MakeSyncCall('datastore_v3', 'Put', req, resp)<br /> File "/base/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 72, in MakeSyncCall<br /> apiproxy.MakeSyncCall(service, call, request, response)<br /> File "/base/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 266, in MakeSyncCall<br /> rpc.CheckSuccess()<br /> File "/base/python_lib/versions/1/google/appengine/api/apiproxy_rpc.py", line 111, in CheckSuccess<br /> raise self.exception<br />OverQuotaError: The API call datastore_v3.Put() required more quota than is available.<br /></code><br /><br />I love the irony. It's working for sites that are up, like google.com. But I'm working on my sister's web site <a href="dev.huppahs.com">dev.huppahs.com</a> which is being hosted by my friend, and his site is down at the moment.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-77283898280570547492009-10-21T09:39:00.000-07:002013-02-08T12:30:17.781-08:00Quicken install error 1721 resolutionAfter several days of exchanging emails with Quicken support regarding <a href="http://stevebywater.blogspot.com/2009/10/quicken-2010-intuit-still-making-buggy.html">my installation issues</a>, they mailed me an install CD. When that produced the same result, I did use their Online Chat. The website is lousy: when you go to support, and select the product Rental Property Manager, it doesn't offer chat support. But if you choose the product Quicken for Windows, and the version Rental Property Manager, chat is available. It took 20 minutes waiting in the chat queue, but then I had the complete attention of the support person who was able to slove this issue for me. I'll post the transcript here, in case it helps others (Google link bait):<br />
<br />
Loading...<br />
<br />
Raj: Welcome to Quicken chat support. My name is Raj. Please give me a moment while I review the info you provided.<br />
Raj: hI Stephen<br />
Stephen Bywater: hello<br />
Raj: How are you doing today?<br />
Stephen Bywater: fine t<br />
Stephen Bywater: ty<br />
Raj: Good to know that.<br />
Raj: If I understand you correctly, you are unable to install Quicken 2010 RPM, is that so?<br />
Stephen Bywater: correct<br />
Stephen Bywater: These things I have already tried, as suggested by email tech support:<br />
Stephen Bywater: creating a new admin acct, deleting previous version manually<br />
Stephen Bywater: running install as admin<br />
Stephen Bywater: using the qcleanui util<br />
Stephen Bywater: none of these solved the install issue. it quits reporting error 1721<br />
Stephen Bywater: would you like the relevant part of the install log?<br />
Raj: No Stephen, thank you for elaborating on the issue.<br />
Raj: Are you installing Quicken using CD or Download?<br />
Stephen Bywater: i tried the download. Then as a troubleshooting idea, support mailed me the CD. same error either way<br />
Raj: Do you have the CD with you?<br />
Stephen Bywater: yes<br />
Raj: Lets try once more to clean Quicken once again and install using the CD by following some different steps. Do you have QCleanUI application with you?<br />
Stephen Bywater: yes<br />
Raj: Please run it once more and let me know if you are using HP Computer or Dell.<br />
Stephen Bywater: Dell<br />
Stephen Bywater: qcleanui<br />
Stephen Bywater: sorry wrong window<br />
Stephen Bywater: uninstallation completed successfully<br />
Raj: Now, we need to follow some steps to delete the shared folders.<br />
Raj: 1. Please click on Start button >> Computer.<br />
2. On the Organize menu, select Folder and Search Options.<br />
3. On the View tab, choose Show hidden files and folders.<br />
4. Clear the Hide extensions for known file types check box.<br />
5. Select OK.<br />
Stephen Bywater: done<br />
Raj: In the mean time, are you using 64 bit Vista or 32 bit?<br />
Stephen Bywater: 64<br />
Raj: Okay.<br />
Stephen Bywater: i'm ready<br />
Raj: 1. In the C:\Program Data\Intuit folder >>>> right-click the Quicken folder >>>>select Delete, and then confirm.<br />
Stephen Bywater: done<br />
Raj: 2. In the C:\Users\[your username folder]\Application Data\Roaming\Intuit\Quicken folder, select the Data folder, and then copy it to a safe location on your hard drive.<br />
<br />
Note: You might not have a Data folder unless Quicken 2007 or Quicken 2008 is your first version of Quicken.<br />
<br />
<br />
Stephen Bywater: Access is Denied<br />
Raj: Are you login in as administrator ?<br />
Stephen Bywater: to /{user}/Application Data<br />
Stephen Bywater: yes, my acct is in admin<br />
Raj: Please close all windows except this chat window and try to delete that Quicken folder once again.<br />
Stephen Bywater: ok I was able to copy \AppData\Roaming\Intuit\Quicken\Data to new location<br />
Raj: 3. In the C:\Users\[user]\Application Data\Roaming\Intuit folder, right-click the Quicken folder, select Delete, and then confirm.<br />
<br />
Stephen Bywater: note I am deleting C:\Users\[user]\AppData\Roaming\Intuit\Quicken...<br />
Raj: Yes.<br />
Stephen Bywater: Application Data is not accessible, but AppData is. ok deleted<br />
Raj: 4. Repeat steps 4 and 5 for each Windows user.<br />
5. In the C:\Program Files folder, right-click the Quicken installation folder, select Delete, and then confirm.<br />
6. Empty the Recycle Bin.<br />
Stephen Bywater: done<br />
Raj: http://code.msdn.microsoft.com/KB961894/Release/ProjectReleases.aspx?ReleaseId=2067<br />
Raj: Please open this link and run ENU (vcredist_x64.exe)<br />
Stephen Bywater: installed it<br />
Raj: Now, please insert the CD and don't auto run it. just browse the CD.<br />
Stephen Bywater: ok<br />
Raj: Do you see 'Disk 1' and 'Custom' folder there?<br />
Stephen Bywater: yes<br />
Raj: Please copy both folders and paste them to the desktop.<br />
Stephen Bywater: cone copying<br />
Stephen Bywater: done copying<br />
Raj: Now, please open that Disk1 folder and double click on the Quicken 2010. MSI to start installation.<br />
Stephen Bywater: ok... just accept all defaults as normal?<br />
Raj: Please add 2010 just after Quicken and the location will be C:\ Program Files\Quicken2010 then continue the installation.<br />
Stephen Bywater: installing to custom location now<br />
Stephen Bywater: woot! installation is asking to check for updates! never got this far yet<br />
Raj: Good news<br />
Stephen Bywater: does install window disappear checking for updates?<br />
Stephen Bywater: or is it all done?<br />
Raj: Did you get any pop-up, like, done, or Use Quicken, like this?<br />
Stephen Bywater: it gave the option to check for updates at the end of install, i clicked that, and window is gone now<br />
Raj: Please wait for 2-3 minutes.<br />
Stephen Bywater: ok brb<br />
Raj: Okay.<br />
Stephen Bywater: bak<br />
Stephen Bywater: no indication that it is still updating<br />
Raj: Okay<br />
Raj: Do you see a Quicken icon on the desktop?<br />
Stephen Bywater: no<br />
Stephen Bywater: there is a Quicken 2010 folder in start menu, but it's empty<br />
Raj: Please go to Start---->>all programs and check if there is any Quicken 2010 folder there,<br />
Raj: Do you see any Quicken folder there?<br />
Stephen Bywater: a Quicken 2010 folder, empty<br />
Raj: Please go to C:\Program files\Quicken2010<br />
Stephen Bywater: its in (x86), ok<br />
Raj: Okay.<br />
Raj: Do you see other files related to Quicken? or it is empty?<br />
Stephen Bywater: Quicken 2010 dir has many files<br />
Raj: Please keep that Quicken 2010 folder open and be on the desktop and open Disk 1 folder.<br />
Stephen Bywater: ready<br />
Raj: Sorry, please close that Disk1 folder and Open the Custom folder, open the AU_AD_Q folder, and then open the SKU folder.<br />
Stephen Bywater: np got it<br />
Raj: Open the folder for your version of Quicken. For example, if you are using Home and Business, open the HaB folder.<br />
Open the Custom folder.<br />
Stephen Bywater: RPM for me<br />
Raj: Yes.<br />
Stephen Bywater: ok there<br />
Raj: Right click the splash.png or splash file and select Copy.<br />
Stephen Bywater: copied<br />
Raj: Now, go to that C:\Program files (x86)\Quicken2010 folder. Right click there and paste. Paste that splash file there.<br />
Stephen Bywater: pasted<br />
Raj: Now, double click on qw.exe file there and check if it opens Quicken.<br />
Stephen Bywater: it says "There is a problem with your Quicken installation... Please uninstall Quicken, and install again."<br />
Raj: Okay.<br />
Raj: Please click on Start-->Control Panel-->Programs and features (Uninstall program)-->Locate Quicken and remove it.<br />
Stephen Bywater: uninstalled<br />
Raj: Now, try to install Quicken once again using autorun from the CD.<br />
Stephen Bywater: installing...<br />
Raj: Keep every setting default.<br />
Stephen Bywater: it dropped icons on desktop this time<br />
Stephen Bywater: install wizard is downloading latest Quicken updates...<br />
Raj: It seems to be working this time, right?<br />
Stephen Bywater: yes, progress<br />
Raj: Lovely !<br />
Stephen Bywater: indeed<br />
Raj: Yes.<br />
Stephen Bywater: Updating Quicken...<br />
Stephen Bywater: Installation Complete! Launching<br />
Raj: Okay.<br />
Stephen Bywater: yeah. its giving me option to convert data to 2101<br />
Stephen Bywater: 2010<br />
Raj: Wonderful !!!!<br />
Raj: You did it.<br />
Stephen Bywater: yeah! Thanks so much for your help! :D<br />
Raj: My pleasure...<br />
Raj: Were we able to resolve the issue(s) that brought you to chat today?<br />
<br />
<br />
Stephen Bywater: yes, definitely<br />
Raj: It's always a pleasure to help our customers and I am glad I was able to resolve the issue for you.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com1tag:blogger.com,1999:blog-5681826613258313948.post-68932581860098746562009-10-16T10:15:00.000-07:002009-10-16T10:32:23.689-07:00Quicken 2010: Intuit still making buggy softwareQuicken sent a promo today to current owners of Quicken Rental Property Manager 2010 (which is essentially the same as normal Quicken with a few added features). I have a need/hate relationship with Quicken -- there is no love involved -- that I've <a href="http://stevebywater.blogspot.com/2009/09/hopefully-intuit-wont-shelve-mintcom.html">blogged about</a> in the past. <br /><br />Since I've griped about problems with their software, I wanted to give their latest software a fair shake, and of course I had to pay $129 for the privilege. But the installation failed citing an Exit Code 1721. There is a button on the Install Wizard failure notification for "Online Help" but it only opens a browser to the Quicken homepage. Searching the Quicken website for exit code 1721 leaves no results.<br /><br />Apparently Quicken doesn't play nice with Vista User Access Control. Even as an Administrator I can't uninstall the old version, or now, the new one. Quicken does provide a utility that cleans up the registry, but it doesn't delete the install directory. And, again even with Admin rights, neither can I.<br /><br />So now can I not install the new version, I can't reinstall the old version, and I'm out $129 bucks. <br /><br />Intuit doesn't offer live chat support for this product, so I've open up a ticket via email. They promise a response within one business day. Quicken, why do you suck so bad?Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com1tag:blogger.com,1999:blog-5681826613258313948.post-70659584864911635592009-09-14T09:23:00.001-07:002009-10-16T10:32:50.320-07:00Hopefully Intuit Won't Shelve Mint.comIntuit, the makers of Quicken, announced they are <a href="http://www.techcrunch.com/2009/09/13/intuit-to-acquire-former-techcrunch50-winner-mint-for-170-million/">buying</a> web 2.0 darling Mint.com. I wrote about <a href="http://stevebywater.blogspot.com/2008/01/mintcom-resuccitates-failed-concept.html">my concerns</a> for Mint.com last year, and apparently Mint.com did a good job answering those. Congrats to Mint!<br /><br />My concern now is that Intuit bought them just to shelve the Mint technology and eliminate a promising competitor. I use Quicken for all my finances, and love it for what it does: give me immediate insight into total net worth, track spending by category, and manage my rental properties. Nothing else out there can do that.<br /><br />But there are some things about Quicken that just plain suck. They are infamous for regularly launching buggy software. For example, I'm running the latest release of Quicken Rental Property Manager on 64 bit Vista Home Premium, and the software never remembers my preferences. And it says I have 3 reminders, with a "View Reminders" button that, when clicked, brings me to a calendar view with no reminders on it. <br /><br />I just tried to use Intuit's live chat for tech support for assistance with the above, and after forcing me to pick a support category even though my problem didn't fit any of them, it launched an IE window (even though Firefox is my default browser) that did not connect to anything. Support for Quicken is typically done through its user forums, which can be hit or miss.<br /><br />So although it is the best thing out there for my specific needs, it is still an unsatisfying user experience, and I'd love for something better to come along. Apparently that won't be Mint.com. Hopefully Intuit will incorporate the best of Mint's quality technology into their own, instead of smugly shelving it.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-41293831635103294842009-07-08T07:00:00.000-07:002009-07-08T08:45:38.113-07:00How to Survive Authorize.Net OutagesI was inspired to write this by the recent heavily reported <a href="http://www.techcrunch.com/2009/07/03/authorizenet-goes-under-e-commerce-vendors-left-hanging/">Authorize.net outage</a>. Credit card processing is one aspect of web site development that you have no choice but to out-source (unless you happen to be a bank). There are several out there, and Authorize.net is one of the biggest. No matter how robust the system is, there are bound to be <a href="http://www.techcrunch.com/2009/07/07/someone-needs-to-stop-tripping-over-the-power-cord-at-rackspace/">periodic</a> <a href="http://stevebywater.blogspot.com/2007/11/rackspace-sla-999-penalties-kick-in.html">problems</a>. Over nine years of business, and multiple processors, we saw many of them. Some outages were over in minutes, some lasted hours. Your customers, ready to make a purchase, don't want to hear that your credit card processor is having problems. It is possible to code your website to stay in business during an outage. <br /><br />At RegionalHelpWanted.com (RHW), we were doing tens of thousands of dollars a day in credit card sales of help wanted advertising, none of which we wanted to lose during an outage by the processor. In the US, our credit card processor was Authorize.net. In Canada, it was Verisign. (We used separate services because we ran the businesses as separate companies.)<br /><br />On Cupid.com, the problem was similar: we were selling online dating subscriptions; I think our processor was iPay.<br /><br />In both cases, we were selling electronic services, but the method we used to survive a payment gateway outage with minimum business interruption is applicable to online businesses that are shipping tangible goods.<br /><br />On your website, your customer should not receive any kind of error message saying that there is a problem with the payment system. The customer does not care about your problems, even if you are not to blame.<br /><br />When Authorize.net is down, typically your web application will time out when trying to connect to them to make a sale. In a minority of cases, the connection will not time out but will give an invalid response, one that does not fit the normal specification. I don't remember any cases where a processor outage occurred and the processor sent back a valid response with a valid error code like "We're down! Try agin later!" In all of these cases, your web application should behave the same way:<br /><br />- Capture the order information, and store it for later processing.<br />- Give the customer a success message<br />- Use an asynchronous process to retry these transaction until they are completed.<br /><br /><span style="font-weight:bold;">Capture the order information</span><br />On RHW, we let users opt-in to storing their credit card information to speed future orders, so we had already done the work necessary to do this <a href="http://www.owasp.org/index.php/Handling_E-Commerce_Payments">safely and securely</a>. On Cupid.com, the whole business was built on reoccurring billing, so same deal there. Your Terms of Use must allow you to always retain order information for enough time to process that order, even if the user does not opt in to longer information retention. While your at it, log any response that you did get from the payment gateway, scrubbed of any security sensitive info like credit card number, as it might help with forensics later.<br /><br /><span style="font-weight:bold;">Give the customer a success message</span><br />Error messages are the opposite of user friendly. Tell the customer that you have the order information, that it typically only takes a moment to process and that they will receive an email its done. And then let them be on their way. <br /><br />On Cupid.com, we'd let the user start using the site with all the privileges of a paying member. If they sent any messages to other members, those messages would be queued until their order was successful.<br /><br />On RHW, we would post the help wanted advertising. If it later turned out that the credit card was rejected, the ad would be removed. But this also could have been setup so that the ad was not posted until the credit card was accepted.<br /><br /><span style="font-weight:bold;">Process the transactions asynchronously</span><br />Queuing is a great way to handle any work that the user should not have to wait around for. You could use it just when there is a connection timeout or for every single transaction. <br /><br />Cupid.com was a .net application, so it made sense to use Microsoft Message Queqing (MSMQ) for this functionality. The web application writes a message containing the order ID. A queue runner reads the queue, using the order ID to select the order and payment info from the database. It attempts to process the order. If Auth.net times out or returns an unexpected response, the message is sent to back of the queue. It is trivial to build a time delay into the queue runner, otherwise you may find yourself making hundreds of attempts per minute for the same transaction. And it's not nice to kick your credit card processor THAT often when they are down.<br /><br />RHW was a ColdFusion application, and now it is very easy to do queuing in ColdFusuion too. Our need pre-existed this functionality, so we used MSMQ. We wrote the queue runner in VisualBasic, and the connection to Authorize.net was done as a CF web service. <br /><br />Once the payment is either accepted or rejected, do make sure you follow up with the customer. On RHW, if a card was declined after waiting in the queue because of a gateway outage, we would call the customer and try to receive alternate payment before we removed their posting.<br /><br />The queue runner needs to also delete the payment info unless the customer authorized retaining it.<br /><br />That's it. Once we had that coding in place, Authorize.net outages (or Verisign or iPay) were non-events to the development team. There was some alerting built in so that we'd know if the queue was building up, otherwise we might not even know that Auth.net was down. That is, until the accounting department came over and complained that they couldn't log into the payment gateway.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com1tag:blogger.com,1999:blog-5681826613258313948.post-68617322887298062062009-07-01T12:14:00.000-07:002009-07-01T19:28:52.461-07:00Dell still doesn't grok UbuntuI'm selecting a laptop for my kids. Mostly because they keep pestering my wife for her laptop. I'd love to get them Ubuntu because I'd love to teach them computer programming, and I like Ubuntu as an environment for that. I also like if for kids as it is less succeptible to spyware, viruses, and malware in general. My kids play Wizard 101 online, and according to one user, that works well under Wine.<br /><br />So I'm configuring a laptop on Dell, going through their twenty page configuration process. On page one I specify Ubuntu. Eight or so pages later, Dell is asking me if I want Norton Internet Security 2009, Computer Associates Internet Security Plus 2009, and QuickBooks Pro 2009. Hello, none of them run on Ubuntu as installed. I'd love it if Intuit offered Linux software, especially Quicken which I use religously. So unless Dell is going to be including Wine configurations for each of these Windows applications they are selling with Ubuntu, they really are doing a disservice to their customer. An uniformed purchaser is going to assume the apps run on the computer they are purchasing, right out of the box. After purchase, do you think Dell is going to let the customer "return" this software?Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-66393759327519734552009-03-25T07:01:00.000-07:002009-03-25T07:42:38.375-07:00Audible.com Web Site is Lousy (To Be Polite)My wife was surprised this week when I told her Audible.com has been charging her $14.95 every month for almost a year. She checked into it and realized she had signed up for a monthly subscription without even know it. That's a problem right there. Before closing the account, she wanted to redeem six book credits her account had accumulated. We decided to divide them evenly.<br /><br />When it was my turn to select books, I was expecting an experience similar to Amazon.com. First of all, the Audible.com web site is very slow. Not snappy like Amazon.com, or any other website I use by choice for that matter. Seconds lagged each time I clicked a link.<br /><br />Secondly, the category navigation is not very intuitive. <br /><br />Thirdly, it looks like the site is quite different depending on if you are signed in or not. The site is more appealing when they are trying to lure you into registration, and frankly it's faster too. Tolerably fast. Audible.com offers fewer categories, perhaps to remove clutter and reduce load times.<br /><br />Once you log in, its the slow site. Clicking on "Science Fiction & Fantasy" now and you can feel the delay before the page loads. You get to a page that displays, among other sub-categories for fantasy etc:<br /><br /> # Sci-Fi: Classic (217)<br /> # Sci-Fi: Contemporary (555)<br /><br />That is not a great number of titles. It gets more frustrating after clicking around twenty pages or so, the amount it took me to figure out "Contemporary" means anything since 1980. There is no way to browse with multiple filters, for example all "contemporary" sci-fi that was also on the New York Times best sellers list. The closest thing Audible.com offers is all 555 titles, sorted by how often they are sold on Audible.com. <br /><br />I clicked on that link, got frustrated at how long the page was taking to load and was able to type "I'm composing this" before the page loaded. <br /><br />Suffice it to say, Audible.com: now that Amazon.com has entered the audio book market place, you web site needs a huge overhaul to be competitive:<br /><br />1) Speed. The competition is a click away.<br />2) Breadth of content: I understand sci-fi may be your weak area, but if you don't have what I want for all my audio book needs, I'll go elsewhere.<br />3) Navigation. Browsing a book store is easy and pleasurable. You're website needs to be even easier. Let me go to sci-fi, and then narrow down to New York Times best sellers. Then let me sort by newest first. By letting me narrow in, and showing me what path I am on, you would let me feel like I am getting closer to the perfect purchase. Otherwise I'm lost in the woods, and leave.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com1tag:blogger.com,1999:blog-5681826613258313948.post-64448182294067419672009-03-20T16:38:00.000-07:002009-03-20T16:54:38.930-07:00No ESAPI in Python yet?I'm considering Python for my next big project. I've been doing ColdFusion for the last 10 years but am liking the karma from open source. So I've been digging into the Python documentation, finished reviewing the Python Standard Library and the Django tutorials. <br /><br />Next, I wanted to look at some reference implementations in Python as a way of further familiarizing myself with coding best practices. I had stumbled across an implementation of OAuth in Python last week but wasn't ready yet. Specifically, I wanted to look an a reference implementation of <a href="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API">ESAPI</a>, the Enterprise Security API from the brilliant folks at <a href="http://www.owasp.org/">OWASP</a>.<br /><br />Surprisingly, all OWASP offered was the referece implementation in Java, plus some "under construction" pages for .Net and ColdFusion. Elsewhere on the web I found an implementation in pHp, but nothing in Python.<br /><br />So I know the whole idea of open source depends on the community effort, but I'm not thinking ESAPI can be my first Python app. I'll work on gaining l33t Python skills, but in the mean time it'd be great to see ESAPI in Python. Django community, I nominate you guys!Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com1tag:blogger.com,1999:blog-5681826613258313948.post-74626566596312084642009-02-04T06:13:00.000-08:002009-02-04T10:56:35.121-08:00Google, why do you hate SEO so much?See the post on GetClicky blog re:<a href="http://getclicky.com/blog/150/googles-new-ajax-powered-search-results-breaks-search-keyword-tracking-for-everyone">Google's new Ajax-powered search results breaks search keyword tracking for everyone</a>.<br /><br />In a nutshell, the referrers you get from Google SERPs may no longer have the keyword phrase on the query string. So good luck trying to figure out how your customers are finding you!Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-59940925504202513152009-01-27T07:38:00.000-08:002009-01-27T08:05:46.638-08:00Web Developers: Don't Reinvent the Non-secured WheelI'm thinking about beginning another web project. Before one gets coding the fun part of any web application, though, there is tons of core code that needs to we written: login, user management, session management, user registration, logout etc. But writing secure applications can be tricky, and any attempt to roll your own is likely to have security flaws. Open source can solve both of these problems: the code is already written, letting you get onto the fun stuff; and if it's been vetted by a large developer community already you get the security benefit of past mistakes fixed.<br /><br />One might think that reference implementations would be readily available for these in all web languages, and that we would all be using them by now. <br /><br />Kudos to OWASP for developing it themselves, in their <a href="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API">Enterprise Security API (ESAPI) Project</a>. It details all the functions that a secure application needs. Much more, though, they also offer reference implementations in Java.<br /><br />I'd love to see the web development community support this project by developing reference implementations in pHp, ColdFusion, and .net. Implementations in each of the popular frameworks would go a long way toward making the web a safer place, and would make the development of every new web application that much easier.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-12194380023971909112009-01-03T10:05:00.000-08:002009-01-03T10:28:43.249-08:00Journalspace.com dies instantly, for lack of a smart CTOHearts out to anyone who blogged on Journalspace.com. The service is dead now, in a heartbeat, because <a href="http://hardware.slashdot.org/article.pl?sid=09/01/02/1546214">they did not back up their data</a>. Ever, apparently.<br /><br />Hard to believe a website can remain popular for six years, whilst its IT team merrily whistle through their work day without once stopping to think about data backup.<br /><br />Maybe I'm myopic, but I've seen this happen with companies started by business and marketing people without a technical stakeholder, albeit no implosion has been so instantaneous. Not everyone can be technically minded, but if you aren't, and you are starting a dot com, better hire someone who is, give them a stake in the company, and listen to them about things like contingency planning.<br /><br />So, what would you do if your data was lost? This question applies to home users and business people alike. As a CTO, this question should keep you up at night, in many different manifestations:<br /><br />- What if a HD in the database server goes?<br />- What if the whole database server blows up?<br />- What if your web server blows up?<br />- What if your data center goes off line?<br />- What if the CEO looses his laptop?<br />- What if someone hacks into the development environment?<br /><br />There are hundreds of variations on this theme. Good sleep is for the naive, and the retired, and those that have worked very hard for high availability, disaster recovery, and security.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-57968536805783444812008-12-04T08:26:00.000-08:002008-12-04T15:53:24.664-08:00When does 9 mins = 0 mins? When it's Google Apps SLATechCrunch covered <a href="http://www.techcrunch.com/2008/12/04/googles-apps-sla-allows-it-to-minimize-downtime-of-gmail-calendar-and-more">this</a>. In a worst-case-scenario nutshell, Google Apps can be down 90% of the time and be considered 100% up, if it is "up" for at least one minute (or to be pedantic, instant) for every nine minutes of "down."<br /><br />Commentors at TechCrunch surmise that is not a real-world scenario where a web site can be up for one minute then down for nine for a persistent amount of time.<br /><br />I wish that were true. I recalled working for iWon.com during the original dot com bubble. Version 1.0 of that site was written against Vignette CMS. The cost for that was rumored to be around $1M per processor (that was the talk around the office) but we had piles of money to burn (and give away).<br /><br />The application was so unstable that, by the time I left, we had about 24 web servers in the cluster, and each was rebooted every 7 minutes. The fine folks at Vignette gave us that "work around" with a straight face. My brother was still with iWon and helped them move to open-source Tcl.<br /><br />Since then, I've made sure I don't even hold any mutual funds that have Vignette stock.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-48345272898663558422008-12-03T13:37:00.000-08:002008-12-03T13:48:20.477-08:00Songbird to relase your music from iTunesWith the release of Songbird 1.0, I get one step closer to moving from Windows to Ubuntu. If <a href="http://stevebywater.blogspot.com/2008/02/itunes-why-my-wife-must-get-vista.html">Apple won't make a Linux client</a>, then I'd love to drop iTunes. <a href="http://arstechnica.com/news.ars/post/20081202-first-look-can-songbird-1-0-replace-itunes-wmp.html">Ars technica does a nice writeup</a>.<br /><br />Other items anchoring me to Windows, for now: <br />- Quicken<br />- PC Games. Steam really needs to make a Linux client. And of course, the games themselves. I'm playing only Enemy Territory: Quake Wars these days, but am close to moving on to something new. Unless WoW or EverQuest drag me back in.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-66439709852291144542008-12-01T12:24:00.000-08:002008-12-01T13:06:13.590-08:00Ask.com Top 10 Search Terms for 2008Ask.com announced their <a href="http://about.ask.com/en/docs/2008/topqueries.shtml">top 10 search terms for 2008</a>, and <a href="http://www.techcrunch.com/2008/12/01/askcom-has-top-searches-too-theyre-just-really-boring/">Tech crunch covered it</a> succinctly.<br /><br />Its not surprising to anyone who has examined user behavior that it is common to use search navigationally. That is, they type in Google the search box of Yahoo and,apparently, Ask.com, to get to google. Ask.com top term "dictionary" should be seen as a navigational search; Ask.com owns <a href="http://dictionary.com">dictionary.com</a>.<br /><br />TechCrunch lauds Ask for being more honest than the other search engines who scrub their lists so much the results are meaningless.<br /><br />In my opinion, Ask.com and others should cite their methodology. Do they remove terms that are navigational to their competitors? Do they remove porn terms? Its fine and expected that they do, but they should say that.<br /><br />Raw data is one outcome I hope to see in the future, and why I laud projects like solr that help make open search a reality.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-25853737713661701972008-11-21T07:48:00.000-08:002008-11-21T08:15:58.064-08:00MSNBC.com's double links fatal flawFor 10 years now cnn.com has been my primary source of news. But they've been dedicating more and more of their homepage to ads that *look* like articles. The banner ads I never mind. I understand they need to make money. But when they had "stories" on their home page that were links to CareerBuilder ever-green content, I got fed up and left (I was <a href="http://regionalhelpwanted.com">competing against CareerBuilder</a> at the time).<br /><br />I've been using MSNBC.com since then. Their coverage is as good, sometimes notably better. For example, an article can sit on the tecnology section of CNN's homepage all weekend, because they don't have enough content to keep it fresher than that. On MSNBC the churn rate for technology articles is much greater.<br /><br />But once you dig into an msnbc article, they use those very annoying double underlines links, that if you mouse over an you navigate around the page popup a distracting ad bubble that is completely irrelevant to the story. The double links don't appear on every article. A quick perusal shows them to be on only a minority of articles at the moment. But it's enough of a distraction to be a fatal flaw. When I'm reading, I want to focus on the content, not traversing a minefield of distraction.<br /><br />Looks like the newest iteration of the cnn redesign doesn't include CareerBuilder fluff, and the ads are clearly marked, so it looks like I'll be switching back for now.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-50066095611216257012008-10-09T06:37:00.000-07:002008-10-09T07:14:47.415-07:00Primerica SucksIn 2000 I setup IRAs for the two children that I had at the time (I still have those two, and an additional three lol). I put token amounts in for them, the minimum possible to open an account. I use a Primerica agent, and never setup regular contributions.<br /><br />My financial situation has changed a lot since then, and I'm trying to get everything accounted for in Quicken. With the financial upheaval, I'm making sure I have my ducks all in a row.<br /><br />So today I go to the <a href="http://www.shareholder.primerica.com">http://www.shareholder.primerica.com</a> website to manage the account. But it's been eight years, so I need to call their customer service to establish login credentials. 1-800-544-5445. They pick up the phone fast enough; so far so good.<br /><br />But the CSR quickly determines that she cannot help me, as my name is not on the account. Huh? The account is in the name of my eleven year old. Nice. He's off school today, so I interrupt his Mario Karts and get him on the phone. He correctly identifies himself. He states his date of birth. He gives our previous address, which is the one Primerica still has on record. He correctly gives our old phone number, and gives the phone back to me.<br /><br />So I ask the CRS "can you help me now? Am I authorized to manage the account?" She explains no, since he is not the only name on the account. "So you want me to get my nine year old daughter and have her go through the same process?" The CSR says as long as she can get through the whole identification process without being prompted by me. Because she could hear me in the background helping my son. She wants me to call the agent who I setup the account with eight years ago. Whom I haven't spoken to since. <br /><br />There has got to be a better way.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com2tag:blogger.com,1999:blog-5681826613258313948.post-55813748564335576382008-09-23T11:21:00.000-07:002008-09-23T11:23:50.912-07:00Gizmodo site downwtf? Gizmodo site is down? How am I to goof off now?Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0tag:blogger.com,1999:blog-5681826613258313948.post-5877588247597693182008-09-04T18:40:00.000-07:002008-09-04T19:06:33.219-07:00My sister got hosed by MS Antivirus[Wow, I haven't blogged for awhile. Been enjoying retirement, I guess. This pic is now way out of date. My hair got much longer and is now way shorter than my blogger headshot :P.]<br /><br />First, kind reader, be fully confident: Microsoft does *not* make an antivirus product. There is a malware program going around that calls itself MS Antivirus. I know, because I just installed it for my sister.<br /><br />Her laptop was hosed, she told me. I thought she meant that the hard drive was shot, but then she continued and described all the problems her computer was having, and it was obviously infected with spyware.<br /><br />So I took her laptop home, did a low level reformat, and installed Windows XP. Got all the patches loaded on, and of course gave her Firefox.<br /><br />She sent me info on some antivirus software she had just purchased, including the activation code, and wanted me to make sure I loaded that on since it was bought and paid for. I'm a good brother, so I did.<br /><br />D'Oh!<br /><br />Spybot Search and Destroy cleaned the resulting mess up, except for MS Antivirus itself. To kill that, I Ctrl+Alt+Deleted and killed the program, then deleted the install directory.<br /><br />So, a couple tips:<br />- Whenever I want to fix someones computer, I always download the utilities I need from <a href="http://download.com">download.com</a>. Don't do a Google Search for the stuff you need, since any ads may be compromised. I don't know who the hell makes Spybot Search and Destroy but for years I've gone to download.com to get it; it's always one of the most popular downloads.<br />- An the new corollary I will pass on to my sister: If you suspect your computer is infected with spyware, don't click on any of the pop-ups said spyware produces looking for a cure.<br /><br />Props to <a href="http://blogs.pcmag.com/securitywatch/2008/08/ms_antivirus_2008_morphed_from_xp_antivirus_2008.php">PC Mag for info on MS Antivirus</a>.<br /><br />And finally, here are the emails my sister got, in an effort to let any other victims know that they've been had.<br /><br /><pre><br />From: eSafeBill Transaction <globalsupportdirect@gsdirectsite.com><br />Date: Wed, Aug 27, 2008 at 5:29 PM<br />Subject: Your MS Antivirus License purchase<br />To: my sister<br /><br /><br />Thank you for making a purchase with eSafeBill!<br /><br />Transaction information:<br />Amount: 77.9 USD Including SCHD Bundle chosen<br />Activation Code: 873465112334272<br />Transaction ID: <br />Order Number: <br />Item: MS Antivirus License + System Cleaner and Hardware Doctor Bundle<br />You have chosen to purchase your software along with System Cleaner and Hardware Doctor bundle offer. Please download the installer for the additional software: http://222.73.37.203/i.php?tks=1<br />Quantity: 1<br />Date: 08/27/2008 12:21:40<br />Download source: http://222.73.37.203/i.php?l=msantivirusxp&c=c<br /><br />This purchase will appear in your credit card statement as "Spyware-shop4..com".<br />Total amount of 77.9 USD will be charged to your credit card.<br />If you are not completely satisfied with this purchase, please do not hesitate<br />to contact us using SUPPORT REQUEST APPLICATION at http://222.73.37.203/i.php?l=secure.esafebill&c=c<br />Please do not dispute this charge as doing so may affect your credit rating.<br /><br />===<br />ACTIVATION<br /><br />Please download the software from the following link if you<br />do not have it already installed.<br />Download source: http://222.73.37.203/i.php?l=msantivirusxp&c=c<br /><br />Please activate the program by entering the following<br />code when prompted.<br /><br />Make sure you enter your activation code correctly.<br />Just copy it and paste into the activation code box with no changes.<br />The code consists of 15 characters.<br />Your code is: 873465112334272<br /><br />The product is activated now.<br />In case of any difficulties,<br />please do not hesitate to contact us.<br /><br />===<br />REFUND POLICY<br /><br />If you are not completely satisfied with this purchase, please do not hesitate<br /><br /><br />to contact us using SUPPORT REQUEST APPLICATION at http://222.73.37.203/i.php?l=secure.esafebill&c=c<br />Please do not dispute this charge as doing so may affect your credit rating.<br /><br />===<br />THIS IS AN AUTOMATED MESSAGE. PLEASE DO NOT REPLY.<br /><br /></pre><br /><br />Ok, lets note that dead giveaway too: if it says "Don't contact your credit card company to dispute the charge, it will affect your credit rating" then please call Visa or Mastercard right now and do just that. Their operators are standing by. :)Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com3tag:blogger.com,1999:blog-5681826613258313948.post-50745229546723899652008-07-02T04:25:00.000-07:002008-07-02T04:37:17.652-07:00Google AdPlannerWhy buy a search term and link it to a page that is unreachable? No prob, if you a) have more money than Yaweh and b) you are the guy from whom we buy search terms.<br /><br />A <a href="http://www.google.com/search?q=AdPlanner">search for AdPlanner</a>, Google's new publisher tool, does just that. Organic results include links to Toyota affiliate terms of use etc, which means this blog just might be a linkbait success.<br /><br />I'll dig more into AdPlanner once I find a link to official public info, but <a href="http://valleywag.com/5021128/googles-ad-planner-no-threat-to-nielsen-comscore">Valleyway is already blogging about what it means to Comscore and Nielsen -- ok, they say its no threat</a>. But maybe they were just being ironic. Oh, <a href="http://stevebywater.blogspot.com/2008/03/compete-aquired.html">I can hope</a>.Steve Bywaterhttp://www.blogger.com/profile/10209917752645895573noreply@blogger.com0