A Blog by Scott Isaacs

Category: Uncategorized Page 12 of 31

New Tool: App Dashboard

Many times I find myself with way too many files, folders and shortcuts on the desktop for things that I am currently working on and/or testing.  That’s in addition, of course, to the things I have on the desktop because I use them all the time.  Because of the way I’ve grown to work over the last several years, having an overly cluttered desktop makes me inefficient.  In fact, I’ve found that I need to have certain types of icons in certain places, and “empty space” on the desktop in certain other places.

AppDashboard Yesterday, I found myself with too many shortcuts on the desktop, all related to my current project at work.  So I wrote a little utility that I called App Dashboard.  Basically, it’s a series of buttons that launch the applications I previously had a bunch of shortcuts for.  Initially, the paths were hardcoded, but I quickly changed my mind and allowed them to be user defined.  Then I decided that rather than define them in a config file of some sort, to actually create a document type for these groups of applications.

Thus was born App Dashboard.  You can download the binaries and/or the source below (usual disclaimer stuff here — use at your own risk, etc.).

Now I’m a big fan of SlickRun, so you’d think I’d just add MagicWords for these things, but the items I use App Dashboard for are more likely to fall into one of two categories:

  • They are temporal, and will only require quick access for a limited time, and I don’t feel that is worth adding them to SlickRun (just my personal opinion — take it or leave it).
  • They are items that I use a lot, and clicking a button is easier than typing a command when my hand is already on the mouse.  Actually, many of these things have MagicWords already, but switching from mouse to keyboard is a pain.  (It’s the little things…)

However, since App Dashboard has its own document type, I can easily create a MagicWord to open this dashboard or that dashboard.  I see myself using them both in various combinations.

Additionally, I’ve included some basic functionality for associating a file type with the app and for using an identifiable icon for the dashboard group files.  It’s optional, but you can run the install.bat file to setup these file type associations.  The application will work fine without running that, but installing will allow you to simply double click on a *.adsh file to open that dashboard.

Anyway, I welcome any comments or suggestions.  I don’t claim this to be a model example of how to accomplish any particular task.  I only claim that it may help you as it has helped me to keep myself and my computer slightly more organized and efficient.  If not, just delete it.  (Note that if you did run the install.bat file, I recommend you run uninstall.bat before deleting to remove the file type associations.  No need to leave that hanging around in Windows if you decide to not use App Dashboard.)

Google Search Results In Community Server 2007

I was having issues with the built-in search in CS2007.  Basically it was loading a blank page (no HTML at all) instead of the search results page.  I’m sure I could find some info about the issue in the forums, but decided I would take a few minutes to try to implement Google’s Custom Search instead.  I spent more time futzing with the CS files than necessary to figure it out, but in the end the changes were pretty simple.

Step 1: First, sign up on Google to have a custom search engine.  I’m not going to walk through this since it’s not that hard, and I’m sure you’re smart.  After your site is setup, go to the Code link in the control panel.  Expand the “Search box and search results code for your website” panel.  I recommend using the watermark text box because it will most likely match your site better than the other options.

Step 2: Backup these two files: /Themes/Blogs/YOURTHEME/theme.master and /Themes/Blogs/YOURTHEME/search.aspx.

Step 3: Open /Themes/Blogs/YOURTHEME/theme.master and remove the section for <CSBlog:SearchForm … />.  Replace that with code similar to the following, with variables changed based on what you get from Google:

<div id=”Search” align=”right”>  <table cellpadding=”0″ cellspacing=”0″ border=”0″>    <tr><td>      <input name=”q” id=”q” type=”text” class=”searchBox” 
Button=”SearchButton” onkeydown=”javascript:if((event.which
&& event.which == 13) || (event.keyCode
&& event.keyCode
== 13)) {GoogleSearch();return false;}else return true;”
/> </td><td> <span class=”SearchButtonOuter”> <a id=”ctl00_ctl06_ctl00_SearchButton” class=”SearchButton”
href=”javascript:GoogleSearch2();”>Search</a> </span> </td></tr> </table> </div><script language=”JavaScript”>function GoogleSearch2(){window.location =
“http://www.tapmymind.com/blog/tap_my_mind/search.aspx” +“?q=” + document.getElementById(“q”).value +“&cx=014327199496625865409:3nxxz5mvxtw” +“&cof=FORID:10” +“&sa=search”;}function GoogleSearch() { window.setTimeout(“GoogleSearch2()”, 200);}</script><script type=”text/javascript”
src=”http://google.com/coop/cse/brand?form=aspnetForm”></script>

You may have to change some HTML for layout purposes.  I am using the Paperclip theme and this worked for me.  I basically copied the resulting HTML from a source view of the unmodified page, inserting stuff where I thought was appropriate.

Also, the setTimeout was to cause a delay before submitting the form with the Enter key (the whole bit about event.keyCode, etc.) due to some issues I found with IE’s autocomplete not, ummm, completing before the form was submitted.  Also note that I am using the current search URL.

Step 4: Open /Themes/Blogs/YOURTHEME/theme.master and remove then contents of the <asp:Content … /> item — just the contents, leave the asp:Content element itself.  In it’s place add code like this (again, based on what Google gives you):

<h2 class=”pageTitle”>Google Custom Search Results</h2>These results are coming directly from Google’s search engine.  
Consequently, some items do not show up in the results right
away. If you are search for a post you expected to find, but
it is not listed, please try the same search on <a href=”http://blogsearch.google.com/blogsearch?as_q=<%
Response.Write(Server.UrlEncode(Request.QueryString[“q”]));
%>&bl_url=tapmymind.com”>
Google’s Blog Search tool</a>.<br /><br /><!– Google Search Result Snippet Begins –><div id=”results_014327199496625865409:3nxxz5mvxtw”></div><script type=”text/javascript”> var googleSearchIframeName =
“results_014327199496625865409:3nxxz5mvxtw”; var googleSearchFormName = “aspnetForm”; var googleSearchFrameWidth = 500; var googleSearchFrameborder = 0; var googleSearchDomain = “google.com”; var googleSearchPath = “/cse”;</script><script type=”text/javascript”
src=”http://www.google.com/afsonline/show_afs_search.js”></script><!– Google Search Result Snippet Ends –>

Note that I specified the search form name as “aspnetForm” (here as well as in the previous step).  This is the name/id the resulting HTML form has and correctly specifying this allows Google to properly add the watermark, as well as pre-populate the text box with the current search term automatically.

I also added a link to do the same search on Google’s Blog Search (GBS) tool.  I noticed that a post I recently added was not showing in the results because it hadn’t been indexed yet (I assume), but it does show in GBS because of pings that CS2007 sends for me.  So I coded the link to automatically search my site (you’ll want to change the value for bl_url) and the current search term.

Step 5: This step may or may not be important to you, but I also had to modify styles.css for the current theme so that the text box was wide enough to show the Google watermark.  I don’t have that file handy at the moment, but I think I changed the width to 140 or 150px.

As far as I can remember, that’s all I did, and so far it works for me.  I imagine many other people have already tried this and figured it out, but I didn’t bother searching for examples.  I didn’t really test this heavily, so please let me know if you find bugs or have suggestions.  I just have to remember this if I change themes or upgrade CS (hence this post).

Be sure to be aware of wrapping issues with the code I have posted here.  Also, I strongly recommend you backup everything you are going to edit first.  I’m not responsible for any damage you cause to your site.  [:)]

If anyone has an easier way, let me know.

Database Publishing Wizard

I don’t think I’ve written about this tool yet, but it’s one of my favorites.

Microsoft has release (on Codeplex) a SQL Server Hosting Toolkit (it’s free).  The entire toolkit is, I’m sure, full of goodness, but there is one part in particular that I really get a lot of use out of it.  I just shared it with Gerry to help him get his blog back up and running (finally), so I thought I’d post about it here.

The part that I’m in love with is the Database Publishing Wizard (download).  As the name implies, it’s a wizard and it will script out all or part of a database to a SQL file.  If your SQL Server host has installed the corresponding server-side bits, you can publish the database right to your remote DB instead of to file, but I personally like exporting to file.

Anyway, on the first screen you specify a connection to a SQL Server database server (2000 or 2005).  Then you step through a few screens and specify other options, such as which catalog to connect to, which tables to script, the target database version (2000 or 2008), and decide if you want to script the schema, data or both.  Then you “Hit Go” and a moment later you have a single .SQL file, suitable for executing in Query Analyzer, or whatever it is that they call the 2005 version of that.

I’ve used it for backing up a database at a particular point in time, so that, for example, I can revert to a version of the database that matches a particular version of my source (from VSS).  It’s also very handy for moving a database from one server to another, such as what Gerry needed to do.

I can think of a number of things that could be neat features to add, but it could easily get bloated unnecessarily.  So, with that in mind, there are only a couple things that I would like to see changed/added in this app:

  1. Ability to save my settings to a “project file” of sorts.  Perhaps, .DBPPROJ?  I’d rather not have to type in my server name, connection info, and script preferences each time.
  2. I’d prefer the default name for the generated script to be something along the lines of SERVERNAME_CATALOG_yyyymmdd.sql

Those aren’t that big of a deal, really, but I think it would be a relatively small investment on the part of the team that made this thing, and those features could save me minutes of time over the course of a week.  🙂

So if you’re a developer working with SQL Server databases, I’d definitely recommend checking out this piece of free software.

Remember When 56K Was Fast?

Back in the old days (12-13 years ago) my first modem clocked in at a whopping 14.4K.  Soon after I upgraded to a 56K modem and thought I was in heaven.  That’s four times as fast!

Flash forward to today at work when out DSL line was down for a couple hours, thanks to some mistake at CenturyTel.  Normally I would just work offline, but I had a few things I had to do online, so I plugged a long phone cord into the fax machine and used the modem built-in to my computer.

So.  Painful.

I had to send a couple e-mails, which wasn’t so bad, but I also had to download a 5MB file.  It took about 20 minutes.  After the line came back up I downloaded a 50MB file in only a couple minutes.

It just goes to show how spoiled we’ve (I’ve) become.  I’ve heard rumors that some people still use dialup.  Those must be the same people that whip themselves with ropes laced with shards of glass and stuff.

Stupid Things I’ve Done

So I’m starting a new category/tag on this blog.  Based on the title of this post you might have guessed that it’s called “Stupid Things I’ve Done”.  I’ve done a number of Things (capitalized because in this case it is a proper noun) in my 32 years that were stupid, and looking back it’s a miracle I didn’t get hurt or worse.  At the very least I’ve done a number of Things that I just can’t believe I ever thought were good ideas, even if I wasn’t in mortal danger.

Most of these Things are Things I’ve done with a good friend of mine, Jeff.  Now Jeff and I are both people of what I would consider to be above-average intelligence.  However, somehow, without any scientific explanation, we seem to come up with ideas that are stupid.  To my credit, most of these ideas are his, but he’s not here to defend himself, so I shouldn’t really bring that up.

So in this new category, I plan to occasionally add little stories of Things that I’ve done that were stupid.  Granted, I’ve done a lot of stupid things (not capitalized here because these things aren’t stupid enough to be Things), but this will just be some of the stupidest Things.  I imagine that most of these things will only be funny to me, but there may be some lessons that my dear readers can learn from my decision.

The First “Thing”

Like many of the Things that will fall into the Stupid Things I’ve Done category, this first story is about trying to do Something I don’t know how to do.  It’s not that the Thing itself is impossible or stupid — the problem is that I have no idea what I’m doing.  In fact, the Thing is typically a very common thing, which can be easily done by those that are qualified and/or informed.

So the first Thing was actually something Jeff and I tried to do just last night: move his Hot Tub from his old house to his new one — by ourselves.  To give you an idea of our situation, I’ve illustrated the layout of things here.

Looking To The North

lookingnorthAs you can see in this image (click for full size), the Hot Tub is gently nestled into the corner against the back of the house on the west, a fence on the north, and a Large Tree to the east.  Not shown in this image, to the south, is a small sidewalk surrounded by more Large Trees, air conditioning condensers, some garbage cans, and a deck.

Note: His Hot Tub is not really blue.  I just chose blue for this illustration since water is often indicated by a blue color.  See this page for an example.  Also, I don’t remember what color the Hot Tub cover was so I decided that it should be orange.

Looking To The West

lookingwestNow, this image (click for full size) shows what you would see if looking to the west.  It’s here to add a little more perspective and dimension of the Hot Tub, house, fence and Large Tree, as well as illustrate the contour of the yard to the north.  This contour includes a slope, some shrubs, a steeper slope, and another fence before you finally reach more grass at the street level.

Some History

Apparently, two descendants of Paul Bunyan himself carried (literally carried) this Hot Tub into its current resting place.  I haven’t figured out how two people got this Hot Tub into place by themselves without the aide of a crane or chain saw, but that is what I’ve been told.

Flash Forward To Last Night

Flash forward to last night, and Jeff and I find ourselves discovering that our best option* for moving this Hot Tub is as follows.

Step 1: Take down the section of Fence to the north of the Hot Tub, and carefully lay it on the ground for use in Step 7.

Step 2: Pry the edge of the Hot Tub up with a crowbar, floor jack (as would be used to work on your car in your garage), and various scraps of lumber.

Step 3: Slide two long 2x4s all the way under the Hot Tub from the south to the north, such that they are protruding over the beginning of the Grassy Hill.  These 2x4s are to be our “skis”.

Step 4: Use various ropes and straps to affix the 2×4 skis to the Hot Tub.

Step 5: Using a hand truck and our brute strength, attempt to move the Hot Tub away from the House, giving us at least several inches of clearance.

Step 6: Tie more ropes/straps around the Hot Tub, connecting the other end of said ropes/straps to a Dodge Ram (not pictured) parked in the street below the Grassy Hill, Shrubs, Steeper Hill, and Another Fence.

Step 7: Using the Dodge Ram, pull the Hot Tub onto the fence taken down in Step 1.  This fence is now our “sled”.

Step 8: Carefully slide the Hot Tub on its skis on its sled over some other pieces of lumber carefully laid out over the Shrubs (flattening them) and the Steeper Hill between the Grassy Hill and Another Fence.

Step 9: Magic happens.

Step 10: Securely fasten Hot Tub to a trailer on the other side of Another Fence, connect said trailer to the Dodge Ram, and leave.

Conclusion

After completing steps 1 – 5 and part of 8 (Shrub flattening), after moving the Hot Tub a few feet, and after a few visions of falling into the valley that is the Steeper Hill between the Shrubs and Another fence just waiting for the Hot Tub to crash through Another Fence, crushing my ribs into my lungs and heart killing me nearly instantly although it feels like an eternity, but somewhere before Step 9, we decided this was a bad idea.

Jeff is probably making a call to Paul Bunyan’s grandkids at this very moment.

* This really was the best option we could come up with for the two of us to move this thing by ourselves without the help of other strong people, cranes, or massive amounts of steroids.

How Lucky Am I?

I have the cutest kid ever — just ask me.  Or take a look for yourself (click the pic to see more).  This was from her first ever ride on a carousel at the Waukesha County Fair last weekend.

carousel

Facebook, MySpace, LinkedIn, Twitter …

So I have accounts on a million different social networking sites, such as Facebook, LinkedIn, TwitterMySpace, Orkut, Spoke (are they still around?), Ryze, and the list goes on and on and on and on.  You name it, and if it was ever even slightly popular, I’ve probably been a member.

Do I use them?  Almost never.  Sure I create accounts, maybe add a couple friends, a bookmark or two, etc.  But I don’t use them because I don’t get any value out of them.  All of the “friends” I add are friends I already have (NOTE: when I say friends here, I mean business contacts, family and friends — basically any relationship).  Why do I need 10 copies of my friends?  With 10 copies of their contact info?  And 10 copies of their picture?  And 10 places for me to “find out what’s going on in their lives”?  And 10 places to get spammed?

Recently I’ve signed up for Facebook and added a couple friends just to see what all the hype is.  I found the answer — it’s hype.  Plain and simple.  Sure, it can be entertaining, and there is definitely value in that, but that’s all the real value I’ve seen from these sites.  I have used LinkedIn once or twice for something productive, but I could have just as easily accomplished the same task from a different angle.

So anyway, if you’re on these sites, feel free to add me.  If I know you at all, I’ll definitely “accept” the connection.  Prove me wrong.  Make me appreciate them.

That’s just me.  Does anyone agree or disagree?

On the flip side, there is really only one website that I can think of that is indispensable to me: iGoogle.  99% of my iGoogle usage is search, but I like having my bookmarks and search history readily available.

My MSDN Subscription

My MSDN subscription is expiring soon — October I think.  (Does any know where can I verify this short of digging through e-mails?)  What’s a poor developer to do?

So, who wants to give me a subscription so I can stay current?  Anyone?

Things On My Desk

I’ve been in a little bit of a blogging slump.  Other than a link to a cartoon, I haven’t posted anything in a month and half.  As I mentioned previously, I’ve been spending a lot of brain power on work lately (hopefully that will be calming down in a month or two), and consequently haven’t really sat down to write anything.  I’ve opened WLW a dozen times to write something and started at a blank screen forever (or at least 15 seconds) before giving up and closing it.

Well, at the advice of another blogger, today I’ve decided to post a list.  I actually wasn’t going to post anything at all, but as I was looking around my desk I noticed that I had a few things on my desk that many other developers might not have.  I thought about it for about 3 seconds and realized, “Dude!” — remember, I’m originally from California — “This would make a totally awesome list post!”  Four more seconds later I decided that while the post might not be “totally awesome”, it would be fun for me at the least.

So anyway, here goes.

The Standards

francisco#1 — Francisco.  Francisco is my trusty Dell XPS M140 laptop that I got about 19 months ago — that makes him middle-aged in computer years.  A similarly equipped machine is now available from the same manufacturer for approximately 30% the cost I paid for Francisco, but our relationship is deeper than that.  It’s not all about money, you know.  And although he’s been feeling a little under the weather lately, and generally acting like someone suffering from some sort of bipolar disorder, we’ve been through a lot together, and have a strong bond.  Really.

So anyway, you may be wondering, “Is Scott using his personal computer for work?”  Yes, I am.  Let me know if you’re wondering anything else.

20inch#2 — The 20″ Dell display.  So I wanted to continue on for a moment with that thought you were having about me using my personal computer at work.  I work at a startup company, and as you may be aware, it’s not 1999 anymore and I’m not in the Bay Area.  As a result of the way the time-space continuum works, we are not funded with millions of dollars to spend on things like launch parties, massages, swanky lunches and high-end computers.  Well, at least not at the beginning.

I do have now (as of a month or two ago) a new Dell desktop somewhere in this office building.  It’s just waiting for me.  Every now and then I go out to the warehouse to make sure it’s still there, but I haven’t been able to take the time to set it up with all of the software I need to be productive.  So, in the meantime, I decided I might as well not let that 20″ monitor go to waste, so I plugged it in to Francisco.  So there you go.

pics#3 — Photos of my kid.  What proud father’s desk would be complete without photos of his most prized possession.  This is my daughter, Charlize.  We call her Charlie (named after my grandpa) and she’s the cutest baby ever.  The way that you can tell is that everyone that does not have little kids says, “She is the cutest baby ever”, and the people that do have kids say, “She is the cutest baby ever except for my kids.” 

The people in the second group are just liars.  But I forgive them because I’m sure they wouldn’t want it to get back to their kids that they thought my kid was cuter than theirs.

notepad#4 — A top secret drawing.  I can’t tell you what this is, or I’d have to… you know.  Actually I almost forgot what it was myself.  It’s a good thing I didn’t forget because it’s very, very important.

As you might have guessed, I’m not a good note taker.  The only things I write down are things I would probably remember anyway.  That and a lot of doodles.  I personally a fan of the spiral scribble and the sine wave.  Yes, the sine wave.  It’s the only thing I remember from my 11 years (actually about 5 years with a lot of breaks in between) and untold thousands spent on my degree in Applied Mathematics.  I used to wonder why they called it a B.S. degree.

postit#5 — My new patented “Memory Replacement”.  This might not be a “Standard” yet, but trust me: it will catch on like wildfire and will be popping up on desks across the globe.  To the uneducated and uninformed it looks like a simple pad of sticky notes and a pen.  Not so!  Recent research efforts have proven this handy little invention of mine to be an effective memory replacement for those of us who suffer from ultra-short-term memory loss (USTML).  USTML can be caused by a variety of factors, including fatigue.  Scientists don’t yet have a cure for USTML, but the Memory Replacement can help alleviate the side effects.  Be sure to consult your physician if side effects continue or if your Memory Replacement causes aches and cramping in your wrist.

Nonstandard

fork1#6 — A plastic fork.  Not typically a “nonstandard” item, but I haven’t eaten anything with a fork at my desk at all in recent memory.  I think I can remember how it found its home on my desk, but it’s just weird.  I mean, think about it, who has a fork on their desk?  Just sitting there?

I’m not sure how long I’m going to keep it.  It’s not like I have any emotional attachment to it or anything.  I haven’t given it a name or showed it to any of my friends (aside from this blog post, that is).

fork2#7 — A cool projectile toy.  No, it’s not a fork, people; it’s a cool projectile toy.  I can’t read Chinese, but the package says it’s called phourque

As you can see from the concave shape of this toy, a simple tap of the fingers on the elevated portion will cause this toy to fly into the air.  With practice you can learn to launch this toy straight up and back down into place, or you can hit targets up to 3 meters away (I guess they use the metric system in Taiwan — that’s, like, 3 feet in American).  The manufacturer recommends against trying to hit human targets, but, seriously, where’s the fun in that?

livecam#8 — An empty Live Cam box.  What do you think I’m using to take these pictures with?  Telepathy?  A 5+ megapixel camera?  My cell phone?  Yeah right!  Those are for losers!  I use this fine piece of hardware that is currently set to take high quality photos at 240×180.  It is a very versatile camera and it can be used to take pictures of computers, forks, toys, other pictures and even people.  Try doing that with telepathy!

You may have noticed there is also a high-end power strip in the frame with the Live Cam.  My work gave me that as a gift.  I use that power strip to not only supply power to Francisco and the 20″ Dell monitor (see items 1 and 2 above), but also as a spacer between my desk and the wall. 

I’m thinking of a ridiculously sigh-and-eye-roll-inducing play on words about table layout and spacer gifts (GIFs), but I’ll keep it to myself.

quickcam#9 — A QuickCam.  What’s this?  Another camera?  Yes, but this one is still in it’s box.  I’m sure there are many differences between this camera and the Live Cam.  First, this one is called QuickCam instead of Live Cam.  2 – this one is still in the box. C) the QuickCam cost us about twice as much as the Live Cam and it is a round ball shape instead of a vertical-half-an-egg shape.

In reality, this one is there to make sure that the application I’m working on works just as well with this camera as it does with any other camera.  So far so good as long as I remember to install the camera drivers.

phone-water#10 — A cup of water and a cell phone in a cell phone recliner.  I actually like to drink water a lot, and fortunately for me at work we have a reverse osmosis system hooked up to the fridge, so it’s like unlimited, free, good water.  Woo hoo!

Next, as you can see, my cell phone has a nice comfy little recliner to relax in while I work my fingers to the bone.  Yeah, I want my phone to be comfortable and all, but I have to admit that sometimes I see its smug little look while it’s sitting there in its fancy schmancy little phone recliner and I just can’t take it anymore.  Stupid arrogant phone. 

I used to have the same problem with my iPod.  Everyone knows that Apple products are cocky and arrogant to begin with, but give them a cushy soft papasan, and they take it to a whole new level.  Let’s just say I can’t find that iPod papasan anymore.

tape-lights-photoeye#11 — Some tape, lights, sensors and wire.  Here is some work stuff:

  • Some lights taped to my desk so I can see when they turn on and off more easily
  • A couple of different sensors (one actually fell on the floor and didn’t make it into this photo)
  • A roll of ultra-high quality, blue, single-sided adhesive paper.
  • Some mounting brackets for certain types of sensors.
  • A DVD a co-worker lent me to watch in my spare time.

reader-wires#12 — An RFID reader.  More work stuff.  This thing is an RFID reader.  That means it reads RFID.  But not just any RFID, it reads passive, UHF, Class 1 Gen 2, EPCGlobal compliant RFID tags.  Yeah, but the impressive part is that yellow cord hanging out of the side of it.  That thing is awesome.  It makes it so much easier to switch between different types of sensors.  Previously, testing new sensors meant unwiring the current one and rewiring the new one, trying to remember which wire goes where.  Fortunately most sensors use the same color scheme for wire colors, however, it was still a pain.  Now we only use sensors that support this quick connect cable and life is easier.  It kind of makes me wonder why we didn’t try this sooner.

Bonus

whiteboard#13 — My whiteboard.  OK, yeah, this isn’t really on my desk.  In fact, it’s behind me as I face my desk so it’s on a completely different side of the room.  I just decided to include it so that I could have a bonus section.  I always wanted to have a reason to have a bonus section in a list.

Anyone care to take a guess at what is represented by the drawing on the board?  Of course, I will be neither able to confirm nor to deny your guess as this is also top secret like the notepad above.  You’ll just have to think about it and wait until I’m a multi-gazillionaire before I can let the secret out.

Conclusion

So, there you have it.  I blogged.  It’s a list.

Maybe we can make this into one of those crazy blog meme things.  You know, kind of like chain-letters-for-blogs where people talk about things they’re going to do in the next 6 months to become a better developer, or post the results of some survey that tells them some revelationary fact about themselves in terms of cartoon characters, and then other people do the same thing, and so on.  What do you say?  What things do you have on your desk?

Or you could just read this and forget about it.  Your choice.

Disclaimer: I make words up.  I constantly add new words to my spell checker because it doesn’t like them.  Words like revelationary.  Sorry.

Do Not Eat

Just came across this again today.  It’s still funny.

Cyanide and Happiness, a daily webcomic
Cyanide & Happiness @ Explosm.net

Page 12 of 31

Powered by WordPress & Theme by Anders Norén