Blog

Technical posts covering web development, tools, and experiments

Blog

Technical posts covering web development, tools, and experiments.

Topics include:

  • Flash and ActionScript development
  • JavaScript libraries and tools
  • Web development techniques
  • Game development
  • WordPress plugins
  • Mobile development

Browse through posts exploring web technologies and development practices from 2007 onwards.

Quint Dice update – Facebook and profile

An update on Quint Dice. I turned on all the Facebook registration and login stuff that’s actually been done for a while, but I had off for a few reasons. Users may now sign up with their Facebook account, to make it easier to get started. Adding Facebook support has been one of the bigger …...

Read more →

HiDPI/Retina for CreateJS (Flash Pro HTML5 Canvas)

Adding HiDPI and Retina screen support to a CreateJS (Flash HTML5 canvas publish with EaselJS) is easy enough. Just add this code after where the stage is defined in your published html file (either inside the generated init function, or handleComplete if there are external assets to load): [js] if (window.devicePixelRatio) { // grab the …...

Read more →

SVGView for Xamarin.Android

Instead of making dozens of PNG files for all the various screen sizes for icon assets, I wanted to use vector graphics (such as SVG) in an Android app I’m building with Xamarin.Android. There is a tool for generating images, and that’s better than nothing, but SVG is even easier, and I’m all about easier. I …...

Read more →

Compiling Mono (and PlayScript) on OSX Mountain Lion (10.8)

Quick update/note: Zynga has pulled the source for PlayScript, and no one has taken it up. Safe to assume it’s a dead project. A while back, Zynga employees demonstrated a project they are working on called PlayScript, an implementation of AS3 and an ASNext wish-list language they named PlayScript on the Mono Platform. In order …...

Read more →

It’s been a while.

It’s a been a while since I posted. What’s up? I’ve been working on a ton of stuff, and learning 10 new platforms it feels like. There’s a lot of excitement out there in both mobile development and HTML5 spaces. I’ve been deep diving into WordPress, learning CoffeeScript and TypeScript (I even started a Backbone.js …...

Read more →

Multiple LocalHost Sites

I’ve got XAMPP installed on a Windows 7 machine. I wanted a way to test multiple sites locally. Set up the local host file In your host file, add (replace with the domains you want): [code]127.0.0.1 sub.domain.com.dev 127.0.0.1 www.example.com.dev 127.0.0.1 www.unfocus.com.dev[/code] UPDATE: Thanks to xip.io the host file edits are optional if you use the …...

Read more →

SignalsLite.js, Unit Testing, and Buggy IE

I decided to finally learn unit testing, so I downloaded QUnit (after looking at the 20,000 different unit testing options), and figured I’d give porting tiny SignalsLite to JavaScript a try, and see how the process goes. While doing that, I found a crazy IE7/IE8 JS bug, that I’m sure has had me scratching my …...

Read more →

Scripts n Styles Update 3.1

Scripts n Styles received a major update today. The two big features added are LESS.js support and Dynamic Shortcodes! The “Global” Settings page now has a LESS editor with syntax highlighting (via CodeMirror) and on-the-fly compiling so you can see how it’ll be outputted on the theme-side. The per-page meta-box has gained a new tab …...

Read more →

Fast AS3 Signals with SignalsLite

I was playing around and ended up writing a lite Signals class (ok, 3 classes). The set works like a basic AS3 Signal, minus most of the extra functionality of AS3 Signals (run-time dispatching argument type checking as one example). The goal was to create a very fast Signal dispatcher, with very little overhead, and …...

Read more →

Adobe’s Flash/AIR Messaging Nightmare

Update: Mike Chambers posted an explanation and clarification on where Adobe is headed with Flash and AIR. Update 2: TechCrunch picks up (part of) the narrative. I published an old post with my thoughts on the “Flash is Dead” thing that pops up routinely in media circles after anything happens to shake things up (like …...

Read more →

What is a “Native” App?

I was recently asked my opinion on what makes a “native” app, and this was my response: It depends on how you split that hair. I think it depends on what platform level (hardware, OS, etc.) the particular user of the word native thinks that word applies to. It seems many use the word to …...

Read more →

WordPress Admin Bar Theme Support

Here’s a quickie for WordPress Theme designers: If your theme is getting unwanted scroll-bars because of the new Admin Bar is WordPress 3.1, the core team included a way to handle it. Add Theme Support for it! With a full height layout, you’ll want to avoid adding a margin or padding to a height that …...

Read more →

Flash iPhone Game at Silky 60FPS on 3GS

Well, it’s only a tech demo at the moment. I’ve been playing with this Breakout like game for a while, trying to learn the ins and outs of Flash mobile development – particularly as it relates to performance. I now have the unBrix demo running at close to 60FPS (59.1) – smooth as silk. This …...

Read more →

Scripts n Styles

Introducing a new plugin for WordPress from unFocus Projects! Ever need to add a CSS style or some code snippet to just one page or post in WordPress? We release an admin tool to do just that. On the post edit screen of the admin, Scripts n Styles adds a meta box where you can …...

Read more →

A Simple State Manager for History Keeper

Someone asked how to store a key value pair in HistoryKeeper recently, and this was my answer. History Keeper does not provide any state management features beyond the information you store on the actual deep link (URL hash). However, you should be able to use the deep link information to grab the data you need …...

Read more →

The Bunny (Video) Explodes. Explodes!

UPDATE: I intended to post the source for this a long while ago (after cleaning it up), but I never got around to it. Here it is in it’s current state. I wanted to see how far I could push that exploding Actionscript 3.0 code – see if Flash could handle updating each animating pixel …...

Read more →

The Pixels Explode. Explode!

Update: I posted a follow up an exploding video! Well I guess technically the pixels don’t explode as much as the DisplayObject explodes into pixels! I recently needed an effect that would make a bitmap image look sparkley, so I did some goggling, and game across a Firefly particle effect on a blog post belonging …...

Read more →

Update Theme

Just a quick note. The old theme (iNove) was creating extra history entries for some reason when you came to unfocus.com. I have no idea why, but that theme is now history. This new theme (iCandy 1.4 by Nischal Maniar) fixes the problem and looks nicer anyway. 🙂...

Read more →

3D Gaming is Awesome!

After I watched Avatar in 3D, I became curious about PC gaming in 3D. So I did some research on the subject. There are three kinds of home 3D solutions on the market today (and a few more in theaters); active shutter glasses, and polarized LCD monitors are the two full color technologies. Each have …...

Read more →

Trace Actionscript in a Browser

Testing Flash apps in a browser can be cumbersome, but it needs to be done for some browser only functionality, such as deep linking and back button functionality – as well as checking other things that might change once you are out of the Flash “test movie” sandbox, and into the browser – things like file …...

Read more →

jQuery.historyKeeper

unFocus History Keeper is a JavaScript based library for managing browser history (back button) and providing support for deep linking for Flash and Ajax applications. What I’m proposing is taking History Keeper and making a jQuery plugin, and also a WordPress plugin to include the History Keeper library for use in WordPress. I am primarily …...

Read more →

Testing the WordPress iPhone app

Just testing the iPhone app. Seems pretty spiffy. Can’t manage plugins and whatnot but that’s ok. This is pretty good for posting on the go. It supports landscape typing too. 🙂 For fun (and for testing I attached some pics of some cool clouds that rolled right accross the road on the way into work …...

Read more →

The forums are back!

I got a suggestion that unfocus.com needs forums (well, forum). So just for fun, I thought I’d dig up the old archive, and see if I could get it to work. And it did! Pretty easily too. You will have to register to post, since I can’t get the anonymous plugin to work yet – …...

Read more →

MIT License for unFocus.History Keeper

I have decided that LGPL is overkill for a tiny project like unFocus.HistoryKeeper (and friends) – so I changed it to MIT. LGPL would have been a pain for anyone selling or using a commercial product with history keeper, and I really don’t think the code is substantial enough to be such a headache. But …...

Read more →

End of Life for IE6

Internet Explorer 6 is approaching its end of life! I did a quick Google search and found an “End of Life” movement calling for developers to abandon support on December 31, 2009 or January 1, 2010, but according to the Internet Explorer’s “Lifecycle Supported Service Packs” , it looks like support officially expires on July …...

Read more →

unFocus.Games – Tetris clone

I made a promise on someone else’s blog to post the code for the Tetris clone I made a while back, probably in fatigue induced delirium, a little bit ago, so here it is in a new Google Code project called unFocus.Games. The post on bit-101 post was about game architecture. While developing the code for …...

Read more →

Twitter ftw!

I have to say, I didn’t “get” Twitter for a while. In the midst of all the pre-IPO buzz, I finally signed up, downloaded TweetDeck, and started tweeting. I hooked up just to see what the deal is, but I have to say, it’s a quite a tool. So now you can follow me on …...

Read more →

unFocus.FlashPlayerInfo update for Player 10

Adobe has updated their versioning system for Flash Player. This welcome change, creates a few backward compatibility problems with FlashPlayerInfo though, since the terms I applied to each version decimal place, do not match Adobe’s new terms (they are off by one place-ish, sorta). To address these changes I added a new set of methods to check for …...

Read more →

AS3 unFocus.HistoryKeeper in SVN trunk

I added an initial round of AS3 files to the SVN trunk to make HistoryKeeper more accessible from Actionscript 3.0. If you are feeling adventurous, feel free to check it out of the trunk, and give it a try. There is also a small resurrected Actionscript to Javascript communicator (eh, it’s totally new actually, but …...

Read more →

The Third Option for HTML Font Embedding

In the debate over whether web browser makers should implement .eot font support for Firefox in addition to their support for .ttf files (and .otf), their is an alternative that rarely gets any mention – SVG Glyphs in an html context. This is already supported by Opera 10, Safari 4, and Google Chrome (all prerelease …...

Read more →

MouseWheel on Mac

So for some reason MouseWheel.SCROLL events don’t work on Mac OS X. There is a fix! Gabriel over at Pixel Breaker created a script which fixes it up nicely. The script did require some modification to get it to work with SwfHTML, since it was designed to work with SwfObject. It took very little modification …...

Read more →

Correct User IP for WordPress comments on Mosso

Update #2: It looks like a couple of days after I posted this, the Mosso guys sent word on fresh clicks that the issue has been fixed on their end, rendering this plugin completely useless, days after I put it up. 🙂 I stumbled across a problem running WordPress on Mosso (Rackspace Clould) servers (which …...

Read more →

New Paint and Tetris

I thought the site needed a new coat of paint, and so I think Tetris is in order! Update: Moved to a separate page. Click to give flash focus – arrows move, up arrow rotates. There’s no start button, or end to the game – and no levels or scores either. But it’s a start. …...

Read more →

A problem with Flash Player 10 version number and javascript detection

As you may have heard, Adobe recently released the first beta of Flash Player 10. It looks like unFocus.FlashPlayerInfo has been checking for single version digits, rather than multiple: [cc lang=’javascript’ ] _versionRaw.match(/Shockwave Flash (\d)\.(\d)/); [/cc] The fix is easy enough (I could swear I actually fixed this at one point too): [cc lang=’javascript’ ] …...

Read more →

Share This sans-prototype.js

I had a planed to replace the use of Prototype.js in the Share This WordPress plugin, since that was the only plugin using it. Prototype is quite large, and my server isn’t currently set up to gzip javascript files. I started to replace it with jQuery, and add an option to switch between the two. …...

Read more →

Case Insensitive Permalinks Plugin for WordPress

For a while I have been creating and sending links to History Keeper to /projects/HistoryKeeper/. When I moved that page into WordPress the URL became lower case, and case sensitive. This can be a problem for those used to Windows and IIS non-case sensitive URLs. To get around the problem, I added a hack to …...

Read more →

Ajax Calendar – Widgetized

Update: This information applies to Giraffe AJAX Calendar 2.3.1. AJAX Calendar 2.4 was released on September 3, 2007. This information is incompatible with that new version. Update 2: It seems that this new version is supposed to simply replace the functionality of the old Calendar, without requiring any extra work (so you’d just use the …...

Read more →

Object Patent Magic Woes

Well, it seems that Object Patent Magic is not without it’s problems. I originally intended for this to be a super tiny drop in patch that could be used on any existing site to solve the click to activate issue in IE. But while it does work on everything that I’ve deployed it with, it doesn’t work on all …...

Read more →

No Embedded Web Fonts?

I occasionally come across an argument against the implementation of embedded web fonts in web browsers and I wanted to comment on it. The argument is that embedding fonts in web pages should not be allowed, because either people don’t have the rights to use fonts that way, or because it’s too easy for users …...

Read more →

Embedible web fonts and the rights counter argument

Gah! I’d like to apologize to anyone who received a ping of a very early draft version of this post, or had to suffer through that unfinished thought dump or any of the hurried revisions in between. I’ll post the finished article in a little while. I hit the publish button accidentally on my way …...

Read more →

Object Patent Magic and a note about javascript defer

I’ve updated Object Patent Magic. It was broken for a while. It seems that doing the swap using a deferred script (which loads sooner than window.onload does) causes some problems with if you interrupt already loading content, then try to load it again (which is exactly what Patent Magic for swfs and some PNG transparency …...

Read more →

unFocus.History Keeper 2.0 Beta 1 – Out Now!

The official Google Code name is unfocus-history-keeper. You can find the latest source in SVN. I will be doing development from trunk for now, until I can get to the tags and branches and whatnot to keep things organized. For now, here is a snapshot. I’ll call it History Keeper 2.0 Alpha 1 for now. …...

Read more →

New version coming soon

I just finished work on a new site for my place of work – adcSTUDIO. It’s not quite finished yet, as there are a lot of things missing, but it’s launched, and most importantly from an unFocus Projects perspective, it’s using the latest versions of all the unFocus scripts! Feel free to take a look …...

Read more →

unFocus History Keeper’s New Home

Well, here’s the new (sorta) blog. I’ll try to post here more frequently than I have in the past, but no promises. In the next few weeks, I’ll be getting things in order around here. I’ll eventually pick out a permanent skin, get permalinks working, install Atom 1.0 support, and maybe get maybe get around …...

Read more →