1/31/2005

Private Social Security Investment Accounts: A Dangerous Idea

Right, and Ted Kennedy is my next - door neighbor. Now that the Iraqis have had a real election, fortunes will turn more toward the current domestic agenda item, Social Security reform and private Social Security Investment Accounts. Now, the Progressive - Liberal pundits are using the same scare tactics today with this that they use every time some institution is ready to be changed from the status quo - first, you scare the pants off the average American, who knows very little about economics; next, you make the old people think that it will bankrupt the system and they won't get their check anymore, etc. etc. -- ad nauseum.

The fact of the matter is, there are a lot of ways to skin an economic cat, and the people who understand packaging and marketing have the secret. If somebody shoves something down your economic throat, no matter how good it is for you, most people will balk and resist. It's human nature. But if you package it attractively, and take the middle ground, the acceptance level goes up dramatically, and you get a sale.

Now this is a highly charged issue for those friends on the left - I mean, Hillary Clinton got so worked up about it, she fainted just before giving a speech on the subject.

When I was younger, before I got religion and became a professional software developer, I was a Financial Consultant for Merrill Lynch. Back in 1982, the Government passed "TEFRA" a tax act that changed the treatment of accrued interest on bonds, and Merrill led the way with all kinds of cool new securities based on the concept of "stripping" -- you take a $10,000, 30 year Treasury Bond, strip off all the coupons, leaving the corpus - the principal, which is then sold at a deep discount to match current yields, say for $2,000. I bought millions of these things for my clients, because interest rates were still sky high, and I knew that when they came back down - way before the 30 year maturity guaranteed them back their $10,000 - that the market value of the zeroes would soar - and they did. Since many of these things were in tax - deferred IRA and SEP Accounts, they could take profits and reinvest with no current taxes. But mostly, I used this as a technique to get people who were scared of the market to take a portion of the investment dollars, put them in zeroes, and invest the rest in a good mutual fund, secure in the fact that even if all hell broke loose and the market went to zero, at maturity they were still guaranteed to get 100% of their investment back. It worked because of packaging and marketing, not because it was rocket science.

What the Liberals don't understand is that you can use the same concept to privatize the bereft Social Security system, which in reality is currently giving us all a below - zero percent return on the money they take out of our paychecks due to government greed and graft, and we can still guarantee Uncle Harry and Aunt Mabel that their trusty Social Security checks will always be there until the day they die. But then, being Liberals, having a good economic idea would ruin their fun, which is based on having a large government that knows better than we poor slobs do, and is really good at redistribution of our money to other slobs, who are poorer than we, but who are still smart enough to have their hands out. * The idea is, if you have been very successful in an ownership society, the Government should take an ever higher percentage of your money to help fuel this redistribution of wealth process, in order to reward you for your success. Makes great sense to me.

This "guarantee the principal" scheme is already done in the mortgage industry, the municipal bond industry, and others, and it works just dandy. Private insurance companies can be brought in to do the guaranteeing of the Social Security trust funds - the Government doesn't have to do it. In fact, we can even increase the percentage of the portion that's put into the "zero" fund to guarantee the worst investors in the world that they will still get a positive return on the dollars that they put into their "private investment accounts". And the best part of it is that if you manage YOUR Social Security account well and get a good return, you can have some of YOUR money left over when you die and bequeath it to your kids. I did say it was YOUR money, didn't I . . .

Let's take a for example; we'll use a tax free zero to make it more interesting:

The Savannah GA Development Authority (AAA rated) zeroes mature in 2021 - about 17 years, and are priced at about 45.84 for a 4.691% yield to maturity. So you have $10,000. We take $4,584 and put it into a $10,000 Georgia zero. We take the other $5,416 and put it in the stock market. Let's assume that over the 17 years the market returns what it has averaged over the last 60 years - about 10 percent. So in 2021, we have an investment account worth $27,410, plus a bond worth $10,000. That's a respectable 8.07% return on our hard-earned money. Even if the market only averaged a 2% return, we'd still be better off than we are with those crooks in Washington spending it!

Wake up! It's NOT the Government's money; It's YOUR MONEY! So, you decide: Private Social Security Investment Accounts: a dangerous idea.


* While I'm at it, didn't I mention that I thought the IRS was a bad idea, too? The US Government can raise plenty of money through a National Sales Tax - and eliminate the huge cost of running a behemoth IRS tax system. And, it can be a fair tax, with everybody paying a fair share.



1/28/2005

Windows "Genuine Advantage"? My Butt!

This is the program where you can only get "Stuff" (new add-ons and Windows updates, for example) if your copy of Windows "validates" to be non-pirated. They had this on the download page for the Beta of the Anti-Spyware release (although you could decline to participate and still were allowed to download it). Even when it does become mandatory, supposedly later this year, users with copies of Windows XP that don't validate will just be prevented from downloading updates and other software.

Well, my Windows Server 2003, for example, which is a completely legitimate copy of the OS, has NEVER been able to get Windows Update, and I've tried every "Fix" in the book, so how the hell is this new program going to help me? Mine doesn't pass the "Genuine Advantage" test either, even though its a completely legitimate and activated copy of the OS from my MSDN Universal subscription! So theoretically, later this year, Peter Bromberg, who is a Microsoft MVP, won't be able to download the latest BETA of the MS Anti-Spyware or whatever else they want to entice me with...

Oh, and by the way... why do I have to go through this "Genuine Windows" process again, since I already Activated my new installation of windows when it first came up? Isn't activation with a valid product key sufficient? After all, if I didn't activate the product, it would have ceased to work, right?

According to Microsoft, almost one of every four Windows users is using a "non-genuine" version. "Non-Genuine" basically to me means that the CD is a copy and it installs, it just won't activate, so the hackers have provided some sort of a crack to get around activation. Otherwise, it's indistinguishable from the real thing.

Problem is, a lot of people aren't trying to rip off Microsoft. Some of them really paid money and will discover that they got cheated by somebody else -- a distributor, reseller, etc. on their copy of Windows. Fat chance ever getting even on that score!

The buzz from Microsoft is all about protecting customers from counterfeit software, etc. Sounds the same as "product activation" from a couple of years ago to me. Deja Vu all over again?


Or perhaps more like this:
Recursion: see Recursion.

1/23/2005

What should be in a BLOG?

"The great thing about standards is that you get to choose a new one each year" --Tennebaum


In my travels through the blogosphere I gather some thoughts to share:

  • If you are a developer, and your blog is on a development-oriented blogging host site, shouldn't you be blogging about development-oriented stuff? I mean, I visit Microsoft weblogs - hosted blogs, and most of them have what I am looking for - technical content about development with Microsoft technology. But some of them don't. Instead, they have lists of MP3 tracks, why your car wouldn't start, your dog had puppies, you "found religion", or whatever other non-development oriented subject. Sure, I suppose its OK to throw in a post or two on off-topic items. But if that's what you really want to do, I think you should start a personal blog somewhere else. I won't be reading it. Not because its no good -- but because that's not the kind of content I'm looking for.

  • Have you noticed that some people's blogs consist of nothing more than links to original stuff that other bloggers have written? I think its OK to link to other's work, but more proper to do so when you really have something to add. I mean, if they needed a mirror site, they'd probably set one up, no? Here's what I mean: I search for something I need, and I find 50 "Me too"'s pointing to the real one. Typically none of them have much if anything to add, other than to point to the original person's work. Reminds me of the Simpsons cartoon character writing "I will search Google before asking dumb questions" 50 times on the blackboard.

  • Engaging in public put-downs of somebody else's blog entry on your own blog is really uncool. Unfortunately, I've seen more examples of it than I care to count.

  • Spam, spyware delivery, popups, and so on simply don't belong on blogs. Neither do "Chain blog" schemes. I doubt this opinion needs any amplification.

  • Has basic Netiquette disappeared, along with good taste in music? With UseNet, we used to watch as our favorite newsgroups dropped into the Black Hole of the signal-to-noise ratio. Netiquette dictated that if you wanted to say something, it had to be useful, and you were to say it succinctly. Blogs seem to be the opposite of that -you have long ruminations, off-topic posts and comments, "Me-Too-isms". I'd rather listen to Glenn Gould playing the Goldberg Variations, or Tatum, Trane, Miles, Bird -- classic stuff that has passed the test of time -- not the noise these dweebs put up that will be forgotten forever in a year or so. And at any rate, I don't clutter up my blog with links to it. Hey, I'm the Program Manager of XYZ - and here's my MP3 list, ain't I cool? Jeesh!

Is Your Feed good?

Ours wasn't. . . But now it is. Thanks to --- FeedValidator!

Check it out!

1/22/2005

HOW TO: Squeeze every last bit of memory you need, temporarily

Sometimes you have a situation (heavy duty graphics program or some other memory-hungry task) where you need to really "lean down" your machine to provide every last bit of available memory to your task. Here's an easy way to do that:

1) From a command prompt run: NET START >netstop.txt This will pipe the list of running service names to the text file.
2) Load the netstop.txt file into your favorite text editor and massage it till it looks like this:

NET STOP "ASP.NET Admin Service"
NET STOP "COM+ Event System"
NET STOP "Computer Browser"
NET STOP "Cryptographic Services"
NET STOP "DefWatch"
NET STOP "DHCP Client"
NET STOP "DNS Client"
NET STOP "Event Log"
NET STOP "HTTP SSL"
NET STOP "IIS Admin Service"
NET STOP "Machine Debug Manager"
NET STOP "Network Connections"
NET STOP "Network Location Awareness (NLA)"
NET STOP "Plug and Play"
NET STOP "Print Spooler"
NET STOP "Protected Storage"
NET STOP "Remote Access Connection Manager"
NET STOP "Remote Procedure Call (RPC)"
NET STOP "Remote Procedure Call (RPC) Locator"
NET STOP "Security Accounts Manager"
NET STOP "Shell Hardware Detection"
NET STOP "Symantec AntiVirus Client"
NET STOP "System Event Notification"
NET STOP "Task Scheduler"
NET STOP "TCP/IP NetBIOS Helper"
NET STOP "Telephony"
NET STOP "Themes"
NET STOP "Windows Audio"
NET STOP "Windows Management Instrumentation"
NET STOP "World Wide Web Publishing Service"


Note: you will need to edit the list to remove any services that you know should not be stopped. Now save the file with a .BAT extension.

Also, you can replace all the words "STOP" with "START" and save a new file as "netstart.bat" - this enables you to restart all the services you stopped.

Try it!

1/21/2005

Are we Going Live?

Yup, we are. The buzz from Redmond indicates clearly a February 2005 time frame for ASP.NET 2.0 Beta 2, complete with a GO LIVE license! I, for one, have been holding off, but with this new good news, I'm getting ready to put together some really good ASP.NET code with version 2.0 that ties together everything I've learned in the last 4 years with the highly successful eggheadcafe.com, plus everything I"ve learned as an MVP and from studying with the beta. However, I've also learned that I don't have a lock on all the good ideas, and to really make a site "sing" you need more than "one guy" to run it.

If you are an intermediate to advanced level ASP.NET developer, and you have some ideas about a really good developer-oriented site and would like to partner, contact me and let's discuss at bbromberg-at-cfl-dot-rr-dot-com.


This is the kind of stuff that takes at least two developers to run, and there's plenty of money in it if it's done right. If you have an idea and we don't have a meeting of the minds, you can trust that you and your concept will be protected.

Oh, and I almost forgot to mention -- in addtion to being an ASP.NET developer par excellence, you must be literate and motivated enough to generate new, original content in the form of articles, code snippets, tips and tricks, and commentary.

ILMerge, Assemblies, and how to set a VS.NET Reference to a .NET EXE file

I've always liked Michael Barnett's writing, and the happiness increased when I found out that he was working for Microsoft Research and had authored the marvelous ILMerge Utility.

For example, I can combine three different assemblies into the same executable for my IE Favorites Synchronizer utility like so:

c:\ILMERGE\ilmerge /target:winexe /out:FavSynchro.exe FavSynch.exe ftp.dll ICSharpCode.SharpZipLib.dll

I get FavSynchro.exe, which is 100% self - contained (except for the Runtime). Sweet!


Problem is, ILMerge.exe is a console app and It only has a command line interface. Of course, the C# command line compiler, CSC.EXE, does support setting references to .NET Executable assemblies, but that too is a command - line program - yuk!
I wanted to build a nice Windows Forms-based utiltiy wrapper with File dialogs and all the stuff you would expect.
So, what did I do? I changed the extension on a copy of ILMerge.exe to ".dll" and Presto! Set a reference to it in the VS.NET IDE with no problem. Think outside the box.

1/20/2005

Microsoft releases new Log Parser version

If you aren't familiar, this is a very useful tool that can handle lots of different sources, even put the results into SQL Server:


Download MS Log Parser

1/19/2005

BitConverter for encoding integer values to bytes and reverse

Often when working with streams, in particular when the stream does not support seek operations, we need to be able to transmit the number of bytes in the message as a "header" at the beginning of the message.
In this manner, all we need to do is read the first four bytes out of the stream, convert to an integer value, and then it's a snap to read out exactly the correct number of subsequent bytes to get our entire message.

Here is a sample class using the methods in the System.BitConverter class, along with a sample MemoryStream and string message, to illustrate how this can be done:


using System;
using System.IO;
namespace BitConverterExample
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Int32 Max value: " +System.Int32.MaxValue.ToString());
int test = Int32.MaxValue ;
byte[] bytInt=new byte[4];
bytInt= Int32ToBytes(test);
int test2 = BytesToInt32(bytInt);
Console.WriteLine("Result is: " +test2.ToString());
MemoryStream stm = new MemoryStream();
string message="This is a sample message to test out.";
byte[] msgBytes=System.Text.Encoding.UTF8.GetBytes(message);
byte[] finalMsg=EncodeMessageWithHeader(msgBytes);
stm.Write(finalMsg,0,finalMsg.Length );
stm.Position =0;
byte[] resultBytes=DecodeMessageWithHeader(stm);
string finalResult=System.Text.Encoding.UTF8.GetString(resultBytes);
Console.WriteLine("Result: " +finalResult);
Console.ReadLine();
}

private static Int32 BytesToInt32(byte[] FourByteArrToConvert)
{
return System.BitConverter.ToInt32(FourByteArrToConvert,0);
}
private static byte[] Int32ToBytes(Int32 int32Input)
{
byte[] numBytesBuf = new byte[4];
return System.BitConverter.GetBytes(int32Input);
}

private static byte[] DecodeMessageWithHeader(MemoryStream ms)
{
byte[] numBytesToRead= new byte[4];
ms.Read(numBytesToRead,0,4);
Int32 intBytesToRead=BytesToInt32(numBytesToRead);
byte[] msgBytes=new byte[intBytesToRead];
ms.Read(msgBytes,0,intBytesToRead);
return msgBytes;
}
private static byte[] EncodeMessageWithHeader( byte[] msg)
{
int len = msg.Length;
byte[] numBytes=Int32ToBytes(len);
MemoryStream ms= new MemoryStream();
ms.Write(numBytes,0,4);
ms.Write(msg,0,msg.Length);
ms.Position =0;
return ms.ToArray();
}
}
}

1/11/2005

MS AntiSpyware Beta Available

How to Remove Spyware from your Computer - and the price looks good!



As discussed recently, with Microsoft's acquisition of Giant Software, they have now made available the first BETA which keeps all the original features of the Giant product.

Its available here.

Even though my machine already has loads of Anti-spware stuff installed and I run it regularly, the new Microsoft product didn't seem to have any problem finding bad stuff that the other guys missed:




BTW, the Intelligent Quick Scan found all the bad guys that the Deep Scan found, but is hugely faster.


This thing is schedulable and has a number of other attractive options. But - most importantly, it found stuff that other programs could not find. I would have to give this one some high marks, especially since it's marked as a BETA.

As Ann Coulter so eloquently put it, "For some people, history began ten minutes ago."

1/03/2005

Bloggers have overtaken What?

I just read a particularly silly quoted in Search Engine Journal. From a marketing perspective, this is interesting. Let's pick it apart (my comments are in brackets):

Blogs Have Overtaken 8 Million Americans, 57% Are Male

After being pounded in the blogging stakes by rampant female blogging last year, [What the HELL is "Rampant female blogging?" Were they in heat, or something?(don't sweat it, ladies, I'd have said the same if it was "rampant male blogging")]
men have flocked back to the blogosphere in increasing numbers, safe in the knowledge that once more,
the Pew Internet and American Life Project would restore what many of us already knew, that 57% of bloggers are male. [ No, I didn't know that 57% were male, I'd thnk it would be far higher. Don't trust their numbers.]

Pew is back after taking a pounding with some bizarre results based on a small number of random observations
on a couple of free blogging services last year with some figures that may actually reflect something closer to the truth this year.

The key findings:
- 7% of the 120 million U.S. adults who use the internet say they have created a blog or web-based diary. [I just totally cannot believe the number is that large in reality]
This represents more than 8 million people, or 8 millions blogs asuming 1 blog per person.
Significantly higher than the regular 5 million figure being quoted in the press lately,
and it should be noted that this is 8 million blogs in the US ONLY. Add the rest of the world,
and the figure must exceed 10 million at least by now.
- 27% of US internet users say they read blogs, a 58% jump from February 04, meaning an approximate
32 million Americans were blog readers. [ Hey, it didn't mention that all 120 million U.S. Adult internet users are bath-readers! I wonder how many are taking their PDAs into the bathroom to read blogs instead of Time magazine...]
- 5% of internet users say they use RSS aggregators or XML readers
to get the news and other information delivered from blogs and
content-rich Web sites as it is posted online. There is lots of unmet growth in the RSS market to be filled.
- Bizarrely only 38% of US internet users know what a blog is. (perhaps the other 72% only use email) [Is this a new word, "Bizarrely"? Should I add it to my spellchecker, or just email it to William Safire?]

On Bloggers
Blog creators are more likely to be:
- Men: 57% are male
- Young: 48% are under age 30 (we’d note this is their figures: if young is under 30, and 48% are under,
wouldn’t 52% of bloggers be old at 30 and above and in the majority??)
- Broadband users: 70% have broadband at home
- Internet veterans: 82% have been online for six years or more
- Relatively well off financially: 42% live in householdsearning over $50,000

A pinch of salt though, the survey was based on 1,324 internet users. [On reflection I'm beginning to think this whole piece is about as revealing as mud.]

--Well, there you have it. Straight from --- Pew! (BTW the Pew Survey is called "State of Blogging")

IMHO, interviewing 1324 people and declaring figures like the above as if they were the Gospel is pretty shoddy research.

Anyway, if you want to read the entire PDF of their report, here it is.