Skip to content

McKay Tower on Blues

We have had some great weather this winter compared to year’s past with lots of bright blue skies. Here is a quick photo of the McKay Tower in downtown Grand Rapids against that pretty blue. I snapped this on the walk back to work after lunch with Erica on February 8th, 2010.

Clicks for Quakes GR

This weekend was an event that I had been looking forward to for a couple weeks now. Some great people (Sasha Wolff, Adam Bird and Innereactive Media) from West Michigan pooled efforts together to bring an event to Grand Rapids that was really amazing. The idea started soon after the earthquake on January 12th by some photographers down in North Carolina. It’s a simple idea to make some extra money for people that need it in Haiti by some people that did’t have a bunch of extra cash around but had the ability to produce something that people want. Sasha Wolff brought the project to West Michigan, Adam helped with the studio space along with photographic skill/knowledge and Innereactive Media brought in some marketing for the event. I hung out just to help out with random stuff that needed to be done along the way. We all had a great time and everyone that came by seemed to be very happy with the experience.

Talking about the OS on iPhone/Pod/Pad’s

Great analogy by a friend during a conversation about the OS that the Apple mobile devices runs. I said he needs a real OS and he said he basically has one but its intentionally locked down.

[3:34] <chris@chrisfarber.net> it’d be like…
[3:34] <chris@chrisfarber.net> taking a tesla roadster
[3:35] <chris@chrisfarber.net> then locking it down so it can only accelerate 1/4 as fast and maxes out at 30mph

[3:34] <chris> it’d be like…

[3:34] <chris> taking a tesla roadster

[3:35] <chris> then locking it down so it can only accelerate 1/4 as fast and maxes out at 30mph

Very well put, Chris!

Are you a team player?

A friend of mine posted a list of laws regarding being a team player. Definitely some interesting stuff here.

  1. The Law of Significance
People – Try to achieve great things by themselves mainly because of the size of their ego, their level of insecurity, or simple naiveté and temperament. One is too small a number to achieve greatness.
  2. The Law of the Big Picture
- The goal is more important than the role. Members must be willing to subordinate their roles and personal agendas to support the team vision. By seeing the big picture, effectively communicating the vision to the team, providing the needed resources, and hiring the right players, leaders can create a more unified team.
  3. The Law of the Niche
- All players have a place where they add the most value. Essentially, when the right team member is in the right place, everyone benefits. To be able to put people in their proper places and fully utilize their talents and maximize potential, you need to know your players and the team situation. Evaluate each person’s skills, discipline, strengths, emotions, and potential.
  4. The Law of Mount Everest
- As the challenge escalates, the need for teamwork elevates. Focus on the team and the dream should take care of itself. The type of challenge determines the type of team you require: A new challenge requires a creative team. An ever-changing challenge requires a 
fast, flexible team. An Everest-sized challenge requires an experienced team. See who needs direction, support, coaching, or more responsibility. Add members, change leaders to suit the challenge of the moment, and remove ineffective members.
  5. The Law of the Chain
- The strength of the team is impacted by its weakest link. When a weak link remains on the team the stronger members identify the weak one, end up having to help him, come to resent him, become less effective, and ultimately question their leader’s ability.
  6. The Law of the Catalyst
- Winning teams have players who make things happen. These are the catalysts, or the get-it-done-and-then-some people who are naturally intuitive, communicative, passionate, talented, creative people who take the initiative, are responsible, generous, and influential.
  7. The Law of the Compass
- A team that embraces a vision becomes focused, energized, and confident. It knows where it’s headed and why it’s going there. A team should examine its Moral, Intuitive, Historical, Directional, Strategic, and Visionary Compasses. Does the business practice with integrity? Do members stay? Does the team make positive use of anything contributed by previous teams in the organization? Does the strategy serve the vision? Is there a long-range vision to keep the team from being frustrated by short-range failures?
  8. The Law of The Bad Apple
- Rotten attitudes ruin a team. The first place to start is with your self. Do you think the team wouldn’t be able to get along without you? Do you secretly believe that recent team successes are attributable to your personal efforts, not the work of the whole 
team? Do you keep score when it comes to the praise and perks handed out to other team members? Do you have a hard time admitting you made a mistake? If you answered yes to any of these questions, you need to keep your attitude in check.
  9. The Law of Countability
- Teammates must be able to count on each other when it counts. Is your integrity unquestionable? Do you perform your work with excellence? Are you dedicated to the team’s success? Can people depend on you? Do your actions bring the team together or rip it apart?
  10. The Law of the Price Tag
- The team fails to reach its potential when it fails to pay the price. Sacrifice, time commitment, personal development, and unselfishness are part of the price we pay for team success.
  11. The Law of the Scoreboard
- The team can make adjustments when it knows where it stands. The scoreboard is essential to evaluating performance at any given time, and is vital to decision-making.
  12. The Law of the Bench
- Great teams have great depth. Any team that wants to excel must have 
good substitutes as well as starters. The key to making the most of the law of the bench is to continually improve the team.
  13. The Law of Identity
- Shared values define the team. The type of values you choose for the team will attract the type of members you need. Values give the team a unique identity to its members, potential recruits, clients, and the public. Values must be constantly stated and restated, practiced, and institutionalized.
  14. The Law of Communication
- Interaction fuels action. Effective teams have teammates who are constantly talking, and listening to each other. From leader to teammates, teammates to leader, and among teammates, there should be consistency, clarity and courtesy. People should be able to 
disagree openly but with respect. Between the team and the public, responsiveness and openness is key.
  15. The Law of the Edge
- The difference between two equally talented teams is leadership. A good leader can bring a team to success, provided values, work ethic and vision are in place. The Myth of the Head Table is the belief that on a team, one person is always in charge in every situation. Understand that in particular situations, maybe another person would be best suited for leading the team. The Myth of the Round Table is the belief that everyone is equal, which is not true. The person with greater skill, experience, and productivity in a given area is more important to the team in that area. Compensate where it is due.
  16. The Law of High Morale
- When you’re winning, nothing hurts. When a team has high morale, it can deal with whatever circumstances are thrown at it.
  17. The Law of Dividends
- Investing in the team compounds over time. Make the decision to build a team, and decide who among the team are worth developing. Gather the best team possible, pay the price to develop the team, do things together, delegate responsibility and authority, and 
give credit for success.

Seems like a poster of these would be a good thing to have in the work environment. Most definitely a couple on this list that I need to work on and remember from time to time.

Thanks for the post @Dannybeckettjr for the post.

Pure Michigan – Grand Rapids

A new Pure Michigan (you have probably heard me rave before but more info) was just posted about Grand Rapids. Completely amazing. I literally just got chills again and this is the fourth time I’ve listened.

Highlights: “one of a kind city” “food is art and the stage is alive” “music flows in every color imaginable” “see ourselves through brand new eyes”

New Grand Rapids Radio Ad

#cfunited Notes – “Intro to jQuery”

Javascript is NOT the enemy. You can find peace.

Why jQuery?

powerful, wide support, works for me (after initial period of grumpy old man whining)

History

  • 3 years old
  • high compatibility
  • free
  • minified, gziped or full fat
  • available on Google CDN

What does it do?

  • finds stuff
  • changes stuff
  • loads stuff
  • and more stuff

Signs that you may be looking at jQuery

  • $ is jQuery
  • lots and lots and lots of stuff chained together because everything returns itself

Selectors

  • find soemthing
  • follows CSS rules
  • Basic – $(“#someId”) $(“.someClass”) $(“p”)
  • $(“#parent p”) –> all paragraphs under #parent
  • $(“something:not(somethingelse)”)
  • also has ^ $ for beginning and end
  • $(‘a[href*=cnn]‘) –> all links to anything containing cnn
  • $(‘a[href$=pdf]‘) –> all links whtat end in pdf
  • $(‘#favThings > li:even and :o dd
  • :eq
  • contains
  • form related (checked, selected, en/disabled)
  • next, prev, parent, children, and siblings
  • filter (custom JS code)

Manipulation

  • adding, removing classes
  • setting, getting attributes
  • prepending and appending
  • changing contents

Events

  • what you expect (click, change, etc)
  • special ones (hover, toggle)
  • $(document).ready

Effects

  • tick me off
  • “will my client want to see this 50 times?”
  • hiding/showing
  • fading
  • bouncing
  • http://docs.jquery.com/effects

Ajax

  • load
  • get (has length restriction)
  • post
  • getJSON
  • getScript

Plugins

  • over 2,400
  • wide range of areas: ui, form, widgets, etc
  • quality also covers a wide range

Favorites

  • Validate
  • ThickBox
  • jqGrid
  • jQuery Select

jQuery+CF

Helpful

  • still the glue
  • native JSON format
  • returnFormat
  • XML generation

Not So Helpful

  • onRequest (EVIL++) fixed in CF9
  • whitepsace
  • debugging

#cfunites Notes – “Advanced Custom Tags”

What is a custom tags?

  • CF custom tags are user created tags to extend the tag set
  • written in CF
  • executed on CF server
  • used along side standards tags
  • locally available

Why use them?

  • code reuse
  • encapsulation
  • abstraction
  • simplification
  • customized control flow
  • packaging

What about CFC?

  • yes everything you can do everything in CFCs but sometimes cust tags can sometimes offer a more natural feeling

Basics

  • stored anywhere the server has access to
  • invoking: cf_, cfModule, cfImport
  • execution: open, close, self-close
  • scopes: attributes, thisTag, caller, variables
  • passing data to/from:

Gathering and consuming data

  • using custom tags as functional facades
  • implicit execution

Leverage Relative Addressing of Template

  • use custom tag as a proxy to CFC creation
  • CFC names as relative to tag proxy location

Can be recursive!

Examples

regEx Loop  (cf_reLoop) – loop tag to easily access Java’s regular expression matching functionality (faster/more robust than CF)

template mailer (cf_mail) – tag to encapsulate passed in data into a template and then mailed

navigation/navigationItem – set of tags to create a navigation with as many items as needed. handles hover functionality. decouples where a link is going from how it works to get there makes it easier to change either property later.

  • cfAssociate is used to pass attributes from parent into the child
  • cfExit method=”exittag” is used at the bottom to only let the tag be called once regardless of if it is a self-closed ta

switchLoop – works like cfSwitch but allows for “resetting” of expression. allows for two different cases to be hit.

randomSwitch – works like cfSwitch but a random case is selected.

renderXml – recursive tag to loop through an XML document.

Resources

http://www.bennadel.com/

#cfunited Notes – “Create a Public Facing API”

APIs – The Basics

  • application programming interface
  • 2 types – RESTful and RPC
  • offers ability to share data and functionality
  • centralize functionality

Possible Problems

  • poor planning can cause poor usability
  • needs to be accessible across multiple langauges
  • variable scope may not exist / be accurate
  • documentation needs to be extensible
  • security can be tested/attacked

The biggest security threat to your API

  • you!

Documentation

description, parameters, example call, example response, error code

Great Examples

twitter, flickr, digg, openOffice

Development Process of an API (ideal)

  1. create use case
  2. document
  3. test documentation
  4. code API
  5. test
  6. hack
  7. go to 4

Creating a RESTful-ish API

  • URL parsing
  • request type parsing
  • XML responses
  • requires authentication
  • error handling

Resources

InfoQ article – REST Intro – infoq.com/articles/rest-introduction

#cfunited Notes – “Extending CFBuilder w/ CFML”

http://labs.adobe.com/technologies/coldfusion9/

What can extensions do?
Anything CF can!
•    written w/ CFML and XML
•    runs on a CF server
Common Uses
•    code generation
•    framework scaffolding
•    server management / probes
•    code analysis
•    reporting
Add New Context Menus
•    RDS View (databasees and tables)
•    Outline View
•    Resource View (projects and files)
Workspace Events
Installing a CFBuilder Extension
Preferences -> CF -> Extensions
Good practice to put extensions folder under CFIDE so they are separate from applications

ide_config.xml

  • application details
  • extensions are a simple zip archive
  • optional collection of data during install
  • responding to workspace events – onProjectCreate
  • adding context menus
  • filter with regEx to optionally appear

Collecting User Input
static input w/ native eclipse controls
types

  • string
  • dir
  • boolean
  • file
  • password
  • list

attributes

  • name
  • label
  • tooltip
  • required
  • default
  • checked
  • pattern
  • errorMessage
  • helpMessage

keywords for default values
{$projectLocation}

  • projectLocation
  • projectName
  • serverHome
  • wwwroot

Handler Communication

  • sends info via XML

Dynamic Input

  • XML, HTML, AJAX, Flex, Eclipse SWT
  • showResponse=”yes”
  • response can be HTML or XML

Tips

  • You can reload from prefs if you make changes to the xml
  • Errors output to Eclipse logs (windows > show view > other > general > error log)
  • You can also write your own log with cfLog
  • Use CF to generate CF (use generated code as <:cf and rip out the :’s later)
  • Adam’s Ext-Util.cfc

#cfunited Notes – “Facebook applications with a CF Backend”

Workings of a Facebook App

  • Facebook -> your website -> Facebook API -> your website -> Facebook
  • They scan for “bad” stuff before displaying it.
  • Good though because its all secure for you.

Setup

  1. name your application (read the terms – good bathroom reading)
  2. make note of your API key and secret (needed for all API calls)
  3. setup a facebook URL (unique) and the callback URL (your server and should be directory only as they will append different files)
  4. settings page to set sandbox, app type, sms integration and iphone

1st Roadblock

  • validation is carried out on form fields that have specified names (pre cf9)
  • fb_sig is in the wrong format and will never validate. set to another field and clear that field.

A Look at FBML

  • tag system that handles output of data
  • tags display data just as the website does
  • tags are mostly used for UI/layout
  • conditional logic tags do exist (if/else)

Digging into the API

  • RESTful-ish API
  • dot delimited methods
  • methods are grouped in actions
  • returns XML/JSON/PHP
  • access to FQL (SQL-like)
  • API Key, Call Id, MD5 Hash of secret and Version needed on EVERY request

CF is your glue

  • Use API to get data
  • parse and loop over data with CF
  • output using FBML
  • store data associated with uid w/ CF + SQL
  • do not use cfLocation but rather fb:redirect and you can only redirect to FB

? Can you limit who can add your applciation by FB network?

After they allow it, you would have access to all that information. If they are not in the network that you wanted then you could just show a denied message or there may be API functionality to kick them oput of the application.

simonfree.com/presentations

twitter.com/simonfree