Archives For ExtendScript / Javascript

Javascript and its Adobe’s made superset Extendscript related topics

You might have noticed that updates on my blog are getting a bit sparse: no worries, I’m up and running as usual. Actually I’m busy as hell – which is quite ironic, since I’d aim for a simple(r) life.

But anyway: one year ago I started writing my Photoshop HTML Panels Development course, which I’ve successfully published in late March 2016. I’m now back at my desk, working on a very similar project, and targeting no less than… Photoshop Scripting.

Continue Reading...

About one year ago I had a so-called “aha moment” and decided to write a book. I had two or three subjects in mind, first choice was HTML Panels’ Licensing Solutions – i.e. how to build trial versions, anti-piracy systems, and the like. Luckily, and I really mean: luckily, I changed my mind and tackled a topic appealing to a slightly broader audience: the HTML Panels Development course was born.

Still, licensing systems in the context of HTML Panels are a soft spot of mine (see my old post about partial serial number verification), and I wish I had time to write that book! I did build, from my biased point of view, very good prototypes back then: for instance implementing RSA encryption, or server-side automatic licensing files delivery to be used in conjunction with e-commerce providers.

Whatever you choose to do, you’re protection system must rely on secured code that nobody can look at – which is what this article is all about.

Continue Reading...

I’m no big fan of ESTK for a variety of reasons; when I finally replaced my old MacBookPro with a newer model with Retina display I got even more disappointed: pixels everywhere! There’s a quick fix/hack that I’d like to show you (also as a reminder for my future self, just in case ESTK is still going to be around in 2021 when I’ll get a newer Mac).

Continue Reading...

Back in 2007, developer Brandon Staggs wrote a brilliant article about software licensing, showing how to implement what he calls a Partial Serial Number Verification System using the Delphi language.
Apparently the remarkable technique first appeared around 2003 in a set of slides by Chris Thornton, developer of the ClipMate software.

Years have passed, cryptography is more affordable, yet I would say that this approach to the Software Licensing problem is still valid in some businesses – besides the fact it’s fascinatingly clever.

In a nutshell, Brandon shows how to build a serial number (seed, keys, checksum), which verification in the final product is partial – so that a cracker will never be able to build a long lasting keygen.

I’ve ported the original code (written in Delphi) to Javascript.

Continue Reading...

Back when I started writing Scripts for Photoshop, I’d have loved having Boilerplate code to borrow and learn from. I’ve put a repository on GitHub with my take on that – still in early, alpha stage but some CoffeeScript stuff is there, ready to be forked: feel free to contribute!

Continue Reading...

In a ScriptUI Window different components are usually registered for Events, and fire their own Handlers. You can build some interconnection, so for instance a Button’s ‘click’ handler triggers a change in a ListBox, which in turn reacts to its own ‘onChange’ Event. It’s quite easy to decouple this interaction, provided that you set up your code properly.

Continue Reading...

It’s not uncommon, when scripting for Adobe applications, to borrow JS libraries that have been originally written for web development. While the new generation of Adobe HTML Extensions will run on the Chromium Embedded Framework, traditional ExtendScript code is based upon a different, older engine. Besides ECMAScript unsupported features (i.e. ES 5) I’ve noticed that using minified JS code is a risky business – scripts can break or fail silently. I’ve set up a proper testing environment to inspect them.

Continue Reading...