#  Monday, April 03, 2006
Browser Security Hole - They can read your clipboard!

 

Do this now. Copy some non-secret text into your clipboard and browse to http://projectip.com. Scroll down to the bottom of the page. You may see the contents of your clipboard in the text box at the bottom of the page. There are instructions for fixing the problem right there on the page.

For the record, this is a problem with the default IE6 setting, but Firefox did not show my clipboard contents.





Monday, April 03, 2006 4:25:26 PM (GMT Daylight Time, UTC+01:00)
Comments [6]  | 


#  Saturday, April 01, 2006
Heading Down to DevConnections

 

Win a Harley

So tomorrow I'm heading down to DevConnections in Orlando. I'm amazed at how much this conference is growing. I'm very happy to be involved. My role is co-chair of the Visual Studio Connections conference. Juval Lowy is the other co-chair. The Visual Studio conference is all about building Windows applications, the .NET Framework, and systems code. Oh yeah. I also give away a Harley.

Of course, Richard and I will be recording a .NET Rocks! show live as we always do. We'll be interviewing Kathleen Dollard Wednesday, April 5th at 11:15 AM in the Poncianna room. I'm also doing two other sessions:


 

 

Not Faster Processors, but More Processors Tuesday, April 4th 8:00-9:15 AM in Palm ABC

The trend in PC performance is no longer to make revolutionary advances in CPU speed, but to add more processors to a single CPU, which means multi-threaded programming skills will continue to be highly valued. .NET 2.0 simplifies making asynchronous calls in Windows applications to the point where mere mortals can handle multi-threaded calls with only a few lines of code. In this session, we'll compare the 1.1 way to the 2.0 way using Visual Basic 2005.

RSS, Podcasting, and Syndication Tuesday, April 4th 2:00-3:15 PM in Palm ABC

These are terms you should be familiar with in the age of blogging and Windows Vista. In this session, you'll get the big picture as well as some code you can use to aggregate RSS from weblogs, news feeds, and other sources; as well as code to publish your own RSS feeds.

I also want to mention that our resident psychotic developer Mark Miller will be defying death in the most dangerous session ever attempted before a live audience called Extending Visual Studio Live. I don't want to give too much away, but it involves fire, sharp knives, and rope.

 



Conferences and Speaking

Saturday, April 01, 2006 5:42:58 PM (GMT Daylight Time, UTC+01:00)
Comments [0]  | 


#  Friday, March 31, 2006
Publisher Bug Responsible for Feeds Not Updating

 

Yesterday I was alerted to the fact that the .NET Rocks! Direct Download MP3 feed was not updated, wheras the .torrent feeds were. I thought this was strange, but I really couldn’t do anything about it at the time. I was functioning on one hour of sleep after a marathon baking session. You see, apparently cupcakes are very important on March 30th. One of my daughters turned four today (March 31st), but she had a party yesterday with kids from nursery school, which she attends on Tuesday and Thursday mornings. One of those kids is highly allergic to nuts, so the cake had to be made from scratch. Not a problem, except so did the frosting. Oh, and my other daughter signed up for a bake sale today, so I might as well make another batch. Oh, and Birthday Girl’s other daycare (Monday and Friday) is throwing her a party, so I might as well make another couple batches, because there are 12 kids in her class, plus about 6 or 7 on staff. Oh, and the family is coming over Saturday for a family party, so you might as well make another cake, but this time I was able to use a mix. Did I mention my wife can’t walk? Yep. Yesterday was a day, I tell you.

Anyway, all the kids had gone home and I had just settled down for a nice 18 hour nap when Richard Campbell called and told me about the feeds. Geoff, a Pwopper who creates the feeds using a publishing app I built, was currently visiting his parents and without bandwidth, so I got up and investigated. Yep, it’s not creating the right feed alright. I could barely keep my eyes open, so rather than getting into the code, I went back to bed.

So this morning I stepped through the code and after a little tinkering I discovered that my WHERE clause that selects the data for the feed was the culprit. Check out this query:

SELECT TOP 1 Shows.ShowID, Shows.DatePublished, Shows.ShowTitle, Shows.Description, Files.FileID, Files.FileName, Files.WebFilePath, Files.Minutes, Files.Bytes, Shows.ShowNumber FROM Shows INNER JOIN Files ON Shows.ShowID = Files.ShowID  WHERE FileName LIKE '%.mp3' AND FileName NOT LIKE '%[_a].mp3'AND FileName NOT LIKE '%[_b].mp3' ORDER BY Shows.ShowID DESC

This week’s show’s file name (for the direct mp3) is dotnetrocks_0169_rocky_lhotka.mp3

Do you see the problem? No? Here it is:

AND FileName NOT LIKE '%[_a].mp3'

Apparently SQL is ignoring the underscore. The brackets are ignored also, but we knew that. Basically, this is supposed to weed out the files dotnetrocks_0169_rocky_lhotka_a.mp3 and dotnetrocks_0169_rocky_lhotka_b.mp3 and only return the full mp3 file.

Turns out that I have another field in the Files table, which my publisher writes, called FileDesc. This is always one of the following values:

WMA Low-Fi
MP3 Torrent
WMA Lofi Torrent
WMA Full Show
MP3 Part B
AAC Torrent
MP3 Full Show
WMA Torrent
MP3 Part A
AAC Audiobook (iPod)
WMA Stream
WMA Part B
WMA Part A

So a minor change to the SQL to use the FileDesc field in the WHERE clause instead of the filename, and we’re back in bidness.

 





Friday, March 31, 2006 5:43:01 PM (GMT Daylight Time, UTC+01:00)
Comments [4]  | 


#  Thursday, March 30, 2006
It's Rocky Lhotka Week at Pwop Productions!

 

This week on dnrTV – Rocky Lhotka on CSLA.NET 2.0 (Part 1 of many)

Rocky Lhotka explains CSLA.NET 2.0 from the top down by showing a sample application written in C# against the framework. This is the first of a series on shows we're going to do with Rocky on his CSLA.NET 2.0 application framework.

http://dnrTV.com/default.aspx?showID=12





Thursday, March 30, 2006 9:35:17 AM (GMT Daylight Time, UTC+01:00)
Comments [1]  | 

New VB.NET Master Class Dates

 

We’ve fleshed out dates for the VB.NET Master Class for the rest of 2006. Here they are:

Vbnetmc

April 17–21
May 22–26
June 19–23
July 17–21
August 14–18
September 18–22
October 23–27
November 13–17

The class will not be taught by me. But before you stop reading, it will be either Mark Dunn or one of his best gurus. If you are seriously interested, call us and we’ll send you a pile of testimonials. I personally guarantee the quality of this class.

In other Franklins.Net news, Juval Lowy will be teaching public classes in WCF (Windows Communication Foundation or Indigo). Miguel Castro will be teaching an ASP.NET Master Class as well. Suggestions are always welcome!





Thursday, March 30, 2006 5:04:56 AM (GMT Daylight Time, UTC+01:00)
Comments [0]  | 


#  Wednesday, March 29, 2006
Hanselminutes on Vacation This Week

 

Hanselminutes is on vacation this week and will resume next week as planned.



Hanselminutes

Wednesday, March 29, 2006 2:46:20 PM (GMT Daylight Time, UTC+01:00)
Comments [0]  | 

Got a message for Mondays?

 

DiggityDog

Are you a Mondays fan? Would you like to cement your place in Mondays history?

As you know we’re going to be recording our 50th show soon, and we’d like to play your “phone messages to Mondays” on the show. Give us a call at either of the numbers below and leave us a message of either shiny ass praise or ego-crippling smack. Nothing in between!

Toll Free: (877) 273-4838

Outside the US: (860) 447-8832

 





Wednesday, March 29, 2006 12:56:18 AM (GMT Daylight Time, UTC+01:00)
Comments [4]  | 


#  Tuesday, March 28, 2006
This week on .NET Rocks! - Rocky Lhotka on CSLA.NET 2.0

 

Dnr

This week, Rocky Lhotka discusses his CSLA.NET application framework version 2.0. New features, changes, and migration tips.

http://dotnetrocks.com/default.aspx?showID=172



dnr

Tuesday, March 28, 2006 9:58:20 PM (GMT Daylight Time, UTC+01:00)
Comments [0]  | 

Mondays Will Return Next Week

 

Mondays Show #50 will be online April 3rd. Thanks for your patience

Mondays



Mondays

Tuesday, March 28, 2006 9:48:06 PM (GMT Daylight Time, UTC+01:00)
Comments [3]  | 


#  Saturday, March 25, 2006
Pwopcatcher Alpha

 

I know I teased you last year with the PwopCatcher UI in this blog post, and since then everyone has been asking me for it.

I am hereby announcing an alpha version at www.pwopcatcher.com. Here are the features in a nutshell:

  • Subscribe to RSS feeds that contain enclosures (of any kind).
  • Each feed’s enclosures can be downloaded to a unique folder, or a common folder.
  • Each feed can have a different interval (minutes between reloading the feed).
  • You can specify (for each feed) a maximum life in days of enclosures. Only podcasts X days old or newer will be downloaded.
  • Files are pruned locally: they are deleted after X days (for each feed) to avoid your hard disk getting full of old shows that you are no longer interested in.
  • For the destination folder, you can specify either a drive letter or a volume label. In some cases you might want to download directly to a removable hard drive or audio device. Since the drive letter might be different each time you connect it, using the volume label to identify the drive solves this problem.
  • Downloads will auto-resume. You can kill PwopCatcher in mid-download. Next time you run it, downloads will pick up where they left off
  • BitTorrent support is provided by uTorrent, which is a 155K native Windows BitTorrent client app (see this post for more info). The uTorrent people have allowed me to automatically install it. If you subscribe to a feed that has a .torrent file in the enclosure, uTorrent will take over after downloading it. This requires a little bit of setup, which I have outlined below.
  • Since ClickOnce is used, when a new version is available, the user is prompted to download it.

First of all, what is the future of PwopCatcher?

PwopCatcher is a podcast downloader, player, and manager application. The alpha version only has download and subscription features. Future versions will include a Player/Dashboard, and more importantly a podcast manager.

The Player/Dashboard will look like this. There is a main client area acting as a window into the podcasts that you have downloaded, showing a sort of slideshow of podcasts. The information area will look something like this:

Rocketry

These will fade in and out, giving you a nice preview of what has been downloaded, if you care to look.

The most important utility of the player/dashboard is podcast management. I don’t know about you, but when I want to copy some downloaded podcasts over to my iRiver H10 its going to take at least 15 minutes, mostly because I have to figure out what I’ve already listened to, what I want to listen to next, and what I want to delete. When you subscribe to 20 or 30 podcasts, that can be a big pain. It just makes me want to reach for the radio.

We’re introducing the idea of the “already listened to” attribute. Without going into too much detail the basic idea is you can say “give me 30 minutes of podcasts and copy them to my iPod” Those files are now marked “listened to” and so they will not be downloaded again, nor do you have to worry about removing them from your hard drive.

I must stress that this feature is not there in the alpha (see the list of features above).

The player will have several modes. You can listen to podcasts in random order or in order of publication date. Once listened to, they will no longer be in the live list. What actually happens here is that the files are moved to a “listened to” folder where they reside for 30 days (default – you can change this interval). After that they go bye bye. Although many people don’t listen to podcasts at their computer, this is still a good option to have for those times when you do want to listen.

Installation:

PwopCatcher is published with ClickOnce for the .NET Framework 2.0. If you do not have the framework installed, a setup is provided for you at http://www.pwopcatcher.com/install along with the Click-Once button for installing the app.

Note: ClickOnce does not work in FireFox as of this writing.

The first time you run the application you are presented with this dialog:

UTorrentSupport

Click Yes, and it downloads right there:

UTorrentDownloading

Click “Yes” when asked if you want to make uTorrent the default .torrent application.

uTorrent gives you this dialog next:

Network Wizard

At this time you should open up the port you want to use for uTorrent. Remember that you have to open it up at your router as well as the Windows Firewall (or any other software firewall you happen to be using).

I recommend testing the port with the “Test if port is forwarded properly” button. Very handy.

While you’re at it. Go ahead and create some folders for managing torrents. Then open the Options/Preferences dialog, and click the Folders tab. Enter the folders here. Make sure to uncheck “Always show dialog on manual add” or you’ll be pestered unnecessarily when downloading torrents.

Preferences (2)

Now, back to PwopCatcher.

Go to the Feeds tab, click on the url field and enter a feed url. In this example, I’m using two urls:

http://dotnetrocks.com/DotNetRocks_FullMP3.xml (.NET Rocks! MP3 Torrent)

and

http://www.hanselminutes.com/hanselminutes_MP3Direct.xml (Hanselminutes Direct MP3) 

When you move off the row, the rest of the fields will fill in with default values, which you can change. Let me explain what they are:

The Feeds Tab:

PwopCatcher (4)

Fields:

Enabled: Podcasts are only downloaded when this is checked

URL: url to the RSS feed

Interval (Mins): This is the number of minutes between reloading the feed

Drive (ex: C:): This is the drive letter (and colon) OR the volume label of the drive to where podcasts from this feed are downloaded

Folder (ex: \podcasts): This is the folder name on the drive to where podcasts from this feed are downloaded. If the directory does not exist it will be created, even if it has multiple subdirectories.

Max Days Old: This is the maximum number of days old a podcast must be in order to be downloaded. It is also the number of days after which the podcast will be deleted from the folder.

After entering subsequent urls, after moving off the row, the settings from the previous feed will be copied to the new feed. This makes it easy to customize, but you don’t have to enter the same data over and over again for most feeds.

The panel on the bottom is for error messages that come from PwopCatcher. Unfortunately it is currently very rudimentary. This will be improved in future versions.

The Update Button

The Update Button saves the current settings (they are also saved when the app exits) and also initiates a cycle of checking all feeds and downloading if necessary. If files are already being downloaded, they will be canceled, and then will resume once the feed is re-downloaded and PwopCatcher sees that it was in the process of being downloaded.

The Status Tab

The Status Tab shows the status of all download activity. Multiple files are downloaded simultaneously. Take a look:

PwopCatcher (6)

The .torrent file downloads immediately because it is so small. Hanselminutes is a 21MB mp3 file, so it takes longer.

Once the .torrent file has downloaded, uTorrent goes to work without prompting. Here’s what it should look like now:

µTorrent 1.5 (2)

Both of these files should end up in c:\podcasts when everything has completed, and indeed they have:

DownloadsDone

If you have any issues with the alpha, or any subsequent updates, send me email at carl AT (no spam) pwop dot com.

Until the next round of features, enjoy!

 



PwopCatcher

Saturday, March 25, 2006 5:01:52 AM (GMT Standard Time, UTC+00:00)
Comments [16]  | 


#  Thursday, March 23, 2006
ROI - Return On Intimacy

 

I just read a great article by Jeff Einstein (smart guy, most likely) called The New ROI: Return on Intimacy

http://www.imediaconnection.com/content/3093.asp

In it, Jeff talks about how conventional advertising is no longer effective, and that advertisers are too obsessed with (addicted to - as he says) calculating Return On Investment or ROI from advertising and marketing, when what they should be concentrating on is intimacy with the audience.

It really hit home to me because we've seen this happen in our own productions. Our advertisers (for .NET Rocks) have told us that their campaigns with us have been the most effective of any others they have. We think this is because of the relationships we have with our sponsors and their products, and the unobtrusive and natural way in which we tell our listeners about them.

Too many times advertisers fail to put themselves in the consumers shoes. They just think about how they can drill in the message. As Einstein says: better, faster, smarter... The consumers have spoken. They do not like to be lectured, brainwashed, fooled, lied to, or otherwise patronized.  Would you like that?  Mainstream media is full of crap. Marketers are waking up to the fact that megaphones can be annoying, and that we the people are more likely to take advice from a friend than a TV commercial. :-)



Online marketing

Thursday, March 23, 2006 6:48:12 PM (GMT Standard Time, UTC+00:00)
Comments [4]  | 

This week on dnrTV - TDD Part 2

 


Jean Paul Boodhoo on Test Driven Development Part 2 of 2

Jean Paul Boodhoo gets real with TDD in this the second of a two-part series on TDD. Instead of showing simple brain-dead samples, JP uses a Model-View-Presenter solution to populate a drop-down listbox on a web page. This is a really great way to get into the discipline of TDD.



dnrTV

Thursday, March 23, 2006 4:46:19 AM (GMT Standard Time, UTC+00:00)
Comments [5]  | 

This week on Hanselminutes - MONAD!

 

<Microsoft Command Shell (MONAD)/>

Scott digs into MONAD scripts, commands, providers, and more. If you are a .NET developer and have never heard of MONAD, you MUST listen to this show. If you have heard of it, you'll learn something new.



Hanselminutes

Thursday, March 23, 2006 4:39:44 AM (GMT Standard Time, UTC+00:00)
Comments [0]  | 




Rss 2.0 | Atom 1.0 | CDF 
(C) Copyright 2012 Carl Franklin 


Designed by Nukeation Studios

Sign In
Copyright � 2006 Carl Franklin. All rights reserved.

Sign In