RossCode Weekly #044

posted on 04/19/06 at 08:58:13 pm by Joel Ross

RossCode Weekly #044?- 04.19.2006

?Wowsa. I got all done, spliced it together?(I don't record straight through - each segment is separate), and it was short! Still, there's 23 stories, but I get through them in under 20 minutes.

Intro - 0:00
Download this episode -?17:18 /?8.3 MB
Subscribe to RossCode Weekly

Previously On RCW - 0:36
FOX to offer shows online for free
Microsoft starts rollout of Live ID

News & Views - 1:53
Provider source code released
Atlas Toolkit follow-up
SQL Server 2005 SP1 released
VS Express products to be free forever
Slashdot does social bookmarking
C|NET returns to TV??

The Cold Wars -?5:39
TiVo vs. EchoStar: TiVo wins!
TiVo offers Blockbuster Online subscriptions
Burst.com wants iTunes shut down
Yahoo buys Meedio?
Best Buy reveals first HD-DVD player
Opera to offer VoIP solution
Feedburner adds email subscriptions
No Aero Glass for hackers

The Grapevine - 11:41
Windows Media Player 11 for XP available by end of June?
Oracle may launch own version of Linux
Yahoo offering WiFi?

Odds & Ends - 13:42
Photobucket gets 2% of internet traffic

Bonehead of the Week - 14:31
AOL blocking negative emails?
Apple makes little girl cry
Philips patents anti-commercial skipping technology

Outro?- 16:54

Contact / Feedback
weekly@NOSPAMrosscode.com
206-424-4RCW (4729)

Production Notes
Background music provided by Chronos (Introvert 4) and the Podsafe Music Network.
Hosting of RossCode Weekly is provided by OurMedia.org.
Would you like to sponsor RossCode Weekly? Contact me at sponsor@NOSPAMrosscode.com.

Technorati Tags: | | | | | | |

Categories: RossCode Weekly


 

Google Calendar

posted on 04/16/06 at 10:19:28 pm by Joel Ross

I'm assuming that at some point, Google Calendar will offer an API, and?I will?be able to write some sort of integration between it and my local Outlook calendar (or someone else will, and I'll be able to use it). That's why I'm playing with it - I have no need for another, seperate way to manage my schedule. And just because it's online doesn't automatically make it better than what I have now.

Anyway, I started playing with it a couple of days ago. There's a lot I like about it. It has the same idea behind keyboard shortcuts that Gmail does, which makes it easy for Gmail users to pick up. Adding events is very simple, and feels a lot like the way you can enter events into other online calendars, such as 30boxes.com. Obviously, Google is hoping that a few things will help them beat their competitors:

  1. Name recognition: Google obviously has an advantage over other, smaller calendar providers. My wife knows who Google is, but has no idea who spongecell is, even if spongecell is better.
  2. Gmail integration: None of the other smaller calendars are offering email, and no one has an online email application like gmail. Integration between email and calendar is a standard on the desktop, but hasn't been a theme in the online space yet - Yahoo's calendar may have it, but for some reason, no one gives Yahoo credit when it comes to this stuff, mainly because they've been in the game a lot longer than most. Yahoo built Web 1.0 versions of most of these things, and instead of launching in a Web 2.0 world, they're only enhancing, which gives them a perceived disadvantage to companies just launching.
  3. Gtalk integration: Google Calendar allows you to set your status automatically when an event starts, which gives you power to control your online presense directly from your calender. I haven't seen this feature anywhere, primarily because even fewer online calendars have IM programs than offer email. I'm sure now that it's out there, this will be added to other calendars, and the addition of plug-in support and APIs to IM software will facilitate this transition.

That's about all the advantages I see. I know I'll never fully move to an online application for calendaring (or email for that mattter), but it would be nice to have it as a secondary?option. Given that I don't want two different calendars and I need to maintain one in Outlook for work, I won't be moving permanently, but a secondary, easy way to add things or quickly review it might be nice.

Of course, the biggest question around a google launch is performance. So far, it looks like Google got this one right - I haven't seen anyone report problems accessing it. I did have one small issue where it wouldn't add events, but closing and reopening the window solved that for me. It's nice to see that Google got a launch correct, but they obviously knew this one had to be. A calendar is a way of life for some, and if it's not easy and reliable from day one, then it's not going to get used.

Having said all of that, if you are currently calendar free, but don't want to be, this is a good place to start.

Technorati Tags: | |

Categories: Software


 

Recovering From A Hard Drive Crash...

posted on 04/14/06 at 09:12:16 pm by Joel Ross

...turned out not to be too bad.

Yesterday afternoon, my laptop started locking up periodically for a few seconds, then coming?back to life.?I thought it might be because I had a few too many apps open. I routinely run at least one VPC, Outlook, FeedDemon, Maxthon, and Windows Media Player, so it's not unheard of for me to run out of RAM, despite having 2 GB. Or at least have performance degrade enough to temporarily lock up the UI. But, I needed to reboot for something, and as I did, I got write errors saying Windows couldn't write to a bunch of folders on my second drive.

Then, as it was rebooting, it took forever to initialize. And as soon as it came up, I started getting delayed write failure messages. Not good. That continued through the night, and I eventually just gave up, called someone at the office, and got authorization to get a new drive the next day.

Then I thought about all of the stuff I had on that drive, and how much of a pain it was going to be to try to recover from this if I couldn't get any files off of it. I had a lot of stuff backed up. I use Mozy, so the most important documents are backed up - I have almost 1 GB of data up there, including my local pst file and my quicken files. The biggest loss would have been the loss of my Virtual PC drives. There were three that I was worried about, and luckily, most of the code was checked in. I was holding back my check in on my main project since last Friday because of a build, but that would have been my biggest loss. I also would have lost a very key CodeSmith template too, but I could have rebuilt that in a little bit. I think I might have lost the latest changes to my blogging tool too, but that wouldn't have been a major issue either. The biggest problem would have been the sheer time it would take to rebuild those three environments. I have a base VPC to start from (and that wasn't on the bad drive) so I had a base to start from, but it doesn't even have Visual Studio 2005 installed on it.

Anyway, after thinking about that all night, and not sleeping that well (partly from that, and partly because my youngest was having?tubes put in the next morning), I headed over to Best Buy as the doors opened. I picked up two things: a Seagate notebook drive, and a USB drive enclosure. I came home, and threw in the new drive. Formatting it took almost an hour, when I eagerly waited to plug in my old drive, which was installed in the USB drive enclosure.

After it was formatted, I plugged in the old drive, changed the drive letter, and browsed the drive. No errors so far, and I started copying files from it, starting with my most important ones. It was going, and I was happy!

Until it got to a certain point, and all of a sudden, it couldn't read some of my files. I wasn't sure if it was the file, or how long the disk had been plugged in, or what, but it wasn't letting me copy the files I wanted. I could still browse, but no copying.?And it was making a funny noise too. So I picked up the USB drive, and as I was turning it, I realized that it stopped making the noises when it was completely flipped upside down. Figuring it was worth a shot, I turned it upside down, and tried to start copying again.

About an hour later, all 50 GB of data had been pulled from the upside down drive. I then verified a few of the files, and they were all just fine. I was starting to think that maybe I was a?little crazy and my drive was just fine, but?when I tried to have Windows disconnect the USB drive, it said it couldn't because the drive was busy. Then I started getting the write errors again.

Apparently, the drive is read-only now. Which is fine with me - I'm disappointed that a drive that's just over a year old crashed, but at least I was able to get what I needed off of it before it was too late.

All of this has reminded me that my back up strategy is not where it should be. I back up quite a bit of data using Mozy and Foldershare, but not everything. For example, none of my Virtual PC drives are backed up - nor is most of the data on them. Granted, the majority of the stuff I do in VPC is source controlled, but there are one-offs that never get checked in, but are important to me. I think I need to start backing those things up regularly, and I'm thinking the way to do it right now is to use Foldershare to automatically copy my source files from the VPC image to a back up server I have, as well as my base machine and a USB back up drive I have set up. That way, I have the data in three different physical locations (server, USB drive, and laptop), as well as have access to the source code from my main OS on my laptop without having to open VPC (something I have been trying to figure out for a while now).

Then I'll utilize Mozy even more to back up important data. I have 2.5 GB of space there, and only backing up a little less than 1 GB. I could use a lot more of that and be safer!

No matter what I do, I'll be better off than relying on an semi-faulty upside down drive!

Technorati Tags: | |

Categories: General


 

ASP.NET Providers Source Code

posted on 04/13/06 at 10:05:30 pm by Joel Ross

Earlier this year, I spent a lot of quality time with Reflector digging into the XmlSiteMapProvider to figure out how I could make it work with the URL rewriting we were implementing. I eventually found it, and determined what method I had to override to make it work, but if I had to do it again, Scott Guthrie and the ASP.NET team just made my job easier?by releasing the source code to all of the built-in providers in ASP.NET 2.0.

The best part is that it's licenses under a permissive license that allows you to use it in both commercial and non-commercial settings. So now, I could have just tweaked one method and been good instead of inheriting from the provider and overriding a method. Of course, I probably would have done it the same way - that way I'm safer if the built-in providers ever change for things such as bug fixes. I can get those, and still have my overriden method without any work on my part.

But, if I ever wanted to build my own provider (how about a CsvSiteMapProvider?), this is an awesome way to get?a jumpstart and really get an understanding of what's going on. You can do it in reflector, but it's much easier with a buildable project, where (I'm assuming) the developers don't name their variables string1 and string2, like Reflector shows.

Technorati Tags: | |

Categories: ASP.NET


 

Blogging For Two Years...

posted on 04/13/06 at 09:08:52 pm by Joel Ross

On April 13th, 2004, I put up my first post on RossCode.com. It was not my blogging debut, but it was my first time that I felt at home with blogging. I'd just purchased RossCode.com, and was ready to get started.

A lot has happened over the past two years for me, and it's interesting (to me) to go back through the archives and see where I've come. Reading the first few posts here is, well, to be frank, painful. My writing style really hadn't developed, and it showed. I think at least now that what I write is slightly more readable. In other words, don't go back to the archives!

Personally, in the past two years, we had our second daughter, born just 13 days before my one year blogging anniversary - hence why I never really highlighted that fact! She recently turned one, while my oldest daughter is turning 4 this summer. It's amazing how time flies!

Professionally, I've basically been working on the same project for the past two years. On April 27th, 2004, I talked vaguely about heading to California, and moving onto another project. Well, that project turned out to be a huge opportunity for me - I ended up being the lead developer on that team, and about one year later, we launched their website. Since launch, I've still been working with them and helping them integrate into third party systems and providing more automation of their processes. It's been a great project and a very good learning experience for me.

And yes, the timeline is correct - the website launched on March 30th 2005, and my daughter was born on April 1st, 2005. It's a good thing we had a great testing team working with us up to the launch. I took two weeks off right after launch, and there were no major issues or bugs found after the launch. In fact, the only major issue we've had with the site since launch was a hardware failure.

Next up:?Tourney Logic. My side business. It was actually founded in the summer of '02, but a lot has happened since I started this whole thing. Our biggest time period is March Madness, so I started blogging shortly after things slowed down for TL. But in '05, we did a ton of work to get March Madness ready to go. We started hosting pools at that time, and we launched automatic result downloads, making administering pools dirt simple. Since then, we rewrote, well, basically everthing. The Tourney Bracket Control was built from the ground up last summer and the Tourney Pool Manager was converted over to .NET 2.0, and was the basis for our complete hosting solution - Tourneytopia, which we launched a couple of months ago. As a company, Tourney Logic has been profitable since it's first "official" year - we started in '02, but didn't have anything to offer until '03, and we've been profitable ever since. Since starting this blog, Tourney Logic has more than quadrupled!

I've definitely upped my blog subscriptions too. At the time, I think I was using RSS Bandit and less than?100 feeds. Now, I've moved to a distributed model and using FeedDemon - I actually paid for software! - and Newsgator Online, and their mobile version of Newsgator Online. Plus, I now have 933 feeds.

Then, based on my blog reading addict...obsess...habits, I started podcasting, doing a weekly show highlighting the biggest technology news for the week. The one year anniversary of that is coming up in May, although it started out in written format until I was brave enough to record it starting in October - which means my 6 month podcasting anniversary was last week. I'm up to #43 now, and still going strong.

And then there's the friendships that I've developed. Those are the most rewarding part of this whole thing. Knowing that there are people out there that I call friends simply based on interaction on this blog?is an amazing thing that I never imagined when I started. I'm not going to mention names because with all the people I've met, I don't want to leave someone?out, but you all know who you are!

It's been a great run, and it's one that is definitely not done! If I'm not still doing this in five years, I'd be surprised!

Categories: Personal


 

RossCode Weekly #043

posted on 04/13/06 at 05:49:25 pm by Joel Ross

RossCode Weekly #043?- 04.13.2006

A day late, but not without reason! It's all explained in the show, but the long and short?of it is a hard drive?failure, which, luckily, I fully recovered from. Weekly stats: 20 stories in 25 minutes. Yeah, more commentary then normal, but it was a slow week!

Intro - 0:00
Download this episode -?25:06 /?12.1 MB
Subscribe to RossCode Weekly

Previously On RCW - 1:21
Paypal mobile launches
Google / Earthlink selected for San Fran Wifi

News & Views - 3:09
Google Calendar is live
Mark Cuban sells IceRocket
Channel 9 turns two
Live.com launches academic search
Grim Reaper looking for Win 98, ME
Atlas Control Toolkit released
Windows Fiji

The Cold Wars - 11:49
Disney to offer full, ad-filled shows for free online
Fox finalizes online content revenue sharing deal with affiliates
TiVo and DirecTV renew relationship
Universal Pictures beating counterfeiters at their own game
Netflix lawsuit legitimizes Blockbuster?
Yahoo Maps gets satellite imagery
StreamCast fighting the RIAA

The Grapevine - 20:25
"Real" video iPod delayed
5 GB and 10 GB iPod Nanos?
Sony PS3 may be a low-show at E3
Google working on voice search?

Outro?- 24:24

Contact / Feedback
weekly@NOSPAM.rosscode.com
206-424-4729 (4RCW)

Production Notes
Background music provided by Chronos (Introvert 4) and the Podsafe Music Network.
Hosting of RossCode Weekly is provided by OurMedia.org.
Would you like to sponsor RossCode Weekly? Contact me at sponsor @ rosscode.com.

Technorati Tags: | | | | | |

Categories: RossCode Weekly


 

Multiple Property Sorting Of Generic Collections

posted on 04/12/06 at 08:20:14 pm by Joel Ross

Dave Donaldson prodded me this morning to get off my butt and post an update to my previous multi-sorting comparer, and I'm going to do that now. Man, Dave, get off my back!

Ok. He didn't prod. He asked if I'd updated it to support Generics, which I had. If you look at the previous one, not a lot has changed, so let's just highlight the changes. First, instead of using an ArrayList to store the internal sorting classes, I'm using a Generics (it really wouldn't be?a good upgrade if I didn't use generics in my implementation, would it?), and instead of using objects in the comparison class, it can now be typed, which means better compile time checks. This changes both the Compare method, and the CheckSort method (CheckSort is what Compare calls to perform the recursive sorting, which is what allows you to sort and subsort your collections). Here's the updated code:

   1:  public int Compare(T x, T y) {
   2:      if(SortClasses.Count == 0) {
   3:          return 0;
   4:      }
   5:      return CheckSort(0, x, y);
   6:  }
   7:  ?
   8:  private int CheckSort(int SortLevel, T MyObject1, T MyObject2) {
   9:      int returnVal = 0;
  10:              
  11:      if(SortClasses.Count - 1 >= SortLevel) {
  12:          object valueOf1 = MyObject1.GetType().GetProperty(SortClasses[SortLevel].SortColumn).GetValue(MyObject1, null);
  13:          object valueOf2 = MyObject2.GetType().GetProperty(SortClasses[SortLevel].SortColumn).GetValue(MyObject2, null);
  14:  ?
  15:          if(SortClasses[SortLevel].SortDirection == SortDirection.Ascending) {
  16:              returnVal = ((IComparable) valueOf1).CompareTo(valueOf2);
  17:          } 
  18:          else {
  19:              returnVal = ((IComparable) valueOf2).CompareTo(valueOf1);
  20:          }
  21:  ?
  22:          if(returnVal == 0){
  23:              returnVal = CheckSort(SortLevel + 1, MyObject1, MyObject2);
  24:          }
  25:      }
  26:      return returnVal;
  27:  }

So now, you can sort your generic collections easily and flexibly. This could be used in conjunction with an ObjectDataSource pretty easily, and I may post an example of that at a later date.

The full code snippet is on CodeKeep?and is available here.

While I'm on the subject of CodeKeep, Dave added a new feature where you can link to your Code snippets using a nice little icon. Here's my code snippets - there's only five right now, but I plan to add more in the near future (once I get some time!):

Technorati Tags: | |

Categories: Development


 

West Michigan .NET User Group Meeting - Tonight!

posted on 04/11/06 at 01:30:34 pm by Joel Ross

And I'll be there! It's at the Watermark Country Club at 6:00 PM. It should be a very good meeting, with Sahil Malik speaking about ADO.NET and John Cripe (of NuSoft) talking about SQL Server 2005.

If you're there, say hi. I'll be wearing a black NationalCityHomeLoans.com shirt.

Technorati Tags: | |

Categories: General


 

Making Sites More Accessible

posted on 04/11/06 at 01:08:41 am by Joel Ross

I've been developing web applications since '99 (long time, huh?), but this is the first time I've seen anything about standards for accessibility on web pages. But apparently there are some. You use the Control key in conjunction with the defined access key, and you can jump to certain places on the page - this makes tabbing to get to links much easier - for example, you can skip the navigation links, and jump right to the content. Here's a few standard ones:

  • Access Key 1: The link to the home page
  • Access Key 2: Main content?- skip navigation
  • Access Key 9: Feedback

That's great, but how do you do it? It's pretty simple, actually. You just add an accessKey="N" attribute to the desired anchor tag.

Of course, later, I found out that Bayden Systems (makers of SlickRun - get it if you don't have it!) has a tool to show you the Access Keys on a web page. It's part of their very cool IEToys. For example, here's what it shows for the accessiblity webpage:

Access Keys

I haven't read it yet, but everyone says reading the whole Dive Into Accessibility website will change how you design websites. I've downloaded the PDF, and plan to read it in the near future.

Oh, yeah. When I get a chance, I'll probably even update my blog with access keys too. Of course, that requires free time, which I have very little of lately.

Technorati Tags: | |

Categories: ASP.NET


 

Xambi Banner Server

posted on 04/11/06 at 12:22:54 am by Joel Ross

Over the weekend, I was reading The Daily Grind #856, and one of the items listed was that?Michael Sanford?was offering 25 free licenses to Xambi Banner Server. I hopped over - I love free stuff - and left a comment, since we have been (sort of) looking for something to help with serving banners on Tourney Logic's website, and if we move forward with some of our ideas with Tourneytopia, we may have a need there.

Anyway, after exchanging a few emails (I fat-fingered my email address!), I got the license! I've downloaded it and checked out the demo, and it looks pretty slick. I'm excited to get it integrated in and really give it a go!

Technorati Tags: |

Categories: Software


 

<< 1 ... 36 37 38 39 40 41 42 43 44 45 46 ... 124 >>