Contents tagged with English
-
Welcome 2010
Things that have happened
- I’m no longer responsible for maintaining GhostDoc, SubMain has taken over the development and this has freed up a considerable amount of time. Some of this time went into playing more computer games, a larger portion went into seriously digging into WPF.
- The dotnet Cologne 2009, a community conference organized by the neighboring .NET user group Cologne and Bonn-to-Code.Net (which I founded exactly 4 years ago) became a huge success. In fact, almost too much of a success - we had to close registration a full month before the conference and the rooms sometimes were pretty crowded. There are plans for a dotnet Cologne 2010, but it’s too early to go into details.
Things I have learned
- The concept of “open space” / “unconference” can actually work. I attended the .NET Open Space 2009 in Leipzig and what I experienced blew away my initial skepticism. One thing to keep in mind is that this approach is not really a replacement for a conference in classic style – in my opinion the two styles supplement each other.
- The more I learn about Silverlight and WPF, the more I start to see how much I don’t know yet. While the actual amount of concepts to learn is finite, knowing how to combine these to achieve a specific goal is something completely different.
- Not much of a big surprise, just an observation: The lambda expressions introduced in C# 3.0 slowly but surely start to influence the way I think about/plan my code and (small scale) architecture.
Things I’m looking forward to
- Visual Studio 2010 when/if it’s released in good quality (please MS, take your time to get this release right, I still remember VS2005 before the SP!). I’m especially looking forward to the extensions for the editor that are now possible; when I saw the first samples, I was immediately reminded of one of my old blog posts back from 2003. Looks like we’re finally getting there!
- Silverlight 4 and WPF 4: The basic concepts of WPF and Silverlight are promising, but at the same time there are still many quirks and missing pieces. It’s nice to see Microsoft is pushing hard to close the gaps, at the same time I still see a long way to go (enough work for version 5, 6 and 7). Performance is improving from version to version, but still can be a source of frustration. And I’m definitely looking forward to the day when Silverlight is a bit more specific about errors than just telling me AG_E_SOMETHING – but I guess I’ll have to wait for something after version 4 for that.
- I’m no longer responsible for maintaining GhostDoc, SubMain has taken over the development and this has freed up a considerable amount of time. Some of this time went into playing more computer games, a larger portion went into seriously digging into WPF.
-
Goodbye 2009
I wish everybody out there health, success and overall happiness in 2010.
-
How to avoid flicker when resuming video playback inside MediaElement
I just fought with some noticeable flicker during the first few frames when resuming a paused video inside a WPF MediaElement. It turned out that setting the ScrubbingEnabled property to “True” fixed the problem.
(Posted just in case somebody else is searching the web for the same problem)
-
Upgrading from “Weigelt” GhostDoc to “SubMain” GhostDoc
As I wrote in an update to my “The Future of GhostDoc” blog post, the uninstaller of GhostDoc 2.1.3 contains a bug which (under specific circumstances) may lead to losing your Visual Studio settings – I’m really sorry about that.
In the days after the first SubMain release in May (version 2.5.09150) I have helped the guys from SubMain in developing a working uninstaller for old GhostDoc versions, which is now included in the setup of the current GhostDoc version 2.5.09166 (published mid-June, though the website has been only updated recently).
So the “right way” to upgrade from an old “Weigelt” GhostDoc version (up to 2.1.3) to a new “SubMain” GhostDoc version (starting with 2.5.09166) is:
- DO NOT uninstall Weigelt GhostDoc
- Just run the SubMain GhostDoc setup
Everything else will be taken care of. Future updates (from one version of SubMain GhostDoc to another) also involve just running the installer of the new version.
-
The Future of GhostDoc
Today is the day that I'm finally able to speak about why things have been pretty quiet lately regarding the future of GhostDoc.
I'm happy to announce GhostDoc has been acquired by SubMain, developer of tools like CodeIt.Right. The agreement covers the usage of GhostDoc's documentation generation technology in their products, as well as the availability of GhostDoc as a standalone product. SubMain will continue to maintain and distribute a non-crippled version of GhostDoc free of charge, and will make sure that it will work with future versions of Visual Studio like the upcoming VS2010. The first step is a new version 2.5 of GhostDoc that has been released just moments ago.
For more information please take a look at a Q&A with Serge Baranovsky from SubMain and me that covers past, present and future of GhostDoc.
As I already mentioned in the Q&A, from my experiences of working with the guys at SubMain (both on the legal and the technical stuff), I can say that GhostDoc is in good hands. The developers now have my issue tracking database where I collected and annotated all the feature requests of the recent years, but I also would like to ask every GhostDoc user to please let them know if you have ideas how to improve this tool.
I'd like to use this opportunity to say a big Thank You to all GhostDoc users out their for their (overwhelmingly positive) feedback over the recent years. Thank You!
Update: Important note for existing GhostDoc users
There are uninstall issues with the old GhostDoc version 2.1.3 (and versions before) that under specific circumstances may lead to losing your Visual Studio settingson Vista machines. I'm already working on a solution to the problem (with help from one of the SubMain developers), in the meantime please back up your settings as described inthis step-by-step guidebefore uninstalling the old GhostDoc version. During uninstallation, if a Visual Studio instance pops up and asks you to choose a developer profile, choose one and continue. This will lead to the loss of the settings, which then can be restored by importing the backup you just made before. Note that you have to choose a profile; cancelling the dialog will lead to a corrupted state of the uninstallation.The new GhostDoc from SubMain is using different install/uninstall/VS integration technology that has been proven in their other products and does not have such problems.
Update 2: Please read this blog post on upgrading to GhostDoc 2.5 and later.
-
ReSharper 4.5 – Yup, now I’m a fan
People around me have been huge ReSharper fans for quite a while, but it took me until ReSharper 4.1 to actually give it a try. So I played around with it, liked the features and – uninstalled it after a few weeks.
I can almost hear the uproar of ReSharper fans “how dare you? This is like going back to writing code with Notepad!”. But honestly, version 4.1 did get on my nerves. I was constantly reminded that I had ReSharper installed, unfortunately in a bad way. Visual Studio simply didn’t “feel right” anymore in terms of performance. One of the many things that nagged me was that starting a new instance of Visual Studio for opening a solution always took a considerable amount of time.
ReSharper 4.5 is a different story, though. Of course, certain features need a certain amount of CPU and I/O power, that’s a natural fact. Of course there’s still a slight delay here and there compared to a naked Visual Studio.
And when opening a solution by starting a new VS instance, ReSharper is “cheating” a little my making its features available only after a few seconds. But that’s perfectly fine with me – when I open a solution I usually need some time to look around a bit before doing actual work, time that ReSharper can use for initialization. That’s much better than making me wait until I can even decide whether I opened the right solution.
After a full day of coding on two C# solutions that with 4.1 installed made everything feel rather sluggish all in all, I can say that now with 4.5 installed I never thought about going back to a Visual Studio without ReSharper. And now that I’m not constantly thinking about performance, I finally can enjoy the many nice features of ReSharper.
Indeed, if you’re not a ReSharper user, now is a very good time to give it a try!
-
Thoughts on Three Monitors for Developers
For developers, using two monitors almost has become mainstream. Modern video cards tend to have two outputs, a second monitor usually is available after upgrading to a larger screen, and most software - including operating systems - doesn't have any major problems working with multiple displays. And it's pretty safe to say that the majority of developers who have experienced the productivity gain of a two-monitor system (when used properly) don't want to go back.
The next question obviously is whether - and how much - a third monitor would help. I have two 24" TFTs both at work and at home and I'm using an additional display (my old 19" TFT) at home for a couple of months now. After spending three weeks on vacation at home and having finished the second week back at work I thought that now is a good time to compare the two setups and share my experiences.
How do I hook up a third monitor anyway?
Those of you who are interested in a third monitor may already have read about the problems with adding a second PCIe video card to your system - some combinations work, others don't. If you're like me and want an easy, low-risk solution, you should take a look at an USB graphics adapter.
I chose an EVGA UV Plus+ UV16 that has a DVI port and a chipset by DisplayLink for which 64bit Vista drivers are available. It may not be suitable for hardcore gaming, and HD resolution videos show a slight stutter if you're looking closely. But Aero and applications are working just fine. If you watch e.g. the rotation of the chess board in Chess Titans, you couldn't tell that you're watching it on a display connected via USB.
Regarding compatibility, I have to switch off the UV16 graphics adapter for running Flight Simulator X (switching off/on is easy via a tray icon), but I don't have problems with other games I've tried: Prince of Persia, Mass Effect and L4D run happily on my primary display (driven by a Geforce 8800 GTS 512). All in all I'm very happy with the UV16 and can recommend it.
Now, what is it like working with a third monitor?
To be honest, it takes some time to get used to. One thing I had to struggle with at first was caused by the position of the mouse. I'm right-handed and both at work and at home I have one 24" TFT right in front of me as my primary screen, and another 24" TFT as a secondary screen to the right, at an angle of about 40 degrees.
When I turn to the right, the secondary screen feels equally "near" to me as the primary screen. But when I turn to the left, towards the third screen, that screen feels more "distant" than the other two because I'm turning away from the mouse. This is strange at first, but in the end I got (kind of used) to it.
And what about productivity?
Don't expect a similar effect like when upgrading from one to two monitors. And it may happen that you don't develop a "couldn't live without three" feeling at all - after two weeks back at work with "just" two monitors, I know I don't. Sure it's nice to have more space for help files and web pages, but I have observed that I tend to
- either work with two instances of Visual Studio side-by-side (e.g. for moving over code step by step from a sample, or design time debugging),
or - do some research-heavy development in a single (visible) Visual Studio instance (with web pages and help files on the secondary display).
Well, what is it good for then at all?
For me personally, the primary reason for adding a third monitor was my hobby of working with video. I use the third screen as a preview device, and with the preview in Sony Vegas never running 100% in real time, I can't tell what is causing the occasional stutter anyway (USB adapter or video preview). Having the other screens available completely for the timeline and tool windows is great.
Another thing I like about a third monitor is that I have enough space for things like Twitter, Messenger, Skype. But this is at home, where I actually want to notice updates immediately and I'm open to distractions, contrary to the situation at work.
Having a third monitor dedicated to a remote desktop session or a virtual machine may be nice under certain circumstances, but with sufficiently large primary and secondary screens, I haven't encountered situations where three screens would have been much better than two. Let's put it this way: it's not as if going multi-monitor would suddenly take away the feature of switching between windows...
So what do I recommend?
Here's my recommendation regarding multi-monitor systems:
- Before even thinking about three screens, make sure you have two large screens of equal size. Being able to move an application from the primary to the secondary screen without fiddling around with the layout inside the application window (think Visual Studio) is worth a lot.
- If you already have two large screens, a third monitor is standing around collecting dust and you have enough space on your desk - you definitely could do worse than spending your money on a USB graphics adapter.
- But if you have to actually buy a third monitor, then you really should think about how you want to use it. Unless money isn't an issue and you want to impress people (in this case make sure that your computer emits the typical sounds of computers from movies and TV ;-). But for everybody else, watch yourself at the computer - where is your focus, how long do you need a certain application, how often do you have to switch between windows, which information do you need to be able to view in parallel, etc. And then make a buying decision.
As you can guess, this is my completely personal opinion, not based on any scientific research, so as usual YMMV. If you have any questions, comments or suggestions, feel free to leave a comment. Do you agree? Or do you organize your work in a different way across monitors so that three monitors notably increase your productivity?
- either work with two instances of Visual Studio side-by-side (e.g. for moving over code step by step from a sample, or design time debugging),
-
My WPF Bookshelf
For future reference a quick list of WPF-related books I own:
- Charles Petzold: Applications = Code + Markup
This was my first WPF book and I bought it pretty soon after it came out, so I didn't have a chance to read the bad reviews of other people. The main problem is the lack of images, leaving you just with the text and your imagination if you're not following each and every step at your computer. Contrary to other WPF books, XAML is introduced pretty late (in the second half). In his excellent PDC pre-conference session about WPF, Petzold himself admitted that this was a mistake and chose a different, XAML-first (instead of code-first) approach for the session.
According to a buddy from my .NET user group the book may be nice for reading about some deep-down details, but I cannot comment on that.
Bottom line: No recommendation from me.
- Adam Nathan: Windows Presentation Foundation Unleashed
This was my second WPF book and it is the exact opposite to Petzold's book: lots of images, lots of color. I really liked that at first, but it's actually pretty hard to read the book for longer periods of time with the pages being cluttered with colored boxes ("Warning", "Digging Deeper", "FAQ", "Tip") - a bit less color sometimes would have been better. And I would have liked more body text here and there, having the feeling that some things could have been explained in more detail.
Bottom line: By no means a bad book, but I'm not entirely convinced.
- Chris Sells & Ian Griffiths: Programming WPF (2nd Ed.)
My third WPF book. The layout is easy on the eyes, a good mixture of images and longer body text. Like the WPF Unleashed book it has side notes (warnings, tips, recommendations), but they are shown in a less obtrusive way. I really liked the writing: Enough text for explaining things, but never boring. I read large parts of the book away from the computer and enjoyed it.
Bottom line: My favorite "first WPF book".
- Sam Noble, Sam Bourton, Allan Jones: WPF Recipes in C# 2008
Not a book for learning WPF from scratch, but a collection of problems and their solutions. It may seem a bit old-fashioned to have this in a book in the age of Google search, but you'll notice the difference between most things you find on the Internet and the content of this book where the authors actually have spent quite some time on polishing.
Each entry in the book consists of a short description of the problem (Always starting with "You need to ...", very effective wording by the way), a short description of the solution ("Use an X and do Y") and is then followed by a longer part "How it works".
Bottom line: Having this book on your bookshelf may save you a lot of time.
- Charles Petzold: Applications = Code + Markup
-
SonicFileFinder 2.1 Released
My colleague Jens Schaller has put out a small bugfix release of his Visual Studio add-in SonicFileFinder, a free tool for quickly navigating inside Visual Studio projects and solutions. ReSharper users may argue that R# offers the same functionality (among many many other features of course), but being a R# user myself I still prefer SonicFileFinder's file search.
More information on his blog, download on the SonicFileFinder website.
-
Looking Back at PDC 2008
The PDC 2008 is history, I've crossed the Atlantic and slept the first night back at home. Before the memory of PDC 2008 begins to fade, I'd like to take a look back.
The PDC started for me with an amazing pre-conference session with Charles Petzold on WPF. I don't know how people without any WPF knowledge at all may have experienced it, but for somebody like me, who has looked into WPF again and again, just to be stopped each time by more urgent things to be done, the session was really great.
For the precon Petzold chose an approach different from his WPF book (or "the phonebook" as some call it because of the lack of images), which was definitely a good thing, starting immediately with XAML (instead of code) to explain the concepts. The amount of preparation that went into these 6 hours was impressive: A script almost an inch thick, perfectly timed segments of 20min each and literally hundreds of samples shown in a custom-written viewer which highlighted the small steps from sample to sample.
In a good mood I visited the keynote on Monday, just to be severely disappointed. As PDC traditionally is about the future, i.e. upcoming technologies that developers should be motivated to take a look at, it was hard to understand that the keynote started without a video pumping up the crowd. The keynote on Tuesday was better in that respect, as it started with a video showing a number of WPF applications, giving me a first "oh wow, WPF really seems to take off" feeling.
Unfortunately, both keynotes sadly lacked excitement. It wasn't the content - that at least made me go "hmmm.... what I just heard somehow sounds important". Instead, it was more the speakers and the way the content was presented that failed to reach and motivate me. The joke among me and my colleagues was "hey, go and motivate yourself".
Speaking of keynotes, the Microsoft Research keynote definitely lacked a review cycle in the days before the PDC, where fluff could have been separated from the (mostly pretty cool) content. When I sat through the first half hour in which I was told over and over again how great Microsoft Research is, I was reminded of the movie "Spiderman 2" where an equal amount of time was spent on how sad the life of a super hero can be. Both in the movie and the keynote the point where I'd think "ok, I'm not dumb, I get the point, now PLEASE move on" was reached soon enough.
The sensors stuff in the MR keynote left me wondering what's so special about it, but the other parts (e.g. programming for kids using a joypad or the World Wide Telescope) where really interesting. I just got angry when the audience was told "oh, we've got to hurry now because we're running late". Yeah, that's because you spent all the time on telling us how great Microsoft Research is.
But the PDC is not (only) about the keynotes. It's the sessions. And I must say that the sessions - at least those that I chose - where of high quality. There's a noticeable difference between talks by (certain) members of the "conference circus" (you know, those guys that do nothing else but travelling from conference to conference, but please, I don't mean all of them) and somebody from (or very close to) the development team. For me, the most memorable example for this is the difference between the sessions of the WPF team at PDC05 and virtually any other talk I have heard about WPF since then - which I could rant about again and again, but that's a topic for another blog post.
In general, I'd say that the sessions (again, this applies only to those I attended) on average were of slightly higher quality than those of PDC05. I judge this by how fast time seemed to fly by, but my memory may serve me wrong, so don't pinpoint me on that.
To come to a close:
- Did I enjoy PDC 2008? Yes!
- Do I think PDC 2008 was worth the expenses paid by my company (Comma Soft AG, we're hiring by the way)? Yes!
Honestly, if I didn't think so, I simply would have left out the question ;-) - Would I choose to endure the grueling long flights in Economy class again to attend PDC 2009? Um... Yes!
So let's hope I get the opportunity in 2009, maybe we'll see us there!
P.S. Visual Studio 2010 seems to become a seriously cool release, finally allowing things like this or this (and even more)...