It’s been a long time (06/24/2011) I pushed my last commit on my GitHub project NHibernate.StaticProxy, and I notice only now that I even didn’t speak about this project on my blog… Shame on me!
So after a short delay (hum…), here it comes
It’s been a long time (06/24/2011) I pushed my last commit on my GitHub project NHibernate.StaticProxy, and I notice only now that I even didn’t speak about this project on my blog… Shame on me!
So after a short delay (hum…), here it comes
This is a small post to explain how to make the Google XML SiteMap plugin work fine if you have installed W3 Total Cache too. I chose not to talk about this in my previous post, about the migration from DotClear 2 to WordPress 3, because I think this would be more easy to find out as a post of its own.
The problem is that, by default, you won’t be able to update your site map anymore, once you have installed W3 Total Cache. You’re likely to get this error:
The trick to solve this error is to change the detection mode from automatic, to custom location, and to fill the form with the correct location of your sitemap on the hard drive of your server:
You can now rebuild your sitemap, and all should be working fine by now.
As I spoke about in the previous post, this blog now runs smoothly using the WordPress engine.
In this post, I’m going to give you some tricks / to-do, in case you ever want to migrate too, from the DotClear platform.
This was a long time I wanted to get rid of my old blog, which was running using DotClear, to replace it with a WordPress instance. There are not a lot of reasons for that. The main one being the number of themes and plugins which is far more substantial on the latter platform.
I had a few problems while installing the whole system (Debian Squeeze / Nginx / PHP-FPM / APC, and the W3 Total Cache plugin), and importing my old one, so I think it will be worth a new blog post to explain how I was able to resolve them.
Anyway, I’m still in the very beginning of the customization of my new personal space. This is still the default theme which came when I installed WP, I have a few installed plugins, and I did not convert all the posts yet. Because no, the DotClear import plugin does not work very well, and I had to put my hands in the engine. For now, are missing some code highlighting is the oldest posts
Also, the RSS URL has changed. I still don’t know if it is possible to make it be the same as the old one, so please update your RSS aggregator
About a comparison between DC and WP, it is of course too soon to be objective. But it seems there are more possibilities using WP (plugins count helps a lot) than with DC. At least, I can regret the Media Manager of DC, which was more complete than WP’s, as I can’t create directories, to sort the medias. I’ll have a finer thought about the differences in the time, after a few weeks of use.
You can of course assume some updates on this blog, as I still need to find a nice theme, and to try a few plugins also, to see what’s best for me.
Happy coding!
Wow… Looking at the date of my last post, I’m surprised to see it is more than one year ago… Some much things happened to me since march 2011. But only one could explain the severe lack of updates over here: I’ve changed my job.
To be honest, this was not a planned move. The company I worked for, for the last 3 years went to bankruptcy. And as a last move to try to save what could be saved, they laid a few employees in the beginning of the last year. Unfortunately, I was one of them. But I don’t tell all this to be pitied. I had the chance to be hired almost immediately by a great company, Fishing Cactus, not to mention them
This is what explains the lack of news. In my previous company, I was programming in C# almost exclusively, which made things easy, when the main subject of the blog you write on is related to .NET
Now, I program using C++ exclusively (no, not even ‘almost’), which doesn’t help me to find interesting topics to write about here.
But I decided that would be a pity not to speak about other interesting stuff I have the chance to do here, and which are not .NET / C# related. Among other things, I’d like to write some blog posts about CHEF and how it helps to manage a cloud infrastructure, about Socorro, the Mozilla Crash Stats project, about Vagrant which “brings the cloud at home” (this quote is somewhat trademarked, I might speak about that in the future).
I may speak also of .NET again, because I finally found the courage (and the time) to continue to work on a personal project, written in .NET. And going further in this project might make me write about Microsoft Media Foundation, or DirectShow, or both
That’s it for tonight. I hope I will really be able to write a few posts here. I’ve got interesting stuff (I hope!) to speak about!
See you soon!
I didn’t post anything on the blog for a very long time (2010-12-07), so let’s break the silence with something new about Caliburn Micro.
In this post, I will briefly show you an update of an “old” article I wrote. The main drawback of the previous version of this dependencies attribute was its inability to make the availability of the action depend on more than one level.
For example, you could write these dependencies, which update the availability of the Do method when either OtherProperty (a property of the same view-model than Do) or OtherProperty.ChildProperty were modified.
[Dependencies("OtherProperty", "OtherProperty.ChildProperty")]
public IEnumerable<IResult> Do()
{
}
With the new Dependencies attribute I’ll show you right after the break, you won’t be limited to this single level of hierarchy, thus allowing you to write a dependency like:
[Dependencies("OtherProperty.ChildProperty.OneMoreLevelProperty.LastLevelProperty.*")]
public IEnumerable<IResult> Do()
{
}
In the previous article, we saw how to use PostSharp to help us to use the configuration sections, with the use of two aspects. In this article, I will focus on the same objective. But this time, we will use only one aspect, which will be a mix of the two aspects of the last article.
In this article, I’ll show yet another use of PostSharp, this time focusing on the ConfigurationSection class. If you look in the MSDN at the articles which explain how to use the ConfigurationSection, you may have noticed that the code you need to write is repetitive, tedious, and error-prone:
public class PageAppearanceSection : ConfigurationSection
{
[ConfigurationProperty( "color" )]
public ColorElement Color
{
get { return ( ColorElement ) this[ "color" ]; }
set { this[ "color" ] = value; }
}
[ConfigurationProperty( "font" )]
public FontElement Font
{
get { return ( FontElement ) this[ "font" ]; }
set { this[ "font" ] = value; }
}
[ConfigurationProperty( "remoteOnly", DefaultValue = "false", IsRequired = false )]
public Boolean RemoteOnly
{
get { return ( Boolean ) this[ "remoteOnly" ]; }
set { this[ "remoteOnly" ] = value; }
}
}
As you can see, you have to put the ConfigurationPropertyAttribute on top of each property, and to make calls to an indexer to the Get and Set methods of the properties, using the same name you used in the attribute.
Doesn’t this repetition look like to be a good candidate for an aspect?
If you develop in WPF using the MVVM pattern, you have certainly heard about the Event Aggregator pattern, which allows, as the MSDN says:
decoupling of publishers and subscribers so they can evolve independently.
There are several implementations of this pattern:
Of course, as the title of this article told you, we are going to use the latter, and I will propose an implementation of a PostSharp aspect which will help us to subscribe to events, publish them, and dispose the subscriptions when the view-model is deactivated.