jeudi 5 juin 2014

CSS : Design By the Grid

Bootstrap

Développeurs ne nous leurrons pas, n’est pas « designer » qui connaît le HTML.  C’est pourquoi, plusieurs y ont réfléchi et ont développé des librairies CSS afin de mettre en place des concepts de présentation qui permettent de structurer la disposition des pages web.

Un des concepts très populaire, est l’utilisation d’un positionnement par « grille ».  Ce type d’affichage existe depuis le début de l’édition d’impression.    Visuellement, la page est séparée par zone. De là, on contrôle l’affichage de chacune de celles-ci par CSS.  C’est très utile lors de l’utilisation de menu, d’un affichage par colonne,  l’affichage de message etc.

Les gens de Twitters (Bootstrap), ZURB (Fondation) et même le gouvernement Canadien (WET-BEOW) se sont penchés sur la question et ont développé des plateformes CSS pour standardiser la présentation de leur site.  L’avantage n’est pas seulement d’uniformiser l’affichage mais aussi de s’assurer du maintien de celle-ci selon la dimension de l’écran de l’utilisateur, que ce soit sur un mobile ou sur un écran d’ordinateur.  Ainsi, on assure la réactivité du site selon le médium utilisé pour accéder au site.

Dans le cas de Bootstrap l’écran est séparé en douze colonnes.  Les colonnes ont une largeur définie par la résolution du moniteur, variant de 60 pixels ou moins pour une tablette ou 95px pour un très large écran. Par la suite, il est possible de « fusionner » des cellules pour avoir, exemple, une ligne qui utilise 4 colonnes, chacune totalisera la largeur de trois cellules et ce, simplement en manipulant les classes CSS des éléments HTML.

Exemple Bootstrap :

Bootstrap

Le « GridSystem » est un élément majeur supporté par cette librairie mais d’autres éléments ont été normalisé tel que, le texte, l’utilisation des polices de caractères, la présentation des formulaires, les boutons, les images etc. Ces outils sont de distribution libre et peuvent être incorporés à toutes les solutions web, de Java à .Net ou simplement Javascript.

Liens

jeudi 1 mai 2014

Périphériques : Ayez du Beat avec une Pill

PILL 2.0

J'ai récemment acquis ou plutôt reçu le mini-haut-parleur Beats.  Le Pill 2.0.  C’est la deuxième fois qu’un emballage m’impressionne.  La première était un produit Apple.  Tout est pensé pour que l’expérience utilisateur comme dès le moment où nous touchons à la boîte.


Voici comment Apple commente cet objet sur leur site:

"Totalement portative, l’enceinte Pill de Beats est si légère que vous pouvez l’emporter et l’installer n’importe où. Sa taille réduite vous permet de la glisser dans tout sac que vous prenez avec vous. Vous pourrez donc profiter d’un son de haute qualité où que vous soyez."

VRAI, le son est excellent pour une caisse de cette taille,  mon bémol va  à sa résistance aux chocs où la grille se cabosse facilement lors de manipulations, disons, malencontreuses.

"Deux enceintes valent mieux qu’une. Synchronisez deux enceintes Pill en les faisant se toucher pour qu’elles fassent la lecture de la même chanson. …  …Le nouveau son ambiophonique. Faites se toucher deux enceintes Pill à deux reprises pour que l’une devienne la sortie de gauche et l’autre la sortie de droite."

Je n'ai pas essayé cette fonctionnalité.  Par contre, comme le prix de ce petit bidule est assez élevé, si vous êtes rendu à vouloir investir autant de sous,  le nouveau « Beats Pill XL » serait peut-être plus indiqué.

"Recharge d’appareils : servez-vous de l’enceinte Pill pour recharger votre iPhone ou tout appareil USB externe"

Un bonbon, mais c'est une belle attention et une approche très intéressante.  Finalement, c'est une pile qui joue aussi de la musique, pourquoi pas!

"Jumelage rapide et facile à tout appareil Bluetooth ou à une autre enceinte Pill"

VRAI,  mon iPad 3, Nexus 7, cellulaire MOTO G n'ont aucun problème à se jumeler.  Dans le cas des appareils qui ne sont pas équipés de NFC ou de Bluetooth, une entrée auxiliaire à laquelle on peut brancher un fil est disponible.

De plus si votre Pill est synchronisé sur un téléphone, le micro intégré aux Beats vous permet de prendre les appels en mode main libre.

Quatre boutons sont accessibles sur le Beat.  Power, Volume+ Volume- et le signe Beat lumineux placé au centre, le « B button ».  Avec ce seul bouton "Beats" il est possible de contrôler le flux musical.  Une simple pression fait une pause ou reprend  alors qu'une double pression passe à la suivante, une triple à la précédente et ainsi de suite (si suite il y a).  Toujours avec le même bouton, on gère aussi la prise d'appel téléphonique.

Avec toutes ces gymnastiques de cliques, il est possible que vous ayez plus souvent le Pill dans vos mains qu'à distance, surtout si vous êtes un "pitonneux" compulsif et que vous vous rappelez des séquences adéquatement.  Le mieux est encore d’utiliser l’appareil accouplé pour contrôler notre expérience d’écoute.

Liens

lundi 30 décembre 2013

CSS : Mise en forme avec Formalize CSS

Formalize CSS

Vous avez peut-être pris la résolution de vous mettre physiquement en forme en 2014. Je vous encourage à persévérer et faire de cette résolution un accomplissement. Vous pouvez le faire aussi pour vos formulaires Web, et pratiquement sans effort. Nous avons tous remarqué que l'affichage des champs des formulaires diffère selon les fureteurs. La présentation varie selon le système d'exploitation et/ou du navigateur utilisé. Vos maux seront bientôt qu'un souvenir, car quelqu'un c'est penché sur ce problème et a écrit une librairie pour résoudre ce casse-tête. Elle se nomme "Formalize".

Illustration: Extrait du site formalize.me. Présentation des fureteurs sans formalizes.
Il est presque gênant que j'ai à écrire autant pour expliquer une extension qui s'intègre aussi simplement. Pour appliquer la librairie à nos pages il s'agit d'ajouter ces quelques lignes et le tour est joué.


<head>
<link rel="stylesheet" href="formalize.css" />
<script src="jquery.js"></script>
<script src="jquery.formalize.js"></script>
</head>


Ainsi, vous aurez maintenant un rendu uniforme et une expérience utilisateur similaire peu importe la plate-forme utilisée par vos usagers.


Liens



mercredi 20 novembre 2013

CSS : Faire plus avec LESS

LESS

Le concept de préprocesseur est à la mode. Nous n'avons qu'à penser à TypeScript et CoffeeScript pour le Javascript. Haml pour le HTML et son équivalent pour le CSS, nommé SASS. LESS en est un pour le CSS, inspiré de SASS. Contrairement à celui-ci, LESS est de source et syntaxe Javascript plutôt que Ruby. Chaque ligne de code est interprétée et transformée en CSS régulier.

Plutôt que d'écrire des CSS statiques, LESS étend les fonctionnalités du CSS, en lui ajoutant des notions dynamiques, ce qui allège la code source et simplifier la compréhension. Il peut être roulé sur le serveur, un préprocesseur logiciel doit être installé, ou directement sur le poste client.

Afin de développer des feuilles de style efficacement, LESS ajoute de la structure et des notions de programmations ce qui accélère la réalisation et la maintenance du rendu visuel des applications. On peu ainsi, créer des variables, des fonctions et utiliser des références à des fonctions existantes de la plateforme.

Un exemple d'utilisation de variables :
Avant lors de l’édition
@color: #4D926F;
#header {
  color: @color;
}
h2 {
  color: @color;
}


Après,  lorsque compilé
#header {
  color: #4D926F;
}
h2 {
  color: #4D926F;
}


Des extensions pour LESS sont disponibles pour la majorité des éditeurs populaires afin faciliter sont utilisations.  Pour vous amuser, il y a un éditeur en ligne disponible : http://less2css.org/

Liens




lundi 28 octobre 2013

ZenCoding : Accélérer votre développement

ZenCoding

Le Zen Coding (maintenant appelé Emmet) est un ensemble d'extensions pour les éditeurs de texte HTML qui permet d'accélérer la saisie de la syntaxe de programmation. Plusieurs outils supportent cette méthode d'entrée, tel que Visual Studio, Eclipse et Sublime text. C'est comme si "l'intelli-sence" avait eu une "date" avec les expressions régulières.

Par exemple, avec l'ajout du module "Web Essentials" dans Visual Studio, il est possible d'avoir un échantillon de texte simplement en tapant "Lorem" suivi de la touche de tabulation, suite à cette action trente mots apparaîtront pour remplir l'espace.

Par contre, si je désire un texte un peu plus court. Je peux taper "Lorem10", et dix mots s'afficheront. Avec une simple liste de commandes je peux générer des structures HTML et CSS très rapidement.


Par exemple, je peux créer un élément "div" avec comme titre "MLA3" et un identifiant "01"

Commande: div[Title="MLA3"][id="01"] + TAB

Résultat : <div title="MLA3" id="01"></div>

Avec une expression un peu plus complexe telle que :

ul>li*5>lorem3

J'obtiens un bloc complet d'une énumération en HTML.

<ul>
    <li>Lorem ipsum dolor.</li>
    <li>Sit amet, consectetur.</li>
    <li>Adipiscing elit fusce.</li>
    <li>Vel sapien elit.</li>
    <li>In malesuada semper.</li>
</ul>


N'est-ce pas "Wonderful"?  Il vaut la peine de maitriser cette syntaxe puisqu'elle est pratiquement identique d'un logiciel à l'autre, pour ceux qui la supportent. Elle nous fait sauver un temps précieux à écrire, mais aussi à chercher et corriger les erreurs de syntaxe HTML/CSS que nous aurions pu faire si nous l'avions tapé du <début> à la </fin>! De plus, vous aurez l'air d'un disciple de Bruce Lee, au sommet de son art!

En voici une dernière juste pour vous pratiquez!

Liens

vendredi 20 septembre 2013

SignalR : Le Web en temps réel

SignalR

En ASP.NET, si on veut une mise à jour de la page on doit rafraichir l'affichage, pour voir les nouvelles données. Évidemment, nous pouvons par "gymnastique" dynamiser le rendu pour produire un affichage en temps réel.


SignalR est un API librement distribué, qui persiste la connexion entre le client et le serveur. Avec cette librairie, le serveur est en mesure d'appeler des fonctions Javascript dans le fureteur du client (Remote procedure calls-RPC) de façon asynchrone. Ceci diffère du fonctionnement habituel du protocole HTTP classique qui est basé sur un modèle de "requête-réponse" où le serveur doit attendre que le client demande l'information pour lui envoyer.

SignalR permet de créer des applications de "chat", l'affichage de résultat sportif en temps réel, des jeux, l'affichage de données en continu. Il est en mesure d'utiliser plusieurs types de protocoles de transport et d'utiliser le plus efficace, selon le fureteur du client. Sa préférence est de communiquer par HTML5 mais si ce n'est pas possible il tentera d'utiliser d'autre processus moins efficace mais adapté au fureteur.

Voici un exemple de "Chat" en quelque ligne seulement :

Fichier HTML Client:
var chat = $.connection.chat;
chat.name = prompt("What's your name?", "");

chat.receive = function(name, message)
{
    $("#messages").append(name + ": " + message);
}

$("#send-button").click(function()
{
    chat.distribute($("#text-input").val());
});

Fichier Serveur:
public class Chat : Hub
{
    public void Distribute(string message)
    {
        Clients.receive(Caller.name, message);
    }
}


Microsoft a incorporé SignalR dans Visual Studio 2012 et la plateforme .Net 4.0+. Voilà une solution alternative à Node.JS intéressante.

mardi 23 juillet 2013

Choisir un moniteur TN ou IPS

Moniteurs : TN ou IPS

Pourquoi le prix de certains moniteurs de même dimension peut varier de plusieurs centaines de dollars?  Évidemment on parle de qualité des composantes, de son « look », des options disponibles.  Par-dessus tout, la qualité d’un moniteur provient de sa dalle d’affichage.

Il existe plusieurs grandes familles de dalles : Plasma, LCD, OLED. Dans le cas des moniteurs d’ordinateurs le plasma ne peut pas être considéré puisqu'il n’est pas disponible sous une diagonale de « 35’’» pouces et moins.

Dans le cas présent, je ne parlerai pas des écrans OLED (organic light-emitting diode) qui deviendront sans aucun doute la référence, mais pour l’instant, trop onéreuse.  Plusieurs grands manufacturiers ont annoncé des modèles OLED pour le marché des consommateurs dans les mois à venir.

Ce qui nous laisse les moniteurs LCD, surement comme celui avec lequel vous lisez ceci.

Deux grandes sous-catégories et leurs hybrides se sont popularisés.  Soit les « Twisted nematic (TN) » qui sont les  écrans LCD classique ou les « In-plane switching (IPS) », utilisés dans les produits Apple, par exemple. Chacune peut être rétroéclairée par des « néons » ou des « LEDs ».  

IPS vs LCD TN:
Caractéristique
LCD TN
IPS (e-IPS, s-IPS…)
Angle de visionnement
Moyenne
Très grande
Qualité d’image
Moyenne / Bonne
Très bonne
Justesse des couleurs
6bit
8bit
Taux de réponse
2ms
5ms
Prix
Abordable
Dispendieux
*Ces caractéristiques peuvent varier d’un constructeur à l’autre.


Les constructeurs ont développé des sous-types de dalles IPS afin de diminuer les coûts de production.  Il est possible de trouver un écran « e-IPS » pour environ 300$. À noter que si vous comparez  des moniteurs, assurez-vous de le faire sous la même résolution.
  •          HD : Connu aussi sous 720p, résolution de 1280x720 pixels
  •          Full HD (FHD): 1080p, résolution de 1920x1080 pixels
  •          Ultra HD (UHD): 4k, résolution de 3840x2160, 4 fois le nombre de pixels de la FHD.
Ce sont les trois résolutions les plus connues, car elles sont aussi utilisées par les téléviseurs, mais les moniteurs d’ordinateurs ont un plus grand éventail de sélection.

Les joueurs préféreront un écran "TN" car ils ont un taux de rafraîchissement élevé. Alors que les concepteurs graphiques et/ou développeurs préféreront un moniteur IPS, dû aux couleurs plus précises et aux meilleurs angles de visionnement.

Liens

TN, PS Explained (Très détaillés)
Not All LCD Panels Are Created Equal
LCD
TFT LCD
IPS
Résolution

vendredi 21 juin 2013

Ruby on Rails



Ruby on Rails est un "framework open-source" de développement web pour le langage de programmation Ruby.  Son succès est dû à son adoption par de grandes entreprises qui ont su bénéficier de la rapidité de développement et du gain de productivité de cette plate-forme pour se démarquer.  Des entreprises comme Amazon, Cisco, IBM, Groupon, Yahoo! ont contribué à la popularité de cet environnement de développement.

Histoire


Ruby en soi est âgé de plus de 10 ans.  Rails fut créé en 2003 par David Heinemeier Hansson.  En 2004, la plateforme fut extraite du site web Basecamp, un site de gestion de projets produit par 37signals.  Cette même entreprise est aussi reconnue pour Campfire, un outil de collaboration/chat en ligne pour professionnels.  Apple en 2007 distribua officiellement Ruby on Rails avec leur système d'opération Mac OS X.  Cette contribution de la pomme, propulsa Ruby dans le palmarès des langages les plus utilisés. "Ruby on Rails" est sous l'influence de plusieurs "Design Pattern" dont le très répandu MVC (Model-View-Controller).
(Schéma type d’une plateforme mvc)

Ruby est un langage Objet.  Les fichiers ont comme extension des ".rb" (model, controller) ou ".erb" (view)

Exemple typique d'une classe contrôleur:

class UsersController < ApplicationController

  def index
                 ...
  end
  ...
end


Un exemple d'une vue:

<table>
<% @users.each do |user| %>
  <tr>
    <td><%= user.name %></td>
    <td><%= user.email %></td>
    <td><%= link_to 'Show', user %></td>
    <td><%= link_to 'Edit', edit_user_path(user) %></td>
    <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>
</table>













Lors de l'appel la vue sera convertie en  HTML qui sera ensuite retourné au fureteur par le contrôleur. Un cas classique de MVC.

Bien que relancé par Apple, ce langage mature connait une nouvelle popularité aussi sur PC.


Liens



mardi 30 avril 2013

IFTTT : Automatiser le Net

IFFT

Souvent sur le Net, je me retrouve à me créer des routines « manuels » pour exécuter des tâches afin de maintenir une certaine intégrité entre mes sites préférés. J’ai récemment trouvé un site qui tisse les liens manquants entre les applications qui à l’origine n’ont pas nécessairement de lien. IFTTT, « If This Then That », se prononce comme « gift » sans le « g », comble ce besoin. Non seulement, il lie les sites, mais il peut aussi faire le pont entre vos appareils, envoyer des SMS, synchroniser de fichiers etc.

Sous la définition de « recette » le site crée des évènements qui en fonction d’une action sur un site en déclenchent un autre sur un ou plusieurs autres sites.


Des exemples de recettes :
  • «Lorsque je suis marqué sur Facebook, sauvegarde la photo dans mon Dropbox»
  • «Quand je mets à jour ma photo de profile Facebook, met à jour ma photo de profile Twitter»
  • «J’aimerais recevoir un SMS chaque matin m’indiquant la météo de la journée»
  • «Si les conditions météo actuelles changent pour de la pluie, envoyez-moi un courriel sur-le-champ». Ainsi je peux préparer mon parapluie.

Ce n’est là qu’une infime partie de tous ce que l’on peut faire. On peut créer et partager une nouvelle règle à partir d’un gabarit de recettes ou simplement utiliser une recette existante.


Plus de 59 applications, appelés « channels », ce qui donne un nombre quasi-illimité de possibilités.

Liens

IFTTT
Wiki IFTTT


vendredi 29 mars 2013

Firefox: Développer une extension (Add-On)

Firefox Add-On
Mon fureteur de prédilection est Firefox.  Une des fonctionnalités que j'aime bien est la possibilité d'épingler un onglet. Les onglets épinglés vous permettent de toujours garder vos applications Web préférées comme Facebook, Gmail et Twitter ouvert. Ils sont petits, ne peuvent pas être fermés accidentellement et s'ouvrent automatiquement lorsque vous démarrez Firefox. Une notification visuelle nous indique qu'il y a du nouveau lorsque le site visité est modifié. 

Par contre, j'ai beau avoir cherché, on ne peut pas avoir de notifications sonores et je n'ai pas trouvé d'extension qui me permettait d'ajouter cette fonctionnalité.  J'ai mis l'épaule à la roue et entrepris de développer une extension pour pallier ce manque.

Je me suis enregistré sur le  « Developer Hub » de Mozilla et  suite à mes lectures, j'ai opté pour la solution de développement en ligne proposé par Firefox.



J’ai d’abord fait le petit tutorial « How to Get Started » et ensuite je me suis lancé.

Tout le développement est en Javascript. La documentation est excellente et j’ai facilement réussi à faire le minimum que je désirais soit, entendre un son lors d’une mise à jour d’un onglet épinglé.  Chacun des outils nécessaire au développement (éditeur, débugger, test etc.) sont disponible à même l’éditeur en ligne ou inclus dans l’installation du fureteur.

Lorsque mon développement fut complété, j’ai documenté ma nouvelle extension afin de la soumettre au bureau de contrôle de Mozilla en suivant chacune des étapes. Après 3-4 jours d’attente l'application fût disponible dans la librairie grand public et accessible à tous.  

Lorsqu’une nouvelle version de « FireFox » est disponible, Mozilla fait un test de compatibilité pour s’assurer que l’extension fonctionne bien avec la prochaine livraison de son fureteur.

Si vous êtes intéressé, mon extension ainsi que mes sources sont disponibles publiquement.



Liens