Apple Cracks Hacking Quick Tips Resources

A helpful tool for unpacking Mac TTC font families

Moving fonts is simple…

Fonts come packaged in such a way that makes them easy to install. Simply double click to install, or drag and drop into the font manager of your choosing.

Except for when they’re not

Windows will spit out an error when trying to install from a selection of fonts one might find on their Mac. Something like:

"Cannot install Font Name.ttc - The file 'D://Font Name.ttc' does not appear to be a valid font."

This error stumped me for a few minutes, and through a few Google search results. With a bit of digging I found a tool called transfonter that unpacked my Mac fonts and made them work on my Windows machine:

This frustration may be been manufactured…

So, if Microsoft’s Font Validator is right, then I assume Apple did a bad job implementing the specifications. (And maybe even on purpose, to stop distribution of the font to Windows?)

– Arjan

As one user here explains, it seems that Apple has intentionally broken their fonts to make it difficult to move them onto a Windows machine.

Still looking for the link? It’s here.

Glass Resources

A Lampworker’s Introduction to Safety in the Glass Studio

This is not an official guide, and the following is offered as a free online article for entertainment purposes only. I accept no responsibility or liability for your actions after reading this text.

You can be seriously injured in almost any workshop

The glass studio can be a very dangerous place, but it doesn’t have to be. With proper respect and care, a lampworker can spend hundreds of hours behind their torch without incident or injury. To ensure such a positive track record, a few rules and guidelines must be adhered to at all times.

The most obvious risk to a lampworker is a burn. I am often asked, “isn’t it hot?” And the short answer is, “yes – very!” Our torches burn a flame many thousands of degrees (1980*c, 3590*f) in temperature. Incidentally, our workspaces, tools, and work can be very hot indeed. Some torches produce so much heat, that they require assistive cooling devices to prevent from overheating and melting themselves.

With all of the hot, dangerous things in our shop – it’s a miracle we aren’t burning ourselves at every turn. There are a few simple techniques to reduce the chances of being injured in the studio.

20 Helpful Safety Tips:

  1. Assume it’s hot! First and foremost, always assume that anything in the studio that could be hot to the touch; is. Most items on your bench, and near to your workspace will absorb radiant heat as you work. This radiant heat can make your bench, tools, materials, and anything else within line-of-sight of your torch flame hot to the touch.

    If you are unsure of whether or not something is hot, use the back of your hand to sense the radiant heat by placing it close but not touching the suspect item. A burn on the back of the hand will restrict work less than one to a fingertip or palm.
  2. Never accept a piece of passed glass overhand! What this means is when someone passes you a piece of glass, always grab below their hand on the handle away from the perceived hot end.
  3. Never catch falling glass! Let the piece fall to the floor or bench, and then pause. It may be necessary to stand back as to prevent the glass falling onto your foot. Grab your nearest pinching tool (tweezers) and use those to pick up the item. Do not panic, do not rush, and do not reflexively dive for the falling work piece.

    A broken piece is better than a burned palm or sliced digit. There are lampworkers who can no longer practice due to injuries sustained from catching falling glass. This is a very serious risk!
  4. Dress appropriately! Your clothing is your second layer of defense, should an accident happen. Your first line of defence is this safety training, use it well and you will not need your clothing to protect you from a burn. Do not dress as if planning on burning yourself.

    Foremost, dress for comfort. Heat stroke and dehydration are very real risks while working behind a torch. Dress for the weather and the workload you will be undertaking. Working in 40* heat while wearing a full mylar suit is a surefire way to black out.

    Proper attire can include:
    1. Approved Safety Glasses 
    2. Close toed shoes
    3. Loose fitting pants that fit over the cuff of your footwear
    4. Short sleeves, or a long sleeved shirt with tight fitting cuffs
    5. Hair ties for long hair
    6. Additional safety equipment like insulating gloves, vambraces, or hoods are worn in specific situations – though not required for most flame work.
  5. Grab tools by their handle! Graphite, and brass tools can absorb a lot of radiant heat as well as hold onto heat absorbed through contact for a long time. Accidentally grabbing a tool by the working end is a fast way to a burn.
  6. Do not force the glass! Glass if fragile, and using too much force can and will break glass in your hand. Be patient and allow for the heat base to soak into the glass before trying to make it move.
  7. Melt stringers and spikes back into balls! If you pull a thin thread of glass, or create a spike – take another second to melt the string back down into a ball. Thin threads and spikes create a puncture hazard, and can even break further when inside the body.
  8. Bubbles should melt – not pop! If you are blowing a bubble, stop before it becomes paper thin. When thin, the glass is weak and can pop under the pressure of your lungs. This wafer thin glass is light, and floats on the air. It’s colloquially known as bubble trash, and is an unnecessary respiratory hazard. If you blow your glass too thin, put it back into the flame to gather before popping the bubble within the flame.
  9. P before O or up you go! When lighting your torch, begin by opening your gas valve slightly and igniting a pilot flame. Only when this pilot flame is burning, should you introduce oxygen. Doing so in the opposite order can create explosive conditions and is very dangerous. The obverse is true as well: when shutting off your torch, shut off your oxygen before your gas.

    A handy acronym for remembering the on/off order is P.O.O.P. – Propane, Oxygen, Oxygen, Propane
  10. Install Flashback Arrestors! Flashback arrestors prevent a dangerous situation wherein the flame moves backwards into the torch and through the gas lines creating an explosion within the lines. 
  11. Ventilate your workspace! Our flames and the fumes from melting glass can be harmful in both the long and short term. Ensure adequate air exchange to prevent exposure to these harmful gasses.
  12. Keep tanks outside! Unused tanks of compressed gas should be stored away from open flame, and out of doors in an easily accessed area. In the event of fire, it poses a great risk to firefighters and anyone within the building to have compressed explosive gas cylinders inside.
  13. Keep your workspace clear of flammable or combustible materials! Lighters, aerosol cans, wood, and other flammable materials should be kept well away from your torch and work to avoid the risk of an unintended fire.
  14. Keep a fire extinguisher nearby! I hope this needs no further explanation. While glass doesn’t burn, anything flammable it touches while workable can. 
  15. Anneal your work! Leaving stress trapped in glass is a great way to let it break randomly. Annealing releases trapped stress and allows for glass to be used safely.
  16. Do not put glass inside of someone else!* Jewelry, sex toys, and other objects intended for insertion into the human body must be properly annealed and checked with a polariscope! If you do not have access to a kiln, and a polariscope – DO NOT MAKE SEX TOYS OR ANY OBJECT FOR INSERTION INTO A HUMAN!
  17. Stretch! Take it easy! This is exercise and involves many repetitive motions. Warm up before you begin, and take many breaks along the way. It’s easy to injure yourself, or spur along a strain related injury by lampworking. Listen to your body, and take care of yourself. 
  18. On inhaling: glass blowers often puff air into a hollow vessel to expand its walls. It’s also possible to contract the walls of the vessel in much the same way. Suction should only be applied in situations where the risk of pulling hot vapor or fumes into your mouth is negligible. 
  19. On treating a burn: Stop lampworking immediately. Glass burns can be terrible, but are often less severe than a similar sized burn from metal or another material. Glass being a poor insulator can save you from a more serious burn if quick action is taken.

    Treat burn wounds quickly as directed by a healthcare professional.
  20. Keep a first aid kit on hand. Cuts, burns, scrapes, and other injuries can almost all be addressed by the contents of a standard first aid kit. Keep one on hand in case of emergency.

There are more rules and guidelines that can help you in the shop, but I’ve just not thought of them yet – if I’ve missed something obvious to you, leave a comment and help me improve this article!

Glass Resources

Beginning Glassblowing

Glass what?!

Melting solid glass into liquid, and balancing it long enough for it to solidify again – maybe puffing in some air to inflate the bubble – this is lampworking.

When you think of glass blowing, you likely think of grand furnaces with workers dipping steel handles into large vats of molten glass before puffing, shaping, and working the molten glob into a form or vessel. That’s called furnace work, or hot shop – as I’m sure you could guess – the environment is more than warm!

Quick Tips Resources

Gmail Alias Emails for Sorting and Filtering Before Your Inbox

“I use gmail for Enterprise, and I have the option to create quick e-mail aliases in my admin account. I love this feature, and was curious about it’s availability in standard, tradition gmail accounts. Turns out, you don’t actually have to create or setup anything for an alias. Just enter an email address in this format:

Any e-mail sent to is actually being sent to

This becomes super-useful when you then create a simple filter in your gMail inbox to move any message sent to to a specific folder, likely called Notes. Or just apply a specific label to these messages, whatever you prefer.

Here is the official Google article –

Hope some of you find this useful & effective.”

Source – _aP

CSS Design HTML Javascript jQuery Open Source Resources


Sweetdeez Image SearchJust a quick entry until I get the chance to do a full writeup – this is the tool I’m building. Basically a search engine that uses a popular social media website to get the most relevant fresh content. In conjunction with another API we gather and serve images all in an infinite scrolling gallery. This is all custom tailored through an intuitive user interface.

This project is still in development.

Javascript jQuery Quick Tips Resources

Track Outbound Links – Google Analytics

Goal: Use JS to automatically track outbound links that do not have a target=”_blank” attribute – in a dynamic and informative way.

Earlier in the week I was tasked with implementing Google’s Analytics system onto a fleet of websites that have different hostnames. This created many outbound links that weren’t tracked because they lacked a target=”_blank” attribute. This is a solution for websites using tools such as WordPress – and a plugin will be available eventually.  I’ve created a small snippet of Javascript/JQuery to run through a page, checking for external links – and modifying them to be tracked by Google’s servers with an onClick event. In using jQuery to solve this problem, you need to ensure you load jQuery into your page before running any of my script.

Step 1: Google’s Launch Pad – trackOutboundLink

Google has provided a function for converting a given URL into an event name for use in Analytics found here : This is standard Javascript and does not need to live within a jQuery wrapper. This function needs to be placed in the head of the document and not restricted in it’s runtime by a jQuery document.load() call.

Step 2: Checking URL Against the Hostname

Below we create a new function for comparing if a hostname is within a URL. The function takes ‘a’ and ‘b’ as variables, if unset return false, otherwise return the index position of our ‘b’ variable and check if it’s greater than or equal to index position 0. Greater than 0 means the string was found in our tested URL and will return true. Returning true implies the URL is internal, and can be left as is.

	function urlInternal(a, b) {
			if (!a || !b) {
				return false;
			} else {
			    return a.indexOf(b)>= 0;

Step 3: Checking and Appending Anchors

For each anchor tag on the page, we get the href attribute and run it through our urlInternal function. Note the ! before my function call, if this weren’t here we would be evaluating all of the true statements where we want false (URL is NOT internal) results only. If the URL is external, using Google’s function and some concatenation – we write the new onclick attribute.

	var $hostBaseUrl = window.location.hostname;

	jQuery('a').each(function() {
			var $this = jQuery(this);
			var $url = $this.attr('href'); 


				var $linkBaseUrl = $this.prop('hostname');
				var	$linkBaseLocation = "trackOutboundLink('http://" + $linkBaseUrl + "'); return false;";


Somewhere in the head of your page (that you want to change the link onClick of) include this function that we can call each time we find an external link.

	* Function that tracks a click on an outbound link in Google Analytics.
	* This function takes a valid URL string as an argument, and uses that URL string
	* as the event label.

	var trackOutboundLink = function(url) {
	   ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
	     function () {
	     document.location = url;

Run this script before the function and you should be good to go.


	/**$hostBaseUrl saves the current URL's hostname for later use. Eg: on -> is our hostname **/
	var $hostBaseUrl = window.location.hostname;

	/**Check if a, b are set variables and then check if b occurs in a - returns true or false because of >= 0**/
	function urlInternal(a, b) {

			if (!a || !b) {
				return false;
			} else {
			    return a.indexOf(b) >= 0;


	/**Scan through all anchor tags on the page and get their href attribute**/
	jQuery('a').each(function() {
			var $this = jQuery(this);
			var $url = $this.attr('href'); 

			/**If the link is NOT internal, get it's hostname and call Google's function to write the onclick attribute**/
				var $linkBaseUrl = $this.prop('hostname');
				var $linkBaseLocation = "trackOutboundLink('http://" + $linkBaseUrl + "'); return false;";
Design Open Source Quick Tips Resources

Subtle Patterns Plugin – Free

Look at all of those patterns!


update: The link in my article still works. Subtle Patterns has changed it’s format to a paid plugin, individual patterns are still available. Due to the pay to play nature of the photoshop plugin, they’ve removed links to the collection download. 

I wanted to share a resource I’m completely infatuated with: Subtle Patterns. This website aggregates free to use subtle patterns, and shares user contributions to the rest of the community.

The best part of this website? They don’t make you jump through hoops to get their files! No sign-up, emails, or other crap no one really wants to deal with (why do you think my comments are registration free?). Even better, they have every pattern available for free, in a master pattern file. The default photoshop patterns suck (pardon me), and loading up this free subtle patterns download  really gives you a great choice of patterns to integrate into your design work.

I had a user email me with some questions on installing subtle patterns into Photoshop. It’s really simple, just follow these steps:

  1. Follow the link above and download the subtle-patterns file
  2. Open the archive (zip) and extract (drag/drop) the SubtlePatterns.pat file into your file system
    • Note: C:\Program Files\Adobe\Adobe Photoshop CSX\Presets\Patterns is ideal
  3. Open Photoshop and click ‘S’ to open your stamp tool
  4. Switch to the pattern stamp tool if Clone Stamp is active by holding your mouse button down on the Stamp tool icon
  5. Activate the pattern dropdown in the top ribbon, usually below the help menu
  6. In the top right corner of the window, there is a gear icon – clicky clicky
  7. Pressing load patterns will open one final dialog
  8. Locate your pattern files and load them through this dialog
  9. Enjoy the Subtle Patterns Plugin – Free Download

Backup Link In case the github link goes down.