Create a Password Protected ZIP
Have you ever wanted to put very basic security (a passphrase) on a file? You can do so if you ZIP the file -- let's have a look at how you can password-protect a ZIP file!
Creating a password protected ZIP file from command line is done so via the following command:
# zip -er {file name to be created} {source directory or file}
zip -er my-generated-file.zip source-file.rtf
When someone tries to unzip the file, they'll be prompted for a password.
Don't be under any illusion that a password makes the ZIP file too secure: ZIP files don't self-destruct after a given number of attempts so a brute force effort to crack the password would ultimately be effective. If you do, however, want a very basic level of security for the contents of a file, this command will get you there.
![Serving Fonts from CDN]()
For maximum performance, we all know we must put our assets on CDN (another domain). Along with those assets are custom web fonts. Unfortunately custom web fonts via CDN (or any cross-domain font request) don't work in Firefox or Internet Explorer (correctly so, by spec) though...
![Create Namespaced Classes with MooTools]()
MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does. Many developers create their classes as globals which is generally frowned up. I mostly disagree with that stance, but each to their own. In any event...
![CSS Ellipsis Beginning of String]()
I was incredibly happy when CSS text-overflow: ellipsis (married with fixed width and overflow: hidden was introduced to the CSS spec and browsers; the feature allowed us to stop trying to marry JavaScript width calculation with string width calculation and truncation. CSS ellipsis was also very friendly to...
![Form Element AJAX Spinner Attachment Using MooTools]()
Many times you'll see a form dynamically change available values based on the value of a form field. For example, a "State" field will change based on which Country a user selects. What annoys me about these forms is that they'll often do an...