Yahoo! Hack Day: 10 Things You Need to Know To Be Ready to Hack in the Ecosystem

Iain Lamb is talking on “Hacking the Ecosystem”.

Most Important thing to accomplish! Meet the people around you! What are they hacking on? Get some ideas!

What do you need to think of while hacking:

Short Term Scales to Long Term Scales!

9) Know the atoms! The fundamental units of text…

unicode, not ascii
glyph != byte
codepoint, codepag,e encoding
declare it!
utf-8 encodes unicode

Unicode is the code page – which numbers maps to which characters!

8) grok the dna of data! Know your formats! Edit these as text!

Web services works with data and recombines and changes data!
know your XML! SOAP, XML-RPC!
check out JSON! leaner, meaner, more consumable. typed values comes from it.
html 4.01 strict
wiki text – great for collaboration!

7) invest in efficiency

be prepared beforehand, and be as efficient as possible. How can you improve your input efficiency? Typing skills?? Accuracy of typing!
Do you have a good text editor?? Emacs? Invest in it!
Do more at build time, get a good build framework. “Ant” or Python or something! tests, checks, make sure it works!
CSS sprites, one big concatenated javascript or CSS file to improve performance.

6) Work at the right layer!
progressive enhancement. seperate various layers – CSS, HTML, Javascript, lower… Seperation of concerns! Do very plain HTML and do some funky CSS stuff, dont mix! Describe it functionally before you describe its appearance.

5) know use and develop the gadgets of scientific observation!

no debugger, no performance indicator, no way to look at DOM…??? NO!

firebug for firefox, DOM inspector, Web developer!
venkman (for debugging), ie debugger (get it through .NET, its worth the $$$), developer toolbar
fiddler (http proxy, so that you can see whats going through the wire on a text basis!), parallels (for mac), vmware, jslint
check out developer.yahoo.com for a talk on this stuff

4) DONT WRITE FROM SCRATCH IF YOU DONT NEED TO! Reuse, recycle, improve!!! Modules!

rework old code, develop pattern language (whats the controls, what are you trying to accomplish, what does the user do. think of patterns that are technologically agnostic, but think of the user experience)

reuse frameworks from other people, dont reinvent the wheel, if you can make something cross-platform then thats great! YUI Library is a great example! Use it if you need!
Think of “Dojo” framework and others! (Mochikit) Great CSS and more.
ala carte, does it scale?

3) Work with the grain…

know your DOM!
strive for elegance, even if that means being unfashionable. Don’t code in a different language that gets translated, just jump in and know your javascript. Functional programming, closures, LISP stuff is the way to go, it works for Web on the client side really well! AVOID DOGMA, COMBINE TECHNIQUES!
use your own voice, just do what you think is awesome!

2) Biodiversity!

write a baseline that works on all browsers, start off inclusive!

multi-os, accessibility and availability!

1) Cross-polinate, evolve like hell!

there is no static, beautiful state, there’s always change – code in the world and on the web is an organic being.
make it work above make it beautiful.

security: make it work and do frequent releases
you: be enough of a generalist to be a good specialist, know the terrain even if you dont use everything. IF you’re stuck on the back-end, at least know whats going on in the front.

Know many languages!

Know and experiment with many programming styles!

0) Hack Socially! Share your DNA!

social bookmarking, keep a blog, consume rss, connect with users/developers!
shadow program and debug with someone!
use version control! Check in and
use and contribute to open source!

Think about it, follow your colleauges’ good ideas and the more!

11) Nothing is off limits! (and notice that there’s always something more)

search, mail, photos
make unholy alliances
une stuff in unexpected ways
make mistakes, BUT
make it work!
understand scale
have funnnn!

HACK LIKE MAD!!!!!!!!!!

Comments are closed.