Dougal Campbell's geek ramblings

WordPress, web development, and world domination.

AOL Axes Netscape

The big news in the web development community right now is that Netscape is dead. AOL is laying off or reassigning employees that were working on the browser.

On the bright side, Mozilla (the Open Source codebase upon which the Netscape software was based) is still very much alive and kicking. Mozilla has been my browser-of-choice for some time now.

BlogShares Givaway and Strategy

Okay, payouts went out this morning to my three new linkers (well, two new and one old). I gave each of you shares in 3 different blogs (and you each got different stocks than the others, so I gave out shares in 9 different blogs, altogether). I tried to diversify the stocks — high-priced, middle-priced, and low-priced. You’ll have to determine for yourselves whether the stocks are worth hanging onto, or whether you should immediately turn around and sell them.

I’ve only given away about BS$225,000 worth of stock so far. And I currently have BS$39,000,000 in my portfolio. I’m not trying to give it all away, but hey — come get some!

Do you want a very generic strategy that will pretty much guarantee that your Total Worth will grow? Buy and sell. That’s it. Well, okay, there’s a little more to it than that. Try to buy stocks with a low ‘p/e’ (Price/Earnings) ratio. “Low” in this case generally means “less than 200”. And the lower, the better! I usually try to only buy stocks that have a p/e < 150, and almost anything with a p/e < 75 is a great buy. When you buy the stocks, the price will almost certainly rise. Boom — you’ve already made a profit just buy buying it. Just wait six hours, and you can sell that same stock off, if you want.

Basically, every day you should buy a few stocks and sell a few stocks (to make sure that you have cash for buying more stocks later). Which ones should you sell off? The ones with a high p/e. When the stock gets above a p/e of, say, 300, it’s probably in danger of crashing (and the per-share price has probably topped out and begun fluctuating up and down as people buy and sell shares). The system will eventually re-value the stock, and its value will plummet. So, the old saying “buy low, sell high” doesn’t just refer to the price of the stock — you should apply that rule to the p/e value.

Other tips:

  • Use BlogShares’ search functions to find available shares. Try searching for blogs with low p/e, moderate-to-high valuations.
  • Watch out for blogs with zillions of total shares. If there are more than 100,000 total shares, then the price/share isn’t going to be going up very much, and you’ll have to own a significant number of the shares yourself to earn anything decent.
  • Look at the “Incoming Links” number in the Statistics section near the top of a blog description. Then check the “Top 100 Incoming Links” at the bottom of the page. If there are more links in the “Top 100” (or more specifically, if the sum value of the links listed is higher than the current Valuation) then the value of the blog is going to go up when the blog is reindexed. Buy now! Then force a reindex. This makes the Valuation rise, and the p/e fall.
  • Use my Service Pinger to get BlogShares to reindex a blog.
  • Use Technorati to search for incoming links to blogs that BlogShares hasn’t seen yet.
  • Keep your eye out for Sell Orders. Sometimes they don’t seem like good bargains. Use a little bit of math to be sure. I’ll leave that as an exercise for the reader 🙂
  • If all of the shares of a stock are owned, and the p/e is still below about 225, sell a few shares (maybe 100 or so). When somebody else (or maybe even yourself) comes along later and buys them, the stock price will rise a little, which bumps up the value of your remaining shares.

Those tips are all pretty much things I thought of on my own as I played BlogShares and began to understand how things worked. There are other good tips in the BlogShares Strategy Weblog.

Free Blogshares Stocks

Updated Aug 23, 2003

Okay, I’ve been playing with BlogShares for a while now, and I’ve managed to get myself up to at little over $60M (at the time of this writing). But I’m getting pretty bored with it. While I have discovered some interesting new sites via my Blogshares explorations, I haven’t seen a surge of linkbacks like I was hoping. So I’m going to resort to bribery.

Want some free stock? Link to me, and I’ll gift you some.

How to cash in

Here are the “rules” (such as they are):

  • You must be a BlogShares player, and you must have a blog listed on BlogShares
  • You must add a link to one of my sites (see below) to your blogroll
  • Post a comment to this post to notify me of the link (don’t forget to include your URL!)
  • When the Blogshares server registers the link (see below), I will gift you some shares

Where to link:

You may choose to link one or more of my sites:

  • geek ramblings: Mostly about programming and web design, with other topics randomly thrown in at my whim.
  • The Temple of Gunters: Mostly meme links to funny junk or articles about beer.
  • The War on Spam: An anti-spam resource with links to news, tools, other anti-spam sites, etc.

Notifying Blogshares

After you add the link(s) to your blogroll, you can use my handy-dandy Service Pinger to ask the BlogShares server to re-index your site. Just enter the name of your blog, it’s URL, and check the “BlogShares” box. The BlogShares server is picky about the URL. You must enter it in the form exactly as it appears in the BlogShares information page about your site’s stock, else you’ll get an “Unknown blog” error.

Other Notes

The amount, value, and quality of the shares that I gift will be pretty random. But you’re getting them for free, so you shouldn’t have anything to complain about, right? I promise to gift at least $25,000 $1,000,000 worth of stock from my portfolio, and possibly as much as $500K $5,000,000, diversified among several stocks, and it will not be stock in my own blogs (unless you specifically request that, perhaps). Remember, this is a bribe! So, I might be persuaded to gift more if you link more than one site, or if your site presents similar topics of interest, or if you post a message on your blog talking about how wonderful my sites are, etc. Linking to this post so that it gets spread around more is worth points, too. Feel free to be creative. And in case you’re concerned, the BlogShares admins do not consider this cheating. One of BlogShares’ goals is to encourage cross-linking, and selling linkage in this manner is perfectly acceptable within the rules of the game.

ClearDarkSky

If I had a telescope (and the time to use it), this would be even cooler:

Enterprise Clear Sky Clock

It’s a graphical summary of sky visibility over a 24 hour period.

Asynchronous Weblogs.com Pings

Hey, Dave Winer — how about implementing a method of invoking the weblogs.com ping that doesn’t do an immediate site check? It could just return a success code, then queue the request for processing. A cron job could then reap the queue every few minutes in an efficient multi-threaded way, and add the legitimately updated sites to the list.

This would eliminate the long wait and the associated timeouts for pinging clients, and hopefully would also reduce load on the weblogs.com server as well, since you would be able to pool database accesses.

You would, of course, still leave the original method available, for those who just can’t stand the thought of waiting more than one minute for their site update to be seen by the world.

Hmmm…. Of course, I doubt that Dave Winer is going to see this, since I’m tracking back to LazyWeb, and Winer and Ben Hammersley have a blood-feud going.

PGPNotSoSimple.pm

I’ve been working on a project at work dealing with PGP. Basically, we receive some sensitive information from a business partner, and it needs to be secure. They were considering setting up a rather expensive solution involving leased communication lines and virtual private networking. But I happened to mention that we could automate some of it with PGP, and in an unusual fit of common sense, they decided to let me have a go at it.

So, I got our Network Administrator to set up a new mailbox for the PGP ID, got our PGP keypair generated, got our business partner to give us a test file encrypted to our public key, and I was ready to begin the coding phase. I’m using ActivePerl under Win32 for this project, because, well, that’s what we have handy. I did express to my manager at one point that it would probably have gone faster and easier under Linux, and he seemed open to that idea. But I pursued the solution under Windows first, in the interest of conserving resources.

But, I kept running into problems. Most of the Perl modules for dealing with PGP have XS components. Which means that they include some C code that must be compiled to the installation target. Normally (i.e. under Linux or FreeBSD) this is not a problem — the C compiler and linkers and such are already on the system, and the installation script will automagically locate them, compile the C code, link it to the perl glue, and you’re up and running. Under Windows, it’s not always so easy. Sometimes it can be, but as it turns out, most of the modules I tried had unix-specific dependencies which I didn’t have the time or knowledge-base to overcome. I was just about to give up on Windows and start setting up a Linux box, but I decided to try one last Perl module: Crypt::PGPSimple.

As the name implies, PGPSimple is very simple. It’s nothing more than an object oriented interface that calls out to the command-line PGP tools. You tell it where to find the PGP executable, where to find your private key, give it some encrypted data, and it spits out the decrypted data. Except, I couldn’t get it to spit out the decrypted data. Instead, it kept spitting out the first several bytes of the encrypted data.

What the?” I scratched my head for a bit. Why in the world would I be getting part of my input back as output? I groveled through the PGPSimple source. Yup, it’s pretty simple, alright…. I enabled some debugging code. I disabled the code that deleted the temporary files. I checked the captured output from the execution of the actual PGP command. Nothing unsual there, everything looked fine. I reverse engineered the PGP command line that the perl program was executing (not hard to reverse-engineer, because the module is simple, right?). I simulated the command manually from a command line….


C:> type test.txt.pgp | pgp -f +batchmode +force > output.txt

Voila, unencrypted text!

What the?!?” Okay, how come this command works from the command line, but not from inside the Perl module. I stared at the code. I stared at it until beads of sweat formed on my brow. I stared until that code finally flinched. “Aha!” The PGPSimple module works by executing PGP in “filter” mode, passing data through the STDIN and STDOUT filehandles. This is a common method for filtering text. Text. But waitaminute…. I’m dealing with a binary file. Hmmmm….

It seems that the writer of the PGPSimple module assumed that the encrypted input would always be in ASCII-armored format, and opened the input file handle normally. Perl usually assumes that it’s dealing with text files. That’s Perl’s strength — mangling text data until you get it like you like it. To handle binary files, the file handle must be explicitly set to binary mode. The fix is simple. Edit the PGPSimple.pm file in a text editor, and look for the following section of code in the DoPgpCommand method:


# execute PGP command
open (PGPCOMMAND, "|$pgp_command");
binmode PGPCOMMAND;	## <-- ADD THIS
print PGPCOMMAND $pgp_args;
close (PGPCOMMAND);

Add the “binmode” line as indicated in the comment above, and you can now handle binary files. If only all program fixes were this…simple.

[Listening to: Smooth Grandmama – ApologetiX – Grace Period (03:28)]

Scott Adams Speaks Out

Scott Adams, creator of Dilbert, speaks out about terrorism in his latest newsletter:

“Peer pressure is the most powerful force on the planet, and we need
to use it to our advantage. For example, I recommend that the
Western media and politicians stop using the menacing-yet-cool
phrase “Al-Qaeda” and start referring to the group as the
“frickin’ Induhviduals.”

Like the proverbial dog chasing a car, the Induhviduals haven’t
considered what would happen if they caught one. For example,
let’s say they (the Induhviduals, not the dogs) accomplish their
stated goal of destroying the economies of the Western world. Is
that really a good plan for people who live in a desert and import
most of their food?

Just for the record, if I’m down to my last potato, I’m not sharing
it with a guy who wants to kill me so he can get a better supply
of virgins in paradise. That lesson is a little thing I call
Economics 101, infidel style.”

I’d suggest that Mr. Adams should run for president, but I’m guessing that he’d rather not do that, because he would be forced to deal with the D.C. Induhviduals too much. So, if you want to learn more about his insightful views on our world, you should sign up for the DNRC Newsletter.