SEO Starter Pack

Search Engine Optimization is the main key to shine on the Google Search Engine and other search engines.

The live is video here thanks to Bruno Fabian Customer Support & Consent Representative at Dothostia https://www.dothostia.com/ !

The following is a bullet point list of tips to improve your website reference on Google:

Content

Light weight page: Don’t overload you page content the shortest and the most concis your content is the better your page will be referenced by google.

Use Html headers tags <h1> </h1> h1 header is the favorite google algorithm food.

A blog with rich content is always the best way to improve your website’s SEO.

Keywords

URLs must contain static worlds for example: xyz.com/maison-eljadida-3000dhs. Containing Management Systems will often suggest you post links with the post header words. Feel free to change this post’s link to use specific words. (This links are managed with .htaccess files).

To choose the best keywords to improve your SEO in “urls” Google provides an amazing tool the Google keyword planner https://adwords.google.com/intl/fr_ca/home/tools/keyword-planner/

SSL Secure Sockets Layer

Google likes SSL certificates it insures encryption of the data between the server and the client see this article from Fourdots why you need SSL to rank better.

Choose a good Hosting platform that provides a high speed delivery for the hosted content and that provides a free SSL certificate in it’s packages and the last but not the least a DEDICATED IP address to avoid blacklisting in mutual servers.

Choose Cloud over Classic hosting for higher speed and server security.

Social networks

Don’t forget that Google created Google+ to compete with Facebook than if you want to be well ranked at Google’s engine you must create a Google+ page for you buisness.

Biggest mistake !

Never start a website from scratch again and again because it’s like to wipe off all the work you’ve done on the first shot. Improve you’re first version of your website because Google bots are crawling the web see hereCrawling is the process by which Googlebot discovers new and updated pages to be added to the Google index.

Don’t forget to like my Facebook page and share to spread the word and make the web a better place.

 

Moroccan Harira recipe

Ingredients
– 1 onion
– Olive oil
– 1 bouquet of parsley
– 200 g of red meat cut in small pieces
– 1/2 coffee spoon of Curcuma
– 7 tomatoes
– 200 g of Chickpeas
– 200 g of lentils
– 100 g of vermicelli
– 1 bouquet of coriander
– 70 g of flour
– Salt and pepper

Music by: XIXX https://soundcloud.com/jeff-kaale/monday

Source: http://moustacho.com/pour-un-ftour-convivial-craquez-pour-la-harira-marocaine-vous-ny-resisterez-pas/

Improvements to the recipe:

Replace the Curcuma with a spoon of Ginger and 1/2 coffee spoon of Cinnamon

Add 4 chopped celery branches

How to install Django on a Hostgator shared hosting

Thanks to that help full document that I found on a Forum (I can’t )

https://docs.google.com/document/d/1jhvixMmTRGYHRbHaYlTHTNrtpziGotQMc0iBO0sTbIo/edit

Here is a step by step tutorial to install Django framework on your shared hosting. But first of all it is important to be aware that the performance is not the best on a shared Hosting. This solution is a good one for a small scaled solutions, on for a website that doesn’t have a lot of visitors. Otherwise it is better to purchase a dedicated server for a better performance and experience for your application users. Also you are limited in term of Python Modules the Hostgator list above show what you have access to (http://support.hostgator.com/articles/hosting-guide/hardware-software/python-modules) according to this forum post : http://grokbase.com/t/gg/django-users/1313jnz7hv/django-installation-on-hostgator

 

1- First of all you need to enable your access via SSH to your server. The best way to do this (and the only way I found) is by contacting via the chat (chat.hostgator.com) or phone the customer service.

2 – Once you access is enabled connect to your server via SSH (Windows users can access trough Putty)

For Linux / Mac users type the following command in the Terminal:

ssh -p 2222 cpanelusr@ip.add.re.ss

For Windows Putty users :

Hotsname / Server IP : yourmaindomain.com / or the server IP (you can find this information on your Cpanel on the right sidebar in the general information section)

Username and Password : Use your Cpanel Credentials

Port : 2222 (for shared hosting otherwise it’s 22 for dedicated servers according to Hostgator help page http://support.hostgator.com/articles/how-do-i-get-and-use-ssh-access)

The following steps are from the source document linked above :

 

(this probably out of date…)

How to install Django on a basic shared hosting plan with plain CGI

I’ve successfully installed Django on my Hostgator account (‘Baby Croc’ plan) using these steps. Hostgator has been really great for me, but they don’t support fastCGI. Using vanilla CGI with Django is not generally recommended and results in crappy performance, but for a low traffic site it’s bearable (barely).

 

Here are some links to source material for this document:

 

http://www.djangoproject.com/documentation/install/

http://code.djangoproject.com/ticket/2407

http://mysql-python.sourceforge.net/

http://www.python.org/dev/peps/pep-0333/

http://www.djangoproject.com/documentation/modpython/#serving-the-admin-files

 

Prerequisites

 

SSH shell access to your account

Python 2.3+ (Python 2.4 preferred)

MySQLdb module (ask your support person to install this)

Some knowledge of Django and Python

 

Install django and create a project directory

 

Create a directory in your home directory called “django” (or whatever) that is outside of your document root.

 

mkdir ~/django

cd ~/django

svn co http://code.djangoproject.com/svn/django/trunk/django

 

Create a directory for your Django projects.

 

mkdir ~/django/projects

 

You should now have the following folders:

 

~/django/django

~/django/projects

 

Edit your .bash_profile and add the following:

 

export PATH=”.:/home/username/django/django/bin:$PATH”

export PYTHONPATH=/home/username/django

Then enable the changes:

source .bash_profile

 

Add the following script to your cgi-bin directory and name it wcgi.py

 

#!/usr/local/bin/python

 

import os, sys

 

sys.path.insert(0, “/home/username/django/”)

sys.path.insert(0, “/home/username/django/projects”)

sys.path.insert(0, “/home/username/django/projects/newprojects”)

 

import django.core.handlers.wsgi

 

os.chdir(“/home/username/django/projects/newproject”)    # optional

os.environ[‘DJANGO_SETTINGS_MODULE’] = “newproject.settings”

 

def runcgi():

    environ                      = dict(os.environ.items())

    environ[‘wsgi.input’]        = sys.stdin

    environ[‘wsgi.errors’]       = sys.stderr

    environ[‘wsgi.version’]      = (1,0)

    environ[‘wsgi.multithread’]  = False

    environ[‘wsgi.multiprocess’] = True

    environ[‘wsgi.run_once’]     = True

 

    application = django.core.handlers.wsgi.WSGIHandler()

   

    if environ.get(‘HTTPS’,’off’) in (‘on’,’1′):

        environ[‘wsgi.url_scheme’] = ‘https’

    else:

        environ[‘wsgi.url_scheme’] = ‘http’

   

    headers_set  = []

    headers_sent = []

   

    def write(data):

        if not headers_set:

             raise AssertionError(“write() before start_response()”)

       

        elif not headers_sent:

             # Before the first output, send the stored headers

             status, response_headers = headers_sent[:] = headers_set

             sys.stdout.write(‘Status: %s\r\n’ % status)

             for header in response_headers:

                 sys.stdout.write(‘%s: %s\r\n’ % header)

             sys.stdout.write(‘\r\n’)

       

        sys.stdout.write(data)

        sys.stdout.flush()

   

    def start_response(status,response_headers,exc_info=None):

        if exc_info:

            try:

                if headers_sent:

                    # Re-raise original exception if headers sent

                    raise exc_info[0], exc_info[1], exc_info[2]

            finally:

                exc_info = None     # avoid dangling circular ref

        elif headers_set:

            raise AssertionError(“Headers already set!”)

       

        headers_set[:] = [status,response_headers]

        return write

   

    result = application(environ, start_response)

    try:

        for data in result:

            if data:    # don’t send headers until body appears

                write(data)

        if not headers_sent:

            write(”)   # send headers now if body was empty

    finally:

        if hasattr(result,’close’):

            result.close()

 

runcgi()

 

Edit your root .htaccess file and add the following lines

 

RewriteEngine on

RewriteRule ^media – [L]

RewriteRule ^cgi-bin – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ /cgi-bin/wcgi.py/$1 [QSA,L]

 

Create a new django project

 

(or upload your existing project)

It might be a good idea to create a new dummy project just to have a baseline to test your installation.

 

cd ~/django/projects

django-admin.py startproject newproject

cd newproject

manage.py startapp newapp

 

Try it out

 

Since DEBUG is True by default (in settings.py) you should get the default Django 404 page.

Make sure you set DEBUG=False before you open your site to the public.

 

Notes:

 

The admin media files reside in django/contrib/admin/media and since they aren’t accessible from your document root you need to create a symbolic link to the media files (or just copy them):

 

ln -s ~/django/django/contrib/admin/media ~/www/media

 

Where “~/www/” is your document root.

Comment créer un site e-commerce ?

Il existe deux grandes méthode de procéder pour construire un site e-commerce.
  1. La première méthode est destinée à un public sans  compétences techniques et qui ne cherche pas à suivre de tutoriels laborieux et c’est la plus facile. Il faut se diriger vers des plateformes comme Shopify. Un logiciel de gestion de contenu est pré-installé, il est souvent offert avec un support technique par téléphone et/ou par email. Les prix tournent autour de 9$ par mois pour un petit commerce avec quelques transactions mensuelles. Le service peux être adaptés ensuite à la taille de l’entreprise.
  2. La deuxième option elle nécessite un peut plus de travail, notamment le choix du gestionnaire de contenu l’installer (Prestashop, Magento, …). L’installation se fait généralement en un clique chez la plus part des hébergeur, Hostgator, 1And1, OVH. Il faut aussi acheter le nom de domaine en général une dizaine de dollars. Enfin pour compléter la boucle il faut installer le plugin pour le module de paiement et voila le tour est joué.

Léon l’Africain

I had the opportunity to talk about the story of great man Léon l’Africain and talk about what he inspired me. Thanks to Coin de page and a special thanks to Jean-Simon Côté, François Rousseau et Audrey Létourneau.


J’ai eu l’opportunité de pouvoir parler face à la caméra d’une citation qui m’a inspiré de Léon l’Africain dont l’histoire est raconté par Amin Maalouf dans son livre Léon l’Africain. Je remercie Coin de page pour cette occasion unique et je tiens à remercier spécialement Jean-Simon Côté, François Rousseau et Audrey Létourneau.

Moi, Hassan fils de Mohamed le peseur, moi, Jean-Léon de Médicis, circoncis de la main d’un barbier et baptisé de la main d’un pape, on me nomme aujourd’hui l’Africain, mais d’Afrique ne suis, ni d’Europe, ni d’Arabie. On m’appelle aussi le Grenadin, le Fassi, le Zayyati, mais je ne viens d’aucun pays, d’aucune cité, d’aucune tribu. Je suis fils de la route, ma patrie est caravane, et ma vie la plus inattendue des traversées.

[6] LARBI GHARIB

MAALOUF, Amin. « Léon l’Africain », Éditions Jean-Claude Lattès, Paris, 1986, p.3

Posted by Coin de page on Thursday, March 23, 2017

No fly zone map

I started a new map to log all the no fly zone areas and the fly zone areas to help drone pilots have fun securely and in legal conditions. I am using Google API to display all airport within 200 kilometers around Montreal City. Please give me suggestions to improve the map in the comments section.

This map is not a 100 % valid reference please be responsible when flying and respect the TC drone safety rules http://www.tc.gc.ca/eng/civilaviation/drone-safety.html

How to connect an external microphone to your Smartphone

I always wondered why my 10$ external lapel microphone I bought for my GOPRO won’t work with my smartphone. The answer is that the ground and the Mic connectors are inverted between a microphone 3.5 mm male jack and a smartphone female 3.5 mm jack connector. This video shows step by step a diy (do it yourself) adapter to connect any microphone with a 3.5 mm jack to your smartphone. If you are too lazy you can still buy the MyMyk adapter for about 30 $.

List of tools :

  • Lapel microphone: http://www.ebay.ca/itm/Deluxe-Lavalier-Lapel-Microphone-Clip-on-Omnidirectional-Condenser-Mic-for-Apple-/152202586564?hash=item236ffb29c4:g:ojMAAOSwU-pXrR-X
  • MyMyk adapter: http://www.ebay.ca/itm/MyMyk-Connector-Cable-For-External-Mic-to-be-used-with-Smart-Phone-Tablet-/131836441011?hash=item1eb21071b3:g:gMYAAOSwQupXUUO6
  • 3.5 mm Jack Femal Socket: http://www.digikey.ca/product-detail/en/cui-inc/SJ-43514-SMT-TR/CP-43514SJDKR-ND/1819833

Préhenseur mécanique pour Design 3 Picasso robot dessinateur

Préhenseur :

Le dispositif du préhenseur est monté au centre de la plate-forme métallique du robot, au niveau des moteurs (niveau inférieur).

Il s’agit d’un solénoïde équipée d’un coupleur à sa base pour accueillir un crayon d’une longueur de 3 cm. Le tout est fixé à l’aide d’un équerre au robot.

 

Le solénoïde est de type “push”, il fonctionne à 0,8 ampère sous 12 V et il est contrôlé à l’aide d’un transistor de type n bipolaire (TIP41C) placé sur le circuit d’alimentation.

Solénoïde : http://www.ebay.ca/itm/DC-12V-80g-3mm-Open-Frame-Actuator-Linear-Push-Pull-Solenoid-Electromagnet-/231363011711?hash=item35de4f647f:m:mdEMRdxXIGgovUfodZrHmTg

Tansistor type n bipolaire : http://www.ebay.ca/itm/TIP41C-Si-NPN-Power-Transistor-6-amp-100-volt-QTY-10-ea-O3-/151718029693?hash=item235319697d:g:ULsAAOSw-vlVgqAw

 

Sa position sur l’équerre est amovible (4 vis permettent sa fixation), il y a alors plus de liberté dans le choix de la distance par rapport à la table.

 

Préhenseur
Shéma 3D du préhenseur réalisée sur Google Skechup
prehenseur2
Image du préhenseur mis en forme.

 

Le coupleur du préhenseur permettant le maintient du crayon avec le solénoïde a été conçu sur le programme Pro/Engineer et usiné en laboratoire de mécanique utilisant de l’aluminium pour minimiser le poids.

Dimensions du coupleur dessinées sur PRO/INGINEER
Dimensions du coupleur dessinées sur PRO/INGINEER

Voici les vidéos du robot en action :

Expose you localhost to the web

ngrok.com

Ngrok pronounced “en-grok” is the best way to expose you localhost server to the web true a free secured DNS. If you want to test an application ngrok.com will provide you a domain name pointing to you computer in less than 10 secondes.

1# Download here 

<a href="https://ngrok.com/download">https://ngrok.com/download </a> 

2# Step 2: Unzip it

 $ unzip /path/to/ngrok.zip 

3#Run it !

 $ ./ngrok http 80 

Of course you need to run a local server such as MAMP or WAMP (Apache/Mysql) or Easyphp or IIS for Windows applications.