4D iTools

21/06/2012 Comments off

SGBD Products viens de sortir une application d’aide au développeur 4D qui contient quelques utilitaires comme :

– Color 4D qui permet de déterminer les paramètres de la commande OBJET FIXER COULEUR RVB
– ASCII Tools qui permet d’analyser le contenu d’une chaine et éventuellement déceler les caractères invisibles ou encore un encodeur/décodeur BASE 64
– Des utilitaires de conversion de mesures ou temps en ticks
– ScreenSize permettant de simuler la résolution  d’un écran
– ErrorFinder recherche un code d’erreur pour la plupart des produits 4D
– La documentation en ligne ou en local de 4D disponible d’un click sans avoir à utiliser le navigateur.

4DiTools est disponible pour Macintosh et est disponible sur le MacAppstore

http://itunes.apple.com/fr/app/4ditools/id531279127?mt=12

Categories: 4D, Développement, Mac OS X Tags:

Executer une commande ‘sudo’ à partir de 4D

14/02/2012 Comments off

4D

J’ai souvent eu besoin de pouvoir exécuter une  commande du terminal en mode admin (sudo) depuis 4D. J’ai longtemps cherché sans succès et fini par trouver comment faire. Vous trouverez un exemple de code qui relance le serveur apache sous Mac.

[sourcecode language= »text »]C_TEXTE($Sortie;$Erreur;$Admin;$Script)
$Admin:="mypassword\n"
$Script:="sudo -S ls"
LANCER PROCESS EXTERNE($Script;$Admin;$Sortie;$Erreur)
$Script:="sudo apachectl restart"
LANCER PROCESS EXTERNE($Script;$Admin;$Sortie;$Erreur)[/sourcecode]

Voilà, j’espère que cette exemple vous sera utile.

Categories: 4D, Apache, Développement, Mac OS X Tags:

Steve Jobs !

06/10/2011 Comments off

 

 

 

 

Je me souviens lorsque j’ai entendu ce nom pour la première fois, c’était en 1977 j’avais alors 19 ans. Mon premier contact avec Apple a été l’Apple][ avec ses 8ko de mémoire et un lecteur de cassettes en guise de stockage, son numéro de série était le 670. Depuis cette année là, ma vie à totalement basculée, je suis devenu un ‘geek’ comme on dit aujourd’hui.

Durant toutes ces années, je suis resté fidèle à Apple malgré ses périodes difficiles, touché par une philosophie différente insuflée par une personne hors du commun : Steve Jobs, bousculant les idées reçues, les règles, les codes et proposant toujours des produits plus innovants les uns que les autres.

Le choc technologique le plus important restera l’iPhone, lorsque j’ai vu cet appareil, je me suis dit ‘ben voilà, ça c’est un téléphone !’ ayant acquis tous les modèles de téléphones de toutes les marques possibles et imaginables sans aucune satisfaction, l’iPhone était LE TELEPHONE que j’avais tant attendu.

Je sais très bien que les innovations d’Apple ne sont le seul fait de Steve Jobs, c’est plutôt la philosophie de Steve Jobs qui plane sur Apple et ses équipes qui permettent  de créer tous ces produits.

J’ai d’ailleurs toute confiance en l’avenir de cette société, la culture de l’entreprise est imprégnée en profondeur par la philosophie de son créateur.

Merci encore à toi Steve.

Categories: divers Tags:

Supprimer les ressources locales 4D du Client Mac et Windows

27/09/2011 Comments off

 

4D

Pour des raisons techniques et plus précisément lors de l’utilisation de 4D Client en interprété, les ressources locales ne sont pas toujours à jour lors d’une modification de la structure par le développeur.

Pour palier à ce problème récurrent, j’ai réalisé une méthode de suppression du dossier ressources locales de la base situé dans un répertoire cache du système. Cette méthode permet de forcer la mise à jour des ressources locales lors de la connexion suivante par 4D au 4D Server.

Afin de réaliser ce processus, nous avons besoin d’executer un script terminal (.sh) sur Macintosh et d’un script batch (.bat) sous Windows.

La méthode 4D ‘ut_DeleteLocalRessources’:
[sourcecode language= »plain »]
$in:=""
$out:=""
Si (ut_IsMacintosh )
$CacheFolder:=ut_Mac2Posix (ut_ParentFolder (Dossier 4D(Dossier Resources courant)))
$ScriptFile:=ut_Mac2Posix (Dossier 4D(Dossier Resources courant))+"DeleteResLocales.sh"
$Command:="chmod +x "+$ScriptFile
LANCER PROCESS EXTERNE($Command)
Sinon
FIXER VARIABLE ENVIRONNEMENT("_4D_OPTION_BLOCKING_EXTERNAL_PROCESS";"False")
FIXER VARIABLE ENVIRONNEMENT("_4D_OPTION_HIDE_CONSOLE";"True")
$CacheFolder:=ut_ParentFolder (Dossier 4D(Dossier Resources courant))
$ScriptFile:=Dossier 4D(Dossier Resources courant)+"DeleteResLocales.bat"
Fin de si
$Command:=$ScriptFile+" "+$CacheFolder
LANCER PROCESS EXTERNE($Command)
QUITTER 4D[/sourcecode]
Cette méthode exécute donc un script .sh sur Macintosh et un .bat sous Windows, ces deux scripts étant situés dans le répertoire ressources de la base sur le 4D Server et synchronisés au lancement de 4D (Client).

Le script .sh DeleteResLocales.sh pour Macintosh :

[sourcecode language= »bash »]
#!/bin/bash

function waitquit() {
SECS_SLEEP=3
SECS_TIMEOUT=60
SECS_ELAPSED=0
SCRIPT_LOG="4dquitscriptlog.log"
rm $SCRIPT_LOG
RUNNING=`ps auxc | grep "4D"`
echo |tee -a $SCRIPT_LOG
while [[ "$RUNNING" != "" && $SECS_ELAPSED -lt $SECS_TIMEOUT ]]
do
echo "Waiting for 4D to stop"|tee -a $SCRIPT_LOG
echo "Time taken before sleep: $SECS_ELAPSED"|tee -a $SCRIPT_LOG
sleep $SECS_SLEEP
SECS_ELAPSED=$(($SECS_ELAPSED+$SECS_SLEEP))
echo "Time taken after sleep: $SECS_ELAPSED"|tee -a $SCRIPT_LOG
RUNNING=`ps auxc | grep "4D"`
done

RUNNING=`ps auxc | grep "4D"`

if [ "$RUNNING" = "" ]; then
echo "4D not running – deleting cache files at directory $CACHE_FOLDER"|tee -a $SCRIPT_LOG

rm -r "$CACHE_FOLDER"
else
echo "4D is running – can not delete cache files $CACHE_FOLDER"|tee -a $SCRIPT_LOG
fi

echo "Script finished"|tee -a $SCRIPT_LOG
}

CACHE_FOLDER=$1
if [ "$CACHE_FOLDER" != "" ]; then
waitquit&
else
echo "No cache folder passed to script"|tee -a $SCRIPT_LOG
fi

[/sourcecode]
Le script DeleteResLocales.bat pour Windows :
[sourcecode language= »bash »]
echo off
if not defined index set index=0
:maboucle
set /a index=index+1
tasklist /FI "IMAGENAME eq 4D.exe">c:\proc.txt
find /c "en service ne correspond aux" c:\proc.txt

if ERRORLEVEL=2 goto erreur
if ERRORLEVEL=1 goto Find
if ERRORLEVEL=0 goto noFind

:erreur
echo erreur
goto fin

:noFind
REM 4D pas lancé on peut y aller
goto deletecache

:Find
REM 4D non quitté on boucle.
ping -n 2 localhost
if %index% LSS 30 goto maboucle

:deletecache
REM On supprime le répertoire passé en paramètre et le fichier temporaire
rd %1% /s /q
del c:\proc.txt
:fin

[/sourcecode]

Le principe des ces scripts est assez simple, ils vérifient que le process 4D est bien quitté avant de poursuivre et de supprimer le répertoire des ressources locales.
Il doit être possible de faire plus élégant, j’ai simplement recherché l’efficacité sans trop me soucier de l’élégance.
En attendant que 4D corrige ses bugs,j’espère que cela vous sera utile.

J’ai oublié mon mot de passe root MySQL !

25/05/2011 Comments off

TerminalIl peut arriver lorsque l’on a une tête pleine de trous comme la mienne, d’oublier le mot de passe root d’un serveur MySQL.
Don’t panic, il est possible de réinitialiser le mot de passe root de MySQL sans connaitre le mot de passe d’origine.

Commencez par stopper MySQL :
service mysqld stop

Démarrez mysql sans le contrôle des mots de passe (safe mode) :
mysqld_safe --skip-grant-tables &

Connectez-vous ensuite en root sans mot de passe :
mysql -u root
Vous devriez obtenir à l’écran :
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: ....
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>

Changez ensuite le mot de passe à l’aide des commandes :
use mysql;
update user set password=PASSWORD("nouveau mot de passe") where User='root';
flush privileges;
quit

Relancez MySQL :
service mysqld restart

Connectez-vous en root avec le nouveau mot de passe :
mysql -u root -p

Voilà, vous pouvez vous rendormir tranquillement.

Categories: Linux, Mac OS X, MySQL Tags: , ,

Steve Jobs: Les stratégies de différenciation d’un entrepreneur schumpétérien

05/03/2011 Comments off
Categories: divers Tags:

Manuel démontage Mac mini

27/12/2010 Comments off

[calameo code=0005212093877b7de6a50 lang=fr width=400 height=400 clickto=public clicktarget=_blank clicktourl= autoflip=0 showarrows=1 mode=maxi]

Categories: Hardware, Mac OS X Tags:

Créer une commande équivalente à ‘pidof’ sous Mac

18/09/2010 Comments off

TerminalSous Linux, il existe une commande appelée ‘pidof’ bien pratique qui permet d’obtenir le numéro d’un process (pid) à partir de son nom. Vous trouverez ci-dessous de quoi recréer cette commande.

Créez un fichier texte avec comme contenu :

#!/bin/sh

ps axc|awk "{if (\$5==\"$1\") print \$1}";

Enregistrez-le par exemple au premier niveau de votre disque avec comme nom ‘pidof’ sans extension. Lancez ensuite le terminal et executez la commande : chmod 755 /pidof de manière à le rendre executable, copiez-le ensuite dans le répertoire /bin

Vous avez à ce moment là une nouvelle commande dans votre terminal nommée ‘pidof’

A l’utilisation dans le terminal, cela donne :

$pidof Finder
45560
(renvoi le numéro du pid de votre Finder).

Categories: Linux, Mac OS X Tags:

Activer les droits Grand Administrateur sous Windows

04/09/2010 Comments off

Windows

Même dans le cas où il utilise un compte ‘ Administrateur ‘, l’utilisateur sous environnement Windows Vista et Windows 7 ne dispose pas de tous les droits, ce qui peut poser souci pour la manipulation de certains fichiers et dossiers système, par exemple l’impossibilité de supprimer un fichier.

Voici la marche à suivre pour s’octroyer tous les droits sur un fichier ou un dossier en quelques clics :

Ouvrir un nouveau fichier dans le bloc-note de Windows et y coller les lignes suivantes :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]
@="Grand Administrateur"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrateurs:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrateurs:F"

[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="Grand Administrateur"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrateurs:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrateurs:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Grand Administrateur"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrateurs:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrateurs:F /t"

Enregistrer ensuite le fichier sous le nom GrandAdministrateur.reg.
De là, il ne reste qu’à effectuer un clic droit sur le fichier .reg avant de sélectionner ‘Fusionner’ et de cliquer sur  ‘Oui’.
Par la suite, un clic droit sur un fichier fera apparaître un intitulé ‘Grand Administrateur’ qu’il sera suffira de sélectionner pour s’octroyer tous les droits sur le fichier.

Categories: Seven, Vista, Windows Tags: ,

Etonnant et surtout bravo !!

11/06/2010 Comments off

Categories: divers Tags: