Auteur Sujet: Adinpsz - JsExe  (Lu 3675 fois)

0 Membres et 1 Invité sur ce sujet

http://pouet.net/prod.php?which=59298 !

Un packer d'intro javascript. Peut être utile pour les compos 1k et surtout 10k de DemoJS par exemple :p

Ah ouais excellente idée pour la 1k !

Comment on dit "awesome" en français déjà ? Ah ouais je me souviens : AWESOME !

Hi,

Ca semble tres interessant comme soft, surtout 1 mois avant DemoJS ^^ Dommage que je ne puisse pas tester, vous voulez pas faire une version linux ^^
Ca pourrait etre interessant d'avoir des ratios genre avant compression / apres compression ?

Alors je suis en train de regarder et j'ai plein de questions de n00b :
Citer
- It takes an JS file as input parameter.
- If it helps, the JS file is optimized using an improved version of Google Closure Compiler (with no line break, better float formatting, etc).
- File byte order is reversed or not (depending on whether it improves final compression rate or not)
- It embeds the resulting file in a PNG image, choosing the best PNG format (RGB or gray).

Ce serait possible d'avoir des details sur comment vous faites la derniere etape ? Convertir du code en PNG ?

Citer
- Then it uses the most efficient PNG optimizer tool (PNGOUT or another one).

Je viens de faire une recerche sur wikipedia et donc a part PNGOUT vous utilisez quoi ?

Citer
- Then output PNG is stripped of CRC and IEND block.

Et pour finir, j'ai rien compris ^^ Pourriez vous m'expliquer cette phase ? Et comment vous insererez le tout dans le code ?

J'ai l'impression qu 'il s'agit d'une suite de lignes de commande  avec des redirection sur les sorties ou des fichiers temporaires...
Si c'est le cas ce foit etre possible de faire un Makefile equivalent. Donc si je comprend l'ensemble du processus, et je m'y attelerais.

Merci @ ceux aui vont me repondre ^^

ils modifient les header du png. Chaque png à un ensemble de sections qui ont une utilité propre. Le header pour le format..., un autre pour la description de l’image... etc etc. Chacun dispose d’un contrôle de redondance cyclique pour savoir si le fichier est valide. Donc il doit modifier le tout astucieusement pour que le fichier soit le plus petit possible.

 :o ...  ::) ...  :o  ... :-\ ...  J'ai pas compris  :'(

en gros
structurellement ton png est decomposé en plusieurs parties.
Header
AutresDonnees
DataDUPNG
Marqueur de fin de fichier

Chaque ligne correspond a une section. Et chaque section a un lui meme un marqueur qui est materialise par un CRC. :)

Ok je commence a voir l'idee ... Mais de la a savoir comment acceder a ces donnees ... Ca a un lien avec les headers et les mimes ?

@Wullon : il y a quelqu'un que je peux contacter pour faire un port sous nos machines libres ?

Ah ouais excellente idée pour la 1k !


Hum, je suis pas sur l’évaluation du png risque d’être assez coûteuse (je m'appuie sur cet article : http://www.sprklab.com/notes/21-compressing-javascript-into-png )

Du coup j'ai testé les URI  en passant par http://dataurl.net/#dataurlmaker et en utilisant une demo faisant 1k j'augmente le poids de 200b donc pas convaincu.

P.S : pour la liste des optimisateurs testes ils sont sur le screenchot.

Ben pour le 1k en fait je sais pas si ca ferait gagner, si CB passe par là il confirmera.

Ok je commence a voir l'idee ... Mais de la a savoir comment acceder a ces donnees ... Ca a un lien avec les headers et les mimes ?

@Wullon : il y a quelqu'un que je peux contacter pour faire un port sous nos machines libres ?

Si tu veux comprendre en détail, je pense qu'il faut regarder comment marche le format png.
Avant de chercher à faire un port, tu as essayé sous Wine ? Le refaire en script shell me semble compliqué : il essaie plusieurs encodages pour voir lequel est le plus efficace.

Hum, je suis pas sur l’évaluation du png risque d’être assez coûteuse (je m'appuie sur cet article : http://www.sprklab.com/notes/21-compressing-javascript-into-png )


Son code d'extraction du png me semble inutilement compliqué. Voir la discussion sur pouet (il y a des liens très intéressants, celui-là par exemple).

Juste un mot LLB : Merci !

Grace au lien je vais pouvoir mieux comprendre, vu l'heure je n'ai plsu trop la tete a cela, mais  je regarde ca demain dans la journee!

Pour contacter l'auteur (cb) : cb@adinpsz.org mais je lui dis de venir faire un tour ici :p.

Il a été testé sur quelques 1k ça fait gagner un peu, bref ça dépend des cas, l'idéal c'est pour les 4k-10k.

Bravo pour JSexe. C'est cool d'avoir un outil qui integre plusieurs variantes et choisi la meilleure.


En dessous de 1k, le PNG bootstrapping* n'est pas efficace. Daeken voullait faire une intro WebGL en 512 octets. Il bloquait a ~750 octets avec le PNG bootstrapping. J'ai pu caser Micro Nova dans 512 octets sans trop battailler juste avec de la bonne vieille minification à la main et un hash des methodes du contexte WebGL.

Pour les 1k, je confirme ce qu'a dit wullon: C'est vraiment au cas par cas entre les packers JS classiques et le PNG bootstrapping.

Ca devient vraiment efficace au delà de 1k, où c'est clairement la methode la plus simple pour obtenir qqc de correct.



*: Si vous voullez en savoir plus sur cette technique, lisez la thread sur PNG bootstrapping et global eval sur Pouet.