Over the weekend I was asked a couple of times what podcasts I listen too and how do I find the time? Well the short answer is that I only find 30min (approx) on the way to and from work. I catch the train which usually entails a 10 minute walk to the trains station, 5 mins of waiting for the train, 10 mins on the train and then a further 5 mins walk to the office. As such I usually end up listening to about a podcast (occasionally 2) a day. I typically choose from the following list:
<Self Promotion>The Microsoft Developer Show - A (mostly) weekly show that features developers around the world working with Microsoft technologies</Self Promotion>
Arcast - A great architecture show hosted by Ron Jacobs out of Microsoft (speaking of which he will be visiting NZ next week!)
Dr Neil's Notes - Neil Roodyn's weekly synopsis of what is happening around the traps
UberTablet - Mr Tablet PC himself, Hugo occasionally finds the time to talk it up with people doing things in the Tablet/UMPC space
OnTheRun - All the technology you can get your hands on and more
dotNetRocks - One of the longest running shows and IMHO goes for too long and tends to be drawn out. Still a great listen but you need a good hour of time to kill
HanselMinutes - I've only just started listening to this show and it's been great. A wide cross section of topics!
SQLDownUnder - Greg Low talks about everything data and not just with people down under
The other point of interest that came out of SQL Code Camp followed Adam's insightful presentation on Reporting Services best practices (which would be more appropriately labelled "Adam's rules to better reporting"). On the way back to the city I asked Adam who he turned to for information on user interface design. In typical Adam fashion his answer was himself. One of the concepts behind the product we have built at Intilecta is that there are two distinct parts, the core delivery platform (otherwise known as the content delivery platform or the CDP for short) and the content itself. Unlike most ISVs who build a product then worry about how it looks, a large proportion of our development resources (and testing) have gone into building intuitive, effective and minimal interfaces. To this end we have a number of reference books that we consult for opinions. We also try to read a number of design oriented blogs and other design critiques. A couple of the names that are worth a read:
If you know of anyone else who has a great eye for user interface design, please feel free to add a comment!
P.S. did you know that there is a new member of the DPE team in Australia, Shane Morris, who is a User eXperience Bloke!
Although VB.NET has in the past missed out on some fairly crucial language features such as anonymous methods and iterators (both absent from VB2005 which shipped with .NET FX 2.0) it seems that it is going to edge C# out in the race for the most obscure operators. Mitch posted about the C# implementation of the "because" or "justification" operator. The VB.net equivalent will looks something like:
1 + 1 = 2 because 2 - 1 = 1
1 + 1 = 3 because true
1 + 1 = 3 justbecause
Although the implementation is a little more wordy (literally) they extended this concept by adding the "why" operator. For example
why 1 + 1 = 2
The real question would be what does the why operator return and where could you use it. Well in the simplest terms the why operator allows the framework to expose any previously defined truths. For example in Mitch's case where he defined the truth 1 + 1 = 3, you could write the query why 3 + 3 = 9 which would return a proof which includes the truths (1 + 1 = 3, 1 x 3 = 3) as well as an execution plan in the form of a proof tree indicating the order that these truths are applied.
You would think this would be something that C# could easily add into their syntax, allowing you to write:
¿ (1 + 1 == 2)
But unfortunately I have it on good authority that C# will not get this feature as they deem it to be too productive and is a security hole as it allows the developer to query the logic of the .NET Framework developers at Microsoft.
Ok I have to admit I'm a big fan of everything Office 2007 with one MAJOR exception. The synchronisation built into Outlook 2007 sux and is considerably worse than Outlook 2003 - don't ask me how it can be worse but it is. I used to synchronise using RPC over HTTP so that I can sync regardless of what network I'm on. For some reason this seems to hang. To get around this I now connect to the VPN and sync using the LAN. This was acceptable until today. I've been sitting at SQL Code Camp (NZ) on the CafeNET wireless network (plug for the kind sponsors of this event) and despite being connect to the VPN I still can't sync my mail. I can however access the OWA web client at reasonable speed - go figure. Microsoft you MUST learn how to build a product that can synchronise, afterall it's just not that hard.
Update: After a thinking about this post again last night I realised that I should probably include some footage of exactly what's going on and why I think that the information provided to the end user in Outlook is pathetic and occasionally just plain wrong! Here is a rough sequence of images (thanks to SnagIt) that shows just how bad Outlook is. Remember I am connected using a VPN connection and I can not only access my email using OWA, I can also access the fileshare on the same server that Exchange is running on (we are using Small Business Server).
Just Connected: This seems to be quite sensible, Outlook detects that I've connected to a new network so it goes exploring to see if it can communicate with the exchange server
Sending Completed: Progress indicator states that "2 of 3 Tasks have completed" - ummm, I only see 2 tasks in the list and only 1 of them states that it is complete.
Not Really Completed: Hang on, the progress indicator states that Sending was completed, yet I still have mail waiting to be sent (I actually pressed send yesterday morning and have been waiting over 24 hours for this to go - I'm glad this wasn't an urgent email).
Now there's an Error: Oh, so now Outlook has realised that yes there were indeed only 2 tasks and that neither could be complete because the server is unavailable (remember at this stage I can still access everything on this server)
Still no connection: Now Outlook has completely given up and stated that it is just disconnected (read: I can't access the server, not my problem, fix your connection and I'll try again but in the meantime it's not my problem). Again remember I can access the server (and it's not even that slow)!!!
Update 2: Turns out that half my problems were related to my Small Business Server (which is of course running my exchange instance). This server has been extremely reliable but decided over the weekend to "require a reboot". Of course there was nothing in the event logs to indicate this and AFAIK there was no way of my working out what was going wrong. I was online talking with SBS guru Wayne Small when I decided to logon using remote desktop, check for (and install) any updates and then reboot the server. Not sure whether it was an update or the reboot but the server seems to be ok again and I once again have email (on either RPC over HTTP or VPN connection). The moral of this story is still that the error information is not good enough.
One trick I did learn from Wayne, that perhaps was in the Outlook 101 lesson I must have missed, was that if you hold down Ctrl and click on the Outlook icon in the taskbar there are a couple of additional options in the pop-up menu. The one that helped me out a little was the "Connection Status..." item. Great tip if you are having connectivity/sync issues with Outlook. Thanks Wayne!
Over the last couple of days I have rebuilt my laptop with the RTM build of Vista. As expected there have been a few hurdles, the biggest of which was getting replication to work. With SQL Server Management Studio I could easily create the publication but setting it up as a web virtual directory (so that it can be subscribed to by SQL Server CE) was another matter. After installing Vista I went into the Add/Remove programs and selected the IIS windows component. Unfortunately this doesn't include the II6 compatibility API - which most applications that were designed for II6 and earlier use. To get the virtual directory setup you need to install the compatibility API by checking the option selected in the following image (you also need to be running SSMS as administrator to communicate using these APIs)
So you have probably heard about Live gadgets and if you have been playing with Vista you will have see the SideBar Gadgets but what you may not have seen are SideShow gadgets. What's a SideShow, well it is the small display on the outside (typically) of a laptop that could show things like the time or information about the song that is currently playing. It is very similar to the reduced display that some mobile phones have on the outside. Well the great news is that it is going to be possible to build gadgets for the SideShow. Without steeling his thunder I suggest you check out Daniel Moth's blog and the the SideShow blog for more information. If you are interested, you should also keep tabs on the new .NET Micro Framework.
I've often wondered if there is a good service out there for managing your profile that has integration with blogs etc. Anyhow yesterday I came across wHooiz and created my profile. Check out wHooiz Nick Randolph?
Update: While I was out and about updating profiles etc I figured that I would set up my Technorati account too. Anyhow here it is my Technorati Profile
Earlier this year at TechEd Australia I sat down with Ron Jacobs to record a show for Arcast. SQL Server CE was still called SQL Everywhere back then but don't be confused this is still great technology. Head to Channel 9 and have a listen to what we are doing here at Intilecta and what I did at AutumnCare on building occasionally connected applications.
This morning I was in the middle of listening to a webcast when OneCare pops up and declares that it is going to apply an update. I'm getting used to the annoying bubbles that keep popping up to indicate the OneCare is yet again update (probably my fault for not disabling them) but this time the update notification took the form of a dialog that needed to be dismissed and looked like the following:
Now I'm no security guru, but the fact that "OneCare will not be available" while it is doing the update leads me to believe that my computer is exposed to viruses, hackers etc. In actual fact I
suspect hope that this is just the wording of the dialog and that in fact OneCare is still functioning as my virus protection and firewall while the update is being applied. Perhaps this wording needs to be improved to encourage users that their computer is still in fact safe.
Earlier this morning I was enquiring about the Scitech .NET Memory Profiler so I sent them an email to their support email address. As their website indicates they use FogBugz and have clearly put in place an automated system that takes your support request and adds it into FogBugz VERBATIM. The following screenshot indicates that not only have they included all the header information (including my email address, which I have removed from the image) it also includes any attachments, which in this case is my vcf (which has all my information such as mobile phone, email, im address etc). This information is available to anyone without a login!!!! Where's my privacy. As you can see from my follow up email I was a little less than happy.