A Blog by Scott Isaacs

Tag: Technology Page 4 of 11

Holiday Party 2007 — Already Sold Out

I recently posted about a Holiday Party that Microsoft is sponsoring for the WI .NET Users Group.  Well, unfortunately, a mere 3.5 hours after making the announcement, the event has filled up.  The Chicago .NET Users Group is also having a similar event, and theirs "sold out" in 2 hours.

Microsoft had a particular number of licenses available for us at this event, and we have already reached the limit.  My contact there is working to see if there is anything that can be done to add more, but he’s not sure yet what will be available.

If anything else comes up and more space is made available I will definitely make an update.  I apologize for those of you that wanted to register but were not able to get signed up in time.  This booked up much faster than anticipated.

Please check back regularly in case more seats are added.  I will send a newsletter update as well if that happens.

Deeper in .NET 2008 – Planning

So, if you’re a .NET developer in southeast Wisconsin, or if you’ve read my blog for a while, you may know that I am the president of the WI .NET Users Group (UG).  You may also remember that in spring 2006 we had a day-long conference called Deeper in .NET 2006.  It was a great event, with several hundred attendees and five nationally recognized speakers.  Best of all, since the UG is sponsor supported, Deeper in .NET was completely free for all attendees.

Well, after a hiatus in 2007, we are currently planning Deeper in .NET 2008 right now.  While no plans have yet been finalized and everything in this blog post is tentative, I wanted to share some of what we have in mind to get community feedback.

Currently, we are planning to have DiDN08 on April 5, 2008.  The format will be similar to previous years, and we will have 5-6 sessions over the course of the day.  As usual, we will be trying to attract the top speaking talent we can find to present of the topics that are the most interesting in the Microsoft development world.

Although we are already in contact with a few potential speakers, I’d like to give everybody this opportunity give their ideas for both speakers and topics.  Have a burning desire to hear your favorite speaker or author right here in your own backyard?  Let me know.  Really want to find out more about Microsoft’s latest and greatest product that will meet the impossibly difficult business need you are facing at work?  Leave a comment.  Have any other ideas about the conference, or about the UG in general?  My ears are open.  While I can’t promise miracles, I will promise that we will review every suggestion and try to make this conference what our members want it to be.

Also, if you’re a past or present sponsor of the UG and are interested in finding out how you can get involved with this thriving community, let me know.  I will be sending out some e-mails over the coming weeks to those that have sponsored or expressed interest in the last couple years, so be sure to watch your inbox.

As time gets closer, more and more info will be available on the UG site.  In the meantime, I’ll be sure to post anything here on my blog tagged with DiDN.  If you’re a blogger, by all means, blog about it, and trackback to this post, and/or tag it DiDN.  And if you blog, be sure to check out our Evangelist program.

Silverlight Hangs My Computer

So after months of forgetting and never thinking about it when I am at my computer, I finally remembered to subscribe to Brad Abrams’ blog today.  I was reading his recent post mentioning Silverlight hosting, when I ran into an increasingly familiar problem I am having on my computer.  I clicked on the link to the Silverlight Streaming site and my browser pegged out the processor and my computer was unusable for a few minutes while I tried to get a Task Manager window into view to kill the process. 

I have Silverlight 1.1.20816.0 installed, and it only seems to happen when I use IE.  I haven’t noticed this with Firefox although I haven’t tried that as much, and I have only noticed it on sites using Silverlight.  I’m on Win XP SP2 with IE7.  Has anyone else experienced this?  Anyone have any thoughts on what I should do to fix this?

Please contact me here or leave a comment if so.

Issue Tracking and Help Desk

What software do you use for issue tracking (feature requests, bugs, etc.) and help desk?  I’m looking for something here at work.  Has anyone used Axosoft OnTime?  I don’t want something hosted as a service (I want to install it here).  Also, I don’t want something that costs a fortune, but I don’t necessarily have to have a free/OSS piece of software either.  Just looking for something good and easy to use, preferably built on MS stack, but that’s not required.

Contact me with any suggestions or leave a comment here.

Microsoft To Make .NET Framework Source Code Available

Dave Bost just e-mailed and posted about this — Microsoft is making the source code to the .NET Framework available.  From Scott Guthrie’s blog:

We’ll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows).  We’ll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ).  The source code will be released under the Microsoft Reference License (MS-RL).

I think this is a big step for Microsoft and for Microsoft developers like myself.  It could be a great learning tool, letting us see how things are happening behind the scenes (without having to make use of something like Reflector).  I also like the fact that we can step into the code when debugging (see ScottGu’s post for more about this).

Sure, it’s not “open source” in that we can’t make changes to the code, but I’m not so sure I would want that anyway.  I’m looking forward to it.

Sunday Afternoon Reading

Work has been killing me lately (the last several months), but things are starting to calm down and I think I only worked about 45-50 hours last week. 

I spent yesterday with the family at the zoo.  Charlie has been to the zoo more times in her 12 months of life than I had been in the 31 years before she was born.  She likes any animal that is moving, and she absolutely loves the carousel.  Kelly’s sister has a zoo pass and the three of them (Kelly, Charlie and Aunt Katie) have gone many times over the past spring and summer.

Book CoverSo anyway, today I thought I’d take some time to either work on some side projects or try to pick up some knowledge on some newer bit of tech that I haven’t been able to use yet.  I decided to finally try (again) to play around with some WPF stuff.  I don’t have an immediate use for it, but there is some upcoming stuff at work that I might like to create with WPF.

Previously I’ve played around a little with it in VS and Blend, just to sort of get a feel for it.  Today, though, I thought I’d read and have a little more structured learning.  Fortunately, I had a copy of Charles Petzold’s WPF book in the home office (Applications = Code + Markup), so I grabbed it and started flipping through it — structured flipping, of course.  I read a few pages and then started scanning through the book to see if there were any topics that seemed to particularly interest me.  That’s when I finally got to page 611.

Page 611As you can see, Mr. Petzold must have been busy with other things at the moment he was writing this page.  Maybe he was thinking, “Hmm, 611.  That’s the number I call to connect directly to my phone company.”  Or maybe he knows someone born on June 11?  I don’t know what it was, but he forgot to include part of the page.

Or maybe it’s not his fault at all, and some rogue employee at the publisher decided to sabotage the book?

Page 612The strangest part of all of this is that there is also part of page 612 missing.  Coincidence?  Unlikely.

I’m not sure what to do.  This is very discouraging.

Maybe I should give up on reading and go outside or something.

New Tool: Folder Finder

I’m on a roll here with the little utilities…

My dad called the other day as he was leaving his office (in California).  Due to the nature of his business and the way their network is setup, he and his team work with a large number of folders on a network share.  Each of these folders contains information about a particular project or potential project, and they are all contained within a single parent folder.  For example, the parent folder might be P:\Projects, and there may be hundreds of project folders such as P:\Projects\Project 023A, P:\Projects\Project 023B.  I don’t really know the names of the folders (I just made those up), but the names mean something to him and his team.

At any given time, though, there could be a couple hundred folders in the project folder.  Some come and some go, but overall the number seems to be increasing.  So it is getting harder for them to find the necessary folder when they need to do some work or reporting for that project.

FolderFinderNow, I can imagine that there is plenty of room to engineer some system (or buy something) that will help them better manage this, but what he really needed right away was a faster way to find a folder.  So I wrote Folder Finder.

It’s a very simple app to use and I only spent a couple hours on it.  Basically, you download the app and place it anywhere you want (.NET 2.0 required).  You run it and choose a base folder, which gets saved and re-used each time you run the app (C:\Projects in my example).  Then you just start typing a portion of the folder name.  Since the names mean something to you, just type the part you know.  It doesn’t matter if it is the beginning, middle or end of the folder name.  The list filters automatically.  At anytime you can double click your folder to open it, or if it is the first in the list you can simply press Enter.

That’s it.  All there is to it.  It doesn’t do anything super high-tech or magical.  It just lets them find their folders faster.

So if you want to download and use it, feel free.  As always, use it at your own risk, but I’d appreciate it if you’d let me know if you use it — especially if you have any comments or suggestions.  Also, feel free to share it with anyone who might think it is useful.  If anyone wants the source for any reason, let me know and I’ll make it available.

Interop Issue With Winsock

Error: Method ‘~’ of object ‘~’ failed

So yesterday at work, I was working with a sample app from one of our product vendors.  The app was a VB6 Windows EXE showing how to interact with their equipment using sockets — Winsock.  Since I’m under some pretty heavy time constraints, I wanted to make use of this code rather than pick through it and see what’s happening and translate to .NET.  I was able to quickly turn the VB6 Win EXE into a VB6 COM DLL, and tested it from a VB6 test app, and it worked perfectly.  However, when I reference the DLL from my .NET test app, things were not so great.

I had a few methods in the COM DLL that I was calling from my .NET code:

  1. Sub Connect — news up the Winsock object, sets the remote host and port, then connects.
  2. Sub DoSomethingWithWinsock (not the real name, but I don’t have the code here to look up the real name, but rest assured, it was equally as descriptive) — does a bunch of unimportant stuff, and then calls Winsock.Send(…)
  3. Function TestMethod — returns the current date/time as a string for testing
  4. Sub Disconnect — closes Winsock and sets it to nothing

When I call methods 1, 3 or 4 all seems to work well.  When I call method 2 I get the error mentioned above: Method ‘~’ of object ‘~’ failed.

So, two questions to anyone that might read this:

  1. Any idea what the problem is and how to resolve it?
  2. Is there some way I can step into the VB6 code while debugging from VS2005?

I’ve already started picking through the code and rewriting with .NET equivalents, but I was hoping to avoid that.

Update: Sarma, a contractor that I’ve worked with recently, e-mailed me this link that has some good info.  I haven’t tried it yet, but it sounds promising.  If you’re looking to debug VB6 from VS, I’d definitely check it out.  Thanks, Sarma! 

By the way, Sarma was recently looking for a new contract.  If anyone is hiring, contact me and I’ll connect you.

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.

Page 4 of 11

Powered by WordPress & Theme by Anders Norén