Introduction to Version Control and how it can improve your development cycle. Rid yourself of all that commented out old code and get rid of files labeled 'old' and 'backup'. Will go over the types of version control (SVN, Git) differ from each other, as well as the concepts of Branching and Forking.
You are almost finished with your new CF application, and someone asked you the question: How many users can we serve before we need to upgrade our server environment? Isn't that a good question? Come to this session to find out how you can simulate traffic with Apache JMeter, and how to monitor it to find your applications bottle necks. You'll learn to get started with Apache JMeter and which tools are available to monitor it.
Every presentation I see on ANT, Hudson, Eclipse and the like focus on the highest level of integration for extremely complex deployments. I want to show _simple_ Jenkins/Hudson tasks with Simple ANT tasks and how you can use both to manage a staging environment as well as production deployments. Even a single consultant with Hudson/ANT. We use this approach to manage our staff of 28 developers and 30 odd projects. The goal would be to show this in a practical light - skipping unit testing SCM compiling and everything else... showing 3 things. 1) a straightforward Hudson task to draw a new version from SVN/GIT to a specific folder. 2) a straightforward ANT script that focuses on File copy, inclusions and exclusions. 3) A simple post-commit hook using curl or wget that triggers a build. Even a novice programmer could take the samples and instructions and have their own Hudson/ANT deployment up and running in short order.
We'll examine some of the 'soft' skills that can help to shape your career as a software engineer. From commenting code, to keeping an accurate SVN log, to using a project management system and more - we'll explore all the things that make for a better experience for you, your co-workers and others who follow behind you; why it's important and how to go about getting over the writers block many software engineers fear. Regardless of the methodology, framework or conventions you use from your hard skills, learning to communicate your work through code hints, comments, documentation and discussion will simplify your development cycles, reduce stress and TCO while increasing workplace happiness and ROI.
An easy and accessible way to conduct usability testing is to engage your users with social media. Social media is a powerful tool for recruiting testers, getting feedback, and encouraging ongoing conversations. This talk will outline some tools and techniques for getting started with social usability.
Design patterns are reusable solutions for commonly occurring problems within a given context. We all come across these problems in our everyday coding and incorporating design patterns into our applications can make us more efficient and our applications more robust. This session will contain an introduction to some of the most common design patterns, a demonstration of their usage in different scenarios within a ColdFusion application and tips on how to refactor code towards or away from patterns.
A talk on how as programmers and architects we must think ahead of the game and in somewhat larger scales when writing our code to create scalable applications. This talks focuses on methods/rules, patterns, techniques/tools and the mindset we can apply to achieve scalability. We will also discuss guidelines to determine what is a good balance of performance, scalability & cost. As a Software Architect, I am amazed at how many talented programmers write code that is too coupled and specific to a task that serves for no other purpose. When minor changes with low cost could make the code versatile and extendable. This applies to procedural and Object Oriented programs. While technical enough for the advanced developer, the main purpose of this talk is not to inundate the audience with technical information but create and impact in their mindset the next time they are about to write a line of code.
The topic of developing eCommerce web sites will be covered from an intermediate level web developer's perspective. it will cover the general concepts and concerns of developing and deploying an ecommerce site including... *Setting up a local development environment (application server - PHP or CF, Database, site set up for Dreamweaver or CFBuilder) *Basic shopping cart principles - usability customer experience *Security concerns - secure coding practices, secure databases, PCI compliance *Third party interaction - Payment Gateways, Shipping cost vendors, Tax cost vendors *Assuming the "consultant's role" with clients during the planning and development process.
A quick overview of what Continuous Integration entails (What/Pros/Cons). It demonstrates how CI facilitates an agile development environment and reduces the chances of bugs in production code. Then a dive-in to demonstrate how CI can be achieved in ColdFusion by leveraging a variety of open-source tools to include: Selenium, mxUnit, ANT, SVN & Jenkins. This presentation includes live demos. Developers and managers can take advantage of this presentation and can see the great value that CI can bring to medium to large scale projects.
You finally have your code under source control with git! Congratulations! Pat yourself on the back. To bad you are only half way done. You know that database your code talks to you? Yeah, your app won't work without it. Have you put your database DDL and SPs under source control yet? Didn't think so. Don't worry we have one of several solutions you. My topic will discuss our methodology that we use to put the db under Version control: 1. Work Locally with your own DB 2. Work from ColdFusion Builder 2 with our custom plugin. No need for a separate expensive tool. 3. Branch, Merge, Push, Pull, Fork and Deploy your database just like it was code (because it is) 4. Load your database automatically with reliable sample data to facilitate Application testing and continuous integration
Git is awesome, this is known. Git doesn't restrict how you do things and that can be a two edged sword. If you are working by yourself you can get away with working however you wish. If you are collaborating with others there needs to be some sort of method to the madness,this is where workflows come in.
Work flows are a common template of branching and merging code. It is not something you install, rather it is a way of working. In this two hour lab we will learn the basic building blocks of git and work collaboratively getting a feel for differnt workflows. You will be exposed to using git from the command line and also using the e-git plug-in for Eclipse.
So many devices... so little time. We’ve all heard the hype about how HTML5 enables developers to deliver the same content across the vast and increasingly fragmented array of devices, form factors and operating systems in use today. It turns out that the reality of delivering a consistent user experience across devices, platforms and browsers is much more complicated, time-consuming and costly than advertised. Much of the simplicity and ease that initially made HTML so empowering has been lost.
jQuery Mobile makes the mobile web simple again. Through progressive enhancement, jQuery Mobile transforms the HTML tags you already know into rich interactive touch and gesture enabled experiences that work the same way across all popular smartphone, tablet and desktop platforms.
This hands-on session will introduce you to the unified user interface features provided by the jQuery Mobile framework, including pages, dialogs, popups, toolbars, form elements, buttons and lists; and guide you through combining these components into a working application.
Come see how jQuery Mobile can help you “write less, do more.”
Attendees will not need any special software other than a modern web browser (preferably Google Chrome) in order to complete this hands-on session. All hands-on exercises will be completed in a web browser using focused live examples presented in a split-view (source code + result) format and embedded as interactive slides within a web-based presentation.
Authentication is one of those features we seem to implement in every app. It's a chore for us, because poor security choices can mean failure. It's a chore for users: yet another password to remember. Why not let those who have spent millions of dollars on this problem, where your users already have an account, deal with this? In this session, I'll show you how to implement the various authentication APIs that are out there, presenting a login experience that allows your user to choose from the various options that are available (Twitter, Facebook, Google, LinkedIn, and more). You'll also see how to wire this up to your application in a way that is unified to your app no matter what service your users choose.
More than ever, developers are being called on to deploy applications multiple devices. In addition to traditional web apps, you need to support native desktop, mobile web and native mobile for your applications. In this session, we will explore the nuance of writing an application to be deployed to all of these environments, with traditional HTML/JS, the Adobe Integrated Runtime (AIR) and with Phone Gap. You will quickly see their are a unique set of challenges in supporting desktops, tablets, and phones, and learn some tricks for creating the best possible experience on all of them.
Mobile payments are gaining increasing traction all over the world. It is believed that by 2020, cash and credit cards could be replaced by swiping smartphones. This session provides a deep dive into mobile payments and discusses different monetizing strategies that companies are using. We discuss the enabling technologies for mobile payments and interesting use cases that these technologies bring. Tips and tricks for using payments securely on mobile devices are also presented.
Mobile app development is currently dominated by development governed by long development and release cycles. A/B and user testing are the established gold standard for the web but until now have been absent from mobile, due to a lack of tools and obstacles such as app store deployment processes. The costs of this are design rooted in assumption rather than experimentation, and higher risk of product failure since it takes longer and is more expensive to adapt to market feedback. This talk will show how to use new tools and techniques to augment your HTML5 or native mobile applications. The tools and techniques discussed and demo'ed will allow you to iterate quick and A/B test your decisions resulting in a better mobile product faster.
So you already know HTML5, and you already know CSS3's awesomeness, now what? What sets your site/app apart from the competition's is the user experience! In this session we'll talk about what makes the best user experience for your audience. Prototypes, design and how best to design for the mobile user.
Web apps are gaining in popularity. Sometimes it is best to have a solution for all devices, not just an application. In this session we'll show how to take a website for desktops, tablets and for mobile, and make sure the user experience matches the device. We'll explore responsive/adaptive design, media queries, CSS3, and some JS.
Responsive, Adaptive among others are the new things today with mobile design. I want to talk about the next big wave. Its all about Contextual Design. Think geo location, time based, even calendar aware design. I’ll walk through the word of Contextual Design and the key factors of what to think about to take advantage of it. I’ll also talk about some future thinking of what Contextual Design will bring. I’ll be bridging the gap between the digital and the physical world and how to start thinking about the taking advantage of it.
When you first saw a handheld device with a touch interface, it resembled our familiar desktop displays and mouse-driven GUIs. But when you bought your first such device, you noticed how frustrating it is to use a desktop-sized, mouse-assuming website on a touchscreen phone. A native app can be just as bad, for example if it requires a lot of typing. This is not because touch is inferior technology, but because developers are not building with a good understanding of handheld devices and touch UI. Often the developer of a mobile website will not even have owned a personal smartphone. Given the trends in device sales, this is bananas. In just the past five years, users have begun to hold our software in their hands. They poke at it and move it like any other real-world object. A smartphone is a more personal computer than they ever had before. What users expect has completely changed, and when an interface is jarring or unresponsive, it's a worse experience than ever. As creators of software, we must understand how handheld touch devices are qualitatively different in the mind of our users. It's our responsibility to create apps and sites that are appropriate to modern devices and not to keep our assumptions from the previous platform.
The advent of smart phones has brought about a revolution in the web as we know it. Everyone is looking for the best way to get their website to be viewable on tablets, smart phones, and the common PC. But what is the best way to accomplish this? Do we have a separate mobile application for a site? Do we have a separate portal that people can access and get redirected to automatically? Or, is there a way to have one website that will work on any platform? Mitch Canter brings you the basics of a responsive design, and looks at already established methodology to make starting or retrofitting an existing site easy. Mitch will discuss frameworks, WordPress themes, and other resources that will help lay the foundation for a responsive web design. We'll also go over why not every responsive site has to be a fluid layout, and how we can take the principles that designers learn from fixed websites and apply them to a responsive design.
With trends moving towards responsive design, we are seeing an emergence of customization based on state. These principals, when applied to the concepts of user interest and identity data mining techniques, can be used to customize for individuals, not devices. By mining user content interactions and applying that to calculated baselines, we are able to determine user emotional ease, frustration levels, and topics to surface. Using these, applied CSS can be modified to surface relevant content to users, provide styling changes to alter emotional perceptions and more. This session will dive into these concepts with practical development examples and Techniques.
In this presentation we will look at Bootstrap, from Twitter. Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites. We will look at what this toolkit actually does and how it compares to other toolkits on the block. I rarely start a project without using bootstrap these days and I am sure that after this presentation you will do the same.
Organizing CSS is slowly getting more complex and as sites become larger and applications become more prominent we'll need a little bit of help. This presentation will cover CSS Preprocessors in all of their glory, talk about time saving techniques and stylesheet organization, and compare three main options – Sass, Less, and Stylus. Disclaimer: after this presentation you'll never write vanilla CSS again.
A look into how modern web application can implement storage. Topics will include: Cookies (old school, I know), Local Storage, WebSQL, IndexedDB, File System API.
Firefox has FireBug, Chrome has Developer Tools, and Internet Explorer has the Developer Toolbar. For some people, using them is a sign that something has gone wrong. But it doesn't have to be that way. These tools can be a boon of productivity if you just take a little while to learn about their features, and you'll soon wonder how you ever worked without them. In this session I will show more than 20 new or neglected features of the Developer Tools for these three most common browsers. Safari and Opera each get a few honorable mentions, too. They may not all be new to you, but everyone should learn something!
This is the true story... of modern web design... on a real project... in a real agency... to find out what happens... when theory and good intentions don't cut it... and start getting real... Real Responsive Design. If you've given responsive web design a serious try then you know it's not all unicorns and rainbows. The process is foreign, design tools are antiquated, the grid systems are complex and serving assets is a total hack. In this talk we are going to learn how to tame the madness by looking at some fresh design and development techniques that aren't just theory but production ready. In the end you should be able to spot the land mines early and be better prepared for tackling the beast that is responsive web design.
Ok, so you've heard of Node.js. Maybe you've experimented with it a bit. Perhaps some of your developer friends are in Node.js rehab. It's all good. This presentation will help you figure out what you really think about Node.js. Come here to learn the basic philosophy behind Node.js, why this is a good and bad thing, and see what you can do with it.
You're new to CFML and you've been handed a bug to fix. How do you trace code to it's source? How do you make sense of the CFC's with names like Service, Gateway, Bean or Factory? Learn how to trace a request from the first line of code to the last, learn to recognize when frameworks are in use, and how to look for design patterns that might be in use. - this is a beginner's guide to Application.cfc and scopes
Get the most out of your queries and the looping constructs within ColdFusion. We will cover: -- Writing efficient queries -- Looping over queries 1 time perform more than one action -- Using the "group" attribute of a ColdFusion Query loop Although targeted towards the beginner, this presentation will cover some more advanced techniques for getting more out of your initial query to eliminate subsequent trips to the database.
Have you been holding back from using CFCs because you're afraid of those dreaded words, "Object Oriented Programming"? Still stuck using ActionScript 2 because AS 3 seems "too hard"? Does the idea of creating mobile apps seem really cool, until you learn you'll need an object oriented language to build them? In this session, we'll demystify OOP. You'll come out of this session a lot less afraid of OOP, and ready to move forward into modern programming languages and techniques.
A look at ColdFusion 10's WebSocket implementation. 100% guaranteed to not have a lame chat demo.
The scheduling task management has been completely revamped in ColdFusion 10. We'll cover new aspects like conditionals, ranges, triggers, chaining, priority, grouping and more. You will learn how the you can leverage the new scheduling services in your applications using ColdFusion 10.
ColdFusion 10 is loaded with security enhancements that make building secure ColdFusion applications easier than ever. In this session we will cover the new security features, process as well as describe the vulnerabilities that the feature is designed to circumvent.
One of the flagship features of ColdFusion 10 is its new ability to create REST API’s. But did you know that this has been possible in ColdFusion for several years now? In this session, we’ll look at a sample API --And I promise it’s not using the Artists example database!-- implemented using 5 of the 7 frameworks available: CF10, ColdBox, Mach-ii, PowerNap, RESTfulCF, and Taffy.
Prepare to be surprised! In this talk, veteran CF troubleshooter and presenter Charlie Arehart will continue his tradition of identifying hidden gems, this time in CF10. Sure, we hear all about the big, new features, or some that wow certain developers, but in every release (of CF and CFBuilder) there are always lots of little things that go unheralded, and this is true in CF10 as well. Some may solve a long-standing problem for you, or provide a new technique, whether related to coding, troubleshooting, administration, enterprise integration, and more.
Thousands of Web applications run on a single server, and that works great. But what happens when you need 99.999% uptime and you have to move your Web application from that single server into a cluster of servers in your datacenter, or the cloud? This session focuses on the challenges you'll face moving your ColdFusion-based app from a single server setup to many ColdFusion servers running in parallel. Specifically, we'll look at changes you'll need to make to your - application code - database setup - ColdFusion application server setup - server configuration - network setup We'll also cover special considerations that need to be made for cloud services like Amazon's Web Services platform. If you've never built a ColdFusion app that runs across multiple servers with shared resources, this session is definitely for you.
Over the years authentication schemes have changed drastically from the old days of username and password logins. Today, there are multiple kinds of multi-factor authentication mechanisms in use that add complexity and security to your login processes. We'll explore some of these newer authentication techniques and show you how to easily implement a secure authentication process in every application you write. We'll also cover basic PCI compliance, encryption, obfuscation, and access control lists along with password security, password recovery, session management and other topics that relate to building a robust authentication system.