Code Camp, 8-9 Nov 2008, Foothill College
http://www.siliconvalley-codecamp.com/
This conference is all free, and organized by volunteers. Foothill does what it can to support it, and Microsoft and LinkedIn buy the pizza for lunch. As much as I hate working weekends, this is just too efficient a way to learn for me to pass up.
A couple of Ajax libraries I need to study: extJs and YUI
“JavaScript: The Good Parts” by Douglas Crockford
JavaScript was introduced in 1995. Crockford says that it is not such a bad language, that the DOM API and its lack of standards is what is bad. He mentioned some interesting style issues, always favoring simplicity and bug-avoidance over clever or efficient coding:
- always use ===
- always use {}
- don’t use ++ nor –
- always use break with switch
He also mentioned two things that I need to study:
- lambda is a big benefit of the JavaScript language
- “global variables are the cause of cross site scripting attacks”
- function closure: a function object contains a function and a reference to the environment in which it was created (its context.)
“Easing Into Agile” by Ted Young
Agile is a fairly new process for software development teams. It is described at:
http://agilemanifesto.org/
With agile, you can see every day what you’re working on and what you’re getting done. You write story cards that each represent a small testable feature or feature piece. He has less then 12 people in a team.
“Test Driven Development” by Mathias Brandewinder
TDD is a development methodology. It is compatible with Agile and many other development processes. A very simple concept, it just says do things in this order:
1) write the test that won’t work because you haven’t written the code it is to test yet.
2) write whatever code you need in order to get the test to work.
3) improve the code you wrote in 2), without breaking the test you wrote in 1).
“0 to 60 with Regular Expressions” by Nima Dilmaghani
This was a great primer that made me wish I had a very clear-cut job writing regular expressions all day. Nima’s blog is Nimad.wordpress.com, and it contains a cheat sheet for regular expressions.
A regular expression gets applied to a file of text, and it picks out just the text in the file that “matches” the regular expression. For example, if you are looking for email addresses in web pages, you can write a regular expression that will “match” any email address and apply it to all the web pages that you can find. This is how spammers get our email addresses, and why we should never put email addresses on web pages.
Nima recommended:
- a tool called “Regex Designer.
- one should never mess with regular expressions without some tool.
- that we write the test cases, both pass and fail, before we write the regex.
- your regular expression should always include the most specific target first, the general second.
- your regular expression should include the most common first, so it is more efficient.
- use IgnoreCharacterWhiteSpace
“The Basics of Threading” by Kim Greenlee
Threads are error-prone, since they are so much about timing. They are also expensive, costing many many machine cycles to setup and take down. Therefore, you should only use them when you have to.
Use a debugging tool like Replay Solutions.
Always name your Threads, it will really help in debugging.
Plan your Thread use from the beginning of development.
Measure performance with and without Threads and keep the Threads only if performance improves.
Test your code both with and without the debugger running. This is because the presence of the debugger in memory will affect the Threads.
“UI Design Fundamentals” by Uday Gajender
In UI, you want a balance between information, interaction and visual.
See Kuler.adobe.com for a tool to choose colors.