CDN JS - The Missing CDN

What is it? Everyone loves the Google CDN right? Even Microsoft runs their own CDN. The problem is, they only host the most popular libraries. We host the other stuff.

A CDN designed to cater for the other javascript libraries people use.

Cdnjs.com is a CDN governed by users/developers. You can request a library to be added where it will be peer-reviewed and if successful, made available to all.

Looks to be a simple way to add functionality while developing as well as provide an easy deployment process, amongst all the other benefits CDNs offer.

TameJS

Note Tame is not an attempt to dumb down async programming. It's just a cleaner way to write it. Further, your programs will likely have lower latency; with Tame it's a lot easier to keep parallel calls parallel.

Tame JS doesn't just 'dumb down' async programming in Javascript, it makes it beautiful, simple and incredibly elegant.

The sample code demonstrating parallel dns lookups in Node show just how simple it is.

Definitely one to play with in the future.

(again thanks to Steve Pope for the link)

Essential Javascript Design Patterns For Beginners

In this book, we will take a look at a number of popular JavaScript design patterns and explore why certain patterns may be more suitable for your projects than others. Remember that patterns can be applied not just to vanilla JavaScript, but also to abstracted libraries such as jQuery or Dojo as well. Before we begin, let’s look at the exact definition of a ‘pattern’ in software design.

A free mini book from Addy Osmani available as a straight htm download, or (if you navigate up the site tree) as an ePub.

Osmani also writes some cracking articles on HTML5, jQuery and Javascript in general

DotNetZip Library

DotNetZip is an easy-to-use, FAST, FREE class library and toolset for manipulating zip files or folders. Zip and Unzip is easy: with DotNetZip, .NET applications written in VB, C# - any .NET language - can easily create, read, extract, or update zip files. For Mono or MS .NET.

By far, the easiest .NET zip library I've used to date

To echo Node’s evolutionary nature, we have refreshed the identity to help mark an exciting time for developers, businesses and users who benefit from the pioneering technology.

Building a brand

We began exploring elements to express Node.js and jettisoned preconceived notions about what we thought Node should look like, and focused on what Node is: kinetic,connectedscalablemodularmechanical and organic. Working with designer Chris Glass, our explorations emphasized Node’s dynamism and formed a visual language based on structure, relationships and interconnectedness.

Inspired by process visualization, we discovered pattern, form, and by relief, the hex shape. The angled infrastructure encourages energy to move through the letterforms.

This language can expand into the organic network topography of Node or distill down into a single hex connection point.

This scaling represents the dynamic nature of Node in a simple, distinct manner.

We look forward to exploring this visual language as the technology charges into a very promising future.

We hope you’ll have fun using it.

To download the new logo, visit nodejs.org/logos.

I'm no designer, I wouldn't say I have a keen eye for good looks, style or art. But I find the new logo rather... jarring. Something just makes my eyes hurt.

Full credit to the node team though. The requirement for building a brand as they put it means node is continuing it's progression to the fabled 1.0 release

New NodeJS Logo - A Little Fugly?

To echo Node’s evolutionary nature, we have refreshed the identity to help mark an exciting time for developers, businesses and users who benefit from the pioneering technology.

Building a brand

We began exploring elements to express Node.js and jettisoned preconceived notions about what we thought Node should look like, and focused on what Node is: kinetic,connectedscalablemodularmechanical and organic. Working with designer Chris Glass, our explorations emphasized Node’s dynamism and formed a visual language based on structure, relationships and interconnectedness.

Inspired by process visualization, we discovered pattern, form, and by relief, the hex shape. The angled infrastructure encourages energy to move through the letterforms.

This language can expand into the organic network topography of Node or distill down into a single hex connection point.

This scaling represents the dynamic nature of Node in a simple, distinct manner.

We look forward to exploring this visual language as the technology charges into a very promising future.

We hope you’ll have fun using it.

To download the new logo, visit nodejs.org/logos.

I'm no designer, I wouldn't say I have a keen eye for good looks, style or art. But I find the new logo rather... jarring. Something just makes my eyes hurt.

Full credit to the node team though. The requirement for building a brand as they put it means node is continuing it's progression to the fabled 1.0 release

Extension API Updates in Chrome 13

...you can now make cross-origin XMLHttpRequest calls with the privileges of the extension directly from your content script. You will no longer need to relay these requests through a background page; this should simplify your code. In some cases, it may even eliminate your need to use a background page. Here’s a sample extension which demonstrates the old way a content script could make a cross domain request. As you can see, the extension required a background page to route the cross-origin calls through a chrome.extension.onRequest listener. Using the new content script cross-origin capabilities, we were able to successfully rewrite the extension to completely eliminate the background page requirement. This reduces the memory required to run the extension, and reduces code complexity as well...

You can now (as of Chrome 13) directly execute cross-origin XMLHttpRequest calls from content script pages, as opposed to routing calls through the extension background page.

This is a real performance gain as the background page does not have to be riddled with listeners and in some cases can be removed from the extension all together.  Content scripts are injected based on match patterns in the extensions manifest file.

Further advances include additional match pattern options and advances to the Proxy API

YUI Theater — Ryan Dahl: “Introduction to NodeJS”

NodeJS is going from strength to strength in both recognition and adoption. And rightfully so.

An event driven, dynamic, robust server architecture that can turn its hand to near any task deserves a good deal of credit. Ryan Dahl, its creator, deserves much of this credit.

NodeJS sparked an interest in me some time ago and I'm hoping to one day add it to a list of my proficiencies.
Credit to Steve Pope for spotting the vid

Hello? Hello? Is This Thing On?


So it's that time again.

That time when I think I should sort myself out.  Write those blogs posts.  Finish that code snippet.  Make a note of that interesting site.  Leave a reminder to myself (and others) of how I fixed that random edge-case bug.

I've tried this before and I think it didn't work for two reasons:

  • I'm a coder at heart - I love it - but I used to be in a job that was killing that love.
  • Time.  I sometimes dedicate too much time to things that are fun, but less productive.  Having recognised that I'm hoping I can change it.

The plan is to use this domain to keep track of my projects and brain waves, anything that I think will be of future use to myself or others.  On occasion it will just be somewhere that I can start a conversation or a bit of a debate.

Posts will largely be centered around coding and most likely only be snippets that have helped me get through a task.  But I'd like to dedicate some time to do a series of posts on a given topic (maybe Chrome extensions) and perhaps get a long post out once a fortnight.

I don't consider myself to be on the bleeding edge of most tech - there's a lot of tech out there after all.  There are also many, many people out there that have a considerably larger understanding of topics that I intend to cover and teach myself (some I have even had the pleasure of meeting or even working with).

This blog will be an avenue of opportunity for me to add my small voice to an overcrowded conversation but perhaps in joining the conversation I'll be able to further my own knowledge as well as help educate others.

So let's see how things go, eh?