|\| | |-| € [)

Category: OpenSource

Run Solr using docker on fedora

Docker is a tool that can help you to build, ship and run distributed applications. The step by step will help you to discover docker.

Installation :

  1. yum install docker-io

Run service :

  1. service docker start

Check service running :

  1. service docker status

Search solr :

  1. docker search solr

Find the one that you want in the result. THe description can help you to choose the best for your need.

Pull selected container :

  1. docker pull manisnesan/solr-4.8.0

Run your container :

  1. docker run -d -p 8983:8983 manisnesan/solr-4.8.0

-d to run the container in the background
-p to map between container port and host port, hostPort:containerPort

Test your container :
check this url http://127.0.0.1:8983/solr/

Know running container :

  1. docker ps

Get more information about a specific container :

  1. docker top 95066d27cd33

95066d27cd33 is our docker id found using the command “docker ps”

Get log for a specific container :

  1. docker logs 95066d27cd33

95066d27cd33 is our docker id found using the command “docker ps”

Spring Data – MongoDB Sample

MongoDB est un SGBDOD (système de gestion de base de données orientée documents). C’est une solution NoSQL utilisé par plusieurs sociétés telque MTV, NY-Times ou SourceForge.

L’exemple que je vais présenter est une application Maven utilisant le framework Spring Data MongoDB afin de communiquer avec le SGBDOD et de faire les requêtes de bases à savoir l’insertion, la suppression, et la recherche.

La première étape est d’ajouter les dépendances maven :

  1. <repositories>
  2.         <repository>
  3.             <id>spring-milestone</id>
  4.             <name>Spring Maven MILESTONE Repository</name>
  5.             <url>http://maven.springframework.org/milestone</url>
  6.         </repository>
  7.     </repositories>
  8.     <dependencies>
  9.         <dependency>
  10.             <groupId>junit</groupId>
  11.             <artifactId>junit</artifactId>
  12.             <version>4.8.2</version>
  13.             <scope>test</scope>
  14.         </dependency>
  15.         <dependency>
  16.             <groupId>org.springframework</groupId>
  17.             <artifactId>spring-core</artifactId>
  18.             <version>3.1.1.RELEASE</version>
  19.         </dependency>
  20.         <dependency>
  21.             <groupId>org.springframework</groupId>
  22.             <artifactId>spring-context</artifactId>
  23.             <version>3.1.1.RELEASE</version>
  24.         </dependency>
  25.         <dependency>
  26.             <groupId>org.mongodb</groupId>
  27.             <artifactId>mongo-java-driver</artifactId>
  28.             <version>2.7.3</version>
  29.         </dependency>
  30.         <dependency>
  31.             <groupId>org.springframework.data</groupId>
  32.             <artifactId>spring-data-mongodb</artifactId>
  33.             <version>1.0.1.RELEASE</version>
  34.         </dependency>
  35.         <dependency>
  36.             <groupId>cglib</groupId>
  37.             <artifactId>cglib</artifactId>
  38.             <version>2.2.2</version>
  39.         </dependency>
  40.     </dependencies>

Pour commencer, nous allons créer une classe qui représente l’objet qu’on devra stocker. Dans notre cas d’étude, ce sera la classe Personne avec les attributs id, nom et prenom.

  1. package com.nihed.mongodbdemo;
  2.  
  3. public class Personne {
  4.    
  5.     private int id;
  6.     private String nom;
  7.     private String prenom;
  8.  
  9.  
  10.     public Personne(int id, String nom, String prenom) {
  11.         this.id = id;
  12.         this.nom = nom;
  13.         this.prenom = prenom;
  14.     }
  15.     //Getter and Setter
  16.    
  17.    
  18. }

Par la suite, nous allons configurer la connexion à notre base de donnée MongoDB, nous supposons que c’est une instance de base en local sur le port de base à savoir 27017.

  1. package com.nihed.mongodbdemo;
  2.  
  3. import org.springframework.context.annotation.Configuration;
  4. import com.mongodb.Mongo;
  5. import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
  6.  
  7.  
  8. @Configuration
  9. public class SpringMongoConfig extends AbstractMongoConfiguration {
  10.  
  11.     @Override
  12.     public String getDatabaseName() {
  13.         return "LocalDatabase";
  14.     }
  15.  
  16.     @Override
  17.     public Mongo mongo() throws Exception {
  18.         return new Mongo("localhost");
  19.     }
  20.    
  21. }

Enfin, voila le main avec nos exemples d’insertion suppression et recherche.

  1. package com.nihed.mongodbdemo;
  2.  
  3. import java.util.List;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.annotation.AnnotationConfigApplicationContext;
  6. import org.springframework.data.mongodb.core.MongoOperations;
  7. import org.springframework.data.mongodb.core.query.Criteria;
  8. import org.springframework.data.mongodb.core.query.Query;
  9.  
  10. /**
  11.  * Spring Data MongoDB Sample
  12.  *
  13.  */
  14. public class App {
  15.  
  16.     public static void main(String[] args) {
  17.         ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
  18.  
  19.         MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
  20.  
  21.         //Insert
  22.         {
  23.             Personne personne1 = new Personne(1, "nom1", "prenom1");
  24.             Personne personne2 = new Personne(2, "nom2", "prenom2");
  25.             mongoOperation.save(personne1);
  26.             mongoOperation.save(personne2);
  27.         }
  28.         //Select *
  29.         {
  30.             System.out.println("* select * :");
  31.             List<Personne> personnes = mongoOperation.findAll(Personne.class);
  32.             for (Personne personne : personnes) {
  33.                 System.out.println(personne.getId() + " " + personne.getNom() + " " + personne.getPrenom());
  34.             }
  35.         }
  36.  
  37.         //select where nom like %1
  38.         {
  39.             System.out.println("* select where nom=nom1 :");
  40.             List<Personne> personnes = mongoOperation.find(new Query(Criteria.where("nom").regex(".*1")), Personne.class);
  41.             for (Personne personne : personnes) {
  42.                 System.out.println(personne.getId() + " " + personne.getNom() + " " + personne.getPrenom());
  43.             }
  44.         }
  45.  
  46.         //delete where nom like %1
  47.         {
  48.             System.out.println("* delete where nom=nom1");
  49.             mongoOperation.remove(new Query(Criteria.where("nom").regex(".*1")), Personne.class);
  50.         }
  51.  
  52.         //Select *
  53.         {
  54.             System.out.println("* select * :");
  55.             List<Personne> personnes = mongoOperation.findAll(Personne.class);
  56.             for (Personne personne : personnes) {
  57.                 System.out.println(personne.getId() + " " + personne.getNom() + " " + personne.getPrenom());
  58.             }
  59.         }
  60.  
  61.     }
  62. }

How to retrieve Twitter account followers

Follow nihed on Twitter

With Ruby, Imagination is your limit. Our example is a way to retrieve a list of followers for an account.
For this sample, I’m using the twitter Gem.

  1. $ sudo gem install twitter

Now, we can explore our code.
First we must call our libraries (Gem).

  1. require "rubygems"
  2. require "twitter"

Next, we should configure an OAuth connexion.

  1. Twitter.configure do |config|
  2.   config.consumer_key = "AAAA"
  3.   config.consumer_secret = "BBBB"
  4.   config.oauth_token = "CCCC"
  5.   config.oauth_token_secret = "DDDD"
  6. end

(AAAA,BBBB,CCCC and DDDD) values can be retrieved on http://dev.twitter.com/apps/new when you create a new application.
After, We must initialize some variables

  1. myfile = File.new("write.txt", "w")
  2. client = Twitter::Client.new
  3. count=0
  4. cursor1=-1
  • myfile: file that be used to create a cvs file
  • client: our connexion with twitter service
  • count: number of count retrieved
  • cursor1: twitter send 100 per 100 account, this variable is used to follow this list

Finally, We can launch our code

  1. while (cursor1 != 0) do
  2. result =client.followers("Account","cursor"=>"#{cursor1}")
  3. cursor1=result.next_cursor
  4. users=result.users
  5. puts count
  6.  users.each do |follower|
  7.    count+=1
  8.     myfile.puts "\"#{count}\",\"#{follower.name}\",\"#{follower.screen_name}\",\"#{follower.url}\",\"#{follower.followers_count}\",\"#{follower.location}\",\"#{follower.created_at}\",\"#{follower.description}\",\"#{follower.friends_count}\",\"#{follower.lang}\",\"#{follower.time_zone}\",\"#{follower.verified}\""
  9.  end
  10.  sleep(5)
  11. end

While, our cursor is not equal 0, we retrieve accounts information using the request followers parameters the name of the account and the position of the cursor. We update our variables and we store the result in the our CVS file.

Sauvegarde et restauration de Postgresql

Postgresql est un SGBD opensource offrant plusieurs avantages dont la robustesse et le respect des normes SQL (ANSI SQL 89, SQL 92 (SQL 2), SQL 99 (SQL 3) et SQL:2003 ).
Je l’utilise quotidiennement pour le traitement de plusieurs giga de données.
Je vais vous présenter un moyen efficace pour faire la sauvegarde de vos bases de données.

  • Pour commencer, il faut connaître les bases que vous avez, pour cela sous l’utilisateur postgres, il faut lancer la commande suivante :
    1. $su – postgres
    2. $psql -l

  • Par la suite, lancer la commande pg_dump avec la base que vous voulez (dans notre exemple la base client )
    1. $pg_dump client > client.dump.out

  • Pour la restauration, la commande psql à travers cette requête
    1. $ psql -d client -f client.dump.out

  • Une base de donnée est volumineuse donc l’utilisation d’une méthode de compression est la bienvenu. Le backup sera fait alors avec l’ajout de gzip pour avoir la requête suivante
    1. $ pg_dump client | gzip -c > client.dump.out.gz

  • et pour la restauration
    1. $ pg_dump client | gzip -c >$ gunzip client.dump.out.gz
    2. $ psql -d client -f client.dump.out

  • Enfin, pour le backup de toutes les bases, il faut utiliser la commande pg_dumpall
    1. $ pg_dumpall > all.dbs.out

  • Pour la restauration
    1. $ psql -f all.dbs.out postgres

Voila, je pense que maintenant, vous avez les outils nécessaire pour sauvegarder vos informations.
PS: Pour ma part, j’utilise postgresql sur deux serveurs qui tourne sous fedora et centos. Je vous invite à faire un tour au niveau fedora fr docs ou il y a une page consacré à l’installation et configuration de postgresql sous fedora.

Modification de la luminosité avec Gimp

J’ai écrit ce post pour plusieurs raisons :

  • Participation au club photo et je trouve qu’on parle trop de photoshop alors qu’il y a le bon Gimp open source utilisé dans de nombreux films dont Scooby-Doo, Harry Potter and the Philosopher’s Stone, The Last Samurai et Stuart Little
  • Je trouve que je suis sombre dans la photo que j’ai mis dans mon post pour 2009 link
  • Et la volonté de connaitre un peut plus le monde des graphistes.

Comment va t’on faire ???

  1. On va commencer par ouvrir la photo avec GIMP, pour ma part, j’ai la version 2.6.8 anglaise livré avec fedora 12
  2. On remarque un Toolbox comme celle qu’on trouve dans n’importe quel outil de graphisme. Si le Toolbox ne s’affiche pas, on peut le forcer à travers le menu window > toolbox ou avec le raccourci CTRL+B
  3. On remarque parmi nos outils une baguette magique, elle représente un moyen de sélection intelligent offert par gimp, on click dessus et on modifie la valeur du Threshold qui représente notre intervalle tolérance. Pour ma part, j’ai trouvé que 90 est la meilleur valeur.
  4. Je click sur mes cheveux ( je parle bien sur au niveau de la photo) et hop je remarque la sélection de Nihed avec un tout petit peut du décor mais bon 😛 .
  5. Maintenant, nous allons faire un petit tour du coté des outils (Tools), on remarque qu’ils sont organisé par catégories, et pour notre part c’est les couleurs qui nous intéressent(Color Tools). Nous cherchons l’outil le plus adéquat et c’est (Levels)
  6. Ben maintenant, je pense que cette une question de gout donc je vous invite à modifier les valeurs que vous avez jusqu’à avoir le résultat que vous attendez

Pour conclure, en deux minutes, j’ai réussi à faire ce que je voulais à travers un outil opensource et disponible pour toutes les platformes (Linux, Windows, Mac ou autres). Mais aussi, après quelques recherches, j’ai trouvé que le site de gimp offre un lien avec des tutorials pour apprendre Gimp mais aussi pour programmer vos plugins afin d’assurer le résultat que vous recherché.

Drupal 7 alpha 1

drupal 7

La première version alpha de Drupal 7 est disponible, il reste encore des bugs à corriger (493 aux dernières nouvelles). Mais sinon, je trouve que le projet nous offre un très beau produit, avec des animations ajax à droite et à gauche. Le thème d’administration a vu une refonte total. On parle de possibilité de mise à jour automatique comme sur wordpress. une facilité pour l’insertion d’images au niveau des articles. et plein d’autres nouveautés.
Je voudrai signaler que pour les utilisateurs de fedora si vous avez un problème avec php dom il faut installer le package php-xml
sinon un tutoriel est déjà disponible au niveau de ce lien :
http://blog.admin-linux.org/cms-blog/howto-install-drupal-7

Copyright © 2017 |\| | |-| € [)

Theme by Anders NorenUp ↑