Archive for June, 2006

Heading home

I’ve been out at a client’s site for 2 months now, I’ll be heading back to Magenic’s offices next week to continue work.  I’m really glad to be going back, I’ve missed the nice computer I have there and the Caribou coffee beans we’ve got too.

The consultants at Magenic are almost always out on site for the duration of their engagement, I can see why some people would like that, having a changing environment every year or so, but I’ve definitely been looking forward to getting back to my home office. It’s probably because I’ve been working out of the home office for the past year and so thats what I’ve become familiar with, rather than switching offices frequently like typical consultants do.

Whatever, it’ll be nice to be back :)

Interesting network setup

I recently read about a particular corporate network setup that I thought was interesting.  Most companies that I know of have their internal network wired with cat-5 cable for their workstations, and they also have a wireless component of the network for employees or visitors with laptops.  This wireless network is obviously secured because you can’t have someone parking their car and hopping onto your network, thus getting access to your internal network.

The setup that I read about had the same components: an internal wired network for their workstations, and a wireless network for laptops.  However, the wireless network was completely wide open.  No access code needed, just fire up your laptop and start browsing.   Theres one catch though; the wireless network was not connected to their internal network.  So anyone who gets access to their wireless can browse the internet, and thats about it, its no different than the connection at starbucks.  The usage for employees would be to connect to the wireless network and the VPN onto the corporate network to gain access to the systems they needed (email, fileshare, etc.).

To me, this actually seems MORE secure than the typical setup and much less of a hassle.  It seems that everytime I need to connect to a wireless network its a pain in the ass to get the access key, type it in wrong (inevitably), and finally get connected.  With this setup you don’t need to mess with that, and you’ve still got the VPN to restrict access to the company’s network.

I thought it was pretty slick.

Looking for podcasts

I haven’t ever gotten too excited over podcasts, for some reason they never really interested me too much, I would rather just read my content.  But I want to try some out, I’m gonna try to listen to them while I’m at the gym, so I wanted to know if anyone can recommend any decent ones?  I’d like some techie stuff, but if you know of one that good outside the realm of tech stuff, let me know about those too :)

Minimize my services

We have pretty nice machines machines at work to handle the varied development that we need to do at any given time. We all run Sql Server 2000 or 2005 locally for various projects, so it helps to have a beefy machine to run that stuff and also have a responsive system for the other stuff you inevitably run.

Even so, I still hate having extraneous services running when I don’t need them. So I don’t have Sql 2000 or 2005 set to start when my machine starts up, rather, I have 6 batch files that sit on my desktop:

  • Start Sql 2000.bat
  • Stop Sql 2000.bat
  • Restart Sql 2000.bat
  • Start Sql 2005.bat
  • Stop Sql 2005.bat
  • Restart Sql 2005.bat

The intent of these 6 files are obvious, it just gives me a shortcut to start and stop these services without having to open the services manager. It’s also nice because I can stop extra related services that I don’t need, for instance when I stop sql 2005, I also stop the MSDTC and SqlBrowser services and I start them back up only when I start sql 2005 back up. This way I can minimize the junk thats slowing me down :)
On a slight tangent, in spite of my memory saving, I still have the same problems that John Papa has with Resharper. It was taking me way too long to type with Resharper installed so I had to remove it. I just assumed that my experience was the same as everyone else, because I didn’t have any weird environment setup. Hopefully they find the cause and I can give it another try :)

Don’t forget to call your base

I’m working on a windows forms app in my spare time, and I just ran into this very frustrating issue.

I have a SplitContainer on the main form to divide my form.  I wanted the SplitContainer to resize with the form so that when you resize the form, the form elements would also stretch and shrink.  I had set the SplitContainer’s Dock to DockStyle.Fill (which is all I usually have to do) but the damn thing just would NOT resize.  I had also set one of the panels in the SplitContainer to be fixed, so I thought that may be causing the issue, I also read on msdn that the docking respects the z-order of the controls and since I had added the SplitContainer after the other controls, I figured that may have something to do with it as well.

I easily created a new blank form with a SplitContainer and set that one to fill (even with a fixed panel) and it worked like a charm, argh!  To open this test form I just added some code to my main form’s OnLoad method to show my blank test form.  Right below my OnLoad method was the OnResize method.  When I minimize my app, I want it to show up in the system tray, but not the taskbar, so here was my code for OnResize:

protected override void OnResize(EventArgs e)

{

if (WindowState == FormWindowState.Minimized)

Hide();

}

I realized I wasn’t calling base.OnResize(e).  I added that line, voila! My docking now worked as expected :)

ADO.Net Entity Framework

And another post from Steve Eichert goes into the Bloglines cache for remebering to follow up on later.

I’m intrigued by Microsoft offering some sort of Entity framework, as there are several open source ones available.  I am curious how this new Entity framework will fit with DLINQ, as that seems to be a very easy persistence mechanism, however it is based on Attributes for the mapping, whereas it seems this new framework will be driven by xml.  I wonder if MS has gotten so big that separate product groups could be working on similar technologies and not realize it, and then release different solutions to similar problem spaces, that would amuse me :)

Forced to use VB

I’ve been working on a VB6 < -> VB.NET interop project for the past two months with little to no C# coding time, and I’ve found myself actually liking VB.NET.  I’ve always used C# in projects where I have an option, but since this work is on an existing project, I have no choice.  It takes a little bit to learn the slight differences in syntax, like GetType instead of typeof, etc. but I find myself enjoying the late binding aspects and the case insensitivity.
I went back a few days ago to do some work on a C# project of mine, and realized how much I actually DO like VB.  I’m not saying that I’m going to become some VB proponent or anything, but I’m definitely more open to using it now.  Funny how when you actually try something out, you may end up liking it :)

Birthday

It’s my birthday today.  Didn’t really do much, especially given that its a Thursday; Erin and I grabbed a late dinner at the Happy Gnome in St. Paul.  Sounds like the Muddy Pig around the corner is a better place, at least thats what Justin would have you think over at the beeradvocate.com, however the Happy Gnome did have a Surly on tap, just not the Surly Bender that I like the best.

We sat outside at the Happy Gnome, given that it was a great evening to sit outside, and we’re coming up on the longest day of the year, so it stayed light until we left around 9:30.  It’s a nice outside place to eat cause they have nice fences to block the sounds of traffic and the wind.

All in all, a good birthday, we’ll save the crazy celebrating for Casey’s big bash tomorrow night at Nye’s

New Cross-domain Ajax Implementation

Way back last April of 2005, I wrote a post on how to get data from other domains in your ajax web applications, by sending a remote url to a page on your domain, and then having that page get the remote data server-side and simply write that data back to your web app.

In one of the comments recently ‘chopper’ mentioned a cross-domain ajax implementation that he uses which works by having a cross-domain javascript file.

We had some emails back and forth talking about his implementation and I mentioned that his approach woulnd’t work for rss feeds from any random place on the web, because you would need to place a file on that rss feed’s domain in order to get their content.  He had the idea to make a sort of proxy that would be able to get the content from another domain, while still not having to write your own page for it.  A few days later Xajrate was launched :)  I was amazed.  This took him about 4 days to put together, and its awesome! Theres a small page where you can fill out details of the rss feed you want to consume, and the page will generate the necessary javascript to drop on your page in order to get the content you want, you can even specify refresh times, so you can pull in a news feed every 5 minutes if you want to.

If you’re looking to get dynamic content using ajax, and you want to pull that data from external sources, definitely check this site out.

http://www.xajrate.com/

Bloglines Usage Pattern

I’ve found that I have a weird usage pattern within Bloglines.  When I come across something that I find interesting, and I don’t have time to read it, I’ll save it for reading later.  If I DO have time to read it, I’ll read it, and then still save it for later viewing, as if to tell myself that this article is important.  I did just that 5 minutes ago with Steve Eichert’s latest post about the query api that he’s been working on, I read the entire post, but since I found it interesting, I saved it.

After I’ve read a post and its still saved, I’ll keep it saved for as long I feel is necessary to remind myself about it.  I don’t do this consciously, I just keep it saved for some weird OCD-like reason.  Once I feel like I have sufficiently remembered the post, its contents, and the location of it (who posted it), I’ll unsave it.

This actually seems to work pretty well, because articles that I want to find later on, I can easily recall who wrote them, and once I know that a quick stop to google and I’ve got it.