October 11, 2013
Website: http://techfests.com/Tulsa/2013/default.aspx
#1 Developers
Getting Started with ASP.Net Web API
Rob Vetter
Speaker's Description: The ASP.NET Web API is a new framework designed to greatly simplify web service architecture. Come get a 360-degree overview of how to build flexible, extensible web services that can reach any client that supports HTTP, from desktops to tablets to smart phones.
In this session, we'll...
- Demonstrate how WebAPI exposes a first-class HTTP programming model, symmetrically supported on both client and server
- Show how you can easily create web services that implement the uniform interface of HTTP resources without the configuration tedium that burdens WCF
- Learn how you can support a wide range of data interchange formats, including JSON and XML
- Highlight how WebAPI leverages your existing ASP.NET MVC skills to greatly increase your productivity
- Fly over many of the WebAPI features, including validation, parameter binding, action filters and content negotiation
You'll walk-away with a clear understanding of how you can leverage the WebAPI to deliver powerful, scalable software services to your customers and end-users.
- Takeaways
- Simplify Service Development
- Increase Service Reach
- Leverage MVC development skills
- What is Web API?
- An HTTP Service
- With REST-style communication (not pure REST)
- Expressed in JSON or XML
- Designed for broad reach
- Why build Web APIs
- Connect your app to any HTTP-capable device
- Comes with Visual Studio 2012; free download for 2010
- Why build Web APIs
- Simplifies service construction
- Stateless and highly scalable
- Embraces HTTP
- REST-style communication
- Leverage MVC development skills
- Embraces content negotiation
- Dispatch actions based on HTTP verbs
- MVC vs. Web API
- MVC = Excels at accepting form data and generating HTML
- Web API = accepts and handles JSON and XML
- Rest (Representational State Transfer)
- Architectural style for exposing data
- Exposes data as a resource
- Each resource addressable by unique URI
- HTTP Verbs
-
Action Verb Create Post (Insert) Read Get Update Put Delete Delete
-
- JSON (Returned by Web API)
- JavaScript Object Notation
- Lightweight data-interchange format
- Easily consumed by JavaScript
#2 JavaScript
Building Killer Single-page with Durandal
Brian Sullivan
Speaker's Description: JavaScript has come into its own as a language for building large, rich applications. Browser improvements have made it lightning-fast and a healthy ecosystem of libraries has risen up around it. Still, building Single-Page applications on your own can be a daunting task. That's where Durandal comes in. It leverages existing libraries like Knockout and RequireJS for data-binding and dependency management, and layers on additional features needed by real-world applications like compositional UI. Come see how Durandal can help you create web applications using state-of-the-art practices and tooling.
Single page application framework
| Framework | Use |
|---|---|
| knockout.js | Data binding and templating |
| require.js | Dependency management |
| sammy.js | routing (in durandal 2.0, durandal does its own routing) |
| durandal.js | screen management, messaging, dialog |
Durandal Modules
| Module | Description |
|---|---|
| App | Application lifecycle |
| Router | translate url to object |
| System | low-level functions like logging |
| View Locator | bind View Module to HTML views |
| Your Modules |
Used in Visual Studio via Nuget
- Freeware package
- Web Development through Visual Studio
#3 Keynote
What Have I Done?
Brent Schooley (Infragistics)
Speaker's Description: Do you have trouble staying focused on the task at hand? Have you ever made it to 11AM and realized the only thing you have accomplished is reading emails and checking up on Twitter? If so, you may just need to introduce some simple hacks into your lifestyle. I'll discuss some very easy to implement tips and tricks that can help jolt you from feeling unproductive and wandering through your day to a more focused and "in control" lifestyle.
- Productivity Class
- Inbox Zero - how to reclaim your email, your attention, and your life. That "zero"? It's not how many messages are in your inbox - it's how much of your own brain is in that inbox. Especially when you don't want it to be.
- Make sandwiches (Don't just take orders)
- Job is not to take orders...make sandwiches
- Choose One
Task Description Delete Email that has no purpose/importance Delegate Respond Defer delaying for a day or 2 Do
- Inbox Zero - how to reclaim your email, your attention, and your life. That "zero"? It's not how many messages are in your inbox - it's how much of your own brain is in that inbox. Especially when you don't want it to be.
- Turn off Notifications: can't make sandwiches if worried about orders
- Getting Things Done: The Art of Stress-Free Productivity by David Allen
How GTD (Getting Things Done) Works
- Identify the stuff in your life
- Get rid of the stuff that isn't yours or that you don't need
- Create a "right place" that you can trust
- Put your stuff in the right place, consistently
- Do your stuff in a way that honors, time, energy, & context
- Iterate & refactor
- Project
- Any outcome that requires more than one action step
- Many things we would capture on a "To Do" list (Shopping List)
- Failure to break things down leads to stress
- Next Action
- the next physical, visible activity
- Context
- defines the tools, equipment, or location available at a given moment
- abstract is often necessary in today's rich resource world
- Exercise: Your Project
- What is it you need to do next
- Tools
- OmniFocus app (Mac, iPhone, iPad) - designed to quickly capture your thoughts and ideas to store, manage, and help you process them into actionable to-do items. Perfect for many different systems OmniFocus helps you work smarter by giving you powerful tools to stay on top of all of the things you need to do.
- Not a fan of apple? http://bit.ly/gtdappslist (196+ apps)
- Computers were designed to make people more productive ... then someone invented the internet
- Rescue Time (Free & Paid Version)
- Pomodoro Technique - time management developed by Francesco Cirillo in the late 1980s. Uses a timer to break down periods of work separated by short breaks. Based on the idea that frequent breaks can improve mental agility.
- Planning - decide the day's activities at the beginning of the day
- Tracking - figure out how long things are taking
- Recording - At the end of the day, compile some data
- Processing
- Visualizing
- Pomodoro Tools
- Timer (kitchen timers ticking helps)
- A ToDo Today Sheet
- List of prioritized things
- List for unplanned & urgent activities
- Pomodoro Basics
- Uninterrupted period of focused work, typically 25 mins
- Followed by a break (5 or 15 mins after 4th Pomodoro)
- Indivisible - no halfsies
- Has to ring for it to count
- Protect the Promodoro - do whatever necessary to complete Pomodoro
- Interruptions
- Internal: Write down and deal with later
- External: most things can wait 25 mins
- Pomodoro Tools
#4 JavaScript
Building Single Page Applications with Ember.js
Brent Schooley (Infragistics)
Speaker's Description: Ember.js is a new client-side application framework that makes it very easy to get a lot accomplished with very little code. Once you understand the basics of how Ember.js handles MVC (it's a little different from server-side MVC!) and routing, you will enjoy the productivity boosts the framework offers you. In this session I'll introduce you to Ember.js basics, how to handle data, and how to use Handlebars templating to build your application. Upon leaving the session, you'll be ready to join Groupon and Square and many other companies using this hot new framework!
A framework for creating ambitious web applications
- What is Ember.js
- MVC web framework
- Handlebars templates
- Opinionated Software
- Handlebars
- Templating System
- Combines HTML w/ expressions in handlebars
- Opinionated?
- Convention over Configuration
- Naming scheme is important
- No true install. Just pull down files.
- Yeoman - helps keep JavaScript frameworks up-to-date
- A baby is born every second ... A JavaScript framework is created every two seconds
#5 Designers
Designing for Windows 8.1
Brent Schooley
Speaker's Description: Taking inspirational cues from Bauhaus design, International Typographic Style, and cinematography, the Windows 8 UI design style brings an application to life while presenting content clearly and beautifully. This session is intended to help developers and designers understand the design concepts and basic building blocks of the Windows 8.1 user interface. In this session, you will be introduced to the principles behind this design style and learn how to effectively apply these principles in your applications.
- What is Microsoft Design Style & Why
- Bauhaus (Bau-house) - school in Germany that combined crafts and the fine arts. Famous for the approach to design that it publicized and taught.
- Swiss Style (also called International Typographic Style) - design style developed in Switzerland in the 1950s that emphasizes cleanliness, readability and objectivity
- Iconography - branch of art history which studies the identification, description, and the interpretation of the content of images: the subjects depicted, that particular compositions and details used to do so, and other elements that are distinct from artistic style
- Grid System (Not Infragistics data grid)
- Type ramp - shows which sizes, weights, and colors to use for different parts of the UI.
- Motion Design - Cinematography - subset of graphic design in that it uses graphic design principles in a filmmaking or video production context through the use of animation or filmic techniques
- Microsoft Design Style Principles
- Pride in craftsmanship - care about what you do
- sweat the details (Google copy/paste = gcp - grabbing code from search engine and pasting into your code not caring about what it actually means)
- Make it safe and reliable
- Balance, symmetry, hierarchy
- Align to the grid
- Make your app accessible to the widest possible audience, including people who have impairments or disabilities
- be fast and fluid
- Life is mobile - average app use 70 sec, device 1hr
- delight with motion
- design for touch (mouse vs touch ... see Cloudy with a Chance of Meatballs)
- immersive and compelling experience (more of a quality seen with Apple)
- The quickness of the learning curve of elderly and toddlers to touch screen devices
- Skewmorphism - a derivative object that retains ornamental design cues from structures that were necessary in the original. Example is a software calendar that imitates the appearance of binding on a paper desk calendar.
- Authentically digital
- Cloud connected
- Dynamic and alive
- Moving past analog ideas & terms (ex. floppy as save button)
- Use bold, vibrant colors
- Do more with less
- Be great at something
- Focused and Direct
- Content before chrome
- Inspire Confidence
- Win as one
- Fit into UI Model
- Reduce redundancy
- Work together to complete scenarios
- Tools & Templates and designed to scale
- Pride in craftsmanship - care about what you do
#6 Keynote
Software Development is a Joke!
Claudio Lassala
Comedic take on Software Development
Speaker's Description:
Several of my technical presentations introduce some kind of humor, but sometimes people end up learning the joke and not the concept. So I decided to do a humor presentation based on software development, introduce some technical stuff, and see what I get!
After so many years writing software, I can't help but laugh at so many (good and bad!) experiences myself and other developers have had. Not to mention things that just can't make sense to normal people: how can this ?[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$ be called a "regular" expression? (If you know by heart what that expression means, you are probably the kind of people who'll try to explain to me why zero-based arrays are kinda cool? please, just don't!).
F-bombs may be dropped, but let's be honest, you drop them yourself when it's 5pm on Friday and that code insists not to work, don't you?