Base de données SQLite en ligne de commande sur Android

Publié dans Java | Laisser un commentaire

Imaginons que vous ayez un émulateur d’Android qui tourne actuellement sur votre machine, avec votre application en cours de développement, et que vous aimeriez voir ce qui se passe dans la base de données SQLite de votre application. Rien de plus simple grâce à quelques commandes SQLite.
Tout d’abord, il faut ouvrir votre shell favori (Sur Windows : Menu démarrer > Accessoires > Invite de commandes). Puis utilisez la commande suivante :

monShell>adb -e shell
#sqlite3 /data/data/android.societies/databases/societies.db
...
Ouverture SQLite
...
sqlite>... mes commandes SQLite ...

L’option -e signifie « l’émulateur actuellement ouvert. Donc si vous en avez plusieurs, ou si c’est un vrai téléphone qui est connecté à votre ordinateur : allez lire la doc pour voir comment faire. Comme ça, je dirais : adb devices pour avoir l’id des émulateurs et des téléphones en route. Puis adb -s [id séléctionné] shell. Après le comportement du shell peut varier sur un téléphone.

Quelques commandes SQLite utiles

  • .help: pour connaître la liste des commandes utiles !
  • .databases: listes des bases de données
  • .tables: liste les tables d’une base de données

Et bien sûr, toutes les commandes SQL de votre choix :

SELECT * FROM _table
DELETE FROM _table
REINDEX _table

Plus d’information

Javascript

JSON et C++ avec QJson

Publié dans C / C++ | Laisser un commentaire

Brut de fonderie !

Installation de QJson

Il va falloir vous débrouiller tout seul, d’ici que j’ai le temps de compléter cet article ! En attendant :

Continuer la lecture →

Etendre les types gérés par un QVariant

Publié dans C / C++ | Laisser un commentaire

Par défaut, l’objet QVariant de Qt ne peut contenir que des types simples (int, short, …) et des types Qt de base (QString, …). Mais il est possible d’étendre ce comportement à des objects C++ spécifiques.
En vrac :

  • Ajouter en haut du fichier source (.cpp) où l’on a besoin d’ajouter un type spécifique dans un QVariant, ou de retrouver ce type à partie d’un QVariant:
    Q_DECLARE_METATYPE(MyType);
  • Apparemment, on peut aussi utiliser le code suivant, mais là ça devient flou pour moi:
    int myTypeId = qRegisterMetaType("MyType")
  • Ensuite, pour ajouter la donnée dans le QVariant:
    MyType myData...;
    // ...
    QVariant myVariant= QVariant::fromValue(myData);
  • Et pour la lire :
    // Le cast en (MyType) n'a pas l'air obligatoire
    MyType myRetrievedData = (MyType) myVariant.value();

That’s all folks!

Inspiration pour comprendre mieux QVariant

Logo Virgo

Virgo OSGi and command line

Publié dans OSGi | Laisser un commentaire

I already wrote about Virgo, a complete OSGi stack, based on Equinox and easily integrable on Eclipse (eh, it is done for that). Yes, it is possible to launch and manage our Virgo server using Eclipse (read: Let’s work OSGi Virgo on Eclipse), but if you try to launch a big project like Societies, you might may soon be blocked by an ugly Java « Out of memory ». This is because Eclipse is heavily using the Java memory, and if you launch your OSGi server using Eclipse, you increase again this memory usage.
So, what is the solution? It’s easy: don’t launch Virgo using Eclipse, launch it with command line. So, the server will have its own memory cluster. Lets do this.
Continuer la lecture →

How to clear Cygwin screen in Windows?

Publié dans Geekeries | Laisser un commentaire

How to « clean » our Cygwin window? Not that obvious because the « clean » command doesn’t exist in Cygwin. Anyway, the solution is simple and usefull: CTRL+L. Hum… wait? 🙂
Found thanks to Mahbubur Rahman: » How to clear CYGWIN screen in Windows? Mahbubur Rahman – jQuery, PHP, JavaScript, Codeigniter, CSS.

How to clear Cygwin screen in Windows?

Publié dans Geekeries | 3 commentaires

Comment « cleaner » sa fenêtre Cygwin ? Pas si simple puisque celui-ci n’embarque pas la commande « clean ». La solution est pourtant très simple (et très utile) : CTRL+L. Hum… ça paraît logique 🙂
Trouvé chez Mahbubur Rahman: » How to clear CYGWIN screen in Windows ? Mahbubur Rahman – jQuery, PHP, JavaScript, Codeigniter, CSS.

Interfacer C et C++ : toi aussi déguises-toi en compilo

Publié dans C / C++ | Laisser un commentaire

Code Weblog – Interfacer les langages C et C++, un autre titre pour ce très bon article sur les liens entre C et C++ pourrait être : « C et C++ : toi aussi, déguises-toi en compilo ».
Je crois que je viens de comprendre l’incroyable avantage de l’éditeur de liens !

Quelques ressources UML

Publié dans UML | Laisser un commentaire

L’UML (Unified Modeling Language) est un méta-langage permettant de décrire presque tout, comme par exemple une architecture de système, un modèle de données, ou autre. Il permet notamment, si une méthodologie (qui peut être définie… en UML !) est suivie rigoureusement, de suivre toutes les étapes du cycle de développement en V ! La réalité est un peu plus complexe que cela, et en fait l’UML n’est qu’un sous-langage d’un autre encore plus large, mais restons simple pour l’instant : l’UML est très utilisé de partout par tout un tas de gens qui n’ont pas besoin de savoir réellement ce qu’il est. Je l’utilise notamment régulièrement dans mon travail pour les étapes de conception, ou pour échanger avec un collègue, un collaborateur ou un client. J’en parle même avec ma femme ! Enfin presque…
Bref, l’UML est un domaine très large, et on a bien souvent besoin de documentation pour bien décrire ce que l’on veut. Voici donc quelques ressources et quelques liens que j’ai glané par ci par là. En espérant que cela puisse vous être utile !

Si vous en connaissez d’autres, n’hésitez pas à partager 😉

Logo Eclipse

Automatically generate PHP get and set using Eclipse

Publié dans PHP | Laisser un commentaire

How to automatically generate PHP getter and setter using Eclipse? There are several possibilities, and no perfect one, but let’s try to list them all:

  • Using Eclipse templates: semi-automatic
    Window > Preferences > PHP > Editor > Templates -> New and use something like this:

    private $$${PropertyName};
    ${cursor}    
    public function get${PropertyName}() 
    {
      return $$this->${PropertyName};
    }
    
    public function set${PropertyName}($$value) 
    {
      $$this->${PropertyName} = $$value;
    }
    

    And then, to use this template type its name and press ctrl+space to generate this code. A context menu should also automatically appear when you type the name.

  • Use the Eclipse PDT plugin E-Surf: automatic, useful but not very clean and their is no way to configure it.
  • Use the Eclipse PDT PHPClassGenerator plugin by IBM to generate automatically classes and accessors: automatic but maybe to complex to configure and use. And it can’t generate getters / setters for attributes that have been added after the class creation.

If you don’t know yet how to install an Eclipse plugin: Let’s work OSGi Virgo on Eclipse (fr).

Humpf… At the moment, their is no perfect solution, and it is a shame! In Java, a simple right clic on a class > Source > Generate get/set or Generate toString… That is why developing in PHP on Eclipse is not yet as easy as developing in Java.

WordPress et les extraits d’articles dans l’affichage par catégories

Publié dans Wordpress | Laisser un commentaire

Dans WordPress, lors de l’affichage des articles par catégories, par défaut, un extrait « à l’arrache » est généré par le système. Et cet extrait n’est pas mis à jour lors de la modification d’un article. Ce qui peut être assez gênant. Pour que les articles s’affichent entièrement, ou seulement un extrait selon la configuration des articles, il est nécessaire d’effectuer une petite modification.
Continuer la lecture →