lundi, décembre 29, 2014

Dictionary of web dev ecosystem and javascript galaxy - nodejs, angularjs, mean, express, mongodb and so on ...


client side javascript and tools


AngularJS
javascript framework - app oriented

AngularJS based starter kit/template/generator
http://www.dancancro.com/comparison-of-angularjs-application-starters/
angular-seed - template project for angular
angular-app - example project for angular
ng-boilerplate - template project for angular
generator-angular - based on yeoman
generator-angular-fullstack - based on yeoman

javascript library/toolkit - app oriented

Bootstrap
javascript framework - UI responsive design oriented

Bower
dependencies manager for webapp - manage js dependencies or asset - dependencies are deployed in flat way (opposite of npm which deploy each dependency nested) - use bower.json and .bowerrc

Compass
CSS framework based on Sass

Dojo
javascript framework - app oriented

javascript framework - app oriented

HTML5 Boilerplate
Web project template

jQuery
javascript framework - UI oriented

Less
CSS derivated language

MooTools
javascript library - UI oriented

Sass
CSS derivated language

Stylus
CSS derivated language

Underscore.js
javascript library

Server side javascript and tools


Node.js
server-side javascript

npm
Node package manager - installed with nodejs - each dependency is deployed in a nested way (opposite of bower which deploy each dependency in a flat way) - use package.json

Express
server-side javascript framework

Jade
Javascript template engine

Swig
Javascript template engine

Other



MEAN
conceptual javascript stack - MongoDB, Express, Angular, Nodejs
Different mean stack implementation : http://meanjs.org http://mean.io
mean.js is a fork of mean.io - difference between them

Yeoman
project generator

MongoDB
document oriented database

Redis
key/value store

CoffeeScript
javascript derivated language

TypeScript
javascript derivated language

Grunt
javascript task manager/build tool - like maven or ant - use Gruntfile.js

Gulp
http://gulpjs.com/
javascript task manager/build tool - use gulpfile.js

Use npm as build tool
http://blog.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/

JSLint
javascript code quality tool

JSHint
javascript code quality tool - fork of JSLint

JSFiddle
online javascript sandbox

RequireJS
javascript module loader

Karma (formerly Testacular)
Test runner

Jasmine
Javascript test framework

Mocha
Javascript test framework

HTTP Archive
Web technology statistic

BuiltWith
Web technology statistic




dimanche, décembre 28, 2014

install MongoDB latest release on MacOS



install MongoDB latest version on MacOS 64Bits

curl -L http://downloads.mongodb.org/osx/mongodb-osx-x86_64-latest.tgz -o mongodb-osx-latest.tgz && rm -Rf mongodb && sudo rm -Rf /usr/local/bin/mongo* && sudo rm -Rf /usr/local/bin/bsondump && mkdir mongodb && tar -xvzf mongodb-osx-latest.tgz --strip-components=1 -C mongodb && for f in $(pwd)/mongodb/bin/*; do sudo ln -s $f /usr/local/bin/$(basename $f); done

Note : will ask sudo password
Note : see urls here http://www.mongodb.org/dl/osx
Note : to run it
mkdir -p $(pwd)/mongodb/data/db && mongod --dbpath $(pwd)/mongodb/data/db

install MongoDB latest version on MacOS 32Bits

curl -L http://downloads.mongodb.org/osx/mongodb-osx-i386-latest.tgz -o mongodb-osx-latest.tgz && rm -Rf mongodb && sudo rm -Rf /usr/local/bin/mongo* && sudo rm -Rf /usr/local/bin/bsondump && mkdir mongodb && tar -xvzf mongodb-osx-latest.tgz --strip-components=1 -C mongodb && for f in $(pwd)/mongodb/bin/*; do sudo ln -s $f /usr/local/bin/$(basename $f); done

Note : will ask sudo password
Note : see urls here http://www.mongodb.org/dl/osx
Note : to run it
mkdir -p $(pwd)/mongodb/data/db && mongod --dbpath $(pwd)/mongodb/data/db

install nodejs latest release


Install nodejs latest release on MacOS

curl -sSL http://nodejs.org/dist/latest | grep pkg | sed -E 's/.*>(node.*pkg).*/\1/' | xargs -I '{}' curl --write-out %{url_effective} -L -O http://nodejs.org/dist/latest/'{}' | sed -E 's/.*\/(node.*pkg)/\1/' | xargs -I '{}' echo launch '{}'

Note : you have to launch the pkg file
Note : the pkg file will launch an UI


Install nodejs latest release on Linux 64bits

curl -sSL http://nodejs.org/dist/latest | grep linux | grep 64 | sed -E 's/.*>(node.*gz).*/\1/' | xargs -I '{}' curl --write-out %{filename_effective} -L -O http://nodejs.org/dist/latest/'{}' | xargs -I '{}' tar -xvzf '{}'

mardi, décembre 23, 2014

Linux : Mount samba share permanently




sudo apt-get install  samba cifs-utils


edit /etc/fstab

//192.168.0.70/SHARE   /home/nomorgan/FOO       cifs    user,rw,uid=FOO_USER,gid=FOO_USERGROUP,file_mode=0777,dir_mode=0777,iocharset=utf8,credentials=/root/.smbcredentials        0        0

edit /root/.smbcredentials
username=xxxx
password=xxxx


sudo mount -a




https://wiki.ubuntu.com/MountWindowsSharesPermanently



mercredi, décembre 10, 2014

Github and curl - Get asset and latest release


GET URL LIST OF ALL ASSET  OF ALL RELEASE

curl -sL https://api.github.com/repos/OWNER/REPO/releases | grep 
tarball_url | cut -d '"' -f 4

GET URL OF THE VERY LAST RELEASE

curl -sL https://api.github.com/repos/OWNER/REPO/releases | grep tarball_url | head -n 1 |  cut -d '"' -f 4


DOWNLOAD THE VERY LAST RELEASE

curl -sL https://api.github.com/repos/OWNER/REPO/releases | grep tarball_url | head -n 1 |  cut -d '"' -f 4 | xargs curl -L -J -O






Note 1 : do not forget to replace OWNER  and REPO
Note 2 : API  github https://developer.github.com/v3/repos/releases/




Install docker on ubuntu


curl -sSL https://get.docker.com/ubuntu/ | sudo sh

dimanche, mai 04, 2014

some docker and vagrant bookmarks

Some interesting stuff about docker, and vagrant
sorted by date as they evolve very quick


DOCKER

ARTICLE


March 25, 2014
BUILDING YOUR FIRST APP ON COREOS: START TO FINISH
http://www.centurylinklabs.com/building-your-first-app-on-coreos/

March 18, 2014
DEPLOYING MULTI-SERVER DOCKER APPS WITH AMBASSADORS
http://www.centurylinklabs.com/deploying-multi-server-docker-apps-with-ambassadors/

February 25, 2014
BUILDING COMPLEX APPS FOR DOCKER ON COREOS AND FIG
http://www.centurylinklabs.com/building-complex-apps-for-docker-on-coreos-and-fig/

February 18, 2014
AUTO-LOADBALANCING DOCKER WITH FIG, HAPROXY AND SERF
http://www.centurylinklabs.com/auto-loadbalancing-with-fig-haproxy-and-serf/

January 29, 2014
DECENTRALIZING DOCKER: HOW TO USE SERF WITH DOCKER
http://www.centurylinklabs.com/decentralizing-docker-how-to-use-serf-with-docker/

January 20, 2014
HOW TO BUILD A 2-CONTAINER APP WITH DOCKER
http://www.centurylinklabs.com/build-a-2-container-app-with-docker/




TIPS



March 21, 2014
15 QUICK DOCKER TIPS
http://www.centurylinklabs.com/15-quick-docker-tips/




TOOLS


March 5, 2014
TOP 10 OPEN-SOURCE DOCKER DEVELOPER TOOLS
http://www.centurylinklabs.com/top-10-open-source-docker-developer-tools/




SAMPLE EXAMPLES



April 23, 2014
Deploying Ghost With Docker
http://www.allaboutghost.com/deploying-ghost-with-docker/

April 14, 2014
DROPBOX IN DOCKER
http://www.centurylinklabs.com/dropbox-in-docker/

October 22, 2013
Sync Hacks: Deploy BitTorrent Sync with Docker
http://blog.bittorrent.com/2013/10/22/sync-hacks-deploy-bittorrent-sync-with-docker/

July 8, 2013
DOCKER DESKTOP: YOUR DESKTOP OVER SSH RUNNING INSIDE OF A DOCKER CONTAINER
http://blog.docker.io/2013/07/docker-desktop-your-desktop-over-ssh-running-inside-of-a-docker-container/
https://github.com/rogaha/docker-desktop




VAGRANT



SAMPLE EXAMPLES

March 18, 2014
Creating A CentOS GUI Vagrant Base Box
http://www.charlestonsw.com/creating-a-new-centos-vagrant-base-box/

dimanche, février 23, 2014

Création d'un fichier d'échange swap pour augmenter taille du swap

EXTRAIT de http://doc.ubuntu-fr.org/swap

Pour créer un fichier d'échange :
  1. Depuis un compte d'administrateur, ouvrez un terminal ;
  2. Utilisez fallocate pour réserver un bloc d'espace disque à attribuer à votre espace d'échange :
    sudo fallocate -l  taille du fichier en octets  nom du fichier
    • Le paramètre -l indique la taille (length) en octets qui doit être réservée pour l'espace d'échange. fallocate reconnaît aussi quelques suffixes, tels m et g, pour préciser des tailles en mibi-octets ou gibioctets. Par exemple, pour réserver 512 Mio, indiquez 512m ; pour réservez 1 Gio, indiquer 1g ;
    • Le nom du fichier doit contenir le chemin absolu vers l'emplacement de celui-ci. Sinon, il sera créé dans le répertoire courant ;
    • Exemple : pour créer un fichier de 512 Mio nommé file.swap et situé à la racine d'Ubuntu, on utilisera la commande suivante :
      sudo fallocate -l 512m /file.swap
      Consultez le manuel de fallocate (man fallocate) pour plus d'informations.
  3. Modifiez les permissions sur cet espace afin qu'il ne soit directement lisible que par le système. Utilisez la commande chmod :
    sudo chmod 600 nom du fichier
    • Encore une fois,  représente le nom du fichier qui vient d'être créé, avec son chemin absolu si nécessaire ;
    • Par exemple, pour changer les permissions sur le fichier file.swap situé à la racine d'Ubuntu, on utilisera la commande suivante :
      sudo chmod 600 /file.swap
  4. Définissez ce fichier en tant qu'espace d'échange. Pour ce faire, utilisez la commande mkswap :
    sudo mkswap nom du fichier
    • Par exemple, pour définir un espace d'échange sur le fichier file.swap situé à la racine d'Ubuntu, on utilisera la commande suivante :
      sudo mkswap /file.swap
  5. Activez la prise en charge de ce nouvel espace d'échange. Utilisez la commande swapon :
    sudo swapon nom du fichier
    • Par exemple, pour activer la prise en charge de l'espace d'échange sur le fichier file.swap situé à la racine d'Ubuntu, on utilisera la commande suivante :
      sudo swapon /file.swap
  6. Verification
    swapon -s

mercredi, janvier 29, 2014

XSD and null, zero values



* CAS 1 : Si on considère que lorsque l'information est vide, le tag n'a pas à apparaitre
XSD : 
<element name="DateFinValidite" type="date" minOccurs="0" />

XML Valide : 
<com:DateDebutValidite>2013-08-01</com:DateDebutValidite>
<com:DateMAJ>2013-09-17T00:00:00</com:DateMAJ>
ou
<com:DateDebutValidite>2013-08-01</comateDebutValidite>
<com:DateFinValidite >2014-08-01</DateFinValidite>
<com:DateMAJ>2013-09-17T00:00:00</comateMAJ>
XML Invalide :
<com:DateDebutValidite>2013-08-01</comateDebutValidite>
<com:DateFinValidite/>
<com:DateMAJ>2013-09-17T00:00:00</comateMAJ>


* CAS 2 : Si on veut voir tout le temps, quoiqu'il arrive, apparaitre le tag concerné que l'information soit vide ou renseignée
Il y a alors 2 solutions :

SOLUTION A/ usage de nil
XSD : 
<element name="DateFinValidite" type="date" nillable="true" minOccurs="1" maxOccurs="1"/>

XML Valide: 
<com:DateDebutValidite>2013-08-01</comateDebutValidite>
<com:DateFinValidite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<com:DateMAJ>2013-09-17T00:00:00</comateMAJ>
ou
<com:DateDebutValidite>2013-08-01</comateDebutValidite>
<com:DateFinValidite >2014-08-01</DateFinValidite>
<com:DateMAJ>2013-09-17T00:00:00</comateMAJ>


SOLUTION B/ surcharge de type


XSD : 
<element name="DateFinValidite" type="tns:dateNull" minOccurs="1" maxOccurs="1"/>

<simpleType name="emptyString">
<restriction base="string">
<length value="0" />
</restriction>
</simpleType>
<simpleType name="dateNull">
<union memberTypes="date tns:emptyString" />
</simpleType>
<simpleType name="intNull">
<union memberTypes="integer tns:emptyString" />
</simpleType>

XML Valide: 
<com:DateDebutValidite>2013-08-01</comateDebutValidite>
<com:DateFinValidite/>
<com:DateMAJ>2013-09-17T00:00:00</comateMAJ>
ou
<com:DateDebutValidite>2013-08-01</comateDebutValidite>
<com:DateFinValidite >2014-08-01</DateFinValidite>
<com:DateMAJ>2013-09-17T00:00:00</comateMAJ>