You are currently browsing the category archive for the ‘nerdiness’ category.

You would think it’s simple enough to get the file version information as it is set in Visual Studio’s UI setting, but it wasn’t for me.  Even after Googling around I only discovered how to the the Assembly version, not the file version.  Well not until I found this article. The information is at the end of it and it basically goes like this:

string fileVersion = FileVersionInfo
       .GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;

I then also wanted to get the date too.  This is how I did it:

string fileDate = System.IO.File
       .GetCreationTime(Assembly.GetExecutingAssembly().Location)
       .ToString("MMMM dd, yyyy")

FileVersionInfo is at System.Diagnostics
Assembly is at System.Reflection

The best thing is I no longer have to remember to set this stuff before packaging up my app for shipment.  Like I am doing right now:  BD File Hash version 1.0.10 going out right now.

Happy Summer!  The kids are out of school and already bored.  My oldest son though is really into reading this year, I mean REALLY into it.  He has probably read 10 books already on summer break.

His school has a degree program for reading books during the summer.  Basically the students get a star for each day they read more than twenty minutes.  My son has been doing much more than that I thought it would be great to keep track of it.  I am sure looking back at the list at the end of the Summer he would be pretty impressed by the list too.

My first thought is that I would set him up with a blog, and he could type in the books he read on any given day.  He and I have done some basic web page building together, so I thought he may get a kick out of this.

So I added a new blog to my account here at WordPress and picked a theme I hoped he didn’t think sucked.  When I went to add his as a contributor to the blog I discovered he needed an email address to that.  Hmm….

Well I have thought about setting him up with an email address in the past, but never did it as there was really no reason and he is only eight.  So I went to Comcast to set him up with a family account.  The didn’t have the name I wanted, damn.  Well I found one close enough and went with that.  At least Comcast has some parental controls, I’ll have to look deeper into that.

I set him up with a WordPress account and when there to log him in.  When I logged in with his account to verify everything I was greeted with a page of many, many blogs.  Well this is not good, he doesn’t need to be exposed to to this, too young yet, too dangerous.

Going to the next level

As I pondered this in a background processes it hit me, what about setting up a new domain and hosting the stuff myself!?  I checked at GoDaddy and shit, the domain is available, excellent.

$10.67 / year for the domain, not so bad.  $9.99 for privacy, what!  that’s a bit outside.  Then it hit me again, Dreamhost.  Dreamhost has a free domain with a paid subscription and I never used it, perfect.  Off to Dreamhost

I was able to create and host the the domain on my current account and loaded up a WordPress blog in about 10 seconds.  Added an email address and we are ready to go in a more “controlled” environment.

So a simple idea has bloomed into a fully hosted domain with private emails and sites, all for an eight year-old.  I am the Tim Allen of the Internet!

So my son and I went over some of the stuff I put together and he is pretty interested in it all.  As expected he is a bit overwhelmed.  That’s OK, we’ll take it a step at a time in what ever direction interests him most.

I just finished a new file hashing tool, BD File Hash, which is hosted on CodePlex under the Microsoft Public License (Ms-PL).

The goal behind this Windows tool is an easier way to verify files you download from the internet.  Many applications, ISO’s, and other files usually list a hash with them.  This hash is used to verify the file you downloaded is the same file the author meant you to download.  It prevents you from using corrupt or exploited downloads by allowing you to verify the file before you use it.

The problem I had with most file hashing tools, is that they needed to be run from a command line, or you had to open the hash value into a text editor and copy/paste it into the hashing application to be compared. So I wanted BD File Hash to be a convenient way to verify files using hashes.

BD File Hash has the following capabilities:

  • Right click any file and select BD File Hash from your Send To menu
  • Use a file picker to select the file with the authors hash value, it will automatically be parsed from the file and entered into the BD File has application
  • Easily hash to files to see if they are the same
  • Supports MD5, SHA-1, and SHA-256
    • Please recommend any other hashing algorithms you may need.
  • Save your default hash type to the one you use most often

BD File Hash requirements:

  • .NET 3.5 SP1
  • Windows Installer 3.1

Give BD File Hash a try today!

I have this really, really bad habit; I spend a lot of time searching and trying out new tools for my tool box.  Some times to such extent I never get around to actually using the tools to build something, and that is just silly.

On the positive side is have given me a lot of exposure to the many, many options available to us, but on the negative side I think I use it as a form of procrastination.  If I am looking for for something, than I don’t actually have to ‘work’ on something.  How convenient.

The toughest part, is that I really enjoy checking out different applications.  Experiencing what so many are putting their hard work into.

So I have started a list, it is by no means complete, nor do I really plan on making it complete.  Though it will give you a pretty good idea on all the different things I have checked out and played around with.

I have wondered for some time how to keep footers at the bottom of the page.  I have tried different methods of minimum heights, etc., but it only ever looked just “OK”.

On Stackoverflow today, the a question was asked about sticky footers and a method being used to achieve them.  I thought the solutions interesting so I wanted to post them so I might be able to find this later.

Stackoverflow entry:
http://stackoverflow.com/questions/2239780/css-why-does-height-seem-to-be-set-when-its-not

The method referenced by the question’s author:
http://ryanfait.com/sticky-footer/

A suggestion made by someone else:
http://matthewjamestaylor.com/blog/keeping-footers-at-the-bottom-of-the-page

I hacking together a report today and discovered the Unicode text I received was actually in Unicode not ASCII.  I remembered that ChrW(int) will convert character codes to their associated character.  I really wasn’t in the mood to write parsing logic and test it, but luckily I came across a class which does this.  I ripped out the method I needed and it worked great in all it’s simplicity.  I have included this function below:

Public Function UnicodeToASCII(sText As String) As String
  Dim saText() As String, sChar As String
  Dim sFinal As String, saFinal() As String
  Dim x As Long, lPos As Long

  If Len(sText) = 0 Then
    Exit Function
  End If

  saText = Split(sText, ";") 'Unicode Chars are semicolon separated

  If UBound(saText) = 0 And InStr(1, sText, "&#") = 0 Then
    UnicodeToASCII = sText
    Exit Function
  End If

  ReDim saFinal(UBound(saText))

  For x = 0 To UBound(saText)
    lPos = InStr(1, saText(x), "&#", vbTextCompare)

    If lPos > 0 Then
      sChar = Mid$(saText(x), lPos + 2, Len(saText(x)) - (lPos + 1))

      If IsNumeric(sChar) Then
        If CLng(sChar) > 255 Then
          sChar = ChrW$(sChar)
        Else
          sChar = Chr$(sChar)
        End If
      End If

      saFinal(x) = Left$(saText(x), lPos - 1) & sChar
    ElseIf x < UBound(saText) Then
      saFinal(x) = saText(x) & ";" 'This Semicolon wasn't a Unicode Character
    Else
      saFinal(x) = saText(x)
    End If
  Next

  sFinal = Join(saFinal, "")
  UnicodeToASCII = sFinal

  Erase saText
  Erase saFinal
End Function

This has driven me crazy for weeks, I just haven’t been able to access web_dav I setup at dreamhost.com.

I found a perfect article on how to do it at Geek Boy’s Blog.  It’s so simple,…

Make sure you add the port number to the url you provide for the network place.

E.g. http://www.mydomain.com:80/foo

Once I did that, I connected instantly.  No more need for third party apps, I can just access it. :)

The goal of this document is to walk through the installation of a MoinMoin wiki without getting bogged down in any details.  We’ll go through requirements, decisions, and steps to complete, that’s all.  (OK, I did end up indicating what directories are added; I can’t stand when stuff is added I don’t know about.)   I will follow up this post with the details for those who are interested. Once you have completed the steps herein you will have a working MoinMoin wiki on your Dreamhost.com shared hosting account.  By no way is this the only way to set up MoinMoin on an account, or even the best way, but I tested it and it will work.  Lets get to it!

Requirements

  • Dreamhost shared hosting account.
  • A domain setup as fully hosted
  • Shell and FTP access to the domain account

Assumptions

  • Dreamhost running python version 2.4
  • MoinMoin version 1.8.5
  • Understanding of editing files from Linux shell
  • acctname is the accout name you used to access your domain account through ssh and FTPS.
  • ~/ = $HOME = /home/acctname/

Decisions

  • URL to run wiki from (we use sub directory) [We will use: http://hosteddomain/wiki]
  • Private name for the wiki’s instance name [We will use: dhwiki]

Steps

  1. Download MoinMoin wiki tarball from http://moinmo.in/MoinMoinDownload (moin-1.8.5.tar.gz) to your local workstation.
  2. From FTP: upload file to Dreamhost into folder ~/files [/home/acctname/files]
    ** All commands from now on are from your shell access **
  3. cd ~/files
  4. tar -xvzf ~/files/moin-1.8.5.tar.gz [new directory is created: ~/files/moin-1.8.5
  5. cd ~/files/moin-1.8.5
  6. python setup.py --quiet install --prefix=$HOME --record=install.log

    [two directories created: ~/share/moin; ~/lib/python2.4/site-packages/MoinMoin]

  7. Setup environment variables
    1. export PREFIX=$HOME
    2. export SHARE=$PREFIX/share/moin
    3. export WIKILOC=$SHARE
    4. export INSTANCE=dhwiki
  8. cd $WIKILOC
  9. mkdir $INSTANCE
  10. cp -R $SHARE/data $INSTANCE
  11. cp -R $SHARE/underlay $INSTANCE
  12. cp $SHARE/config/wikiconfig.py $INSTANCE
  13. chmod -R o+rwX $INSTANCE
  14. Edit file $INSTANCE/wikiconfig.py
    Find and change the follwing lines:

    1. sitename = u'Your Wiki Title'
    2. logo_string = u'<img src="/wiki/common/moinmoin.png" alt="MoinMoin Logo">'
    3. Remove hash (#) in front of: page_front_page = u"FrontPage"
    4. data_dir = '/home/acctname/share/moin/dhwiki/data/'
    5. data_underlay_dir = '/home/acctname/share/moin/dhwiki/underlay/'
    6. url_prefix_static = '/wiki'   [(remove # from line)]
    7. mail_smarhost = "dreamhost smtp server"
  15. cd ~/hosteddomain
  16. cp -R $SHARE/htdocs wiki
  17. chmod -R a+rX wiki
  18. cd wiki
  19. mkdir ./cgi-bin
  20. cp $SHARE/server/moin.cgi ./cgi-bin
  21. chmod -R a+rx ./cgi-bin
  22. cd ./cgi-bin
  23. Edit file moin.cgi
    Find and change the following lines.  Please remove the # if they exist on THESE lines:

    1. sys.path.insert(0, 'home/acctname/lib/python2.4/site-packages')
    2. sys.path.insert(0, '/home/acctname/share/moin/dhwiki')
  24. cd ..
  25. Edit file index.html
    Find and change the following lines:

    1. <meta http-equiv="refresh" content="0; URL=cgi-bin/moin.cgi/">
    2. Click <a href="cgi-bin/moin.cgi">here</a> to get to the FrontPage
  26. Go to your favorite browser and enter your wiki's domain: Http://hosteddomain/wiki

Use these instructions at your own risk.  I extend no warranties or guarantees about the accuracy or safety of your data or website.

These instructions where tested by building the following wiki: http://MMonDH.brettski.com/wiki

All comments are welcome

References Used

  • http://master.moinmo.in/MoinMoin/InstallDocs#basic-install
  • http://www.wombatnation.com/misc/installMoinMoinDreamHost.html

Revision Information

  • 11/21/2009
    • Initial post after successfully building a wiki following exact steps
Is this a negotiation, or are you just not interested? I am spending about 40k a month right now on consultants, so I have plenty of money to spend. Culture, to me it's directly impacted by budget and resources. At the time that we spoke my budget isn't nearly as high as it is right now. If you are talking about working evenings you do that already.
11/20/2009 8:11:16 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u When we first spoke, I was under the impression you no longer available after 6:00. You underpromised, so you could over deliver. I found out later that you were one of the hardest working guys that I know.
11/20/2009 8:13:30 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u Maybe you don't want to work that hard which is why it became an issue for you when I was pressing it. When I interview people, I always try and understand where their comfort levels are so I understand their boundries. The way I saw it is you wanted to have dinner with your family and got back on the computer later. Here is what I would ask for you to do.
11/20/2009 8:15:12 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u Look at your last month, and figure how many hours you really worked. Was it 40-50? 50-55? or +55 hours per week? I am interested in knowing because I am guessing your somewhere between 50-55.
11/20/2009 8:18:46 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u When we were in our discussions, you were giving me the perception that it could cause a problem for you at home if you were hoing to have to put in over 45 hours. What I really think is if you could make $110,000 in a 50 hour work week, or you could make $150,000 in a 60 hour work week I think you would probibly work 60. And then figure how you could get it down to 55... and then 52...
11/20/2009 8:21:25 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u And at the same time you were doing that, you would get me from 65 to 58, and 58 to 52, and so on. So at the end of the day, it really comes down to how much my time is worth as well as your time. Which is something you might not be taking into consiteration when you limit your opportunities and not discussing this further.
11/20/2009 8:23:43 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u Currently, I have 3 consultants I am paying 170,000 and they are not as smart as you are. They are down the street and you were down the block. At a certain point, I am sure you can understand that I can only afford to spend so much time in IT. I am ready to discuss dollars if you are. I am willing to discuss the boundries, or we can not discuss it at all.
11/20/2009 8:24:56 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u Hopefully you at least know where I am comming from. Bottom line, I am sitting here writing big checks saying to myself. Would I be writing checks this big and having to invest the time if Brett were here?
11/20/2009 8:27:22 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u I don't mind writing the checks, what I mind is when I have ot write the checks and still put in the time. You asked me what my commitment to you would be. If we were to do something, I told you I would give you a year of 60 hours a week of helping you acclimate yourself to our company. Thats a big investment of my time. I apprechiated the question because no one had ever asked me before.
11/20/2009 8:29:59 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u So here is what you have to ask yourself... Do I want to pass on the biggest financial opportunity of my life without going to see this man? The question I would ask you, is why would you want to limit your opportunities?
11/20/2009 8:34:35 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u The only thing I can think of is that you would be affraid of the industry, maybe that you were getting dragged into the deep end of the pool, giving up a job that I like that I am currently doing. Also, I did hire a senior level programmer for more money than you were asking for when you were interviewing and I am willing to pay him. Because I see how much value he brings me.
11/20/2009 8:35:27 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u I guess the question I would ask you is would you be willing to work with a programmer that makes more money that you did if he had the tallent?
11/20/2009 8:38:26 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u We have an aggressive agenda, I am looking to bring in top guys to make my life easier. I think you would be a good fit. Tallent costs money, I realize that. Something to consider, the banks are looking to change the comp plans for the Loan Officers and cut what they pay the Loan Officers by 50% of what they pay now. They are doing this as a result of the pressure they are getting from the gov
11/20/2009 8:39:50 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u The insurance companies that own mortgage companies are following suit. Which means that we have hundreds of people who are looking at our company as a result of massive pay cuts across the industry, which we are not participating in doing.
11/20/2009 8:41:18 PM mikeg1@ephmc.com (E-mail address not verified) Brettski *red+u I know you have been looking for that 1 opportunity that you could capitalize on. Maybe this is it? Is it really that far from the relm of possibility?

This is truly an exciting day for me.  The buzz around Microsoft’s latest OS reminds me of the release of Windows 95.  Back then it was the new platform, moving away from the DOS/Windows separate systems and memory issues.  It was a fun time.

Now,  many of us have used Windows XP for eight years or so, not liking the newer, problematic OS’s which have been released.  I have used Windows 7, and I like it and I know it will be the OS that corporations replace their aging Windows XP machines with.  It’s always a good feeling when things are moving forward in a positive direction

Happy Windows 7 Day!!

It feels a bit strange seeing the one plus terabyte drives roll out to the market.  It reminds me a lot of when the one plus gigabyte drives came out.  It all really seems the same: sizes, pricing, amazement.

I look at some drives sitting around my desk; removed some time ago do the the plowing of a machine (I prefer a new hdd over erasing a current one).  I look at a drive, 80GB hmm, that seems small.  Really, did I just think that–yes I did.  Simply because the 500GB drive I have installed now has plenty of space on it.  This is no different than when it was 80MB drive and I had that first 720 MB drive in my main machine.  This all really has the same smell.

Funny, even though I balked at that 80GB drive, I plugged it in to load up my Windows 7 beta.  You know what, there was more than enough room for Win7, VS2010, Office 2007, etc.

What are we doing with all this extra space we have on these drives?

Twitter Updates