mercredi 22 février 2012

[ARTICLE]La 4G résumée: Du fonctionnement au déploiement

Pendant que les licences 3G sont en cours d’attribution pour les opérateurs dans certains pays, la 4G gagne du terrain de l’autre côté.
Son arrivée "précoce" ou plus généralement l’évolution rapide des générations des réseaux mobiles (GSM, GPRS, EDGE, UMTS,…), qui s’améliorent presque toutes dès leur naissance, s’explique essentiellement par les besoins des utilisateurs en qualité de service notamment la hausse des débits. D’autre part, le boom de terminaux mobiles, particulièrement des smartphones et les applications consommatrices des ressources qui leur sont associés, exige également l’existence des réseaux mobiles performants. Ces évolutions rapides et corrélatives sont aussi dues au fait que l’utilisateur lui-même est curieux et « impatient », il aime la nouveauté : Au japon et en Australie, des centaines de personnes ont somnolé dans la queue à la sortie de l’iPhone 4S en Octobre 2011.Alors Oui, c’est l’ère de la 4G et des produits 4G !
La 4G ou 4 ème génération des réseaux mobiles(la 2ème étant le GSM, la 3ème l’UMTS) aussi appelée LTE pour Long Term Evolution (bien que les puristes insistent sur le fait que « 4G » s’associe plutôt aux versions avancées de la LTE(Advanced-LTE), la LTE étant la « 3.9G » ) est définie suivant les spécifications de la 3GPP et apporte des nombreuses améliorations à la 3G.Si la 3G doit ses performances essentiellement à l’amélioration de l’interface radio des générations précédentes, notamment l’ajout des schémas de codage, la LTE se base quasiment sur la même architecture protocolaire que le wimax mobile déjà existant.La ressemblance est en tout cas très nette, à quelques fonctionnalités près au niveau de la couche physique et MAC de ces deux technologies. La LTE se caractérise par l’utilisation des technologies plus évoluées notamment les antennes multiples (MIMO) et intelligentes pour l’émission/réception des données, ou encore des techniques de modulations adaptatives et beaucoup d’autres améliorations qui permettent l’optimisation des ressources tout en fournissant des très hauts débits.Ces débits vont théoriquement jusqu’à 100Mbps et 10 fois plus pour les versions très avancées de la LTE. Les débits réels possibles sont pour l’instant d’ordre des dizaines de Mbps. Pour optimiser l’efficacité spectrale, La LTE utilise des bandes de fréquence évolutives allant de 1.4 Mhz à 20 Mhz pendant que ses fréquences de transmissions varient aussi selon les zones géographiques : 700 MHz aux Etats-Unis pour le réseau de Verizon Wireless, 2,6 GHz et 800 MHz en Europe, et 2,1 GHz pour le réseau japonais de NTT Docomo.En ce qui concerne le transport, la LTE se base sur un réseau entièrement IP.
La LTE est déployée et commercialisée au Japon, en Corée du sud, en Europe (en Allemagne et dans les pays scandinaves), et aux etats unis : En Stockholm (Suède) et Oslo (Norvège) depuis le 15 décembre 2009 par l'opérateur téléphonique TeliaSonera.Verizon Wireless (société américaine) a actuellement le 1er réseau mondial LTE, il compte en fin 2011 plus de 4 millions d’abonnés LTE. AT&T a aussi lancé une offre LTE en mis-2011. On estime qu'il y aura d’ici 2013, 80 à 90 réseaux LTE opérationnels dans le monde.
Actuellement, un grand nombre de nouveaux produits 4G compatibles avec le réseau LTE est entrain de naitre et d’envahir petit à pétit le marché avec tout recemment le LG Optimus LTE Tag proposé en Corée par LG ou encore le HTC Raider, tous utilisant l’OS android de google.
La LTE…. c’est donc maintenant !
Par l'Admin, Etudiant en Telecoms, INPT.
Toute erreur rélative au contenu n'émane que de moi, une rectification quelconque est rémerciée à l'avance.

mardi 21 février 2012

[smartphone]LG Optimus LTE Tag, Terminal Android compatible avec les réseaux 4G LTE pour la Corée

Alors que côté de l’Europe, LG devrait proposer une nouvelle gamme de smartphone tous aussi alléchants les uns que les autres dont le LG Optimus Vu, récemment dévoilé, le constructeur vient tout juste d’annoncer le LG Optimus LTE Tag un nouveau terminal compatible 4G LTE et doté d’une puce NFC destiné au marché coréen.
LG Optimus LTE Tag LG Optimus LTE Tag, un nouveau smartphone 4G et NFC pour le marché coréen
Doté d’un écran de 4,3 pouces pour une résolution de 480 X 800 pixels, le LG Optimus LTE Tag embarque un processeur double-cœur cadencé à 1,2 Ghz et soutenu par 1 Go de Ram. On retrouve également un capteur photo de 5 Megapixels et une caméra frontale de 1,3 Megapixels pour une capacité de stockage de 16 Go et une batterie de 1700 mAh le tout sous Android 2.3 Gingerbread.
Une configuration d’entrée de gamme dont le principal intérêt restera la connectivité 4G LTE et le support du NFC, deux technologies dont on attend avec impatience le développement en France qu’un il faut le dire a encore un train de retard face à la Corée et aux Etats-Unis.

jeudi 16 février 2012

[TUTO] Connexion-Android-MySQL, JSON PHP

La connectivité aux bases de données est parfois une opération délicate pour les débutants. Il existe plusieurs procédures qui permettent,dépuis un client android, de se connecter à une base de données. Dans ce tutoriel,je choisis de vous présenter l'une des méthodes, qui consiste à l'utilisation d'un fichier PHP qui convertit les données récupérées en format JSON(Le format JSON est une réprésentation structurée de données en Objet JavaScript, les données sont maniables très facilement dans ce format qui est aussi une sorte de compression.En PHP, la fonction json_encode() permet d'encoder en JSON.C'est un format très utile, il merite que vous y jettiez un coup d'oeil ( http://www.json.org/ )) . Cette méthode est donc très  avantageuse , souple et facile à mettre en oeuvre.
Voici tout d'abord l'environnement de travail dont je dispose:
  • SDK android
  • eclipse
  • EasyPHP/MySQL
Pour mieux comprendre la procédure, nous allons la schématiser:
A présent, pour concretiser cette procédure, je vous propose de créer une base de données qui contient les noms des écoles(INPT,EHTP,ENSIAS,INSEA) et l'exercice consistera donc à les recuperer et les afficher sur l'emulateur.(On dédie à l'INPT la tete de liste pour l'occasion).
Voici le résulat de l'affichage final:


I. Coté serveur
1.Base de données:
Notre base de données est simple et contient une table à deux colonnes comme suit:

2. Fichier PHP:
Le fichier php consiste à envoyer des réquetes sql à la base de données etablissements qui contient la table ecoles. Il récupère le résultat des réquetes, ensuite l'encode en JSON grace au simple appel de la fonction json_encode() comme dit précedemment.Son contenu ressemble à ça:
<?php
// on se connecte à notre base  pour recuperer les data
$base = mysql_connect ('localhost', 'root', ''); 
mysql_select_db ('etablissements', $base) ; 
$req =mysql_query("SELECT nom from ecoles");
while ($row=mysql_fetch_array($req)) {   
    $output[]=$row;   
}
//on encode en JSON
print(json_encode($output));
mysql_free_result ($req); 
?>


II. Coté Client
Au niveau du Client android, il s'agit de démander au serveur de nous renvoyer la liste des écoles grace aux commandes HttpClient, Ensuite, il nous appartient de décoder(récuperer les champs) ces données(puisqu'elles sont renvoyées sous forme d'objet JSON) et les afficher sous forme de liste dans notre cas.
Cela se fera en utilisant une seule classe principale qui va hériter de ListActivity pour faire simple.Voici en gros le contenu de la dite classe:
  • Envoi des commandes HttpClient en indiquant le chemin du fichier PHP à interroger (attention ici nous travaillons bien en local mais l'adresse locale pour l'emulateur android c'est 10.0.2.2 et non localhost ou 127.0.0.1 comme d'habitude).
  • Conversion du flux réçu en chaine de caractères
  • Récuperation des données codées sous forme d'objet JSON
  • Affichage suivant une liste
Je vous laisse le code complet ci-dessous de la partie client, n'hesitez pas à commenter si vous avez des erreurs/questions.

package com.mobilerie.com;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class ConnexionSQLActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        String result = null;
     InputStream is = null;
     JSONObject json_data=null;
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
     ArrayList<String> donnees = new ArrayList<String>();
   
     try{

     //commandes httpClient
     HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("
http://10.0.2.2/connexion_mysql/connexion_mysql.php");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
     }
     catch(Exception e){
      Log.i("taghttppost",""+e.toString());
            Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
       }
   
      
     //conversion de la réponse en chaine de caractère
        try
        {
         BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
        
         StringBuilder sb  = new StringBuilder();
        
         String line = null;
        
         while ((line = reader.readLine()) != null)
         {
         sb.append(line + "\n");
         }
        
         is.close();
        
         result = sb.toString();
        }
        catch(Exception e)
        {
         Log.i("tagconvertstr",""+e.toString());
        }
        //recuperation des donnees json
        try{
          JSONArray jArray = new JSONArray(result);
           
             for(int i=0;i<jArray.length();i++)
             {
           
                   json_data = jArray.getJSONObject(i);
                   donnees.add(json_data.getString("nom"));
                   //r.add(json_data.getString("categorie"));

                  
               }
                setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, donnees));

            }
            catch(JSONException e){
             Log.i("tagjsonexp",""+e.toString());
            } catch (ParseException e) {
             Log.i("tagjsonpars",""+e.toString());
       }
           
    }
}





lundi 13 février 2012

[TUTO]Tutoriel Android: Listes des Logos

Dans ce tutoriel android, nous allons voir comment afficher une liste de logos suivis de leur description: C'est tout simplement l'utilisation des ListViews sous android.
Le résultat est décrit dans la figure ci-dessous:
Tout d'abord, nous aurons besoin d'avoir nos logos deja prets, bien dimensionnés à l'aide d'un logiciel de traitement d'images tel que photoshop, gimp,...
Voici pas par pas , les étapes à suivre:
  1. Créer un nouveau projet qu'on appelera listelogos par exemple
  2. Placer les logos dans le dossier res/drawable(ici on les nommera logoandroid,logoiphone et logowindowsphone)
  3. Aller dans le fichier main.xml du layout, placez-y le contenu xml suivant:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView
 android:id="@+id/element"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
</ListView>
</LinearLayout>
Nous venons de définir  une ListView dont le contenu sera défini dans le fichier element que nous allons créer dans ce qui suit.
4. Toujours dans le layout, créer un nouveau fichier xml qui sera nommé element et qui contiendra la description d'un item de notre liste.Ajoutez-y le contenu suivant:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>
    <ImageView
  android:id="@+id/image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
     android:layout_gravity="center_vertical"
     android:padding="10px"
  />

 <LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_gravity="center_vertical"
     android:paddingLeft="10px"
     android:layout_weight="1"
     >

     <TextView android:id="@+id/nom"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:textSize="14px"
          android:textStyle="bold"
          />

     <TextView android:id="@+id/description"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          />

    </LinearLayout>
</LinearLayout>



5. Revenons maintenant dans notre activité principale pour y placer le code necessaire. les étapes sont simples:


  • Definir et créer une ListView
  • Definir et créer un tableau de type clé-valeur qui contiendra les elements de notre liste
  • Remplir le tableau des éléments de la liste
  • Definir un adapter et l'attribuer à la liste.
Ci-dessous le code java commenté.Si vous avez des questions, n'hesitez pas.
package com.lestrucsmobiles.listelogos;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class LisltelogosActivity extends Activity {
 private ListView listview;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listview=(ListView) this.findViewById(R.id.element);
       
        ArrayList<HashMap<String,String>> listelogos = new ArrayList<HashMap<String,String>>();
        //on remplit l'item du premier logo
        HashMap<String,String> infologo=new HashMap<String, String>();
        infologo.put("nom","Android");
        infologo.put("description","Plateforme de google");
        infologo.put("image",String.valueOf(R.drawable.logoandroid));
        listelogos.add(infologo);
       
       
        //on remplit de la meme façon l'item du second logo
        infologo=new HashMap<String, String>();
        infologo.put("nom","iphone");
        infologo.put("description","Plateforme de Apple");
        infologo.put("image",String.valueOf(R.drawable.logoiphone));
        listelogos.add(infologo);
       
        //on remplit de la meme façon l'item du troisieme logo
        infologo=new HashMap<String, String>();
        infologo.put("nom","WindowsPhone");
        infologo.put("description","Plateforme de Microsoft");
        infologo.put("image",String.valueOf(R.drawable.logowindowsphone));
        listelogos.add(infologo);
       
        //Vous l'aurez compris, on pourra continue l'operation...
       
        //On créer enfin un adapter et l'attribuer a la listview
        SimpleAdapter adapter = new SimpleAdapter(this.getBaseContext(),listelogos,
          R.layout.element,new String[]{"image","nom","description"},new int[] {R.id.image, R.id.nom, R.id.description});
        listview.setAdapter(adapter);
    }
}


dimanche 12 février 2012

[ARTICLE]Les mobiles en 2012

Cet article décrit de manière chiffrée l'arrivée de l'ère Post-PC.

Les mobiles en 2012, en un clin d'oeil

Fotolia_25192269_XS251x168.jpgLes mobiles vont exploser à partir de 2012. La révolution opérée par les smartphones change tout et ces derniers sont en train de prendre à leur compte des fonctions préalablement disponibles uniquement sur des ordinateurs.
Le contrôle des stocks,le registre des équipements, le fichier client, la signature digitale, les outils de traduction... Beaucoup d'applications dans beaucoup de domaines différents sont potentiellement affectées. Par exemple, les pilotes de ligne peuvent utiliser des tablettes comme l'iPad pour leur route de vol et autresdonnées. Au long terme, combien d'ordinateurs de bas étage pourraient être remplacés par des appareils portables ?

le truc à propos de l'après-PC ? c'est réel


En 2011, les expéditions d'appareils mobiles ont surpassé celles des PC. IDC prévoit que 895 millions d'appareils mobiles ($277 milliards) seront expédiés, chiffre à comparer avec celui-ci : moins de 400 millions de PC expédiés ($257 milliards) en 2012.

"D'ici à 2016, au moins 50% des utilisateurs de courrier électronique d'entreprise se baseront principalement sur un navigateur, une tablette ou un client mobile plutôt qu'un bureau", prévoit Gartner. Ils pensent que le taux d'évolutions au cours des quatre prochaines années seront à couper le souffle, menées par les spécifités requises par les besoins de collaboration et le management des appareils portables.

Selon IDC, comme le rapporte Information Week : "sans surprise, les gouvernements verront une croissance explosive sur les secteurs des applications et appareils mobiles, pas seulement en ce qui concerne les citoyens mais aussi pour les entreprises." Une preuve concrête et récente de cette dernière affirmation est que Downing Street (l'Elysée britannique) développe une application iPad pour le premier ministre, David Cameron.

les marchés émergeants comptent


Pendant que les richesses mondiales continuent de se redistribuer, la faiblesse des marchés bien établis, prévue d'ici quelques temps, signifie que les marchés émergeants sont de plus en plus importants. Comme preuve de ce potentiel, les efforts d'Apple pour améliorer son business en Chine ont généré une hausse de 270% de revenus.

"Nous mettons volontairement l'accent sur les marchés émergeants, la Chine en premier pour apprendre, et ensuite utiliser ces connaissances sur d'autres marchés" a déclaré son PDG Tim Cook en avril dernier.

"En 2020, la moitié de la classe moyenne mondiale viendra d'Asie" écrit AT Kearney. "Avec cette croissance en Asie, les fabricants d'appareils mobiles se concentrent sur le Brésil et l'Amérique Latine pour une croissance future. L'Asie Pacifique verra presque 39 millions de vente de tablette l'année prochaine" rapporte Yankee Group.

nos machines parlent


Le nombre mondial de souscriptions à des appareils mobiles passera la barre des 6 milliards en Février. L'Asie Pacifique à elle seule passera les 3 milliards en janvier, déclare Pyramid Research. 2012, c'est aussi l'année de la LTE. La pénétration mondiale du haut-débit passera à 10%. IPTV, software as service, solutions Cloud, l'économie des applications et les services offerts par les nouveaux média mèneront la danse des offres mobiles.

La LTE boostera aussi de nouveaux marchés dans la famille du M2M et des objets connectés, au fur et à mesure que ces derniers deviendront des objets de la vie quotidienne. Cela créera de nouvelles opportunités pour les fabricants de mobiles, selon certains rapports.

"Deux domaines qui voient un début de croissance dans le segment du M2M sont les secteurs de la maison et de l'automobile. Ces derniers ont assisté à une première poussée grâce au Bluetooth et ses capacités de connections de proximité. Ceci dit, des technologies radio plus puissantes font leur bonhomme de chemin dans les deux domaines, fournissant de plus grandes possibilités et opportunités", selon un rapport récent de l'IDATE Consulting and Research.

par Anthony Plewes (http://blogs.orange-business.com/live-france/author/anthony-plewes-1/)


[ARTICLE]Surf anonyme depuis son smartphone

Surfer sur Internet de façon anonyme depuis son smartphone est désormais possible.
Pour se connecter et surfer via le réseau anonyme TOR, il est nécessaire d'utiliser un logiciel client. Grâce au "Tor Browser Bundle", les utilisateurs Windows, Linux ou MacOS sont servis : il y a tout ce qu'il faut pour se connecter rapidement.
Maintenant il est possible de se connecter à TOR depuis un mobile !

Covert Browser pour iPhone et iPad

Miniature de l'image pour Covert Browser.pngCeux qui sont sous iPhone et iPad pourront installer le logiciel "Covert Browser" depuis l'AppStore. Une fois celui-ci installé, c'est très simple. Dès son lancement, elle initialise la connexion au réseau TOR et propose une interface épurée sous la forme d'un navigateur intégré.
Par défaut, votre point de sortie du réseau TOR change de façon automatique. Si on le souhaite, il est possible de passer en mode manuel afin de choisir son point de sortie du réseau TOR. Pas de bookmarks ni de fonctions de partage type Tweeter ou Facebook : ce n'est pas plus mal. Par contre une fonction permet d'effacer son historique, très bien.
Miniature de l'image pour photo3.PNGAvec cette application, il est possible de surfer via TOR depuis une connexion Wifi mais aussi via une connexion 3G. Par contre, au cours des tests, il est nécessaire de re-démarrer l'application lorsque l'on passe de l'une à l'autre.
Dans les deux cas, ne vous attendez pas à surfer à la vitesse de l'éclair : le réseau TOR reste "lent" par rapport à une connexion directe ! L'anonymat a son prix...

pour ceux qui ont jailbreaké leur système

Du coté des bidouilleurs qui ont jailbreaké leur iPhone/iPad, ils peuvent se lancer dans l'installation du portage du client TOR de Sid77. La procédure d'installation est clairement un peu plus technique que dans le cas de Covert Browser : ce n'est pas monsieur ou madame tout le monde qui se lancera dans de telles manipulations.
Une fois le paquet installé selon la procédure fournie, on reconfigure ses paramètres de proxy et c'est fini... le "bénéfice" de cette méthode c'est que toutes les applications utiliseront le réseau TOR (et pas uniquement le navigateur). Cette méthode est donc un peu plus générique que Covert Browser. Par contre, ce seront toutes les applications qui seront "ralenties" par la connexion TOR... donc pas foncièrement très cool pour une utilisation de tous les jours.

possible aussi sous Android

Ceux qui sont sous Android pourront se connecter au réseau TOR grâce à l'application "Orbot" que propose "The Guardian Project". L'installation d'Orbot se fait via l'Android Market. Une fois celle-ci en place, il est possible de sélectionner si l'on souhaite que TOR soit utilisé pour toutes les applications ou seulement certaines. La souplesse est donc au rendez-vous.
Android_Orbot.png

pour ceux qui ne connaissent pas TOR

TOR est un réseau anonyme permettant notamment de surfer sur Internet en conservant son anonymat. Le site officiel de TOR vous en dira plus. Cette vidéo des 5 minutes du professeur Audenard en présente les principes de fonctionnement.
Restons lucides. Le réseau TOR, comme tout système informatique un brin complexe, a des failles. Je vous renvoie aux articles d'Eric Filiol concernant quelques-unes de ses faiblesses (here & here). L'annonce d'Eric Filiol a fait couler pas mal d'encre lors de sa publication fin 2011. Le projet TOR a publié un article disant que tout cela était un peu exagéré.
Je ne suis pas rentré dans les détails sur qui avait raison. Pour autant le réseau TOR reste un moyen de protection intéressant de son anonymat pour le commun des mortels.