Mot-clé - how-to

[Rétrospective] Hibernate / SQL : Dans lequel nous optimisons les opérations de recherche

Préambule : Ce billet fait partie d'une rétrospective listant les billets que j'ai produit ou co-produit sur le blog ekito people

Dans le cadre d’un projet basé sur des technos Play Framwork + Spring + Hibernate, j’ai eu le besoin de faire des recherches en base de données avec les contraintes suivantes :

  • Les informations à afficher doivent être formatées différement des objets métiers
  • Les objets métiers sont répartis sur plusieurs entités inter-dépendantes

Lire la suite : [Hibernate / SQL] Dans lequel nous optimisons les opérations de recherche

 

Composant RFduino pour Fritzing

English Français

Si vous possédez un module RFduino et êtes un utilisateur de Fritzing, alors vous avez maintenant un composant pour ce dernier.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

RFduino Fritzing Part

English Français

If you own an RFduino module and are a Fritzing user, you now have a Frizting part for it.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

Créer une app iOS pour RFduino

English Français

Dans ce tutoriel, je vais expliquer comment créer le squelette d'une app iOS pour RFduino.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

Create an RFduino enabled iOS app

English Français

In this tutorial, I'll explain how to create the skeleton of an RFduino enabled iOS app.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

TinyLaserTurret - Un ATtiny85, un module laser, un Nunchuck, et quelques servos

English Français

TinyLaserTurret est une simple tourelle laser basée sur un ATtiny85, et contrôlée à l'aide d'un Nunchuck.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

TinyLaserTurret - An ATtiny85, a laser module, a Wii Nunchuck, and some servo motors

English Français

TinyLaserTurret is a simple ATtiny85 based laser turret, with Nunchuck control.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

TinyWireMCP23008 - Bibliothèque MCP23008 pour un micro-contrôleur ATtiny85

English Français

TinyWireMCP23008 est une bibliothèque qui facilite l'utilisation du circuit d'extension de port I2C MCP23008 avec un micro-contrôleur ATtiny85.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

TinyWireMCP23008 - MCP23008 library for ATtiny85 microcontroller

English Français

TinyWireMCP23008 is a library that ease the use of the MCP23008 I2C port expander with an ATtiny85 microcontroller.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

ArduTemperatureMonitor : Thermomètre basé sur un Arduino

English Français

ArduTemperatureMonitor un thermomètre basé sur un Arduino, avec affichage des températures actuelle, minimale et maximale, et une sauvegarde dans l'EEPROM des deux dernières en cas de coupure de l'alimentation..

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

ArduTemperatureMonitor : Simple Arduino based temperature monitor

English Français

ArduTemperatureMonitor is a simple Arduino based temperature monitor, with display of current, minimal and maximal temperature, with EEPROM storage of minimal and maximal values to survive power loss.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

TinyRover : ATtiny85 based obstacle avoiding rover

English Français

After a playing session with a Raspberry Pi, I decided to enter into the world of Arduino. To be more precise, I was seduced by ATtiny85 microcontroller size, which is compatible with Arduino IDE.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

TinyRover : rover à évitement d'obstacle basé sur un ATtiny85

English Français

Après avoir joué avec le Raspberry Pi, je me suis dit que j'allais essayer le monde d'Arduino. Plus précisément, j'ai été séduit par la compacité du micro-contrôleur ATtiny85, compatible avec l'environnement de développement Arduino.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Partie 3 : Assemblage final

English Français

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette troisième partie concerne l'assemblage final.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Part 3 : Final assembly

English Français

MovingRaspi is a project I had some times ago, and I've just decided to start. Project's goal is to motorize a Raspberry Pi and control it with an iPhone (or iPad, or iPod Touch). This third part is about the final assembly.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

MovingRaspi - Partie 2 : Communication iPhone / Raspberry Pi

English Français

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette deuxième partie concerne la communication entre l'iPhone et le Raspberry Pi.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Part 2 : iPhone / Raspberry Pi communication

English Français

MovingRaspi is a project I had some times ago, and I've just decided to start. Project's goal is to motorize a Raspberry Pi and control it with an iPhone (or iPad, or iPod Touch). This second part is about the communication between the iPhone and the Raspberry Pi.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

MovingRaspi - Partie 1 : Étapes préliminaires

English Français

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette première partie concerne les étapes préliminaires au démarrage du projet.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Part 1 : First steps

English Français

MovingRaspi is a project I had some times ago, and that I've just decided to start. Project's goal is to motorize a Raspberry Pi and control it with an iPhone (or iPad, or iPod Touch). This first part is about the preliminary steps.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

How-To iOS : Changer la couleur du segment sélectionné d'un UISegmentedControl

English Français

Le contexte

Un des usages de l'objet UISegmentedControl peut être celui d'une barre d'onglet pour naviguer entre des vues, ou bien celui d'un sélecteur entre différentes valeur. Dans le cas d'un UISegmentedControl utilisant le style UISegmentedControlStyleBar, le segment sélectionné est juste plus sombre que les segments non sélectionnés. Selon le choix de couleur du contrôle, cette distinction peut être assez difficile à faire (exemple ci-dessous).

Standard behavior for UISegmentedControl

Le but de ce billet est de montrer qu'avec un peu de code, il est tout à fait possible d'obtenir un comportement autre, avec une couleur pour le segment sélectionné tout à fait différente de celle des autres segments (exemple ci-dessous).

Better behavior for UISegmentedControl

Le code

Tout d'abord, vous trouverez en fin de ce billet une archive zip avec un projet XCode contenant le code utilisé pour ce billet. Pour la suite, il faudra tenir compte des éléments suivants :

  • L'objet UISegmentedControl doit être du style UISegmentedControlStyleBar (obligatoire).
  • Un selecteur sur « Value Changed » pointe sur la méthode « -(IBAction)selectSegment:(id)sender » (à adapter selon vos besoins).

Il faut ajouter à la classe dans laquelle vous manipulez l'objet UISegmentedControl une fonction permettant de trier des UIView en fonction de leur coordonnées horizontales :

NSInteger static compareViewsByOrigin(id sp1, id sp2, void *context)
{
    // UISegmentedControl segments use UISegment objects (private API). But we can safely cast them to UIView objects.
    float v1 = ((UIView *)sp1).frame.origin.x;
    float v2 = ((UIView *)sp2).frame.origin.x;
    if (v1 < v2)
        return NSOrderedAscending;
    else if (v1 > v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}

Puis, dans la méthode « -(IBAction)selectSegment:(id)sender », ajoutez simplement le code suivant :

// Get number of segments
    int numSegments = [betterSegmentedControl.subviews count];
 
    // Reset segment's color (non selected color)
    for( int i = 0; i < numSegments; i++ ) {
        // reset color
        [[betterSegmentedControl.subviews objectAtIndex:i] setTintColor:nil];
        [[betterSegmentedControl.subviews objectAtIndex:i] setTintColor:[UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1]];
    }
 
    // Sort segments from left to right
    NSArray *sortedViews = [betterSegmentedControl.subviews sortedArrayUsingFunction:compareViewsByOrigin context:NULL];
 
    // Change color of selected segment
    [[sortedViews objectAtIndex:betterSegmentedControl.selectedSegmentIndex] setTintColor:[UIColor colorWithRed:255/255.0 green:0/255.0 blue:0/255.0 alpha:1]];
 
    // Remove all original segments from the control
    for (id view in betterSegmentedControl.subviews) {
        [view removeFromSuperview];
    }
 
    // Append sorted and colored segments to the control
    for (id view in sortedViews) {
        [betterSegmentedControl addSubview:view];
    }

 

- page 1 de 3