Drag2Crop mootools plugin : Drag picture inside a box

UPDATE 09/06/2010 : Start drag at “Top” and “Left” values.

facebook_thumbnail

Drag2Crop : This small mootools plugin extends “Drag plgin” allow to drag picture inside a small box to get a thumbnail showing the good part of the picture, and after Drag complete return values [Top, Left, Width, Height] of picture relative to the box (Like facebook).

The MooTools 1.2 JavaScript

var Drag2Crop = new Class({
    Extends: Drag,
    Implements:[Options,Events],
    initialize: function(picture, options) {
        this.setOptions({
            relative    :    'relative',
            modifiers   :    { x: 'scrollLeft', y: 'scrollTop' },
            style       :    false,
            invert      :    true,
            top  		:    0,
            left		:    0,
            onComplete  :    this.complete.bind(this),
            debug       :    false
        }, options);
		this.top        =     this.options.top.toInt();
        this.left       =     this.options.left.toInt();
        this.picture    =     $(picture);
        this.relative   =     $(this.options.relative).setStyles({cursor:'move'}).scrollTo(-this.left, -this.top);
 this.parent(this.relative);
 this.__construct();
 },
 __construct	:    function(){
 if(Browser.Engine.trident) document.ondragstart = function (){return false;}; // IE fix
 },
 coordinates	: function(){
 this.getCoordinates	=	this.relative.getScroll();
 this.getSize		=	this.relative.getSize();
 this.width  		=   this.relative.getSize().x.toInt();
 this.height  		=   this.relative.getSize().y.toInt();
 this.left  			=   -this.getCoordinates.x.toInt();
 this.top    		=   -this.getCoordinates.y.toInt();
 },
 complete    :    function(){
 this.coordinates();
 this.fireEvent("done",[this.top,this.left,this.width,this.height]);
 }
});

The Usage

window.addEvent('load', function(){
	new Drag2Crop('pictureId', {
		relative 	: 	'relative',
		top			:	-30, // Start at top : -30
		left		:	-60, // Start at left : -60
        onStart		:    function(){
            this.picture.setStyles({opacity:0.5});
        },
        onDone      :    function(top,left){
            this.picture.setStyles({opacity:1});
			$('test').set('text', 'Top : ' + top + ' | Left : ' + left);
        }
    });
});

See Demo

GitHub Repository

Projet @ Mootools Forge

Events :

beforeStart : Executed before the Drag instance attaches the events. Receives the dragged element as an argument.

start : Executed when the user starts to drag (on mousedown). Receives the dragged element as an argument.

snap : Executed when the user has dragged past the snap option. Receives the dragged element as an argument.

drag : Executed on every step of the drag. Receives the dragged element and the event as arguments.

complete : Executed when the user completes the drag. Receives the dragged element and the event as arguments.

cancel : Executed when the user has cancelled the drag. Receives the dragged element as an argument.

top: (number) start drag at top value.

left: (number) start drag at left value.

done : Executed when the user completes the drag.Receives the values [Top, Left, Width, Height] of picture relative to the box

Cloture d’un compte bancaire : Le service :D

Si vous cherchez un exemple de lettre de clôture d’un compte bancaire au Maroc essayez ma version téléchargeable ici .

Je peux vous dire que j’ai eu la pire “bureaucratique réception” de ma vie !!! Un service qui a rapidement écrasé mes bons vieux souvenirs avec la “BMCE CENTRE D’AFFAIRES SAFI” il y a quelques années déjà, le jour ou j’ai ouvert mon premier compte bancaire accompagné seulement de ma CIN, mais aussi le jour ou tout le personnel de la banque s’est échanger mon chèque électronique avant de se décider, c’était leur première fois !!!

Aujourd’hui la jeune dame au cheveux court et corps plein nommée N (haha) s’est donné la peine de me montrer combien je suis frivole.

Heureusement que j’ai pris l’habitude de s’en foutre de la façon dont le “citoyen basique” comme moi se traite parfois dans différents services par quelques employés, alors dès que j’ai rentré chez moi : une douche suivi par une sieste et sujet achevé !!

nb : Merci Simo

The thrilling potential of SixthSense technology

Smarty : {capture} to put code in your header page

If you are using Smarty to generate your templates, I strongly advice you to take advantage of the function: {capture}

This function is used to collect the output of the template between the tags {capture}{/capture} into a variable instead of displaying it.

Exemple  :

index.tpl

{capture name=header}
{literal}
<script type="text/javascript">
alert('Javascript in head');
</script>
{/literal}
{/capture}
<!-- Include Page Header using Smarty {include} -->
{include file="header.tpl"}
My index page content

header.tpl

<html>
<head>
<title>Page ttle</title>
{$smarty.capture.header}
</head>

Nb : “Javascript code” must be placed between {literal}{/literal}

SDK Iphone pour windows et linux

La moindre des choses qu’on puisse dire sur la politique d’Apple  concernant le développement des application destinées à Iphone et Ipod touch est “Meeeeeeeeeeerde”.

Apple tente de vendre un Mac pour tout curieux qui souhaite personnaliser son mobile à la pomme, puisque son kit de développement XCODE (Iphone SDK) n’est disponible que pour son OSX (à partir de leopard 1.5.2 si je ne me trompe pas).

En gros, les utilisateurs de Linux et Windows sont ignorés par Apple, ce qui laisse deviner que la croissance positive des ventes d’Iphone a peut être une grande influence sur la vente des Macs.

Alternative PC :

Depuis la sortie des Mac Intel, certains bricoleurs ont déjà hackés OSX pour le faire tourner sur PC, idem pour “Snow Leopard”, il ne reste plus qu’a trouvé un bon tutoriel.

Alternative Linux :

On parle beaucoup de iphone-dev Toolchain, disponible pour plusieurs plateformes et qui permet de coder en Objective-C comme pour XCODE.
Plus d’infos sur : http://code.google.com/p/iphone-dev/wiki/Building [EN].
NB : malheureusement pour les utilisateurs de Windows “iphone-dev Toolchain est indisponible.

Alternative Windows :

Winchain : Un nom familier pour les Linuxiens, en faites c’est peut être une reprise de l’iphone-dev toolchain et qui a été peut être abandonner, à voir les commentaires de la partie HowToUse j’en doute que ca marche encore pour l’iphone OS 3.X mais bon il faut l’essayer avant.

DragonFireSDK (Payant) : Il vient de sortir, On dit que c’est un SDK pour Windows, mais en vérité (après un test en Bêta) c’est une dizaines de fonctions dite API, donc rien à voir avec le vrai SDK d’Iphone, la programmation se passe dans Microsoft Visual C ++, et après compilation, DragonFireSDK émule le code dans une fenêtre sous forme d’Iphone, au final vous devez uploader votre application sur http://dragonfiresdk.com/buildserver.htm qui convertira votre code en Application Iphone dans un de leurs serveurs MAC, la définition de DragonFireSDK serai donc : Intermédiaire entre Windows et le SDK d’iphone sous Mac

Malgré les alternatives, vous n’êtes pas le bienvenue dans l’App Store, à moins que vous disposez d’un Mac et d’une Apple ID.
Y a t’il une solution pour faire fonctionner Android sur mon Ipod Touch ?

Plesk : How to pointing domain to a subdirectory

First create your “subdirectory_name” then run terminal and edit httpd.include (vi, pico …):

pico /var/www/vhosts/domain.com/conf/httpd.include

Change every “/var/www/vhosts/domain.com/httpdocs
To “/var/www/vhosts/domain.com/httpdocs/subdirectory_name

Restart apache :

service httpd restart

This trick can be used to configure another domain to be pointing in another domaine : exemple

Change every “/var/www/vhosts/domain2.com/httpdocs
To “/var/www/vhosts/domain1.com/httpdocs

Macbook Pro mort ! Black Screen

Cela fait 2 mois que mon Macbook pro est en sommeil absolu, il est victime d’une bug dans la série Nvidia geforce 9400 GT appelé “Black Screen of death“:/.

La bonne nouvelle c’est que Apple s’engage a fixer cette bug gratuitement dans un de leurs Apple Store http://support.apple.com/kb/TS2377 .

La mauvaise nouvelle, il n’existe pas d’Apple Store au Maroc mais seulement des Apple Centers.

Donc j’ai fait appel a mes tournevis et je vous dit pas, le MBP est foutu !!!

Conclusion : mon expérience ratée avec MBP  s’arrête là, maintenant je suis convaincu que rien ne vaut la communauté PC, c’est vrai que les ordinateurs Mac ont plus de charme mais comme Google dirait :

(J’ai rien dir moi !), finalement je compte switcher vers PC et je me débrouillerai pour y installer OSX, mais je ne sais pas quel marque/model choisir, si vous avez des proposition, merci d’avance.

On pistonne les noms de domaine *.ma ?

Je vous laisse avec quelques photos qui expliquent une situation qui m’est arrivée lors de l’enregistrement d’un libre domaine “.ma”, et jugez-vous même !

PS : “Je suis Marocain résidant au Maroc depuis naissance, et le nom de domaine n’est pas un nom de ville ni de terme technique de l’Internet ni nom de profession réglementée et n’est pas un terme lié au fonctionnement de l’État. (Source : http://www.nic.ma/enregistrer.asp)

1-

Un petit screen d’une phrase que tout Marocain aimerait qu’elle soit vraie ! (Source : http://www.nic.ma/explication.asp)

2-

Un petit screen d’une opération de routine que tout Marocain fait pour quérir un nom de domaine “ocs.ma” chez un Prestataire confirmé le : 24/08/08 16:31

Après un mois …

termes techniques de l’Internet

Mise à jour Snow Leopard 10.6.2 : Menus barre disparu

Pressé d’installer la mise à jour 10.6.2 de Snow Leopard, je me retrouve sans la barre de menus

Capture d’écran 2009-11-17 à 01.30.21

Une situation merdique mais bon, il fallait juste patienter quelques jours pour que d’autres partagent leurs expériences.

1 – Si vous utilisez Istats regardez par ici : http://forums.appleinsider.com/showthread.php?t=102462

2 – Si non (comme dans mon cas) ce billet est votre sauveur : http://www.mymacosx.com/tricks-and-tips/10-6-2-caused-empty-menu-bar-spotlight-icon-disabled.html

Capture d’écran 2009-11-17 à 02.22.27

Convertir window-1256 vers utf-8 VS 1and1 hosting rules

Il est très facile de convertir une chaîne d’un encodage à un autre sous PHP avec la fonction iconv()

$string = iconv("windows-1256", "UTF-8", $string);

Seulement, après avoir converti une base de donnée (40 mo) de window-1256 vers utf-8 le résultat donna une nouvelle base de plus de 90 mo.

Et quand on sait que le numéro 1 de l’hébergement dans le monde 1and1 limite l’utilisation d’une base de données MYSQL à 100 mo !

limitation_1and1_mysql

Page 1 of 3123»