Thursday, September 09, 2010

Let’s get ready to Kindle!!!!


I’ve got a new Kindle (3rd generation)

Here are some pics. Review to follow later if when I can stop playing with it :)




And here are some shots of the cover.



I would have added a shot of my new Kindle situated in it’s new home, but the battery on my camera gave out at this point.

Thursday, July 08, 2010

Echo…. echo…. echo…..

Just a very quick post in case you missed the updated link in my previous post.

There is the distinct possibility that this blog may go quiet for a while. It seems a little silly to cross-post to both here and My New DevExpress Blog.

So if you’re looking for CodeRush, CodeRush Xpress, RefactorPro or DXCore information, head on over to My New Blog and check out the rest of whilst you’re there.

Tuesday, July 06, 2010

New Beginnings…

It’s true what they say…

“As one door closes, another opens”

…and who can tell what new opportunities the new door might reveal.

Just recently I blogged there’s going to be “too much happening at work, for me to be able to juggle all my “Official” work, with my DX-Squad responsibilities.

…and this is technically true. If I had to do both one thing and the other without some sort of reconciliation, I’d probably go mad.

However it wasn’t the *entire truth*.

You see there is a very good reason that there’s going to be “too much happening at work”….

Big Announcement

I’ve joined DevExpress

Yup I’m going to join Mark and the gang in promoting the DevExpress IDE Tools.

CodeRush Pro/Xpress, RefactorPro and DXCore

Its worth noting that I’ve not actually given up my previous job. DX did ask, but honestly the family business couldn’t take the hit at this time. We’ll see what happens in the future… Who knows :)

Instead I’ll be working part time on all manner of things CodeRush related. But rest assured… My existing employer is aware of the situation and is ok with this new arrangement.

So what’s changed?

Well that’s a good question….. The simple answer is … well … not much really :)

I asked what my job title would be. The best we’ve come up with so far is “CodeRush Community Evangelist”. What do you think? Can you come up with anything better?

In theory, I’m going to be more focused. After all I’m being paid to do this now. This also means that I’ll be forgiven more easily by my wife, for the amount of time I sometimes spend in the evenings on these things :)

One way of looking at this, is that DevExpress thought it would be cool to be able to direct my efforts a little more than they do now.

The way I see it, it’s not such a good idea to dig too deeply into this sort of thing… If I ask too many questions they might change their mind :)

Community Plugin Site

Don’t worry the community site is still a community site. It and the plugins on it (current and future) will continue to be owned by the community. Nothing is changing there.

I’m going to continue all of my community stuff. I’ll still write plugins. I’ll still blog. Hey you never know they might even let me write on the official site :P.

What will I do?

The simple answer to this is ‘More of the same’. I’ll have greater access to the devs behind this wonderful set of products (You know, the crack squad of awesome guys that actually implement the stuff that Mark Miller comes up with)

With this new level of access, I should be even better equipped to answer questions and writing plugins. So we all win. Hurrah!

The biggest change from my perspective is that I can’t say “I don’t work for DevExpress” anymore. I’m going to have to work on that one :) Although it’s already recorded all over the place, so I hope you’ll forgive me if I don’t attempt to track down each and every instance.

So what next?

So I’m just off now for my ‘Kool-aid upgrade’.

Instead of making regular visits to the Kool-Aid fountain, I’ve got this new Kool-Aid Patch which hydrates Kool-Aid directly from moisture in the air around me. :)

Oh and while I’m on the topic of Kool-Aid, If anyone thinks for a minute that this will make me *more* Pro-CodeRush, I advise you to stop and think for a minute about that….

How exactly is that possible?


So after my Kool-Aid upgrade, I’ll be off to learn a few secret handshakes and will catch you all on the other side.

I think things are about to get interesting :D

All good things….

I’ve been a member of DX-Squad since some time in April 2006.

After driving Mark Miller, Dustin Campbell and others round the bend asking questions, I finally started retaining enough of this information, that I was able to repeat it to others who came along asking similar questions.

A little while later Dustin suggested I be invited to join the DX-squad, and Mark Miller agreed. I am very grateful to them both for this.

DX-Squad is “A volunteer group of advanced users supporting our tools/component technologies and development community”

What this boils down to, is helping out on the DX forums answering questions on DX technology. It’s kind of like being a DevExpress MVP. And in exchange, DX grants the squad a gratis license to their stuff. It’s an arrangement which benefits both parties and I have found it to be very agreeable.

So I’ve been hanging out on the forums and more recently on twitter answering questions on CodeRush etc for the last 4 years or so. However I’m afraid the time has come to leave.

Unfortunately nothing is forever, and there’s just going to be too much happening at work, for me to be able to juggle all my “Official” work, with my DX-Squad responsibilities.

This being the case, I’m afraid something has to give… and realistically I’m afraid it’s membership of the DX-squad that is going have to loose out in this case.

So after a little over 4 years of helping to answer questions on CodeRush, the DXCore and related tech, I think it’s time to move on.

It’s been great working with my fellow DX-Squaders, who all do a great job supporting their respective areas of DevExpress goodness. I hope they’ll not shun me too much for this decision, and might even continue to provide the odd nugget of help in the future, if should I need it :)

I would like to say a huge thank you to everyone who’s ever used a plugin that I’ve written, and even more so to those who’ve suggested ideas (whether I’ve taken them up on the idea or not). I encourage everyone to go take a look at CodeRush, CodeRush Xpress, Refactor Pro and the DXCore.

IMO they are truly the most useful tools I’ve ever come across.

Unfortunately now (as has oft’ been said)…

…All good things must come to an end.

Monday, May 24, 2010

Template Driven Assembly References

In comments on my previous post @BlackMael asked about doing something similar to DX_NewItem, only with assembly references instead of Project Items.

That sounds like a challenge to me :D

My answer to this is that there already exists an AddAssemblyReference TextCommand in CodeRush. But that ‘s only useful if you know what to do with it.

So here’s a quick guide on setting up a “Dynamic List” of Assemblies

  • First Create a new Dynamic list (DevExpress\Options  Core\Dynamic Lists)


  • Then populate it with Assembly names and suitable mnemonics


  • Finally create a template that references the variable used in the list.


You’re done!

You can now use ‘ar’ in combination with any Assembly added to the assembly list and CodeRush will add your assembly reference without ever needing to go near the dreaded “Add Reference” Dialog

New CodeRush plugin ‘DX_NewItem’ replaces ‘Add New Item’ dialog

Note:This plugin requires the full version of CodeRush (Or a trial of same). Xpress is not supported at this time.]

I’m sick of visual studio’s ‘Add New Item’ dialog.

It’s filled with way too many items I’ll never use and it’s slow to use.

So I’ve created a CodeRush plugin to replace it in > 90% of cases.

Now I’m sure you already use CodeRush templates to create classes, methods , Interfaces and the like, but what about when you need to create something more complicated.

Something with multiple files. Something which studio is already capable of creating and where creating a CodeRush template would take too long.

Wouldn’t it be nice if you could ask CodeRush to trigger a Visual Studio Item template without having to muck around in the “Add New Item” dialog trying to find it first?

Well now you can!

  • Locate DX_NewItem
  • Deploy the dll to your plugin folder
  • Extract the settings file to the correct location
  • Create a single CodeRush template

and you’re done (full instructions here)

Now you have the benefit of the ‘an’ template. ‘an’ is a mnemonic for ‘Add new

For example:

anwf<space> – add new win form to your project.

anxf<space> – add new xml file to your project.

andxp<space> – add new dxcore plugin to your project.

[Note: Other Templates are already catered to… See the ‘Templates’ list on the ‘Core\Dynamic Templates’ (advanced) option page – ]

How sweet is that?!!

I’ll be adding support for other items as time goes on, but you can already add your own via the instructions on the wiki page

And now for something more visual:


Friday, May 21, 2010

CodeRush 10.1 hits RTM

Yes I know I’m a bit late with this news but I was on twitter this morning and noticed that people were still under the impression that CodeRush 10.1 was still in beta.

So let me set the record straight… Here are the facts:

  • CodeRush 10.1 (along with DXperience) hit RTM at approx 21:40 BST on 19th May.
  • CodeRush is available to subscribers from the DevExpress Client Center
  • CodeRush Xpress (Still Completely Free!!!) is available from it’s own page
  • A trial of CodeRush (Full version) is available from this page
  • The current version is 10.1.4
  • CodeRush 10.1 works under VS2010, VS2008 and VS2005
  • CodeRush has a new Color Picker which absolutely rocks in *any* color related scenario (WPF, CSS, VB, CS)
  • The Graphical API has been rewritten to the account for the changes in VS2010
  • Microsoft have requested that some features be removed from CodeRush Xpress under VS2010
    • This is believed to be because they introduced ‘similar’ features in VS2010 that they wanted to promote.
    • Such features include QuickNav, QuickFileNav, Tab To Next Reference, Highlight References and several consume first Code Generators
    • These features all still work under VS2008 and VS2005
    • These features all still work in the Trial or Full versions of CodeRush
    • MS paid to license CodeRush Xpress to all users of VS Pro or higher, so frankly they have the right to say what they’re willing to pay for. It kinda sucks but this is actually not unreasonable.

So go out spread the word “CodeRush has come to VS2010” - Which means VS2010 is finally usable :D

Friday, April 30, 2010

How much faster is CodeRush ?

Recently DevExpress released a video which compared the rename functionality in CodeRush to that of in of it’s competitor products.

There then followed some discussion on Twitter, about how valid the tests were.

Questions were raised like “Why would anyone want undo like that ?” and comments were made like “He probably used a pre-release version of ‘Brand X’ productivity tool. They’re always slower than the RTM versions”.

These are potentially fair points. Lets see if we can address them.

“Why would anyone want to do that?”

First up “Why would anyone want undo like that” . Now I must confess I’ve can’t now find the tweet in question in order to quote this properly, but the person who mentioned this appeared confused about why anyone would want to do an undo at that point in time.

[To put this statement in context… the DevExpress Video shows a rename of a local symbol using the Brand X product, occurring at approx 0:30 of said video, and then shows the effect of trying to undo this at approx 0:40]

Why should being able to undo something be unnecessarily restricted. I frequently get called away in the middle of something, come back, wonder what I was doing exactly. Sometimes undoing and redoing is a good way to remember.

In any case I don’t think there is any point at which it should be suggested that undo is unreasonable. If your tool is telling making anything that you do this awkward and error prone, IMO you should re-evaluate if it’s helping you or not.

Bottom line: This clearly works in CodeRush… It clearly doesn’t work in Brand X.

“It was probably an unfair test using a pre release version of Brand X”

Well I can see why some people might think this. DevExpress did this test, and they did it on a one of their own solutions. This does make it kind of hard to verify independently, since they’re hardly about to hand out the source of CodeRush :D

…and so I decided to do my own test :)

You might say that I am biased also. However the test I conducted is reproducible by anyone who cares to do so using their tool of choice.

  • I started by selecting an open source project that anyone could get hold of. I chose Paint.Net version 3.5.5
  • I then downloaded the latest version of CodeRush 10.1 (This will soon be available to anyone as RTM is imminent) and the latest version of Brand X (Available from their main page. Can’t get less pre-release than that :D)
  • Both tools were installed and in each case, whilst a test was being done, the opposing product was disabled.
  • I restarted Studio for each test and allowed the CPU to settle after loading the solution before starting the test.
  • I used a quad core machine with 2GB RAM (Yeah I know I need more RAM) running on Win7 x64 (My home machine)

And so I looked around for something in the solution which would have a lot of references.

After some fairly casual looking around, I couldn’t find anything with more than about 50 references. Then I had a brainwave…. I’d rename the main namespace. [Note:CodeRush took all of 4.1seconds to tell me that there were some 416 references to this in 197 files.] This seemed like it would be enough of a test.

What followed was a fairly boring, so frankly I’ll skip straight to the results:
[Note: If you’re interested in the details, they’re pretty much the same as the CodeRush Video at 01:53]

Product Time to rename
CodeRush 22 seconds
Brand X 4 minutes and 28 seconds


So with the latest versions of each product, and a test you can reproduce yourself if you really want, to my conclusion is:

Mark Miller is wrong.
CodeRush is not 10x faster than Brand X….. It’s 12x faster :D

With a difference this big… I couldn’t just have made myself a Coffee…. I could have ground the beans myself.

Wednesday, April 21, 2010

New ‘Color Swatch’ Feature in CodeRush 10.1

Update: Mark Miller has since addressed this feature much more thoroughly

I’m sure you recognise at least one of these…

#2387d4 &h23 &h87 &hd4 0x23 0x87 0xd4

Apparently, these are all representations of color.

Did you ever think that, for something designed to represent color, that … well … They’re not very colorful are they?

So how about something better? Something designed to give you a little more relevant information on the color you’re talking about:


This little strip of color will also appear in C#, WPF and HTML code.

If you click the bar itself… You are presented with….

“The most glorious color picking dialog known to Dev”. – Rory :P

This first shot shows, an incredibly granular, ‘Picker’ tab.ColorSwatchPicker

Next up.. Some well known ‘Web’ colors:ColorSwatchWeb

Named Colors (Like Color.Red, Color.HotPink)


Some colors taken from the local system:ColorSwatchSystem

Colors found in your open document. This is very useful when designing web pages or css schemes. Essentially you are being shown a dynamic palette of colors that are already in use in your current document.ColorSwatchDocument

And of course a ‘Favorites’ Tab. Each of the previous pages has a little star button which allows you to add the selected color to your favourites. Multiple palettes can be created and stored here.

…And once you have chosen your preferred shade of “Hot Pink” or “Acid Yellow” … Simply click ok and CodeRush will replace your original code, with code representing your chosen color. As usual CodeRush understands the code you’re working with and will happily create C#, Vb.Net and others.

[Note: In the beta, this feature is off by default. You’ll need to visit Editor\Painting\Show Color in the DevExpress Options (Ctrl+Shift+Alt+O) and enable this feature in order to use it.]

So now you’ll be able to readily identify just what a color looks like, and be able to alter it in a simple and intuitive way :)