VB.Net : fonction de content spinning

Comme on me l’a demandé expressément, voici le snippet VB.Net (adaptable facilement à n’importe quel langage) permettant de spinner un texte construit pour cela. C’est cet algorithme simple de content spinning, basé sur la récursivité et sur l’utilisation des expressions régulières, que j’utilise dans effiSpin pour générer les variantes de mes contenus spinnés.

'Objet Random global
'On doit le "sortir" de la fonction pour générer à chaque appel un nombre aléatoire
'Sinon chaque spin généré sera... identique !
Private _Rand As New Random()

''' <summary>
''' Génération d'un spin aléatoire à partir d'un masterspin
''' </summary>
''' <param name="sSource">Texte source du masterspin à spinner (optionnel)</param>
''' <returns>Version spinnée aléatoirement du texte source</returns>
''' <remarks></remarks>
Public Function Spin(ByVal sSource As String = "") As String

	'Si le texte ne contient pas d'accolades, on le retourne sans autre traitement
    If Not sSource.Contains("{") Then
        Return sSource
        Exit Function
    End If

	'Recherche de tous les groupes de mots entre accolades ne contenant pas d'accolades
    Dim oReg As New Regex("{([^{}]*)}")

	'Pour chaque groupe correspondant à notre recherche...
    For Each oMatch As Match In oReg.Matches(sSource)
		'On découpe le contenu en tableau de chaînes (le séparateur est un pipe)
        Dim sMots() As String = oMatch.Groups(1).Value.Split("|"(0))
		'On remplace le groupe par l'un des mots pris au hasard
        Dim iPos As Integer = sSource.IndexOf(oM.Groups(0).Value)
        sSource = sSource.Substring(0, iPos) & sMots(_Rand.Next(0, sMots.Length)) & sSource.Substring(iPos + oM.Groups(0).Value.Length)
    Next

    Return Spin(sSource) 'Récursivité sur le reste non spinné

End Function

Il faut impérativement « sortir » le générateur de nombres aléatoires de la fonction récursive, au risque d’obtenir à chaque appel des spins identiques (j’ai été confronté à cet étrange problème !) ; en matière de performances, l’utilisation des expressions régulières procure un gain appréciable par rapport aux simples manipulations de chaînes de caractères.

On peut avec cette fonction, traiter de gros textes (+5000 mots) sans problème particuliers, et ainsi bâtir ses propres outils de content spinning.

Prestashop : optimisation des performances et .htaccess

Si la dernière mouture de Prestashop (versions 1.4.x) affiche désormais des performances de haut niveau en matière d’optimisation, il n’en est pas le cas des anciennes moutures et plus particulièrement jusqu’aux versions 1.3.x

Il est pourtant possible de réaliser un véritable « boost » de sa boutique en ligne, moyennant quelques aménagements dans le .htaccess, à la racine de sa boutique : une action d’autant plus importante que la rapidité d’un site fait parti des critères pris en considération pour son bon référencement. Petit état des lieux de cette optimisation simple mais efficace… Lire la suite…

VB.Net : copier un répertoire

Chose incroyable dans le .Net Framework 4.0 (et inférieurs), il n’existe aucune fonction native pour copier un répertoire en VB.Net ! On peut déplacer des répertoires, en créer (avec arborescence complète !) ou en supprimer et renommer, mais pas en copier avec leur contenu.

Voici un bout de code ± optimisé palliant à ce manque surprenant :

	Imports System.IO
	Imports System.Threading.Tasks

    ''' <summary>
    ''' Copie un répertoire (et tout son contenu) vers un nouvel emplacement
    ''' </summary>
    ''' <param name="sSourcePath">Chemin du répertoire source à copier</param>
    ''' <param name="sDestinationPath">Chemin du répertoire de destination</param>
    ''' <returns>VRAI si la copie se déroule bien, FAUX sinon</returns>
    ''' <remarks></remarks>
    Public Function CopyDir(ByVal sSourcePath As String, ByVal sDestinationPath As String) As Boolean

        'Appelle la version utilisant les objets DirectoryInfo
        Return CopyDir(New DirectoryInfo(sSourcePath), New DirectoryInfo(sDestinationPath))

    End Function

    ''' <summary>
    ''' Copie un répertoire (et tout son contenu) vers un nouvel emplacement
    ''' </summary>
    ''' <param name="oSource">Objet DirectoryInfo représentant le répertoire source à copier</param>
    ''' <param name="oDestination">Objet DirectoryInfo représentant le répertoire de destination</param>
    ''' <returns>VRAI si la copie se déroule bien, FAUX sinon</returns>
    ''' <remarks></remarks>
    Private Function CopyDir(ByVal oSource As DirectoryInfo, ByVal oDestination As DirectoryInfo) As Boolean

        Dim bResult As Boolean = True   'Retour de la copie (VRAI = succès)

        Try
            oDestination.Create()       'Création du répertoire de destination (le cas échéant)

            'Copie de tous ses fichiers (utilise le parallélisme pour de meilleures performances)
            Parallel.ForEach(oSource.GetFiles(), Sub(oFichier As FileInfo)
                                                     oFichier.CopyTo(Path.Combine(oDestination.FullName, oFichier.Name))
                                                 End Sub)

            'Copie (par récursivité) de tous ses sous-répertoires
            For Each oSousRepertoire As DirectoryInfo In oSource.GetDirectories()
                CopyDir(oSousRepertoire, oDestination.CreateSubdirectory(oSousRepertoire.Name))
            Next
        Catch ex As Exception
            'Si une erreur se produit, on indique l'erreur - à adapter selon vos besoins, notamment pour tracer les sources d'erreur !
            bResult = False
        End Try

        Return bResult

    End Function

En espérant que cela puisse servir à quelques uns d’entre vous.

(Ré)ouverture du site effi10

Renaître de ses cendres sous une autre forme… C’est un peu ce qui s’est passé avec ce site devenu blog, au terme de 3 années d’entreprenariat riches en rencontres et en expériences, mais qui m’auront mené à reprendre une vie plus « normale » autant pour ma famille que pour ma santé !

Bienvenue donc sur le « nouveau » site effi10, dédié aux CMS qui ont animé mes nuits durant ces dernières années : Prestashop et WordPress ! En espérant que le contenu proposé sur ce site vous apporte autant que moi j’ai appris auprès des nombreux sites que j’ai consulté ces dernières années pour avancer dans mes travaux de webmaster, référenceur et technicien du web !

Cédric Girard

Logiciel de spinning gratuit : effiSpin

Le logiciel effiSpin est un logiciel de content spinning français, en français et gratuit permettant de gérer facilement vos projets de spinning, avec contrôle de similarité intégré paramétrable, possibilité de créer des spins paramétrés (liés à une mini base de données sous forme de tableau) et avec aide à la saisie.

Fonctionnalités

  • Gestion de projets multi-fenêtrage avec sauvegarde/restauration
  • Aide à la saisie avec coloration syntaxique et contrôle de validité du spin
  • Dictionnaire des synonymes intégré NOUVEAU 
  • Génération unitaire ou par lot
  • Gestion de l’historique de toutes les variantes générées du spin avec calcul des longueurs mini/maxi en mots et caractères
  • Export sélectif (limitation min/max du nombre de caractères ou de mots) vers presse-papier, fichier ou ensemble de fichiers (1 fichier par spin)
  • Contrôle de similarité réglable avec filtrage optionnel des stopwords (paramétrables)
  • Possibilité de générer des spins paramétrés (un spin par ligne de variables)
    Lire la suite…

La fin d’une aventure…

J’ai le regret de vous annoncer la cessation définitive d’activité de la SARL effi10 en date du 31/08/2010.

Ce choix fait suite à quelques déconvenues avec des « clients » peu scrupuleux d’une part (une très petite minorité qui se reconnaîtra), mais surtout d’un choix personnel réfléchi, ayant préféré privilégier ma vie familiale et mes diverses passions aux semaines de 80 heures…

Cependant, ce site renaîtra de ses cendres pour proposer un contenu gratuit, unique et destiné aux webmasters usagers des outils Prestashop et WordPress avec la collaboration d’un ami et partenaire depuis près de deux ans dans mes activités web, et je ne lâcherai pas pour autant cette activité web puisque mes clients actuels continuent de bénéficier de mes services sous une autre entité naissante, ce afin d’assurer une continuité de service !

Certification CESEO !

Qu’est-ce que la certification CESEO ? Un examen pratique et théorique de haut niveau, permettant de confirmer / valider les acquis et connaissances en matière de référencement pour les stagiaires…

J’ai le plaisir de vous annoncer que j’ai donc réussi l’examen 🙂 et que par ce fait, je peux fièrement arborer le logo « CESEO » ici même !

Notre slide du barcamp Prestashop 2009

Comme prévu, nous vous proposons le slide de présentation de notre intervention concernant le référencement des boutiques Prestashop, au barcamp 2009 organisé par la société éponyme, qui s’est tenu le 25 juin 2009 à Paris devant un public nombreux de passionnés.

Une belle journée où le partage et l’engouement pour la solution Prestashop ont indéniablement fait un bon en avant, avec quelques annonces qui devraient conforter la solution dans sa position d’acteur majeur du e-commerce open source 😉

Au programme dans la présentation :

  • un rapide tour d’horizon sur ce qu’est le référencement naturel
  • les actions à mener (grandes lignes) dans la mise en œuvre du référencement sur une boutique en ligne
  • une approche technique des problématiques de contenu dupliqué dans le CMS Prestashop et leur résolution

Le temps imparti pour la présentation était quelque peu réduit, l’exposé fut plutôt condensé… En espérant que pour une prochaine fois nous disposions d’un créneau horaire un peu plus large !

BARCAMP Prestashop le 23 juin 2009

J’ai le plaisir de vous annoncer ma présence au Barcamp Prestashop™ qui se tiendra le 23 juin 2009 à PARIS, dans le 5ème arrondissement.

Une intervention sur le thème du référencement des boutiques Prestashop, où seront abordées les principales problématiques du positionnement des sites e-commerce et plus particulièrement les spécificités techniques du CMS Prestashop et leurs solutions.

BarCamp Prestashop 2009

L’occasion de rencontrer les utilisateurs et développeurs de ce CMS français 🙂

Prestashop : des catégories en menu horizontal

La plate-forme e-commerce Prestashop™ prend un essor considérable en ce début 2009, mais reste une solution encore pauvre en matière de templates (thèmes) de qualité professionnelle face à une concurrence très forte au niveau communautaire (Magento en tête !)

Bien que peu enclin (faute de temps !) à proposer des templates à la communauté, je n’en demeure pas moins obligé de développer et mettre en place des thèmes graphiques inédits pour les clients de la société. Et c’est le cas de ma dernière création : Master Matériel (spécialiste en matériel de cuisine professionnelle) Lire la suite…

1 2 3 4  Haut de page