A Blog by Scott Isaacs

Tag: Work Page 2 of 4

TimeSnapper

I’ve been using the free version of TimeSnapper off and on for some time now, but pretty regularly over the last few weeks since I started my new job.  I’m doing billable work again, and am notoriously bad at getting my time entered.  TimeSnapper helps by taking screenshots at some interval throughout the day and allowing me to play them back like a movie.

I’ve been thinking about getting the Pro version for a couple weeks because there are a few more features that could be helpful.  It’s an inexpensive program at about $40 (USD), but I just hadn’t pulled the trigger and bought it.  Then today on Twitter I saw that it was on sale.  It was actually on sale for $20.  Since I was on the fence at $40, I couldn’t pass it up at $20.

If you are like me and have a hard time keeping track of what you worked on, I highly recommend you check it out.  I still haven’t taken advantage of the Pro features, but even the free functionality is worth $20.

Office Communicator Hotkey

Anyone know if there is a way to remove the Windows-Q hotkey from Office Communicator?  That is my hotkey of choice for one of my favorite utilities (SlickRun).  With Communicator "stealing" this hotkey, I’ve had to map SlickRun to Windows-W instead, which causes a lot of confusion for me.  I’ve tried to add "cmd" as a contact about a dozen times now…

Last Days All Around

Today was my last day as an employee at my current (umm, previous) job.  After 18 months full-time, plus a couple months of part-time consulting and advising, I’ve decided it’s time to move on.  I still believe the product has enormous potential, and I may be walking away from early retirement, but it’s time to move on.

Starting Monday, I will be a Technical Architect at Fullhouse Interactive in Milwaukee’s Third Ward.  I’m excited for a number of reasons.  I’ll be working downtown again, and, while the drive is long, I’ll be close to friends that I rarely get to see.  Even with the extra drive time, I will be able to spend more time with my family because of my average number of hours will decrease.  On top of that, I will also be working from home on a regular basis, which is a first for me.  I’ll get to learn some new things, and hopefully teach some things as well.  I’m also getting to get back into consumer facing web development, which I miss.

I’m really excited for this new job.  If you’re near downtown Milwaukee, let me know and we’ll setup a geek lunch sometime.

As I’m sure you have already read all over the web, today was also the last that Bill Gates will be working for Microsoft.  While I’m sure he will probably never read this, I wish him all the best in his retirement.  Now if only I could figure out how to retire as a billionaire so that I could spend all my time running my charitable foundation…

Vacation!

I’m very excited because in a couple days I will be going with my wife and daughter to Disneyland in California.  We are meeting my parents there for Charlie’s first Disney experience, and I can’t wait to see how excited she will be.  She’s coming up on 21 months and really shows her excitement — she dances, stomps her feet (like those Irish tap dancers) and waves her arms.  It may sound cute, but it’s even cuter to see.

Also, between now and then I have a few phone calls setup.  I’m currently on the market for a new job, and so far things have gone well in my search since I started 6 days ago.  If you are hiring in the Milwaukee area, feel free to contact me.  My resume can be found at www.scottisaacs.com/resume.  It is slightly out of date, but 99% complete.  If time allows in the next couple days I’ll make it 100%.

.NET Micro Framework

Just got a book in the mail from Amazon: Embedded Programming with the Microsoft .NET Micro Framework.  It was only about $6 from the "Used and New" section of alternate sellers.

An upcoming project at work is currently planned for Compact Framework, but, if my limited understanding is right, hardware needed for the Micro Framework is cheaper.  So as long as it will perform as needed, this might be the way to go.

Has anyone done any development with the .NET Micro Framework yet?  Any pointers or pitfalls?

Stop Thinking Like A Programmer

Gerry recently posted an interesting article about the mindsets of software developers and software companies.  We had talked about this same topic on the phone for a while a couple days ago.  The same phrase that jumped out at me then also jumped out at me while reading his post: Stop Thinking Like A Programmer.  Of course, it’s the bolded opening statement of his post, so of course it jumps out at me.

But there I go, thinking like a programmer.

Analyzing why something happened, I think, is a lot like debugging.  Describing how to do something is a lot like writing code.  Rearranging sentences and paragraphs, deleting words, and choosing new phrases to replace others while writing this blog post is a form of refactoring, similar to what developers do to improve code quality.  Adding new words to the spell checker to get rid of the annoying squiggle underline — that’s just me being unnecessarily picky.

So many of the things that I do, and that other software developers do, we do like programmers.  So what?  What’s the big deal?  On the whole, developers (and other analytical types like mathematicians, engineers and scientists) are known for being thorough and precise.  Those are good things.  Right?

Yes, if you are in the process of actually writing software (or proving theorems, performing experiments, etc.).  However, if you’re doing just about anything else with anyone who is not an analytical, you have to watch yourself.  Some things I’ve learned over the years are that customers (or your wife, or the project manager, or you father-in-law) do not care:

  • That the changes they want will be accomplished by adding three tables to the database with a foreign key to the Widget table, then using the Suchandsuch Control to display the WidgetDetail properties in a GroupBox on FormMain.
  • That the hardware vendor’s newest firmware release better distributes its resources to make the scanning process more stable.
  • That you will spend 4 hours on designing the data model, 24 hours building the data access objects and business objects, 12 hours on the UI, 3 hours in QA, and 1 hour on documentation.

They do care:

  • Whether or not it can be done.
  • If everything works right now.
  • How much it costs.

CoderSalesperantoThey have different concerns.  They have a different way of approaching the problem.  They’re coming at the problem from an entirely different point of view in the first place.  They’re speaking a different language.  Gerry calls it Salesperonto, and I thought that was pretty clever.

Where I grew up, there were very many native Spanish speakers.  Many of them also knew English, and some knew English very well.  They were capable of talking to me in a language I understood well.  However, when they got excited about something, or focused on something, they would often switch back to Spanish without realizing it, or worse, speak in sentences that were half English and half Spanish.

All to often, I’ve seen developers, including myself, do this.  It’s dangerous for a few reasons.  It can confuse the Salesperonto.  It can stifle their creativity within the business domain by overwhelming them.  It can bore them.  It can make them think that you don’t care or don’t listen to what they are saying.  There is a place for speaking Coderian, but make sure your audience is also fluent first.

Coderian is definitely my native language, but I’ve been working on my Salesperonto.  I still have some practicing to do before I consider myself fluent.  Does anyone know how to say "abstract class" in Salesperonto?

Looking For Virtualization Info and Advice

For two unrelated projects I am looking into server virtualization.  Both are for production systems and are not developer or consumer focused.  Most of the conversations I’ve had about VMs so far have been in the context of software development and software testing, but I know there are many people out there that have successfully virtualized their production server environment.  In talking about this with the people I’d be working on these projects with, here is a list of pros and cons we came up with based on what we’ve heard or read here and there — none of us are VM experts.

Pros

  • Can setup so that data is on one drive and OS/apps are on another, with each virtual drive being a separate VHD (virtual Hard Disk) file.  With that, we can easily backup the data drive separate from the OS/app drive, and in the event of a major problem, we can restore one without the other.  This can also be done with physical hardware, but we do not have access to the physical hardware.
  • Can create multiple virtual servers.  For example, we can put e-mail on its own server, SQL Server on its own, and web on its own.  We can then run all three VMs on a single physical machine.  If we tax the limits of the physical machine, moving one of the virtual machines to another physical is a simple file copy (for the most part).
  • Backups and restores of entire servers or disks are file copies.
  • If we have two physical servers we can schedule regular backs from one to the other and in the event of one physical server going bad, we can turn on all the VMs on a single physical server while repairing/replacing the first physical server.  Things would run more slowly, but at least they would be up.
  • We can test in other environments, such as Linux/Apache/Mono in a virtual server without having to have new hardware.
  • A problem with one virtual server will not affect the other servers.
  • Adding more servers is easy.  Make a copy of one and change a few settings.

Cons

  • Takes up more disk space as there are multiple copies of OS and some apps — installed for each VM.
  • I would guess that running all three VMs (from the example above) on a single real machine would be less performant that running the three services directly on the real server.
  • Multiple licenses to OS/apps are needed.  Multiple licenses = more $$$.

Questions

So based on what I have here so far, I have a few questions for my readers.

  • What pros and cons have I missed?  What pros and cons have I listed, but are incorrect, or have significant caveats?
  • Can anyone provide any real world advice, info or data that would help us determine if, how and what we should virtualize?
  • Are there some services that should not be virtualized?  POP3 e-mail?  Exchange Server?  SQL Server?  IIS?  If so, why and under what conditions?  Is it OK sometimes, but not in certain cases?
  • How much does the load on one VM affect the host?  What about the other VMs?
  • What about the host server?  Minimum hardware specs?  Recommended hardware specs?  How do I calculate what I need?  Do I simply add the specs of the VMs to calculate the specs of the host?
  • Microsoft Virtual Server?  VMWare Server?

If you have anything to add, please leave a comment here or contact me here or reply on Twitter.  I know there is a ton of info out there, but since this is not my area of expertise, I’d prefer to hear from someone I know who knows — even if what they share is simply their approval/disapproval of another source of information.

Thanks.

Can Anyone Recommend An Electrical Engineer

At work, we are looking to design and build a small device, possibly running Windows CE (possibly not).  We have been talking to a couple different engineers to get their feedback and estimates, but I would be interested in any personal recommendations that anyone might have.

Please contact me if you know anyone.  We are first looking for someone to produce a prototype device, but also someone who can handle production runs as well.  Also, they need to be within approximately 90 minutes or so from the Milwaukee area.

Coworking

Here’s something that sounds really interesting to me.  About a week and a half ago, Larry Clarkin posted about “coworking”, and I’ve been meaning to write about it ever since.  Coworking is an interesting concept.  From the Coworking Community Blog: Coworking is a movement to create a community of cafe-like collaboration spaces for developers, writers and independents.

Do you work from home?  I rarely do anymore because of the nature of my job, but I used to occasionally work from home.  I was always fine for the first day or so, but if it was a more than a couple days, it was really hard for me to stay focused.  I would run into roadblocks that would normally not be an issue. 

Coworking would have been ideal for me.  I would have the flexibility and freedom of working from home, but the collaboration opportunities of working at the office.  If I ever start an at-home business, I am sure that I will be looking for coworking space opportunities.

Anyway, Larry is starting a coworking group in the Brookfield, WI area.  The first meeting is on December 17 at 1:00 PM at Einstein Bagels on Bluemound.  Of course he has all the pertinent into on his site, so check it out.  Larry also points to the Wikipedia entry and the Coworking wiki (CoworkingMilwaukee) for more info.

I’m not yet sure if I’ll be able to make it myself, but I encourage you to check it out, especially if you work independently.

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.

Page 2 of 4

Powered by WordPress & Theme by Anders Norén