Enterprise Library Hands-On Labs
posted on 2005-07-14 at 22:17:26 by Joel Ross
It looks like Microsoft has released a set of 8 labs in both C# and VB.NET about how to use Enterprise Library. Each takes an hour or so, so you could waste a day on these pretty easily. On the other hand, after that day, you'd probably have a pretty good idea of how to use EntLib, which is always a good thing.
I've downloaded them. Now I just need some free time!
Categories: Development
My Interview With Jason Salas
posted on 2005-07-14 at 14:36:15 by Joel Ross
This morning, Jason Salas of Digital Pontifications fame, interviewed me as part of his summer interview series. I had a great time doing the interview, and the audio quality was pretty good, considering it was via Skype and he's half way around the world from me.
Anyway, if you're interested in hearing me talk about Tourney Logic, sports, video games and podcasting, then give it a listen and let me know what you think. If I get enough good feedback, maybe I'll follow Jason's advice, and start making my own podcast...
Categories: Podcasting
Motorola E815 Cell Phone
posted on 2005-07-13 at 23:32:55 by Joel Ross
Over the weekend, I started looking at a new cell phone. I found the Motorola E815, and decided that was the one I wanted. It has bluetooth, voice activated dialing (without pre-recording names!), and is a camera phone - something I think I'll use since we don't have anything other than our nice Canon Digital Rebel when it comes to digital cameras - sometimes, it's just too big to carry everywhere!
Anyway, I'm a Verizon customer, and I'm eligible for the New Every Two program, so it was free to me. On Sunday, it was available. I called the closest Verizon store on Monday to see about picking one up, and they informed me they would have to order it for me, and that it would cost $50 in the store (to be fair, it also had a $50 rebate, but which would you rather have? Free now, or $50 now, with $50 coming back in three months?), plus they had to order it anyway, so the advantage of getting it right now wasn't even there.
But there was a problem Monday night. The e815 wasn't available online anymore. I called, and they said they ran out of stock, and I could check back in a week or so. That's odd. You're out of stock, and because of that you can't even place an order? I figured oh well, I can wait.
Then on Tuesday, I got scared. According to Engadget, Verizon pulled the e815. The article has since been updated, and it was apparently a technical glitch with the website - but digging deeper reveals that a bunch of these phones didn't get Vcast installed. I figured that would take a while, so I'd just wait for the phone.
Then, Tuesday night, the phone was back online, and I quickly ordered it. It should be here Thursday or Friday. Now, I just need to find a good bluetooth headset!
Categories: Personal
Fantasy Football 2005
posted on 2005-07-13 at 23:02:53 by Joel Ross
It's still a little early to be thinking about it, but I'm putting this out as a feeler for interest this year in joining a fantasy football league from any of my readers. Last year, I ran one, but only got eight teams in it, it wasn't interactive, and I never really knew who most of the people in the league were.
This year, I'd like to change that, and make the league much more interactive. If you're interested in joining, leave a comment.
I'm trying to decide what system to use. Last year, I used Yahoo, but I saw a post from Mike Torres saying that MSN and Fox would be offering fantasy football this year too, and since it offers live scoring for free, I'm thinking I may switch. Any others out there worth considering?
Categories: Football
Object Oriented Navigation In ASP.NET
posted on 2005-07-13 at 23:00:41 by Joel Ross
David Starr has a post highlighting what Craig Shoemaker said in his 2/7/05 podcast about object oriented pages, and how to handle redirects.
Redirects are an area that makes true object oriented web development difficult. Being able to move from page to page in a strongly-typed world is tough, and requires a bit of upfront thought and design to create something that is easy to use and easy to maintain.
Personally, while I think the solution Craig outlined is better than nothing, I would prefer to keep the knowledge about page locations and how to get to them away from the page itself. That way, other pages don't have to know about each other, nor do they have to know much about the site structure.
How do you achieve that? A UI Process layer. This way, your pages can concentrate on their task, which is (in most cases) to show data to the user, and collect user input. The page only needs to know how to take some data and display it, and then how to get the updated data back. Then, it takes that data, passes it off to a process layer, and the process layer is then responsible for determining what to do with the data passed to it.
Here's a real world example that I've done. On NationalCityHomeLoans.com, we had a UI Process layer that was responsible for everything that happened while the user was in the application. When a page loaded, it was given an object and it displayed the data from that object. When any action was taken, it put the updated data back in the object and determined the user's action (i.e., jump to page 4, go back, save, etc.). Then , the page took the object and the action, and passed it to our process layer. The process layer, based on what page the user was on, ran the necessary updates, and then used the action to determine where to go next. It then handed the object off to the next page, and the process started all over again.
So what do I think the advantages of the above approach is over Craig's? Mainly that the logic to move from page to page and the hard coding of page locations is maintained in one place - the process controller. Changes become easier as the site structure changes over time. And page development is easier. You just call into the process controller and tell it what you want to do. If that action ever changes - for example, after updating something, instead of going back to that item, you now take a user to a list - and this happens in multiple places - all of that logic can be encapsulated, and maintained in one place.
Categories: ASP.NET
BizTalk Server 2006 Beta Coming Soon
posted on 2005-07-13 at 22:46:22 by Joel Ross
According to an article in Computer World, Beta 1 of BizTalk Server is supposed to be out soon - as in this month. I'm looking forward to it. I think there's quite a bit of room for improvement and I hope to get my hands on it soon.
The article also provides some good information about release dates, and clears up some rumors flying around about them (it's not going to hit RTM in November!). But there was one quote from Andrew Brust that made me laugh. "Setting up BizTalk Server is not the easiest thing in the world." There's the understatement of the year!
Categories: Software
RossCode Weekly #008
posted on 2005-07-11 at 00:02:18 by Joel Ross
I'm just starting to catch up on feeds after a nice party at the house this weekend celebrating my daughter's and my birthday, but it's time for me to get this down, so we'll assume not much happened over the weekend.
First, a rumor: Apple may release a media center device later this summer, based on Mac OS X. This could be soemthing to keep the sales going while people wait for the Intel Macs.
Google released a toolbar for Firefox, as well as adding Google Suggest to the Firefox search box. For Google being the hero of the open source community, they sure took long enough to get this out there.
Yahoo launches SMS search. Send an text message to a 92466 (Yahoo) with a search term, and you'll get a response back. Nice.
Yahoo testing RSS Search. Steve Rubel has the screen shots, even though the site isn't up any more. One more search engine in the RSS mix!
Pre-release version of Longhorn has gone out to a select group of testers. I guess this means we really are getting close to a beta. Oh yeah. They're also testing IE 7. I can't wait!
Slow news week this week, so this is it! Have a good week.
Categories: RossCode Weekly
Podcasting In Windows Media Player
posted on 2005-07-07 at 23:48:59 by Joel Ross
I realized I completely forgot the most important feature for Windows Media Player 11 when I made a post for Robert Scoble's request the other day. Podcasting support. Right now, WMP comes pre-programmed with Radio stations that are internet available, but in the future, the obvious is to support podcasting. Since iTunes does it, it only seems logical that WMP should too.
Now, take a look around before you implement it, and read the feedback coming in about iTunes. Everyone's thrilled that podcasting is going mainstream, and 1,000,000 subscriptions in 2 days is tremendous, but there's a lot that isn't being done right, or at least could be better.
So here's a couple of suggestions: Don't make any unnecessary additions to RSS to support podcasting. It's being done now, and for the most part, it works just fine. One exception (something many podcasters are trying to figure out) is show notes. Figure out a way to integrate show notes with the podcast, and come up with a way to display them. Ideally, this would be something that could allow certain parts of the notes to only show up after a certain time period of the podcast. For example, Mondays lists out URLs at various times throughout the show, and it would be very cool if those links only showed up once you hit that spot in the show, so you know the latest link is the one you need, and you don't have to go sifting through them. Make the notes window separate from the rest of Windows Media Player, and allow me to pin it.
Of course, there needs to be a simple way to subscribe. There's two ways to do that, right? One is to provide a nice set that are available through WMP's online home, like iTunes does. The other is to make links in pages easy to add to WMP. This could be a right click menu item in your browser, or it could be even slicker. When you clicked on the link, "something" could look at the link, see that it is a feed link, and that it has enclosures, and ask you if you want to add it to WMP's podcast list. That would be ideal!
I think I got everything now!
Categories: Podcasting
Turning Off My TiVo
posted on 2005-07-07 at 22:51:27 by Joel Ross
About a year ago, I bought a series 1 TiVo. It was (obviously) used, and I never planned on keeping it as long as I have. It was a temporary stop-gap until Charter came out with their DVR service, which has been promised to be available in a month for about a year now.
The TiVo is a 120 hour box from Phillips, and has been a pain for a while now. It only makes calls when it feels like it, and my wife has to baby sit it most of the time or we run out of guide data - we haven't yet, but we have come within a day of running out. We got it as a refurbished model, and it was cheaper than a new (40 hour) TiVo, so it was a good deal. But I'm not sad to see it go.
Over the weekend, we found out the Charter box was available. On Wednesday, it was installed. Charter's box allows us to do two things the TiVo box didn't: First, we can record one thing and watch something else. It's a dual tuner box. Second, we can now record the premium movie channels. Since the movie channels are digital, you need a digital receiver to decode them. The RF "solution" TiVo offers to change the channel on the cable box is a joke - it only changed the channel about half the time, which just wasn't acceptable. Our solution was to just record basic cable channels with the TiVo, and give up recording movies. Now that Charter offers service, we can record movies again.
I've been using the box for a little over a day now, and while there are some quirks with it, for the most part, I'm very happy with it. It's a Motorola box with Moxi, and I think the interface is better than TiVo's interface. The feature set is also much better - it's completely integrated with all of the on demand features that Charter offers, which TiVo isn't.
Here's some questions for TiVo. Why do you assume no one would want to record more than one thing? You only make dual tuners for DirecTV. Why is that?
Now, what should I do with an old TiVo box? Are there any good uses for an older series one TiVo? Can I get at it easily and build a box out of it? I know it's a Linux box, but can I get at it and run it as a server?
UPDATE: Oddly enough, there's an article from last Friday on c|net about TiVo's refocusing on cable and satellite providers.
Categories: Personal
Biztalk Frustrations
posted on 2005-07-07 at 22:39:34 by Joel Ross
I've been doing some Biztalk development lately, and for the most part, it's pretty straightforward. Granted, what I'm doing isn't all that complicated, so I know I'm not hitting some of the complexities of Biztalk - that, and I'm not responsible for the transformations that need to take place.
Given that, there are a few things that frustrate me about Biztalk, and I ran into one of them today. Of course, the only reason I ran into this was because I messed up in my initial planning. You see, we originally thought about putting all of our orcestrations into one DLL, but later decided it would be better to split them up by functionality. Each one of the different areas of functionality will use at least one shared schema. And that’s where I messed up. I put the shared schema into one of the Biztalk projects that was for a specific function.
Realizing this, we moved the schema to a new project that is specifically to hold shared information, such as this schema. This caused quite a few ripples throughout our project. First, the most obvious. The mapping needed to be updated to use the new schema. No problem. Then I had ports in and out for this message. Those had to be updated, but you couldn't update those until you deleted the connections from the port into the orchestration. Still, not a huge problem. And it makes sense. You can't change the schema something is using when it's being fed into something else expecting a different schema.
But then things got interesting. Since my receive port is exposed externally as a web service, I had to regenerate it. No problem (or so I thought). First, it took 3 times to get it to generate the service. This happened when I originally generated the service, so I pretty much expected that. But that's where things got strange.
After redeploying, I couldn't get messages to go through. It said there was no deserializer available. Then I looked at the generated code, and it wasn't pointing to the correct schema object. I changed that, regenerated my references to the web service (using WSCF of course!) and I was on my way.
But here's my question. Since these are just messages, and they had the same namespace, and they were the same message, why didn't it work? And second, but less important, why should it take 2 hours to move a file from one project to another? If it was plain ol' C#, then it would be a matter of minutes to move it.
And then there's the deployment process. I read a post by Scott Colestock about automating the deployment using Nant, and I'm definitely going to implement that. I'm still not sure what happened, but lots of stuff broke when I changed the Development and Deployment configs to Debug and Release, and it took a while to figure those out too. But it'll be worth it if I can automatically deploy my project, since Deployment is a pain. It just seems too easy to automate - I'm still not exactly sure why it wasn't automated out of the box. I hear it will be in BTS 2006, something I need to get my hands on when I can!
Categories: Development