Posts by morgan

Activer le partage de fichiers entre windows et les containers dockers

Si vous aussi, lorsque vous voulez activé le partage de fichier, vous avez ce message : A firewall is blocking file Sharing between Windows and the containers Pour résoudre le problème j’ai du faire deux choses : 1 : Ajouter le réseau docker aux réseaux privée Dans powershell : Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private 2 : désactivé / réactivé le partage des imprimantes Allé dans le panneau de configuration -> réseau et internet -> centre de réseau et partage cliquer sur le réseau docker : vEthernet (docketNat) puis sur propriété et enfin décochez puis recoché :  le partage de fichier et imprimante sur le réseaux microsoft   Maintenant vous devriez être capable de faire du montage de fichier entre windows et les containers docker...

Read More

Import Oracle database dump

Hello, Today we will see how to import oracle dumped database. Create a tablespace with 2Go memory Shell CREATE TABLESPACE <tablespace name> DATAFILE 'cecm.dbf' SIZE 2048M ONLINE; 1 CREATE TABLESPACE <tablespace name> DATAFILE 'cecm.dbf' SIZE 2048M     ONLINE; 2. Create <user> Shell CREATE USER <username> IDENTIFIED BY <password>; 1 CREATE USER <username> IDENTIFIED BY <password>; 3. give him dba access : Shell GRANT dba TO <username> WITH ADMIN OPTION; 1 GRANT dba TO <username> WITH ADMIN OPTION; 4. copy dump into the dump directory : Shell mv oracle_dump.DMP /u01/app/oracle/admin/XE/dpdump/ 1 mv oracle_dump.DMP /u01/app/oracle/admin/XE/dpdump/ 5. Finally, launch the dump : Shell impdp <username>/<password> dumpfile=oracle_dump.DMP logfile=out.log full=y; 1 impdp <username>/<password> dumpfile=oracle_dump.DMP logfile=out.log full=y;      ...

Read More

Docker add file from windows host into container

On my windows machin, I can’t share volume with docker container because of my firewall.   So, what I’ve done is creating my container :   Shell docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g 1 docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g   Once it’s started, I get the container ID : Shell C:\Users\mdurand> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c47345008fda wnameless/oracle-xe-11g "/bin/sh -c '/usr/..." 2 seconds ago Up 1 second 8080/tcp, 1234 C:\Users\mdurand> docker psCONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                  NAMESc47345008fda        wnameless/oracle-xe-11g   "/bin/sh -c '/usr/..."   2 seconds ago       Up 1 second         8080/tcp,   Then, just copy the file by using : docker cp <file> <containerID>:<containerPATH> Shell docker cp D:/morgan/documents/blabla c47345008fda:/data 1 docker cp D:/morgan/documents/blabla c47345008fda:/data...

Read More

Ansible – Controle Machine sur Windows avec cygwin

La Controle Machine ansible ne fonctionne que sur linux et n’est pas (et ne seras pas) prévu pour fonctionné sous windows. Pourtant ça ne l’empêche de pouvoir administrer des instances windows grâce à winRM (Windows Remote Desktop). L’astuce pour faire de windows une controle machine consiste à utilisé cygwin : Tout d’abord il faut installé  cygwin , Lors de sont installation, faite bien attention de choisir la vue « full » et installé les deux paquets suivant : lynx wget Une fois l’installation terminé, ouvrez votre terminal cygwin, et tapé les commandes suivantes : Installation du paquet manager : lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin 2. Installation des dépendances nécessaires (L’installation de gcc & libffi-devel sont primordial pour compilé les modules python) Shell apt-cyg install python2 python2-setuptools gcc-core python-devel libffi-devel openssl openssh openssl-devel 1 apt-cyg install python2 python2-setuptools gcc-core python-devel libffi-devel openssl openssh openssl-devel 3. Installation de pip Shell easy_install-2.7 pip 1 easy_install-2.7 pip 4. Installation de ansible via pip Shell pip install ansible 1 pip install ansible 5. Et enfin, le module python pour communiquer avec windows : Shell pip install pywinrm 1 pip install pywinrm     Avec ça, vous avez une controle machine sur windows, complètement...

Read More

Oracle – Supprimer une contrainte et ces index

Bonjour à tous,   récemment au travail j’ai rencontré des problèmes dû au fait qu’en supprimant une contrainte sur une table oracle, les index n’était pas correctement supprimé.   Voici un exemple de requete qui supprime une constrainte et ces index :   Oracle PL/SQL alter table ACT_RE_PROCDEF drop constraint ACT_UNIQ_PROCDEF; DECLARE COUNT_INDEXES INTEGER; BEGIN SELECT COUNT(*) INTO COUNT_INDEXES FROM USER_INDEXES WHERE INDEX_NAME = 'ACT_UNIQ_PROCDEF'; IF COUNT_INDEXES > 0 THEN EXECUTE IMMEDIATE 'DROP INDEX ACT_UNIQ_PROCDEF'; END IF; END; alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); 1234567891011121314151617 alter table ACT_RE_PROCDEF drop constraint ACT_UNIQ_PROCDEF; DECLARE  COUNT_INDEXES INTEGER;BEGIN  SELECT COUNT(*) INTO COUNT_INDEXES    FROM USER_INDEXES    WHERE INDEX_NAME = 'ACT_UNIQ_PROCDEF';   IF COUNT_INDEXES > 0 THEN    EXECUTE IMMEDIATE 'DROP INDEX ACT_UNIQ_PROCDEF';  END IF;END; alter table ACT_RE_PROCDEF    add constraint ACT_UNIQ_PROCDEF    unique (KEY_,VERSION_, TENANT_ID_);  ...

Read More

Maven ne fonctionne plus à cause de ssl

Salut à tous,   Aujourd’hui, j’ai voulu joué avec spring, et créer une petite application avec springboot, impossible de téléchargé le pom parent, rien ne fonctionnais ! Après avoir pas mal tatoné, je me suis rendu compte que c’était ssl qui était complètement cassé (peut-être à cause d’une mise à jour foireuse ?).   En tout, avec cette petite commande magique (sous ubuntu / debian), j’ai pu tout réparer en clin d’oeil : sudo apt-get install -y ca-certificates-java && sudo update-ca-certificates -f  ...

Read More

Mettre à jour la documentation développeur Ubuntu UI toolkit

Bonjour, aujourd’hui je vais vous présenter un petit tuto qui vous montre la marche à suivre pour contribuer à la documentation ubuntu touch. En effet, un des gros problèmes avec ubuntu ui toolkit, c’est que la doc est encore loin d’être à jour. Donc si vous suivez l’actualité et que vous voulez donner un coup de main, n’hésitez pas à contribuer ! Premièrement, il vous faudra un compte sur le launchpad Ubuntu UI toolkit et configurer votre clés ssh (je vous laisse allez sur votre profile et suivre les instructions) Dans un second temps, il faut savoir que launchpad utilise bazar comme gestionaire de version (C’est très semblable à git). Il faut cloner la branch staging (qui est la branche des modifications en cours) : bzr branch lp:ubuntu-ui-toolkit/staging Dans un troisième temps, nous allons modifier le fichier et créer notre branche sur bazar. Pour cela, il faudra ouvrir le projet avec un qtCreator (ou même un simple editeur texte). Dans mon cas, j’ai voulu modifier la documentation du composant Popover afin qu’il utilise la dernière version du composant ListItem (l’ancien étant deprecatied car non performant). J’ai donc ouvert le fichier « staging/src/Ubuntu/Components/Popups/1.3/Popover.qml » pour y modifier l’exemple de la documentation. En faisant un bzr status  vous pourrez voir la liste des fichiers modifier et ajouter le votre avec bzr add <chemin-vers-le-fichier> . il ne vous reste à commiter les changements : bzr commit -m "<commentaire>" , et les publiers sur votre branche bzr push lp:~/ubuntu-ui-toolkit/<nom-de-la-branche> . Quatrièmement, il faudra faire votre pull request à la team ubuntu pour que les changements soit accepté ! Il faudra vous rendre sur la page du  launchpad Ubuntu UI toolkit (https://code.launchpad.net/~z-admin-angels-gmail-com/ubuntu-ui-toolkit/<nom-de-votre-brance>)  et cliquez sur « Propose for merging ». Quand à la branche, il faudra choisir « other » et mettre  » lp:ubuntu-ui-toolkit/staging  » afin de bien spécifier la branche staging. Et voila,  une fois que vous aurez saisis le formulaire, votre contribution seras soumis à validation...

Read More

Installer openCV 2.4.12 pour ubuntu et Qt5

Bonjour à tous,   après avoir pas mal galérer à installer openCV 2.4.12 sur ubuntu et le faire fonctionner avec ubuntu, j’ai décidé de partager mon retour d’expérience.   Installer les dépendances :   Shell # install dependencies sudo apt-get update sudo apt-get install -y build-essential g++ sudo apt-get install -y cmake git sudo apt-get install -y libgtk2.0-dev sudo apt-get install -y pkg-config sudo apt-get install -y python-numpy python-dev sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils 1234567891011 # install dependenciessudo apt-get updatesudo apt-get install -y build-essential g++sudo apt-get install -y cmake gitsudo apt-get install -y libgtk2.0-devsudo apt-get install -y pkg-configsudo apt-get install -y python-numpy python-devsudo apt-get install -y libavcodec-dev libavformat-dev libswscale-devsudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils   Ensuite récupérer openCV depuis git Shell mkdir -p ~/dev/ cd ~/dev git clone https://github.com/Itseez/opencv.git 123 mkdir -p ~/dev/cd ~/devgit clone https://github.com/Itseez/opencv.git   Maintenant compilons le tout   Shell cd opencv-2.4.12 mkdir release cd release # compile and install cmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D BUILD_SHARED_LIBS=OFF -D WITH_GSTREAMER=ON .. make all -j4 # 4 cores sudo make install 12345678 cd opencv-2.4.12mkdir releasecd release # compile and installcmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D BUILD_SHARED_LIBS=OFF -D WITH_GSTREAMER=ON ..make all -j4 # 4 coressudo make install   dans le dossier /etc/ld.so.conf.d/ créer un fichier « opencv.conf » Et coller ceci dedans : /usr/local/lib Maintenant executer la commande sudo ldconfig   Maintenant ajoutons les dépendances dans notre projet QT (dans le fichier .pro )   Shell INCLUDEPATH += . INCLUDEPATH += /usr/local/include INCLUDEPATH += /usr/local/include/opencv INCLUDEPATH += /usr/local/include/opencv2 INCLUDEPATH += /usr/local/include/opencv2/core INCLUDEPATH += /usr/local/include/opencv2/highgui INCLUDEPATH += /usr/local/include/opencv2/imgproc...

Read More

créer une application spring-boot déployable en war (tomcat)

Bonjour à tous,   après m’être cassé les dents pas mal de temps sur ce problème, j’ai ENFIN trouvé la solution. Et évidement, c’était tout bête.   pour créer une appllication springboot que l’on peut déployer dans un tomcat   il faut que votre classe application hérite de SpringBootServletInitializer et override la méthode configure   comme ceci : Java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } 12345678910111213 @SpringBootApplicationpublic class Application extends SpringBootServletInitializer {     @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(Application.class);    }     public static void main(String[] args) throws Exception {        SpringApplication.run(Application.class, args);    } }   et votre pom.xml doit ressembler à ceci : XHTML <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>huseyinbabal.net</groupId> <artifactId>spring-mongodb-data-rest</artifactId> <version>0.1.0</version> <packaging>war</packaging> <properties> <java.version>1.7</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.2.7.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>1.1.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>TomcatServer</server> <path>/morgan</path> <username>openfoodfacts</username> <password>password</password> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </pluginManagement> <finalName>restWS</finalName> </build> </project> 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>  <groupId>huseyinbabal.net</groupId> <artifactId>spring-mongodb-data-rest</artifactId> <version>0.1.0</version> <packaging>war</packaging>  <properties> <java.version>1.7</java.version> </properties>  <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.2.7.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>1.1.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>   <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>   <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>            <scope>provided</scope>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency> </dependencies>  <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>  <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>TomcatServer</server> <path>/morgan</path> <username>openfoodfacts</username> <password>password</password> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </pluginManagement> <finalName>restWS</finalName> </build> </project>   il doit générer un fichier war grâce à la propriété : XHTML <packaging>war</packaging> 1 <packaging>war</packaging> utiliser la dépendence : XHTML <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> 12345   <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>            <scope>provided</scope>        </dependency> et normalement le problème devrais etre...

Read More

Savoir si un utilisateur à fini de télécharger un fichier

Savoir si un utilisateur à fini de télécharger un fichier

Bonjour à tous, Récemment j’ai eu la problématique d’effectuer une action uniquement dans l’utilisateur à fini de télécharger un fichier. Pour résoudre ce problème j’ai du utiliser FileChannel qui permet de savoir exactement où l’on en est dans la lecture du fichier. La solution est tellement simple qu’elle en est élégante : il suffit de overrider la méthode close de FileInputStream Java final FileInputStream fileInputStream = new FileInputStream(zipFile){ @Override public void close() throws IOException { FileChannel fc = this.getChannel(); if (fc.position() == fc.size()) { LOGGER.warn("#### download finished ###"); } else { LOGGER.warn("#### File is not finished to download ###"); } super.close(); } }; 1234567891011121314 final FileInputStream fileInputStream = new FileInputStream(zipFile){ @Override public void close() throws IOException { FileChannel fc = this.getChannel();  if (fc.position() ==  fc.size()) { LOGGER.warn("#### download finished ###");  } else { LOGGER.warn("#### File is not finished to download ###"); } super.close(); }}; Enfaîte, la méthode close est appelé quand la connexion est close. Si la position du fileChannel est égale à la taille totale, cela veux dire que le téléchargement à été terminé (tout le fichier à été lu). Hors si la position n’est pas égale à la taille, c’est que la connexion à été close par le client avant la fin du téléchargement (téléchargement annulé par l’utilisateur)....

Read More