Stock Research - a different approach
There are many sites providing stock data, analysis, and opinion, and I use about a dozen on a regular basis.
I visit the same set of sites for any given stock but the information is disaggregated. Sometimes I forget great sites with valuable information
that I've previously used. So I made a simple tool that automates the process of visiting a set of sites for a given stock.
It's like power steering - it doesn't do the steering, just makes it easier. This kind of subject-based approach has other applications, such as books,
shopping, etc.
The tool has baked into it a number of subject categories and for each category a list of web sites. In order to work with this approach, each web site must be addressable via a url that is parametizable for the given subject instance - such as a stock symbol, or a book author. The basic use case is that you select a category, such as Stocks, and then a subject instance such as IBM, then click a button and view the collection of web sites with specific information about IBM. The categories and subject pages are baked into the tool and are of my choosing. Someday I'll make it configurable.
I originally built it using C# and Microsoft Silverlight 4 because it was convenient, but I switched to javascript recently. It is completely client-side, that is the logic of the tool runs entirely in the browser - it doesn't connect with any servers other than to fetch the pages that are displayed.
To try it, click here.
The tool has baked into it a number of subject categories and for each category a list of web sites. In order to work with this approach, each web site must be addressable via a url that is parametizable for the given subject instance - such as a stock symbol, or a book author. The basic use case is that you select a category, such as Stocks, and then a subject instance such as IBM, then click a button and view the collection of web sites with specific information about IBM. The categories and subject pages are baked into the tool and are of my choosing. Someday I'll make it configurable.
I originally built it using C# and Microsoft Silverlight 4 because it was convenient, but I switched to javascript recently. It is completely client-side, that is the logic of the tool runs entirely in the browser - it doesn't connect with any servers other than to fetch the pages that are displayed.
To try it, click here.
Password Generator
Awhile back I got hacked and started worrying about passwords. I had used three levels of password - junk, semi-serious, and serious.
After the hackage, I became paranoid and started wondering if the same semi-serious password I had re-used many times had not become somehow tainted
by re-use. One malicious site is all it would take.
Then I took an approach where I would combine my semi-serious root password with some aspect of the password-requiring site in a simple algorthim to produce a per-site, unique, semi-serious password. Cool. Then I had problems uniformly applying my per-site "salt" and forgetting which sites I have applied it at, etc.
So I made a simple tool that combined my ever-memorable root password, with a domain name, took a SHA1 hash of the two and encoded it to work with most password allowed-characters rules. For the same root password and domain name, it will always produce the same result.
The result is this tool. It doesn't remember anything on the client computer, nor communicate with any server.
Then I took an approach where I would combine my semi-serious root password with some aspect of the password-requiring site in a simple algorthim to produce a per-site, unique, semi-serious password. Cool. Then I had problems uniformly applying my per-site "salt" and forgetting which sites I have applied it at, etc.
So I made a simple tool that combined my ever-memorable root password, with a domain name, took a SHA1 hash of the two and encoded it to work with most password allowed-characters rules. For the same root password and domain name, it will always produce the same result.
The result is this tool. It doesn't remember anything on the client computer, nor communicate with any server.
Old OverTheFalls, RIP
In previous incarnations, OverTheFalls contained surfing photos. If you're looking for that stuff,
you can still find remnants here and here.
More recent surf pics are here
More recent surf pics are here
Woodworking
Woodworking is the perfect antidote for programming because it's physical and the output can't be infinitely morphed, patched or upgraded.
When you're done, you're done, and that's sweet. Woodworking has alot in common with software; it requires planning and design, often
with tradeoffs, and requires that you spend a good part of your time building tools - jigs,
router tables, carriages, etc. I mostly build
furniture
(and here) and turnings.
I make shop in my no-car garage.
Photography
Good equipment + some free time + no art in soul = this.
Favorite Authors
Ross Thomas, Neal Stephenson, Reginald Hill.
Thomas had such a wonderful way with characters and his stories - mostly about the spy business - are different and fun. I get happily lost in Stephenson's books and never want to come out; completely immersive, deep, rich, and interesting. Hill is the best wordsmith I've ever read and there's no character in the world like Andy Dalziel!
Thomas had such a wonderful way with characters and his stories - mostly about the spy business - are different and fun. I get happily lost in Stephenson's books and never want to come out; completely immersive, deep, rich, and interesting. Hill is the best wordsmith I've ever read and there's no character in the world like Andy Dalziel!
Favorite Quotes
"Perfection is not when there is nothing more to add; perfection is when there is nothing left to take away"
- Antoine de Saint-Exupery,
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are–by definition–not smart enough to debug it."
- Brian Kernighan
- Antoine de Saint-Exupery,
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are–by definition–not smart enough to debug it."
- Brian Kernighan
Favorite Music
Tchaikovsky's violin concerto, Marriage Of Figaro.