it’s pretty easy to voice your opinion about SOPA. take the mere 5 seconds you need to get it done. ending piracy is a worthy endeavor but giving control of web censorship to the hollywood & the film industry doesn’t seem like a good idea.
one-step process to notify your congressional representative:
http://www.google.com/takeaction/
more information about SOPA and the strike across the web on January 18th:
http://www.sopastrike.com/
if doug crockford is javascript jesus, then dave herman is an ecma apostle.
ecmascript 6 has a lot of really cool stuff! i will be using several of the new features as soon as there is a shiv to make them compatible – they look really useful. some of the new features are beyond my level of programming. sad that the ship date for the spec is not until 2013, but happy to see the vendors are already working on shiv’s to make it backwards compatible.
i was watching a javascript talk featuring doug crockford. i wanted to find the next one in the series, but couldn’t find it. i quickly realized that whoever uploaded the series of videos had fun naming them – each video has a different version of the name of the sequence. they all begin with “Crockford on JavaScript”, and they share the “yui theater” title screen and graphic. i’m kinda embarrassed that i noticed this, and i don’t even know why i’m posting about it. without further ado, here is the list:
Crockford on JavaScript – Volume 1: The Early Years
Crockford on JavaScript – Chapter 2: And Then There Was JavaScript
Crockford on JavaScript – Act III: Function the Ultimate
Crockford on JavaScript – Episode IV: The Metamorphosis of Ajax
Crockford on JavaScript – Part 5: The End of All Things
Crockford on JavaScript – Scene 6: Loopage
Crockford on JavaScript – Level 7: ECMAScript 5: The New Parts
Crockford on JavaScript – Section 8: Programming Style & Your Brain
made this a while back, and figured i’d share. it’s a rainbow flag / gay pride flag made entirely in css3:
width: 450px;
height: 300px;
background-size: 100% 100%;
background-image: linear-gradient(bottom,
rgba(77,20,140,1) 0%,
rgba(77,20,140,1) 18%,
rgba(27,119,205,1) 18%,
rgba(27,119,205,1) 33%,
rgba(54,160,48,1) 33%,
rgba(54,160,48,1) 50%,
rgba(255,210,0,1) 50%,
rgba(255,210,0,1) 66%,
rgba(255,160,0,1) 66%,
rgba(255,160,0,1) 83%,
rgba(207,15,15,1) 83%,
rgba(207,15,15,1) 100%);
background-image: -o-linear-gradient(bottom,
rgba(77,20,140,1) 0%,
rgba(77,20,140,1) 18%,
rgba(27,119,205,1) 18%,
rgba(27,119,205,1) 33%,
rgba(54,160,48,1) 33%,
rgba(54,160,48,1) 50%,
rgba(255,210,0,1) 50%,
rgba(255,210,0,1) 66%,
rgba(255,160,0,1) 66%,
rgba(255,160,0,1) 83%,
rgba(207,15,15,1) 83%,
rgba(207,15,15,1) 100%);
background-image: -moz-linear-gradient(bottom,
rgba(77,20,140,1) 0%,
rgba(77,20,140,1) 18%,
rgba(27,119,205,1) 18%,
rgba(27,119,205,1) 33%,
rgba(54,160,48,1) 33%,
rgba(54,160,48,1) 50%,
rgba(255,210,0,1) 50%,
rgba(255,210,0,1) 66%,
rgba(255,160,0,1) 66%,
rgba(255,160,0,1) 83%,
rgba(207,15,15,1) 83%,
rgba(207,15,15,1) 100%);
background-image: -webkit-linear-gradient(bottom,
rgba(77,20,140,1) 0%,
rgba(77,20,140,1) 18%,
rgba(27,119,205,1) 18%,
rgba(27,119,205,1) 33%,
rgba(54,160,48,1) 33%,
rgba(54,160,48,1) 50%,
rgba(255,210,0,1) 50%,
rgba(255,210,0,1) 66%,
rgba(255,160,0,1) 66%,
rgba(255,160,0,1) 83%,
rgba(207,15,15,1) 83%,
rgba(207,15,15,1) 100%);
background-image: -ms-linear-gradient(bottom,
rgba(77,20,140,1) 0%,
rgba(77,20,140,1) 18%,
rgba(27,119,205,1) 18%,
rgba(27,119,205,1) 33%,
rgba(54,160,48,1) 33%,
rgba(54,160,48,1) 50%,
rgba(255,210,0,1) 50%,
rgba(255,210,0,1) 66%,
rgba(255,160,0,1) 66%,
rgba(255,160,0,1) 83%,
rgba(207,15,15,1) 83%,
rgba(207,15,15,1) 100%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.00,rgba(77,20,140,1)),
color-stop(0.18,rgba(77,20,140,1)),
color-stop(0.18,rgba(27,119,205,1)),
color-stop(0.33,rgba(27,119,205,1)),
color-stop(0.33,rgba(54,160,48,1)),
color-stop(0.50,rgba(54,160,48,1)),
color-stop(0.50,rgba(255,210,0,1)),
color-stop(0.66,rgba(255,210,0,1)),
color-stop(0.66,rgba(255,160,0,1)),
color-stop(0.83,rgba(255,160,0,1)),
color-stop(0.83,rgba(207,15,15,1)),
color-stop(1.00,rgba(207,15,15,1))
);
}
here’s what it looks like:
notes from Kristina Halvorson’s talk “A Content Strategy Roadmap” at AEA2011SF
Content first!
Content strategy plans for the creation, delivery and governance of content.
Strategy without tactics is the slowest route to victory.
Tactics without strategy is the noise before defeat.
– Sun Tzu, The Art of War
“We need to get away from the launch it and leave it mentality.”
content audit, you *have* to do one of these!
a spreadsheet with the following: post id, title, url, meta tags, author, notes (what works, what needs to be changed, if it needs to be re-written)
define your project, and your content
define:
a core message
e.g. “Jungle makes it possible for everyone to experience the joy of owning, breeding and raising exotic frogs.”
a style guide – not a big ass binder that you can’t use. just define your voice. it can be a 1-pager… e.g. “smart, helpful, enthusiastic”
topics/transactions
governance guidelines
editorial calendar e.g. upcoming hot topics for each month
• Empower your writers
• Assign content owners
• Content inventory
• Short-form style guide
• Page tables
• Use real copy
• Editorial calendar
• Collaborate on metadata
• Content QA plan
• Get Real
Content always!
http://www.scoop.it/t/an-event-apart-content-strategy-resources
notes from Andy Clarke’s talk “Smoke Gets In Your Eyes” at AEA2011SF:
check out luke wroblewski’s notes on the same talk:
http://www.lukew.com/ff/entry.asp?1471
madmanimation
(how it was made, in css3)
what do you think of when you hear web animation? you probably think of flash.
css3 animations are a new and emerging technology, more support everyday:
https://developer.mozilla.org/en-US/demos/tag/tech:css3/
css3 transitions:
transition-property : opacity; /* BACKGROUNDS, BORDERS, COLOURS, DIMENSIONS, FONTS, OPACITY, POSITION, TRANSFORMS */
transition-duration: .1s;
/* transition-delay: .1s; */
transition-timing-function: linear;
}
/* shorthand */
.lamp { transition : opacity .25s .1s linear; }
/* vendor prefixes */
.lamp {
-webkit-transition : opacity .25s .1s linear;
-moz-transition : opacity .25s .1s linear;
-o-transition : opacity .25s .1s linear;
transition : opacity .25s .1s linear;
}
animation keyframes
from { opacity : 0; }
to { opacity : 1; }
}
@keyframes lamp {
0% { opacity : 0; }
25% { opacity : .5; }
70% { opacity : .24; }
100% { opacity : 1; }
animation delay, duration, iterations
animation-delay : 1500ms;
animation-duration : 6s;
animation-iteration-count: 1;
animation-timing-function : linear;
animation-direction : normal;
}
/*shorthand */
.lamp { animation : 6s 1500ms 1 linear normal; }
/* you need vendor prefixes for moz and webkit */
.lamp {
-webkit-animation : 6s 1500ms;
-moz-animation : 6s 1500ms;
animation : 6s 1500ms;
}
animate translate
top : 540px;
left : 435px;
animation-name :
shadow; animation-duration 1s;
}
@keyframes shadow {
0% { transform : translate(0,0); }
65% { transform : translate(0,-135px); }
75% { transform : translate(0,-135px); }
100% { transform : translate(0,-130px); }
}
some other animation selectors:
transform : translate,
animate translate,
transform: rotate(-20deg)
transform : origin
animate rotate
“The Madmaninmation demo of animatable is a great example. When you check the source code it falls back to a list with the script of the animation. This allows everybody to know what is going on and helps your product to be understood by search engines.”
– Chris Heilmann
<li id="scene-01"> <p>Don Draper pauses in the doorway of his Manhattan
office. Everything except fan blades are still.
Don’s desk is littered with bottles.</p> </li>
<li id="scene-02"> <p>Don walks slowly into the room, his shoes reflected in
the highly polished floor.</p> </li>
...
</ol>
cool little “squeeze” animation:
animation-name : logo;
animation-duration : 1s;
animation-iteration-count : infinite;
}
@keyframes logo {
0% { transform : scaleX(1); }
50% { transform : scaleX(.95); }
100% { transform : scaleX(1); }
}
/* needs vendor prefixes...*/
highlight anchor links:
animation-name : li-fade;
animation-duration : 2s;
animation-iteration-count : 1;
}
@keyframes li-fade {
0% { color : rgb(234,46,34); }
15% { color : rgb(255,255,255);
100% { color : rgb(255,255,255); }
}
notes from Aarron Walter’s talk “Idea to Interface” at AEA2011SF
execution vs creative thinking
when you stop thinking creatively, it’s bad for you, your boss, the business
how to promote creative thinking:
- independent thinking
- start an independent project
get in the habit of having new ideas
1,000 things on a shelf. (building a toolbox)
how did you go from where you’ve been to where you’re going?
i’m not the best, but i’m as good as the next guy
hiero – king of syracuse
ideate
incubate
don’t show the judge…. don’t talk about half-baked ideas, bc you’re introducing the judge into the creative process
design (“make things, collect things, break things, connect things”)
- who are you designing for? wireframes
- what are you solving?
- sketchboarding. (put your ideas where people can see them, more collaboration) (video)
fork (create different versions)
evaluate
- prototyping http://keynotekungfu.com http://gomockingbird.com/ http://icanhazjs.com/ http://patterntap.com/
- http://developer.yahoo.com/ypatterns
- Designing Interfaces by Jenifer Tidwell
- https://github.com/stubbornella/oocss/
- http://flowplayer.org/tools/
- design persona
“scratch an itch”
weekend hacker
make an idea visible – clarity, confidence, boss, employee, indie, permission
resources:
http://www.alistapart.com/articles/personality-in-design/
http://www.abookapart.com/products/designing-for-emotion
notes from Nicole Sullivan’s talk “Using Flexible Boxes” at AEA2011SF
things to avoid:
!important declarations
float (too many means you don’t have an abstract layout mechanism)
font-size
myth: pixel-based font sizes are naughty.
why did we stop using pixels for fonts? (IE6 didn’t allow you to re-size pixel-based fonts)
bc with ‘page zoom’, pixels, em, and %’s can all be resized (IE7+)
takeaways:
%’s and em’s have drawbacks for predictability. nesting messes it up
px-based fonts can be resized
check how many ie6
only use %/em’s on body and “leaf nodes”
myth: don’t add any extra markup
separation of concerns. “process of separating a computer program into distinct features that overlap in functionality as little as possible”
the module body plays an important role.
takeaways:
solve one problem at a time.
add mark-up judiciously,
don’t cause bugs just to eliminate a div or two
myth: the more semantic the better
css is coupled too tightly to the style – mixing things up that don’t belong
class names & ids are not read by accessibility devices, not read by search engines, not read by users
more is not always better
css is coupled too tightly to the content – mixing things up that don’t belong
DRY – don’t repeat yourself
if you find yourself solving the same problem over and over, you need to create an abstraction
“Media Block”
unabashedly visual, but class names are abstract enough
what do we know about this media block?
- can it be nested?
- does it have a close button?
- does it have a clearfix?
what don’t we know about this media block?
- is the image width and decoration unique for each implementation?
- is the content known?
- is the width known?
need to separate structure from chrome
takeaways:
choose good semantic elements: headings, list, paragraphs
css shouldn’t be tightly coupled with display nor content
think abstract (visual represendatations of our repeating patterns)
“understanding specificity”
universal selector – specificity of 0
concatenating specificity
[inline, id's, classes, elements]
0,0,1,0 is less specific than 0,0,0,10
specificity grows over time (cruft!)
difficult to tell which rules take precedence
developers end up coding by firebug
!important adds another layer of specificity
[inline !important ] [ids !important] [classes !important] [elements !important] – [inline] [ids] [classes] [elements]
creates a hostile coding environment
“hostile code environment”:
- Two layers develop
- Specificity grows over time (more and more rules become impor tant).
- Even more difficult to tell which rules will take precedence Developers always code by firebug
- Eventually, it becomes impossible to get the look and feel you want.
takeaways:
- Classes are far more flexible & reusable
- Keep specificity as low as possible
- Avoid the descendent selector
- Make reusable website “lego”
- Add classes to the element you wish to change rather than a parent node.
“GREAT DEVELOPERS CAN BUILD AMAZING THINGS
if we move worst-best practices out of our way”
-@stubbornella
works on everything > ie6 (from the facebook stylesheet)
clear: both;
content: ".";
display: block;
font-size: 0;
height: 0;
line-height: 0;
visibility: hidden;
}
Ethan Marcotte’s talk “The Responsive Designer’s Workflow” at AEA2011SF:
extractions and soundbytes from the presention:
What makes a design responsive?
- flexible grids
- flexible images and media
- css media queries
“design isn’t just about layout.”
“design is the method of putting form and content together.” -paul rand
“design is the stuff around the end result.” -mark boulton
What makes our design responsive?
Starting a conversation.
The pod convenes.
Designers: introduce the comp.
Developers: ask lots of questions.
Discuss how the layout might adapt.
Discuss how the interface might adapt. (Touch, Keyboard, Mouse, Spoken)
We need questions more than we need answers.
What value does this content have for our mobile users.
Mobile traffc has exploded
New capabilities — touch, geo, voice, ubiquity
Narrower screens force us to focus
The mobile user can’t control their environment, so designs for mobile users should be stripped free of cruft.
Context doesn’t necessarily determine the user’s intent.
“If it’s not valuable to mobile users, what value does it have to any users?”
Prototype like the wind!
Step 1: Fluid Grid.
target ÷ context = result
Step 2: Flexible Images
max-width: 100%;
}
Step 3: Media Queries
Identify common breakpoints
DEVICE TYPE -> WIDTH
Small screens (portrait) -> 320px
Small screens (landscape) -> 480px
10″ tablets (portrait) -> 768px
10″ tablets (landscape), “desktop” -> 1024px
Widescreen -> 1200px
media query polyfill: github.com/scottjehl/Respond
Designing in the browser
The interactive design review.
Verify your work␣“live”
- How well does the layout adapt?
- Do individual modules still feel␣usable?
- Do any elements need additional␣design direction?
Rinse, repeat, and refine as␣needed.
A flexible foundation is key. (It means considerably less code, too.)
Adaptive > Responsive
http://www.informationarchitects.jp/en/
To be honest, I can think of a few, but not many use cases of web sites or apps which are or should be exclusively mobile. It seems like “the Mobile Web” allows us to revisit all of the talk of inclusion, progressive enhancement and accessibility from years ago.
— STEPHEN HAY, There Is No Mobile Web
A responsive layout meets mobile first.
- Defaults to a linear, small screen-friendly design
- Media queries based on min-width scale up, not␣down
- More accessible, more compatible, more␣responsible
http://github.com/␣lamentgroup/Responsive-Images
Being responsible.
“Mobile” & “Desktop”
vs.
“Mobile sites” & “Responsive sites”
It’s about your audience.
his book: Respsonsive Web Design Ethan Marcotte
Latest Tweet
- I just unlocked the Level 3 "Hot Tamale" badge on @foursquare! Sweet! http://t.co/YLu2jlQo 4 hours ago
Archives
- January 2012
- December 2011
- October 2011
- September 2011
- August 2011
- July 2011
- July 2010
- April 2010
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- March 2009
- January 2009
- December 2008
- October 2008
- September 2008
- August 2008
- April 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006

