Category Archives: Divers

Tout le reste !

5 things learned in 5 years of blogging : The personas

eLogoAs said in my previous article, I would like to share some master tips I learned during these 5 years without falling in the most obvious tips like “Quality first article”. It’s not a recipe for a successful blog but I’m sure they could help you and improve your blog overall quality. This series will be composed by 5 article, here’s the first one.

Identify what’s your profile and the profiles of your readers.

That’s perhaps the most important things to do if you want to have a relatively consistent blog and that’s perhaps the most undone thing by bloggers. I’m not saying your have to be a marketing guru or act as a Mad Men actor trying to sell anything to anyone ! The goal here is to identify clearly your target, what are your goals and how to stay consistent.

Bloggers Personas

If I take a look at the well known “10 Blogging Personas to Help You Target and Focus Your Content” from John Saddington I can define my blog writer persona as a “How to” or Educational blogger. What’s the point of knowing that ? Well, once again : consistency. That mean if for example I want to start to talk about music or photography, with other blog writer persona on theses, I’ll create dedicated blogs. This blog as a purpose and clearly identifying it allow me to keep it clean. At the beginning I’ve done this error with some article about music or politic and guess what ? They are the less consulted one, not because they’re not great, just because they’re not on their right location. On my other music related blog, the exact same article bought me many viewers and comments. What if I start to explain my last travel on this blog ? Well I’m pretty sure you don’t care, and you’re right to don’t care about, you’re not here for that. That allow me to talk about the second point, your reader personas.

Readers Personas

Readers personas will allow you to improve quality of your articles. You can easily found articles about how to create persona like this one or this one.  I’ll not give you the full list of persona’s I’ve identify on this blog but one of the most important one is ‘John the .Net Developer coming from Google’. This one is +/- 80% of my total traffic. (I know it with the analytics reports, 80% of the incomes have google as referrer). He’s mainly between 20 and 30, male sex (assume that based on the Forbes article “Women in Tech: Female Developers By the Numbers”) and looking for a quick solution to a technical problem. That means I can improve my article structure and choice to match their need. The benefit for me are multiple, but the one I prefer is feeling more useful and helpful for the others !

Usage of Personas

That said I also want to precise something really important. IF YOU WANT, DO IT ! By this I mean, if I want to write an article without meeting one or more of my readers personas and outside of my writer persona, well, I’ll do it, but I’ll not except a lot from it. Also, even if you start to work in a more structured and analysed way, always make things fun ! There’s, for me, no interest in writing about something I hate just because I feel like it will give me a lot of readers or anything. Just before concluding here’s how I mentally include the usage of personas in my blog writings :

1. I want to talk about something, it’s übber cool, I feel like god and got rays of light at the end of my fingers !
2. Brainstorm or find documentation/experiment
3. Step into my article writing process (1 to 3 iterations of write -> stylize -> review -> ask external review -> patch/correct/adapt -> wait 24 min/hours/days -> review)
4. Analyse the article and verify it fit my writer persona, if not, adapt it or put it on another blog/medium, back to step 3.
5. Analyse the article to find out what could be the personas in my readers personas that could be interested in. If none, is the article relevant for my blog ? If the article is relevant and no personas, perhaps I’m talking to a new reader persona, in that case I start to create his persona sheet and add it to the others. (but it’s relatively rare 5 years). If it’s not relevant, then, I perhaps need to post it on another blog or another medium. (sometimes something is not done for blogging 😉 )
6. Polish, tag, categorize
7. Post.

For the point 4 and 5 related to personas, the check take about 10 minutes, it’s not a hard task and it’s a good security !

Conclusion

I thing I’ve give you a good overview and starting point to use personas in your daily blogging. Persona’s are at the same time easy to use and really complex as they need a lot of practice. By this I mean, unless you’re a marketing-related person, the way I and many others use personas is like the way my grandma is driving a F1, she’s driving but not at the full potential of the tool and that’s not, and for me never should be, the goal ! We’re blogging for many reason, in mine, for fun and sharing, so it’s just one of the tool I have and I consider it as that, I prefer to spend time on writing than on marketing and this activity is perhaps 10% of the time compared to the writing activity. Keep that in mind 😉

Hope you’ve enjoyed it !

See you next time for the rest of the series and keep it bug free !

Is Apple mimicking Metro UI with the new iPhone 5C and iPhone 5S ?

Apple-LogoToday, Apple show to the world their two new devices, the iPhone 5C and the iPhone 5S. There’s a lot of new technical stuff’s, sometimes interresting (64bits, fingerprint, …) sometimes not… The price cuts are also a good thing and from what I’ve understand they tend to have a kind of 3 segment strategy to cover a larger market with low cost/normal cost/high cost devices. Anyway, I’m pretty sure a lot of bloggers will share the infos, the point here is not on that. If you agree, take a look at the following pictures coming from the conference found on Wired.com article :

tumblr_msx934wSNA1si636ro1_500

tumblr_msx6i2tRfD1si636ro1_500

tumblr_msx72t6zsR1si636ro1_500

For me, Apple is now following Microsoft and NokiaLumia-like devices (property of Microsoft too since they acquire Nokia few days ago). The interface of the iOS6 start to looks like totally cleaned, the colors also remind me the Windows Phone devices… Tim Cook said : “Apple wants to make things easier and better for users. They don’t want to just pack in feature after feature.” I wanted to point that out as the situation is usually the opposite. Are the Apple’s engineers missing creativity since the death of Steve Jobs ?

Last remarks, something that totally surprise me, the Apple stock value of the day. I was expecting increases but… nop… https://www.google.com/finance?cid=22144

See you next time and keep it bug free !

New look for the 5th blog anniversary

eLogo 5 years ! I’m writting articles since 5 years at the end of this month ! Approximatively a fifth of my life. Started on blogger and 6 month later migrating to wordpress after a friend showed me this plateform. For the nonce, the blog have a totally new look I judge easier to read and a new logo (on the left). In 5 years 123 articles written, 24 categories, 363 tags, 314 different commentators, 233 images uploaded, 60 documents uploaded and a lot of fun ! During this half decade, this blog allowed me to gain a lot of experience in knowledge sharing , articles writting  and teaching. So I will certainly in the next few days or week write an article about the lessons learned about blogging during these 5 years of sharing. Also I would start to write about more “career” or “industry” stuff’s, perhaps with another media like the Medium plateform so stay tuned ! I’ve also written some articles about other languages than the classical .Net related like Prolog or Eiffel and how to use them from a .Net application, they’re just waiting for some pairs reviews and formating and will certainly be published during the next weeks 🙂 This experience was a real pleasure with a lot of evolution, fun and passion !

And the most important, thanks to you too, you’re the biggest motivation for me to continue writting and always trying to increase blog and content quality. Thanks !

See you next time and keep it bug free 😉

Windows 8 m’a tuer !

Dans ce post, avec une pensée émue pour les utilisateurs, j’aimerais parler d’un point que je pense important pour Windows 8 et son succès, histoire d’éviter le Vista Effect.

Lorsque j’ai installé le système il y a une semaine, la seule formation que j’ai eue en démarrant Win8 concerne son utilisation tactile et les principales gestures. Et c’est tout ce qu’aura un end-user “non informaticien” et découvrant Metro avec son nouveau PC et Win8 en OEM. On se serait au moins attendu à de l’aide contextuelle désactivable à tout moment et mettant en avant les fonctionnalités disponibles. (+/- dispo., mais insuffisant…) Je ne pense pas que les utilisateurs irons passer une aprem’ à lire la philo Metro et faire des labos Win8 pour comprendre comment fermer une application ! Cette simple action, ainsi que le retour au start menu ont demandé à certaines de mes connaissances jusqu’à 20 minutes pour trouver “intuitivement” ! Pour fermer une application on doit prendre le dessus de la fenêtre en full screen et la tirer en bas dans une zone de “fermeture” de sensibilité configurable. Hé oui, plus de petite croix 😉 Et c’est ainsi que seront “largués” la plupart des nouveaux user win8 qui l’obtiendrons via OEM.

Le titre de “Windows 8 m’a tuer” concerne surtout mon poignet droit. Les gestures tactiles à reproduire à la souris sur un dual screen “unifié” 2*24″, même avec une souris très sensible, et on se tue à la tâche. A se demander si l’OS est toujours pensé pour la souris ?

On reconnait tous devant Windows 8 un changement radicale dans l’interaction avec Windows qui rompt avec certaines traditions vielles de 20ans sur les systèmes Windows. Mais est-ce que les utilisateurs s’adapteront à ces changements sans un accompagnement solide ?

Visual Studio Code Snippet : Dependency Property et NotifyPropertyChange

UPDATE 1 : Pour des raisons que je ne détaillerai pas ici, certaines snippets ne référençait pas “http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet” comme xmlns. Le code et le zip est màj avec le “bon” xmlns.

Voici une série de code snippet que je me propose de partager avec vous. Elles sont souvent simples et certaines peuvent sembler un peu outdated, mais comme souvent, le developpement de snippet passe après la documentation et le nettoyage du clavier (vive les sandwich “croustillants” 😉 ). J’ai dev ces snippets au passage à VS2010 et leur migration vers VS2012 s’est déroulée avec succès, j’espère qu’elles vous seront toutes aussi utiles qu’à moi 🙂 La première c’est une snippet de Dprop pour WPF, une configProperty et les 3 autres sont des 3 styles de NotifPropChange dépendant de la version et du contexte d’utilisation. Je reviendrai certainement dans les jours qui suivent avec d’autres.

Dependency Property

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>dprop</Title>
      <Shortcut>dprop</Shortcut>
      <Description>Code snippet for dependecy property</Description>
      <Author>Emmanuel Istace</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>name</ID>
          <ToolTip>Property name</ToolTip>
          <Default>Property</Default>
        </Literal>
        <Literal>
          <ID>type</ID>
          <ToolTip>Property Type</ToolTip>
          <Default>object</Default>
        </Literal>
        <Literal Editable="false">
          <ID>classname</ID>
          <ToolTip>Class name</ToolTip>
          <Function>ClassName()</Function>
          <Default>ClassNamePlaceholder</Default>
        </Literal>
      </Declarations>
      <Code Language="csharp">
        <![CDATA[
        
        public static readonly DependencyProperty $name$Property = DependencyProperty.Register("$name$", typeof($type$), typeof($classname$));

        public $type$ $name$
        {
            get { return ($type$)GetValue($name$Property); }
            set { SetValue($name$Property, value); }
        }

        $end$
]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

Configuration Property

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>configprop</Title>
      <Shortcut>configprop</Shortcut>
      <Description>Add a configuration property</Description>
      <Author>Emmanuel Istace</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
          <Literal>
            <ID>Name</ID>
            <ToolTip>Property Name</ToolTip>
            <Default>MyProperty</Default>
          </Literal>    
          <Literal>
            <ID>type</ID>
            <ToolTip>Property Type</ToolTip>
            <Default>string</Default>
          </Literal>
      </Declarations>
      <Code Language="csharp">
        <![CDATA[
        [ConfigurationProperty("$Name$", IsRequired = true)]
        public $type$ $Name$
        {
          get { return ($type$)this["$Name$"]; }
          set { this["$Name$"] = value; }
        }
        $end$
]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

INotifyPropertyChanged simple implementation

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>nchangeimpl</Title>
      <Shortcut>nchangeimpl</Shortcut>
      <Description>Code snippet for INotifyPropertyChanged Simple implementation</Description>
      <Author>Emmanuel Istace</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Code Language="csharp">
        <![CDATA[
        #region INotifyPropertyChanged Implementation
        public event PropertyChangedEventHandler PropertyChanged;
        protected void NotifyPropertyChanged(string sProp)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(sProp));
            }
        }
        #endregion]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

Property Changed Event raising

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>nprop</Title>
			<Shortcut>nprop</Shortcut>
			<Description>Code snippet for property with property change event raised</Description>
			<Author>Istace Emmanuel</Author>
			<SnippetTypes>
        <SnippetType>Expansion</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>type</ID>
					<ToolTip>Type exposed by the dependency property</ToolTip>
					<Default>object</Default>
				</Literal>
				<Literal>
					<ID>name</ID>
					<ToolTip>Name of the dependency property</ToolTip>
					<Default>dprop</Default>
				</Literal>
			</Declarations>
			<Code Language="csharp">
				<![CDATA[
				
				#region $name$ property
				private $type$ _$name$ { get; set; }
				public $type$ $name$
				{
					get { return _$name$; }
					set
					{
					 if(value != _$name$)
					 {
					  _$name$ = value;
					  NotifyPropertyChanged("$name$");
					 }
					}
				}
				#endregion
				$end$
				
				]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

MVVM Property Changed event raising

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>mvvmlightprop</Title>
			<Shortcut>mvvmlightprop</Shortcut>
			<Description>Code snippet for MVVM view model property with property change event raised</Description>
			<Author>Istace Emmanuel</Author>
			<SnippetTypes>
        <SnippetType>Expansion</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>type</ID>
					<ToolTip>Type exposed by the dependency property</ToolTip>
					<Default>object</Default>
				</Literal>
				<Literal>
					<ID>name</ID>
					<ToolTip>Name of the dependency property</ToolTip>
					<Default>dprop</Default>
				</Literal>
			</Declarations>
			<Code Language="csharp">
				<![CDATA[
				
				#region $name$ property
				private $type$ _$name$ { get; set; }
				public $type$ $name$
				{
				  get { return _$name$; }
				  set
				  {
					  if(value != _$name$)
					  {
						  $type$ oldValue = _$name$;
						  _$name$ = value;
						  RaisePropertyChanged<$type$>("$name$", oldValue, value, false);
					  }
				  }
				}
				#endregion
				$end$
				]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

Télécharger l'archive contenant les snippets. (SkyDrive)Télécharger l’archive contenant les snippets. (SkyDrive)

Quel avenir pour les devs .NET Windows Application ?

Je termine actuellement de préparer ma MCPD Windows Developer sous VS2010. Cette certification touche les problématiques rencontrées dans le développement d’applications d’entreprises et est composé de 4 certifications : (source)

Windows Developer 4 on Visual Studio 2010 Exam number
– Windows Applications Development with .NET 4
– Windows Communication Foundation Development with .NET 4
– Accessing Data with .NET 4
Designing and Developing Windows Applications Using .NET 4

Mais si on se réfère aux astérisques présentes sur le titre, la 511 et la 518, elles ne seront plus disponibles à partir du 31 Juillet 2013. Le problème ? Le changement n’est pas récent et Microsoft ne semble pas envisager de remplaçant pour cette MCPD. En effet, les certifications 2012 se divisent en deux branches et sont maintenant appelées MCSD (Microsoft Certified Solution Developer) : Windows Store Apps (MCSD-WS) et Web Applications (MCSD-WA). La WS peut se faire en C# ou en HTML5. Elles se composent toutes de 3 exams et les migrations depuis MCPD sont possibles via deux exams.

Le soucis, c’est que une fois que l’on creuse la MCSD-WS-C# qui devrait correspondre a la MCPD-Windows Developer on subit une jolie redéfinition de fonction !  Si on se réfère aux skills mesurés, à peut près 160/300 de la MCSD concernent le Windows Store contre 70/300 pour l’accès aux données et dans WPF on est quasi sur du Metro Only !

Cette stratégie me fait me demander si Microsoft n’aurait pas au final l’intention de passer le développement d’applications métier sur Metro ?! Nous connaissons tous des exemples d’applications très difficilement migrables sur cette ergonomie, souvent du aux types ou la quantité de données à afficher, sans compter les couts de migration des IHM, formation/acceptation usr… De plus, ce type de développement n’a pas besoin du Windows Store, hors les 3 certifications se consacrent presque pour moitié à lui. (source)

Bref, ce n’est pas une MCPD VS2010, on ne rentre pas autant dans WPF/WCF/AD et beaucoup d’énergie dépensée sur le Windows store…
Alors Microsoft, on oublie les dev’s de l’ombre ?

#> ~EmmanuelIstace@home >> BRB.

EDIT 05/11 : 70 000 visites, cool ^^

Salut à tous, après quelques mois d’absence me revoici. Beaucoup d’articles qui n’attendent que d’être publiés ont été écrit pendant ces quasi 9 mois. C’est souvent la mise en page des articles et mon gout prononcé pour l’éditeur WYSIWYDontG de WordPress qui m’ont permis d’explorer calmement l’univers chaleureux de la procrastination… Mais depuis il y à eu Windows 8, des betas aux releases officielles, de grandes messes Microsoft qui précisent encore plus la vision cloud, une nouvelle version du Framework, un EDI tout Metro et une nouvelle manière de penser les applications clientes. Bref, y’à sujet à blogger !

J’ai donc commencé par répondre à toutes les questions posées durant ces 9mois et si j’en ai oublié n’hésitez pas à me contacter, l’erreur est humaine 😉

Bref, les quelques soucis de santé passé, enfin retour au boulot et reprise de mon blog par la même occasion 🙂

En attendant, vous pouvez me suivre sur twitter : @IstaceEmmanuel 

Bref, à tout de suite !