Non-Destructive Me

UKCommunities Twitter

Are you an active UK community member?  Find it hard to keep up to date with all the events around the country?  Have no fear, I have a solution!

We are extremely blessed in the UK to have a community that is so passionate and active.  I can’t even start to count how many user groups are active and how many meetings are taking place every month.  This magnitude of places to go does create a problem in how do we keep up to date of meetings taking place.

Barry Dorrans set up a twitter account for this very purpose a while back which aggregates all the RSS feeds of many user groups in the country.  Now that he is off to the USA, I have taken ownership of the account and am hoping to get many more UGs signed up.

So head on over to UKCommunities on Twitter and follow away!

Mass Delete Anonymous Posts on Community Server

Edge UG has always fought a losing battle against spammers.  So I decided to take action today and clear our database of all anonymous posts.  This may feel like a little broad-sworded but our site is unique where all posts are from registered users.  I thought I’d share the script I wrote (with help from Johan Barnard). Feel free to modify it to be a little smarter in terms of how it selects the posts to delete but the useful part of this script is that it does use community server’s built in SPs for post deletion.

As a side note,  the hardcoded @DeletedBy is my user id which I did as this was a single use script.

DECLARE @sectionId int, @settingsId int, @postId int
 
DECLARE post_cursor CURSOR FOR 
SELECT SectionId, SettingsId, PostID
FROM cs_Posts
WHERE PostAuthor = ''
 
OPEN post_cursor
 
FETCH NEXT FROM post_cursor
INTO @sectionId, @settingsId, @postId
 
WHILE @@FETCH_STATUS = 0
BEGIN
    DECLARE @message int
    SELECT @message = @postId
    PRINT @message
 
exec [dbo].[cs_Post_Delete]
    @SectionId = @sectionId,
    @SettingsId = @settingsId,
    @PostID = @postId,
    @ResetStatistics = 1,
    @DeletedBy = 2102,
    @Reason = 'auto spam delete'
 
    
    FETCH NEXT FROM post_cursor
    INTO @sectionId, @settingsId, @postId
END 
CLOSE post_cursor
DEALLOCATE post_cursor
DDD8 Voting is Open

DDD8 has finally opened voting for sessions.  If you’re interested in going to DDD this year, remember that you chose what will be there on the day.  I’ve submitted one session, so remember, free cookies to the attendees of my session. :)

http://developerdeveloperdeveloper.com/ddd8/Users/VoteForSessions.aspx

What is DDD?

DeveloperDeveloperDeveloper! Day will return in January 2010, these FREE one day events build on the success of the previous DeveloperDeveloperDeveloper Days. As before it is all about developers learning, sharing and interacting with each other in an informal and relaxed atmosphere.

There will be NO Microsoft speakers presenting, just speakers from the UK .NET developer community; although we will have some of the Microsoft UK Developer Team on hand to help out and chat to attendees.

The day is put together by the community for the community, in other words you. With Microsoft UK very kindly providing the venue, logistic support and a free lunch.

Nominate Silverlight for a 2009 Crunchie

Microsoft Silverlight has been nominated for a 2009 Crunchie award in the category of “Best Technology Achievement” and we need to get voting!

The 2009 Crunchies Awards, are an annual competition and award ceremony that recognises the coolest tech innovations of the year.  More information is over here at CrunchBase.

To vote, click this link and scroll down to locate the category of Best Technology Achievement (about one-third of the way down the page).

Posted: 01-06-2010 12:00 by Ray Booysen | with no comments
Filed under: ,
Nice New Year’s Present

I received a very cool email on the 1st from Microsoft:

Congratulations! We are pleased to present you with the 2010 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Client App Dev technical communities during the past year.

Very happy about that. :)

Posted: 01-05-2010 17:00 by Ray Booysen | with no comments
Filed under:
Silverlight DropShadowEffect and Redraw Complications

In Silverlight 3.0, effects were added to the API.  These effects allowed a developer to easily add common UI effects to controls in a very simple way.  One of these effects is the DropShadowEffect.  This effect simply adds the known dropshadow effect to any control you add it to.  For example:

<Grid>
  <Grid.Effect>
    <DropShadowEffect />
  </Grid.Effect>
</Grid>

This approach of simply having an attached property of the effect you desire is a very quick way of adding UI gloss to your controls.  However, please be aware of issues that may come about.

In a project I was working on, with some very complex UI, had a sudden and noticeable drop-off in performance of a component.  After much debugging, the culprit was traced down to an instance of a DropShadowEffect.  Using the enableRedrawRegions init param, we noticed that at any point an element updated it’s contents had a parent at some level with a DropShadow effect, the entire container and all children would redraw at the time the element updated.  Removing this DropShadowEffect, only the control that updated would redraw and performance would go back to the expected levels.

I’ve attached some code to the post to illustrate this problem.  The code is a very simple app that on a DispatcherTimer will update the contents of two textboxes every second.   Run it up with the DropShadowEffect enabled on the top-level grid and notice how that on every tick of the timer, the entire grid will redraw.  Then try again, but comment out the effect.  Note that this time, only the elements that change will redraw.

Effects are all rendered currently in software so even with a powerful video card, your CPU will still be doing the work of this redraw.  This is something that can effect you as a control developer as higher level containers that your code will sit in, may have effects like this added.  Please take care in what effects you do add and test sufficiently to satisfy your performance requirements. 

File Download Link

Nxtgen Oxford Demo Code and Slides

As promised, I’ve uploaded my demo code and slides from this evening’s talk.  Thank you to everyone who made the journey to see the wonderful world of MVVM!  If you have any questions, feedback or anything else regarding WPF or Silverlight, please do drop me an email.

Slides and Code
ray@vistasquad.co.uk

Wikipedia & Scrumwall: Azure Applications in Action
Meeting #1, Talk#2: Azure Application Demonstrations of Wikipedia Explorer and ScrumWall (Ray Booysen By UK AzureUserGroup
View in HD  Download Version  Visit UK AzureUserGroup's ExposureRoom Videos Page

Just finished uploading a video of a talk I did at UKAzure Net.  I demonstrated 2 real world applications (Scrumwall & Wikipedia Explorer) and how Azure solved the business problems that these two applications brought up.  Thanks to Ian Smith for his awesome work at this production.

Demo Code and Slides from DDD Scotland

As requested, I’ve put the code and slides up from my talk at DDD Scotland.  Its slightly different from my previous talk at DevEvening so download the latest!

Download Link

Busy Week – DDD Scotland & Enterprise Developer Conference

Looking forward to the coming week!  I’m leaving Friday for DDD Scotland and will be giving my WPF MVVM talk just before lunch on Saturday.  If you’re interested in coming, drop me an email (ray@vistasquad.co.uk) and I’ll find out if there are any more tickets.

After I get home on Sunday, I’m off bright and early on Monday morning to New York for the Enterprise Developer and Solutions Conference.  I’m co-presenting with Dan Scarfe on Azure technologies and how it helped with a product we wrote in-house.  Very exciting stuff.

Carbonite – Stay Away

A while ago, I decided that I needed an off-site backup solution so after testing some providers, I settled on Carbonite as my provider of choice.  I am an amateur photographer and after a few years of RAW photography, I’ve hit around 120GB of files and other less important things.

I installed Carbonite and it has been whizzing away backing up files as it saw fit and everything was right in the world of my backups.  I recently reinstalled Windows on my box and followed the instructions on the Carbonite site to restore the application to my PC.  And so begin the problems.

The first issue began when I remoted into my machine and noticed the primary OS partition (20GB, don’t ask) was full with 0 bytes free.  Running a quick check on the drive I found that Carbonite had helpfully created a 3GB log file.  Irrespective of what caused this log file to be created, there is no reason why it should be allowed to run amok on my system filling up the drive.  Even better is that it is created in c:\documents and settings\all users.  Irrespective of that it contains, a quick look shows full path names to files, nothing major, but why?  A fast (ok 25 minute) live chat with a support representitive and we came to the conclusion that the best method to solve this problem is to uninstall Carbonite.  Brilliant!

The second issue was with some weirdness with the application which has completely broken my belief that the backup system actually works.  When Carbonite installs, My Computer has a new item installed called the Carbonite Backup drive.  This allows you to see what is backed up and other such information.  This useful little drive was telling me my main 115GB backup was pending.  However, the application that runs was showing me the backup was complete and was taking no further action. Which one do I believe?  Is my data secure?  Another short (15 minute) live chat and we came to the conclusion that a reinstall would help.  Nope it wouldn’t, no change there.  Well how about you send us the log files? Ummmm, these are 3GB big, how would you like them?

This is on top of the fact that Carbonite does NOT backup video files without being explicitly told to backup EACH file.  You have to mark individual video files that they must be backed up.  Helpfully Carbonite support will point you to an entry in their FAQ that tells you this and honestly I believed the front page of their site which says “Completely Automatic”.

The experience has been far from pleasant.  The amount of time I’ve had to spend on Live Chats with people that can’t move from the support script they’ve been given, and the fact the software is pretty rubbish means I’m not staying.  I’ve asked for a refund and hopefully I’ll get a response, but hopefully this blog post helps some others from making the mistake I did.

Posted: 04-22-2009 17:42 by Ray Booysen | with 3 comment(s)
Filed under: ,
DevEvening Code and Slides

I promised the guys from DevEvening the code and slides from my talk.  So here you go!

Download Link

Next Vista Squad Event – 20 May

We’ve booked our next Vista Squad event! I’ve attached the blurb below for your reading pleasure, but hurry on over to our sign up page to get your ticket!

Azure is here in a big way so hold onto your hats while we do a fantastic introduction into the shiny new cloud computing offering.  Marcus Tillett will be giving us a great talk on the Azure platform and what you can do with it. 

For the IT Pros, Matt McSpirit rejoins us for Hyper-V in Server 2008 R2 which promises to be a fantastic evening all round.

Agenda

6pm - 6.30pm: Arrive and introductions
6.30pm - 7:30pm: Hyper-V in the R2 Wave (Matt McSpirit)
7.30pm - 8:15: Break, food and drinks
8:15pm - 9:15: Azure (Marcus Tillett)
9:15pm: Swag Giveaway, Wrap up!

MVVM Slides and Code

As promised, I've uploaded a copy of my slides and the code used in the demonstration.  If you have any questions or some feedback on the talk, please don't hesitate to contact me.

Link to code and slides

Email: ray@vistasquad.co.uk
Twitter: raybooysen

 

 

Posted: 03-21-2009 15:54 by Ray Booysen | with no comments
Filed under: , , ,
DDD Scotland Registration is Open

Developer Day Scotland is now open for registration. It has a fantastic agenda with a dedicated SQL Bits track – so it isn’t just for developers!

I’ll be there presenting on the MVVM pattern for WPF.  Hope to see you there!

Register for your place before tickets are gone.

More Posts Next page »