May 28th, 2010 by Aaron N.
I know, it’s been a while. A long while. What have I been up to? Oh, a little bit of this and a little bit of that and maybe a pinch of this.
And speaking of what I’ve been up to, I’ve mostly been focused on my job at Cloudera, which is teh awesomes. How awesome? Well, I work in an awesome space with awesome people on awesome projects.
…and we want you. Were looking for someone to help us build a lot of cool things, and the job involves a lot of JavaScript. We push code into various MooTools projects daily. It’s all built on MooTools ART, ART Widgets, MooTools More, and of course Clientcide’s JS, as well as other such goodies. You’ll be hacking with the cutting edge of MooTools and pushing your work back into the community.
Here’s our sales pitch:
There’s more to UI development than writing a bunch of HTML, CSS, and JavaScript. You know what we mean; it takes design sensibilities to do it well. It’s the kind of thing you know when you see it – when things work smoothly and intuitively. Cloudera (recently voted as the #1 startup by VC Journal – http://cl.ly/fb5cc4338f0d07fc5539 ) is looking for someone with those kinds of sensibilities to help us build Cloudera Desktop – a virtual web-OS style application suite for managing large Hadoop data clusters. We want to make working with a virtual cloud of computers as slick as OSX or Ubuntu and to do it we’re writing some cutting edge JavaScript, but the people writing it need to have some design sense, too. If you enjoy spending time in Photoshop and Illustrator as much as you enjoy writing closures and recursive functions, then you’ve found the right job.
Required Skills:
- 3+ years of experience in developing web UI applications.
- Solid grasp of cross-browser, object-oriented JavaScript (closures, inheritance, etc)
- Significant experience in developing AJAX-enabled web applications
- Experience in coding standards-compliant semantic markup in XHTML/CSS
- Knowledge of and a preference for JavaScript frameworks such as MooTools, jQuery, YUI, Prototype, Dojo, etc.
- A passion for writing super optimized and clean code
- Some experience designing user experiences; a working knowledge of Photoshop and Illustrator
Strong Plus:
- Experience with data and information visualization is a strong plus
- Experience building web applications in Django/Python
- Experience developing desktop applications UI (e.g. with Adobe Air)
Involvement in an open source project (examples: committing code, writing plugins, involvement in user forums) preferably one focused on JavaScript
If you’re interested, ping me and send me your resume.
Posted in Uncategorized | 1 Comment »
January 15th, 2009 by Aaron N.
Last fall I gave a talk about MooTools at the Ajax Experience in Boston. Adobe just put it online and I thought I’d share. This talk is first an overview of MooTools and what it has to offer and then delves a little bit into my pattern programming principles that I’ve been blogging about here lately.
I’ll point out that this was at 8am on the last day of the conference and it takes me a few minutes to really get going. If you’re already familiar with MooTools there’s nothing new here for you (probably). The whole thing is about an hour and twenty minutes long…
Posted in Uncategorized | 7 Comments »
December 24th, 2008 by Aaron N.
It’s xmas eve and I don’t have time to explain it, but I will later tonight or tomorrow. I’m removing Element.Delegate from my repository for now. Basically, it was premature. It just wasn’t ready for release and I don’t have time to fix it. I’ll revisit it in the next few days.
Posted in Uncategorized | Comments Off
January 24th, 2008 by Aaron N.
I was helping someone today with their javascript and they asked me about how and when I manage errors in the classes and functions that I write. I wrote him back an email which I think actually could be useful to others, so here it is.
There are three types of error handling that I use:
- Graceful: if possible, just ignore the error and continue with some default state or without a meaningful value
- Debug: throw a warning to the dbug.log method but continue otherwise
- Break: Either explicitly throw an error or (more often) just let the error that is thrown at runtime be thrown
Read the rest of this entry »
Posted in Optimization, Server-side Integration, Uncategorized | 1 Comment »
June 26th, 2007 by Hamm
There is a new “Facebook” application that utilizes CNETs great API system. This app that was developed is called “My Tech”.
Apart from the great technology use, it is a fun way to show off your latest tech gear to your friends. The best part is you can show your disdain for certain tech products if you absolutely hate it… Good times
“Tag line from app profile”
This application allows you to let everyone know about the latest tech gadgets available using MyTech powered by the CNET API. Facebook users can find it at: http://mytech.cnet.com
CNET Report on CNET MYtech
Posted in Browser Stuff, CNET API, Uncategorized | 6 Comments »
March 14th, 2007 by Aaron N.
Valerio posted over on the Mootools forums today a list of changes in the upcoming 1.1 version of mootools. We’ve been hard at work on a lot of this stuff and I’m excited to see it come out. After this version, we anticipate working less on the core framework and more on plugins and widgets.
————————————————————————————————————
#Additions
————————————————————————————————————
- CUSTOM EVENTS!
- $each also iterates objects
- added Element::getStyles
- added Element::hasChild
- added Array::include
- added Array::merge
- added $merge, to merge objects
- Dom.js uses XPATH in supporting browsers
- the use of +’px’ in setStyle is not required anymore.
- added XHR::cancel
————————————————————————————————————
#Changes
————————————————————————————————————
- Object.extend is now $extend, still compatible
- Object.native is now $native, still compatible
- Element has been splitted in Element.Events, Element.Form, Element.Dimensions
————————————————————————————————————
#Elements Creation
————————————————————————————————————
- elements creation is easier: new Element accepts second param
- elements creation for elements with name/type is easier, just use second argument.
- setProperty for name/type are is supported anymore.
————————————————————————————————————
#Notable Fixes
————————————————————————————————————
- dom logic is highly optimized and its blazing fast
- better sortables, no more flickering, removed Drag dependency
- Fx.Slide now accepts borders and margins. Positioning is now possible.
- Element::toQueryString in ajax now works as intended with all Form elements, including multiple selects.
- Element::setStyle supports float
- Element::setProperty and Element::getProperty now supports “for”
————————————————————————————————————
#Obvious Things
————————————————————————————————————
- code cleanup and optimization
- bugs and incompatbilities fixed
- mootools is faster, FASTER, FAAASTEEERRR
————————————————————————————————————
#TODO
————————————————————————————————————
- some bugs left
- testing
- css3 selectors (?)
- ???
Posted in 'Industry' News, CNET JS Standards, MooTools, Uncategorized | 1 Comment »
January 18th, 2007 by Aaron N.
I’ve updated my Mootools Tutorial for the upcoming version 1.0 of the library. It (the library) is still in development, so my tutorial is likely to always be a little behind the svn, but if you’re digging into Mootools for the first time, or you want to see what’s different in version 1.0, here’s the place to start.
I’ve also installed a copy of docuwiki for all my example and tutorial work. The old stuff is still there but I’ll be moving it all over to the wiki. Expect to see more examples of code I’ve written in the coming weeks.
Posted in Examples, Reference, Uncategorized | 3 Comments »
November 25th, 2006 by Aaron N.
Hi gang,
To go along with the posting of our collection of scripts, I’m still writing tutorials on how to make use of all our code. Today’s update is for all our extensions to the Mootools libraries that we’ve written.
You’ll find new helper functions, new extensions to ajax, string, element, window and more. For the most part, you can just drop these scripts into your environment and they should work. If there are dependencies, you can find them listed at the top of each script.
Posted in CNET JS Standards, Code Snippets, Examples, MooTools, Reference, Uncategorized | 1 Comment »
October 27th, 2006 by Aaron N.
I spotted this post over at the Mootools forums and thought I’d share. It’s really amazing how much you can get out of this little library. One of the things our new framework does is let us create functionality like this and deploy it so any producer/engineer can use it with relatively little effort.
Tabs
The original author asked me for a moo-conversion, work is in progress. Will refactor still much of the code and add support for Dragging into tabcontent (Dragging over a tab activates it).
http://dev.digitarald.de/tabs.html
Playground Dragging (Reverse Dragging)
Dragging reversed, wonky because onStart and onComplete have this 10ms delay, so in some situations the position is changing.
http://dev.digitarald.de/drag.html
Fly-over-background
Scrolling effect, like the effect in flash used on some nice sites. Scrolling from content to content that is attached to a big background image. Just a performance check ;)
http://dev.digitarald.de/tile.html
Ghost Dragging
Shopping Card dragging? Drag your favorite element and drop a copy of it, like in Rich Client Shopping cards or Item-to-Category. Very basic, added my personal spice with ajax and more checks inside my own rich client project ;)
http://dev.digitarald.de/ghostdrag.html
More to come (Better Lightbox, mooSelectBox, conversion of Floating Windows).
Posted in Uncategorized | 2 Comments »
September 20th, 2006 by Aaron N.
MooTools continues to impress me. Check out the Class.implement and Class.extend functionality in this great article from Cory Hudson (there are numerous code examples).
mootools implements a class inheritance scheme that is inspired by Dean Edwards’ wonderful Base class. Creating a class is similar to Prototype, but now you don’t ever have to think about the prototype object when you define the class…
…mootools supports multiple inheritance in a Ruby mixin style with the Class.implement() method. Using the implement method of an existing class, that class can inherit methods and properties from another class or object. Unlike Class.extend(), the implement method is called on the class you are modifying, not on the object being copied. This method can be used to support multiple inheritance.
And here’s another article from Cory on MooTools numerous helpful utility functions:
The new mootools JavaScript framework has quickly impressed me with its design and usefulness. The library was clearly written to meet real programmers’ needs while working in JavaScript. Just take a look at some of the new utility functions and methods it provides.
Note: This article covers functions and methods found in the Array.js and Function.js modules of mootools.
Posted in Code Snippets, Examples, MooTools, Reference, Uncategorized | Comments Off