South Florida Code Camp 2015

Thank you to NSU, all presenters, volunteers, participants and sponsors for making the 2015 code camp a great experience. A special thank you to Dave Noderer who helped organize the event and allowed me to use the community table to speak with people about getting involved in Code for Fort Lauderdale. An additional special thank you to Rachel for making registration a breeze for volunteers as well as attendees.


SharePoint for .NET Developers

By Gary Blatt

Client-side Object Model (CSOM) provides access to core objects within the SharePoint model. It is composed of three distinct APIs.

  • ECMAScript object model
  • Silverlight client object model
  • .NET managed client object model

Server-side Object Model (SOM) provides access to items in a list, items in a library and creating server controls from within the SharePoint Server Farm. Collaborative Markup Language (CAML) allows developers to define how to construct and display data within SharePoint. It is an xml based and contains specific elements for data definitions and rendering.

One decision will be whether to host your own SharePoint instance or not. One such offering is called Business Productivity Online Services (BPOS). BPOS includes a SharePoint offering hosted by Microsoft (referred to as SharePoint online). Having Microsoft host your SharePoint may be an attractive option in your situation. You should consider the following:

  1. Powershell
    • 800 commandlets with natively hosted SharePoint
    • 29 commandlets with SharePoint online

Best Practice

Never do queries against the SharePoint database directly. The reason boils down to the same reason any application exposes an API rather than the database itself. Before you ever started using it, other consumers tested the API. Direct querying opens the door for complex locking scenarios between you and other database users. It’s not supported, meaning if it breaks it’s your problem (aka no support).

References


EMV Training

By Frank Haggar

EMV stands for Europay, Master Card and Visa, a global standard for integrated circuit cards. The standard includes using the cards at Point of Sale (POS) terminals and ATMs. EMV uses dynamic authentication to validate the transaction via cryptograms. It focuses on authenticating the user. The standard includes improving security with the following

  • Card authentication – prevent card skimming and counterfeiting.
  • Cardholder verification – authenticating the cardholder
  • Transaction authorization – using credit card issuer-defined rules to authorize transactions

For any credit card number (in some cases called Primary Account Number or PAN)

  • digits 1-6 represent the Bank Identification Number(BIN)
  • a variable length (up to 12 digits) individual account identifier
  • a single check digit calculated using the Luhn algorithm

There are different requirements for different payment methods. Card present encompasses the following payment categories.

  • Contact – require physical contact with the device beginning the payment processing (e.g. credit card)
  • Contactless – requires proximity but not physical contact for initiating the payment processing

Card Not Present implementations include

  • Host Card Emulation uses software only rather than carrier issued sim cards to verify identity for mobile payments.
    • Apple Pay
    • Google Wallet

The Electronic Transaction Association is an International trade association for the payment processing industry. In an effort to decrease liability, the credit card companies developed EMV to shift fraud liability to any merchant that did not accept EMV chip cards.

They didn’t want to stop fraud, they just wanted to stop paying for it.” -Frank Haggar

Glossary

  • Point of Sale (POS) Payment Application – An application capable of accepting payment at the point of sale (e.g. a cash register at checkout).
  • PIN Pad – used to enter the personal identification number
  • EMV Kernel – Utilized for testing by the company producing products or software capable of passing the EMVCo tests. EMV by itself is not encrypted.

References


Lessons Learned: Being Agile in a Waterfall World

By Phillip Japikse

Estimation is going to be wrong, it’s not exactimation. Don’t try to hold anyone accountable for their estimates. Leverage estimates for planning and goal setting. Don’t be afraid to adjust when the unexpected predictably happens. Let communication drive your progress.

The #1 way to instill fear in someone is to not tell them anything. Colleagues will fear the unknown even more so than an unfavorable outcome. Leverage pizza & pop to get the right people in the room together. Ask for their opinion, make them co-conspirators in your project. Don’t ever mandate.

Choose your metrics carefully. What am I measuring? Burndown shows on track. Swim Lanes help present actionable items and make blocking more visible. Sprint Review communicates progress with stakeholders & users. It determines whether something was done or not.

Glossary

  • Release Plan – how you will release not the contents of the release. Release Planning doesn’t include what’s in the software.
  • Sprint planning – Estimate, Select and decompose. Never commit to 100% of the team’s capacity.
  • Scrummerfall – adopting the most comfortable portions of Scrum.
  • Keep meetings succinct and focused with time boxes. Always have an agenda. No agenda, No attenda.
  • Definition of Done

UAT is a joke, because it’s not actionable. UAT is performed after everyone has agreed not to change anything. Every sprint, get users involved. Let users enter defects into your bug tracking system. Users can be internal or external to the company but will always be external to the team. Bugs should go into the product backlog not the current sprint. Make your users co-conspirators.

Shift people around to make sure that the right people see each other all the time through Co-location. This prevents barriers from forming around departments hindering progress and communication. Keep your retrospectives simple and purposeful. Use cards that are Start (Green) Stop(Red) and Continue(Yellow). Take 1 item as an action item and commit to working on that.

Agile Transformation is slow. People only change 10% at a time. Find small wins. Use incremental progress to build a coalition.

Grow your people not your processes.


Getting started with Open Data

By Thomas Robbins

Open data represents a tremendous amount of data. Data is a national treasure. The type of data being released does not contain Personally Identifiable Information(PII). Protecting privacy and exchanging information happens through cleansing the data prior to its release to respect individuals’ privacy. Open data has many potential applications.

  • One great example is citygram.org updates on the topics and areas you care about for your city. Leverage it to participate locally in your community.
  • Many restaurant sites such as yelp, urban spoon and others push for health code inspection data. Imagine seeing this official data with customer reviews.

Wait a second, how does Socrata make any money? Rest assured, there is no hidden agenda. They charge data publishers to provide a no fee service for data consumers. They’ll even help you advertise and code review your app. Become a Socrata developer today

  1. Create a socrata account
  2. Follow the getting started guide

A special thank you to Thomas for setting aside time to let me plug Code for Fort Lauderdale. If you haven’t heard of us, please stop by our next meetup. We’d love to meet you.

References