|
Un INIT est un petit programme contenu dans une ressource du même
nom et qui est exécuté au démarrage du Mac. Jusquen
1986, seuls étaient exécutés ceux contenus dans le
fichier système, et les INITs autres que ceux implantés
dorigine devaient y être ajoutés, soit au moyen dun
programme dinstallation, soit avec ResEdit. En 1986, avec la version
3.0 du système, Apple a apporté un nouveau mécanisme
de gestion des INITs: lINIT 31. Il sagit dun INIT du
fichier System qui a pour rôle daller regarder si le dossier
système contient des fichiers de type INIT ou cdev, et, si ces
fichiers comportent des ressources INIT, de les exécuter. Cest
ce qui permet à des programmes comme Suitcase (INIT), ou QuicKeys
(cdev) de fonctionner. Il se peut que vous soyiez obligés de vous
servir dINITs antérieurs à 1986 et livrés avec
un installeur. En ces moments de panique virusienne, où chacun
répugne à modifier son fichier System, voici un petit hack
pour les rendre conformes au mécanisme de lINIT31 et, ainsi,
faire du neuf avec du vieux:
sous ResEdit,
ouvrez linstalleur
copiez en la (les) ressource (s) INIT
fermez linstalleur
créez (New) un nouveau fichier et donnez lui
le nom que vous voudrez
collez-y la ressource INIT
fermez le fichier (et sauvegardez les modifications)
faites «Get Info» à propos de ce
fichier
changez son code Type en «INIT»
fermez la fenêtre «Info» et sauvegardez
les modifications
quittez ResEdit et faites glisser le fichier que vous
venez de créer dans le dossier Système, puis redémarrez.
(Attention, cette technique a marché pour tous les INITs que jai
testés, mais je ne garantis pas que ça fonctionne à
100%, en particulier si linstalleur copie dans le system dautres
ressources que lINIT).
Si vous voulez faire encore plus fort et garder licône de
linstalleur (ou en créer une originale), [faites dabord
une copie de linstalleur sur laquelle vous allez travailler et rangez
loriginal (on ne sait jamais...)]:
sous ResEdit,
ouvrez linstalleur
supprimez (Clear) toutes les ressources autres que
BNDL, FREF, ICN#, INIT et la ressource dont le nom est identique au code
créateur de linstalleur
ouvrez la ressource FREF et changez-y le File Type
APPL en INIT
fermez le fichier (et sauvegardez les modifications),
et terminez lopération de la même façon, en
changeant le code type en INIT. Une seule chose supplémentaire
à faire: vérifiez que la case Bundle est bien cochée,
sans quoi licône ne saffichera pas.
Si vous voulez faire encore mieux (et plus joli), il existe dans le domaine
public une ressource nommée «ShowInit», écrite
par Larry Rosenstein, dApple Cupertino, quil suffit dajouter
au fichier pour que licône de lINIT apparaisse sur le
Desktop pendant le chargement.
Si vous avez «Vaccine» (ou un programme similaire) installé,
il va bipper comme un fou pendant toutes ces opérations. Cest
normal, il naime pas quon copie des INITs dun fichier
à un autre. Pensez quand même à vérifier que
linstalleur ne contient pas de ressources suspectes avant de commencer...
Hypercard
Vous avez, dans un moment de parano intense, protégé
un de vos stacks avec un script crétin du style:
on idle
hide msg
hide menubar
set userlevel to1
end idle
et vous narrivez plus à le modifier. Vous lavez bien
mérité, mais la question nest pas là. La solution
pour vous en sortir est, à partir dun autre stack (home par
exemple), après avoir remis luserlevel à 5 (niveau
quil ne devrait jamais quitter), de taper dans la message box: edit
script of nomDuStack et de supprimer les horreurs que vous
aviez mises.
Celui-là marchait déjà avec MacPaint: si vous
vous servez de loutil texte et que vous désirez changer de
fonte ou de style sans avoir à tout repositionner après,
appuyez sur la touche Entrée, sélectionnez de nouveaux réglages
et voilà, ce que vous avez tapé avant na pas changé
et la suite, elle, sera conforme à ce que vous venez de choisir.
La fonction The Sound retourne le nom du son quHypercard
est en train de jouer. Lorsquaucun son nest en cours dexécution,
la fonction retourne done. Cette particularité est
à utiliser dès quon doit utiliser la commande play,
sous la forme:
playinstrument
wait until the sound is done
...
Ce qui permet à Hypercard dattendre que le son soit
terminé avant de lancer la suite des opérations, évitant
toute interférence des lectures et écritures disque sur
le son.
Autre truc sonore: un script comme:
playinstrument1
playinstrument2
...
provoque quasi systématiquement un plantage. Pourquoi ? Le 1er
son nest pas forcément terminé quand Hypercard essaye
de jouer le début du 2ème. Résultat: votre stack
meurt dune mort abjecte dans un bruit innommable. Là aussi,
la fonction the Sound permet de sauver les meubles. La solution
est:
playinstrument1
wait until the sound is done
playinstrument2
...
Simple, mais efficace.
Deux opérateurs intéressants dans Hypertalk: contains
et is in, qui permettent de tester la présence
dune chaîne de caractères dans une autre. Pas mal pour
tester une valeur. Par exemple:
get first word of the long date
if it is in LundiMardiMercrediJeudiVendredi then faire_qquechose
Astucieux, non ? Jen profite pour rectifier quelques âneries
quon a pu lire un peu partout.
La version US de Hypercard:
1) ne pose pas de problèmes insurmontables avec les dates françaises
2) permet lutilisation dans les stacks des minuscules accentuées
(certains journaux doivent confondre Mac et Apple //)
Dailleurs, quand on programme en Hypertalk, il vaut mieux disposer
de la version américaine, ne serait-ce que pour que la commande
doMenu fonctionne avec toutes les versions. En plus, ça évite
de patienter 1 an pour chaque nouvelle version.
MultiFinder
Dans la doc Apple, il est dit que pour utiliser tout accessoire de bureau
incompatible avec MultiFinder, la seule solution est de désactiver
ledit MultiFinder, puis de redémarrer. Heureusement, cest
faux. En appuyant sur la touche option pendant la sélection de
laccessoire (possesseurs de Suitcase, nappuyez sur option
quaprès avoir déroulé le menu pomme), laccessoire
ne se lancera pas dans le DA handler, mais dans la zone heap de lapplication
active (vous savez tous ce que cest, nest-ce pas?) et ainsi
la plupart des DAs réputés incompatibles MultiFinder pourront
fonctionner sans avoir besoin de relancer la machine. Idem pour tous les
accessoires installés directement dans une application (pour installer
un DA dans une application, se mettre sous Font/DA Mover et appuyer sur
la touche option en pressant le bouton Ouvrir).
J étais persuadé que tout le monde était au
courant et jai été très étonné
en lisant la doc Apple et même «Inside Juggler» de voir
quils se plantaient là-dessus.
MultiFinder
Le MultiFinder refuse de quitter lapplication active par sélection
de licône de la barre de menu si la fenêtre située
au premier plan est de type dBoxProc (fenêtre à double bordure),
assumant quil doit sagir dun dialogue modal (impression,
sauvegarde,
). Si vous utilisez une application qui se sert de ce
type de fenêtre pour autre chose, un petit hack pour la rendre 100%
compatible MultiFinder: sous ResEdit, trouvez la ressource de la fenêtre
en question (de type WIND ou DLOG), et changez le type de fenêtre
en portant la valeur du paramètre ProcID de 1 à 2 (fenêtre
à bordure simple). Attention cependant de ne pas modifier la ProcID
dun dialogue modal
(Pour savoir si un dialogue est modal, amener ce dialogue à lécran
et cliquer en dehors de la fenêtre, si le résultat est un
bip, le dialogue est modal et il ne faut pas y toucher. Si le Mac vous
laisse faire sans bipper, vous pouvez y aller).
Général
Quand on met en marche le Mac, il vérifie la validité de
sa mémoire avant d afficher à lécran
licône point dinterrogation. Cette opération,
qui était fort courte pour un Mac 128 ou 512, peut prendre plusieurs
dizaines de secondes avec une taille mémoire importante, le tout
pour un résultat minime (si votre mémoire était là
la dernière fois que vous avez booté votre Mac, elle a de
fortes chances de ne pas sêtre envolée entre temps).
Pour éviter cette opération, appuyez sur le bouton de la
souris en même temps que vous actionnez linterrupteur marche/arrêt.
Dès que vous avez entendu le ping de mise en marche,
vous pouvez relâcher votre souris. Résultat: 30 secondes
de gagnées pour 4 Mo.
Dossier système
Dans les temps reculés (1985 ou 86), un dossier système
standard ne comprenait en moyenne que 5 ou 6 éléments. En
dehors des éternels System et Finder, on ny trouvait guère
que le fichier Imagewriter, le presse-papiers et lalbum. Maintenant,
tout a changé. Avec la prolifération des INITs, CDEVs, fichiers
daide divers et paramètres de réglage des applications,
sans parler des polices laser, il nest pas rare davoir un
dossier système surpeuplé, 30 ou 40 éléments
étant un chiffre courant (44 sur mon disque dur, plus quhier
et moins que demain). Jai même entendu parler dun individu
dont le dossier système est encombré de plus de 120 fichiers.
Il est vrai quil sagit dun fou furieux
Résultat:
vous narrivez plus à vous y retrouver. Quelques solutions
pour donner un peu dair:
Mettre ailleurs tous les fichiers dont la présence à
cet endroit nest pas obligatoire (vous ny auriez pas pensé).
Certains fichiers daide ou de paramètres peuvent se trouver
soit dans le dossier système, soit dans le même dossier que
lapplication dont ils dépendent.
Si certains fichiers doivent rester là, mais que vous savez
que vous ny toucherez pas pendant longtemps, les rendre invisibles
sous ResEdit (Sélectionner le fichier, faire Get Info, cocher la
case invisible, fermer la fenêtre, sauvegarder les modifications).
Avez-vous besoin de tous ces machins ? Etes-vous sûr que
votre vie vaut bien plus dêtre vécue depuis que vous
avez remplacé le bip standard par un son numérisé
et que vous avez accès à une carte du monde dans votre tableau
de bord ? Je ne me passerais pour rien au monde de ces gadgets idiots,
mais vous ?
Font/DA Mover
Les polices de caractères du domaine public (et les autres) sont
habituellement écrites par des individus talentueux et admirables,
mais américains, et donc peu concernés par la présence
dans leurs créations de caractères exotiques non utilisés
dans les pays civilisés (é, ù, ç, whats
that?). Pour un utilisateur français nombre de fontes US sont quasi
inutilisables (à moins de les customiser, cf. MicMac #2) et pire
on ne sen aperçoit quaprès les avoir installées
dans son fichier système, puisque la phrase qui permet au Font/DA
Mover de les tester ne comporte aucune de ces lettres. Quà
cela ne tienne, il est possible de les y ajouter:
Sous ResEdit, ouvrez la ressource STR#256 du Font/DA Mover et modifiez
la phrase test en la truffant de è,é Ç,ù et
autre à (voir illustration).
| |