10 Ways to Guarantee Your Windows Azure Project Will Fail!
Most conference presentations will share “best practices”. That’s not this presentation. In this session we'll discuss what NOT to do. These surefire fail activities are inspired from real customer engagements (names changed to protect the innocent). Looking at the unsuccessful architecture and development patterns of others can help us not repeat the same mistakes in future cloud projects
A humbling experience through web accessibility
Visually impaired/legally blind folks navigate software in ways most of us, developers, are oblivious to. As a software engineer, watching an accessibility test can humble you pretty quickly. In this session, we will discuss our humbling experience with accessibility at OCLC while working on WorldCat.org and WorldCat for local institutions. We will explore accessibility automation tools and screen readers, discuss best practices to achieve better usability, and uncover accessibility myths and misconceptions. We will also share insight into baking accessibility in the development workflow. Last but not least, developing empathy can only happen when you're in someone’s shoes (experiencing something first/second hand). So, we will work through live demos of accessible/inaccessible apps.
Adventures Beyond the Page Fold - Exploring UX Mythology
Too often does good UX design fall prey to “conventional wisdom” and an app or website is hijacked by stakeholders way too eager to believe theoretical nonsense, without any credible proof or even their own relevant experience. In this session, we will explore some of the more common pitfalls of UX mythology, from the legendary Adventures Beyond the Page Fold, to The 3 Clicks of Destiny, to The Faceted Navigation of Doom and more! We’ll look at each in turn and determine if each holds true or can be labeled as busted. There will be audience participation and prizes including the latest season of Myth Busters and a copy of Steve Krug’s, Rocket Surgery Made Easy. Armed with the truth, you will be able to reliably defend against the onslaught of poor UX, perpetrated by design-by-committee, and reach true UX harmony.
Alchemy and the Art of Software Development
As software developers we draw on teachings from a variety of fields, such as engineering and architecture, to improve our skills and help us develop as professionals. However, in our focus on the hard sciences, we may be missing lessons that other areas of human knowledge and experience can teach us.
Alchemy is a protoscience that explores the fundamental processes of reduction, composition, and transformation. It encourages the application of inquiry and theory though experimental processes to increase our understanding of the world. Alchemy provides a vivid vocabulary of symbols and metaphors, unique techniques for the deconstruction of ideas, and distinctive philosophical tenets that together can influence the way that we think about and model the world around us.
In this talk we will explore how the tenets of alchemy and other Western metaphysical systems can be applied to personal and professional growth and the practice of software development.
Automating Windows Azure with PowerShell
When dealing with systems that must be resilient, self-healing, and highly-available, you can't just manually flip switches to keep the system online. That plan does not scale, and time would be better spent working on the next set of features. Automating your most common operations, such as deployment, service provisioning, and recovery actions can help you consistently manage your Windows Azure solutions, as well as save you time. Come to this session to learn how to use PowerShell to make your life easier and prepare for worst case scenarios on solutions of any size.
Building A Mini Killer Robot
Building giant killer robots is hard: permits, nuclear fuel sources, the UN, etc. However, building mini killer robots is much easier thanks to the new LEGO Mindstorms EV3.
In this talk, we'll look at what LEGO Mindstorms are and what the new EV3 platform is capable of including its servo motors and array of sensors. We'll compare the EV3 platform to the previous NXT 2.0, and talk about why you should immediately go spend all of your money at the Lego store. Then we'll talk about building a robot that can help you take over the world or terrify your pets.
Building Modern Applications for Paradise
Writing applications for tropical resorts and cruise ships may sound like it's all sorts of glamorous, but the truth is - well, let's face it, nothing I will tell you will dissuade you from believing that. However, pleasurable requirements gathering missions aside, remote locations by definition are detached and that brings a certain set of challenges for mobility and cloud applications. In this session, we will talk about "Julie" - a mobility-fronted, cloud-backed application primarily built for serving guests on cruise ships and beach resorts, but with applications in more traditional areas as well. Between talking about iBeacons, Docker, Go, and Redis, as well as designs for remote operation, Big Data, scaling and the Composable Enterprise, you'll be able to fill your lingo bingo card in one session!
Chromecast and Roku : Developing for the Big Screen
The battle for the living room is in full swing again this year and some of platforms actually let us develop for them.??Both Roku and Chromecast have the potential to be more than cheap Netflix boxes for your TV.??Come learn about the different approaches these platforms have taken: which types of apps are appropriate, how users interact, how distribution works and how to get started writing for the biggest screen in the house.
Creating a Plug-in Architecture in .NET
Wouldn’t it be great to extend your application by just dropping in a DLL? Plug-in architectures make it possible, and I’ll show you how to make it easy. I’ll lead you through a quick refresher on dependency injection and then show you how to build onto that foundation to create a plug-in architecture. During a walk-through of a sample MVC application, we will discuss plug-in strategies and frameworks, as well as how to make decisions on where the plug-in points should go.
Designing with C.R.A.P.
Let's face it: the choices that designers make on a daily basis often seem completely arbitrary to developers. Typefaces, colors, and layouts are apparently plucked out of thin air. Why those ones? Who knows! There's a general impression that you have to be "artsy" and "gifted" to be a designer. While I'm sure that helps, the fact of the matter is that designers aren't pulling this stuff out of the ether. In fact, most design choices can be boiled down to four basic design principles. Together they're known (affectionately) as C.R.A.P., and just being aware of their existence will help you make better design judgements no matter where you rate on the dev-to-designer continuum.
Don't Call Us, We'll Call You: Push Notifications in iOS, Android, and Win Phone 8
Mobile is the future and one-way-only conversations are boring. Find out how to keep your app's users in the know with push notifications. In this session, we will evaluate the push notification landscape, see why push notifications are useful, and how you would send and receive them to iOS, Android, and Windows Phone 8 devices. Then, we'll take a look at writing a push server, and evaluate the pros and cons of rolling our own versus leveraging a Notification as a Service platform such as Urban Airship or Parse.
Down the Rabbit Hole with RabbitMQ: Discover the Joy of Multi-Platform Messaging
Gone are days of single platform, monolithic, transaction-based applications. Welcome to the cloud! We now live in a world where even a simple enterprise deployment involves many components written in many languages running on many operating systems in many locations. To the uninitiated the landscape is as fantastic and bewildering as Wonderland. In this presentation we'll explore one approach to managing a complex distributed system: asynchronous messaging. And we'll do it using RabbitMQ, a mature, fast, scalable, open source multi-platform messaging system. We'll begin by explaining some of the main drivers for asynchronous messaging. We'll take a look at what RabbitMQ can do. And we'll finish by writing some code to demonstrate what we've learned.
Elixir and the Internet of Things
The Internet of Things is upon us, and being able to efficiently interconnect things will become increasingly difficult as more of them become available. There are lots of “things” in the world, and we will need to connect tens or hundreds of thousands of them through the Internet. How can we handle the stampede of connecting devices efficiently? When Ruby failed to live up to the task, we turned to Elixir and Erlang and were astonished by the results.
This session will showcase the use of Elixir for a real-world production system.
How We're Failing to Secure the "Internet of Things"
This presentation will do a deep dive into security research, outcomes, and recommendations for two very different contexts of improperly securing the "Internet of Things".
Discussion of network protocols, iOS reverse engineering, firmware security, cloud APIs, and other technical topics will be presented in a straight-forward manner to help ensure that every attendee walking out will know what avenues lead to failure when designing software for Internet-enabled devices.
Hear first hand about the research Mark has conducted that has exposed critical failures in seemingly secure devices that inadvertently put consumers at risk for compromise of personal data and worse. Mark will also explain a best practices list of what to do if a security research ever contacts you to make sure the process goes as well as possible for your company.
If you're a developer who plans to work on embedded devices (especially with a mobile component) this talk will give you real-world examples of what not to do with your software. Don’t make the same mistakes others have as we continue to quickly expand the network of connectivity-centric devices populating our homes, businesses, and pockets.
I Only Want to Write My App Once: Using Xamarin to Build Multi-Platform Mobile Apps
OK, you have decided to write your first mobile application. First question, which platform are you going to target? This is a question that pops up in every developer’s head when they decide to enter the mobile space and with that space being as divided as it is, the answer is never clear-cut. Once you make that decision you potentially have cut off access to other marketplaces.
In this talk, I will show you how you can create one application that deploys across the three major mobile platforms – iOS, Android, and Windows Phone. To do this we will turn to Xamarin. Xamarin allows you to create a .NET backend for use with Windows Phone, iOS, and Android front ends. We’ll discuss the strengths and weaknesses of this tool. When we’re done, you’ll know how to create a fully featured, standards-compliant, store-accepted app without the headache of maintaining three redundant codebases.
You have no excuse now not to get started creating the next great mobile app.
We're taking over the world, and by no means is this happening slowly.
Lets Build Skynet In An Hour
Watching Terminator as a child (why shouldn't 8 year olds watch Arnold?) sparked my love of robots. Like most fans, I was fascinated by the idea of autonomous machines becoming a reality. As I grew older, I eventually realized that the real challenge wasn’t building a Terminator but, rather, the network that dictated its decisions.
For Skynet to make those decisions, it needs data, and LOTS of it. We currently carry in our pockets one of the greatest data collection devices ever created by mankind: our smartphone. The problem, however, lies directly in mankind’s involvement—the human decides what the device sees. That is, until recently. Romotive, a new robot that takes the unique approach of having an iOS device for a brain, solves the issue. As a result, the network can gather input on its own.
In this session, we’ll build a rudimentary Skynet in an hour. The Romotive SDK enables our robot to move. CoreImage identifies targets and Azure stores the data so it can learn over time. In the end, we will have a moving and thinking robot … ultimately deciding who lives, and who is terminated.
Modern Web Diagnostics with a Glimpse into ASP.NET
With the state of diagnostics on the web being what it is, we currently have to do a job that is much harder than it should be. Too often, the tools we are provided with only show a small part of the picture, leaving us to guess what else might be happening behind the scenes. Glimpse is an open source project that aims to change the way we think about diagnostics and the frameworks we interact with.
After releasing Glimpse at Mix 11, Glimpse has become a tool that is used daily by tens of thousands of developers around the world. In this session, you’ll learn how to use Glimpse to reveal a complete picture of what is happening within your ASP.NET MVC and WebForms sites, discover what tools are included out of the box, and see how you can easily extend it to suit your needs.
Offensive Body Language - Using Body Language to Augment Your Message
One of the principles of agile is to use face to face, high bandwidth communication. Body language is a big part of face to face communication. This presentation is about the applying the unspoken communication of body language.
This presentation addresses using use body language to enhance your message and how to avoid contradictory body language. Most people know how to read body language to one degree or another and man trainings have been given on how to read body language. This presentation is different – it focuses on how to contort, control, and move your body to make body language work for you and send a better, more powerful message. It also addresses applications of new research that indicates body postures can induce certain mindsets.
OOP: You're Doing It Completely Wrong
Chances are, most of us are primarily writing in Object Oriented Languages. But how many of us are truly doing Object Oriented Programming (OOP)? Objects are a powerful abstraction, but when all we do is write procedural code wrapped in classes we’re not realizing their benefits. That’s the tricky thing about OO, it’s easy to have Objects but still not be doing good OOP. This has led to a plethora of principles and patterns and laws, which are very valuable, but also easy to misunderstand and misapply. In this talk we’ll go back to the foundations of Objects, and take a careful look at what OO is really about and how our principles and patterns fit into the big picture. We’ll see why good OOP is important, and look at the mindset needed to design successful Objects. When we’re done, we’ll have a more nuanced understanding of what good OO is, what it can do for us, and when we should use it.
Password Storage Sucks! How to Properly Secure Your Users Passwords
With the recent breach at Adobe and other high profile tech firms of their users’ passwords its important developers are aware of how to properly secure their users passwords and other PII data. This presentation is about password security mechanisms for web and mobile applications. A discussion on how to properly store passwords, the proper use of cryptography and hashing, and setting up proper password policies for your application. The goal is to ensure developers have the knowledge and knowhow to develop secure authentication and minimize loss in the case a data breach occurs. Code for this talk will be in C# and Pseudocode however the principles can be applied to any programming language.
Refactoring CSS with Sass & Compass
Does your CSS code remind you of an episode of Horders? In this session we'll look at how to apply back-end development principals like OOP, DRY, SoC, and Encapsulation to CSS using Sass and Compass. We'll explore techniques to build modular, semantic and intelligent CSS. Prepare yourself for the next evolution in front end development.
Resistance is futile, you will be Glass-imilated!
Seen Google Glass in the wild? Wanted to learn how to make apps to run on it?
If you answered no to any of these questions, then come and learn what you have been missing out on! Of course, if you said yes, then you already know that this is the session for you.
In this talk, I will go over the basics of what Google glass is and isn't. I will demo the Google Glass that I have had since I got into the explorer's program in November 2013, which will be available for people to try after the session.Of course, since this is a technical conference, I will spend the majority of the time going over how to write native Glassware apps that will run directly on the device. I will go over how to use the voice commands, the touch gestures, and using the specific interface that glass provides. In addition to learning the technical details of how to write code for the glass, all examples I provide will be test driven and made available on Git Hub.
Running Open Source Software Projects: From Zero to Sixty
Glimpse, an open source web application diagnostics tool, went from a rough back-of-a-napkin idea to a project with tens of thousands of users and developer media attention within a period of eight weeks. Join Glimpse’s co-founder, Nik Molnar, for an honestly raw tale of the pains and lessons learned that arose managing an open source project. Along the way, Nik will cover the tools and techniques that have proven successful over the past two years developing Glimpse, focusing on technical challenges and best practices for community management, communications and open source/life balance.
This session is suitable for founders, maintainers, contributors and all users of open source software and aims to spark conversation around the best way to foster open source and open source etiquette.
Rust Me, I’m a Developer
Ever had to worked on a large application written in C or C++? One of the great foundations of the UNIX operating system. Fast and powerful but what a bear! What was it Bjarne Stroustrup the founder of C++ once said? Oh yeah:
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off."
Understatement! Which is probably why most folk write their applications in something easier to handle running through a VM or dynamic language parser.
But isn’t it about time we had other options for building our binary executables? Rust is one such alternative. In terms of structure and features it has a lot in common with C but it is also very different. In a good way. No unallocated memory exceptions. Safe multi-task concurrency. And for those who like shiny things, it’s just that little bit different!
This is a talk aimed at those interested in knowing more about the Rust Language. In this session I will cover the major features in rust demonstrated through working code samples. It won't make you an expert, but it will help decide if Rust is for you and help you get started.
Scaling Your Data Safely with Riak
Does Caching get you down? Can your database survive a nuclear blast or the zombie holocaust? Can you scale your database to keep up with demand without writing to /dev/null ? If you said yes to any of the above, then Riak may be for you.
In this session, we'll introduce you to Riak, a highly available distributed database. We will cover the concepts behind Riak, how to code against it in .Net/Ruby, how to scale it, and how to keep your data safe in the event of a natural disaster/AWS outage.
This session is for senior developers and those interested in NoSql solutions.
SDLC in Hostile Environments
What happens when end-users have the motive, opportunity, and skillset to attack our software? When two hacker conferences hosted a six week capture-the-flag contest, organizers learned first-hand how this impacts the software development life cycle (SDLC). The development team featured managers steeped in SDLC concepts and developers trained on secure practices. The framework was built over several months and then exposed to skilled attackers for weeks, many of whom were more interested in exploring the scoreboard’s weaknesses than in capturing the flags. This talk presents a software development case study and reviews the security breaches that occurred during the competition. We will discuss wins and losses, successes and failures, and hard lessons learned about the difference between textbook SDLC and SDLC in hostile environments.
SignalR Powered True Cross-Platform Real-Time Mobile Apps!
ASP.NET | SignalR | HTML5/JS | .NET | iOS | Android | Telerik AppBuilder | Xamarin! That’s all .. let me show you the possibilities!
Stop multiplying by 4: Practical software estimation
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Team Peace of Mind: Harnessing the Power of Flow for Happier Teams & High-Quality Deliverables.
We are ‘makers’. We like to get things done. The more productive we are, the happier we are. This connection between productivity and happiness has been researched in the field of positive psychology as flow: the theory that people are happiest when they are in a state of absorption with an activity, or in the zone (credit: M. Csiksgentmihalyi). Practices such as Personal Kanban, the Pomodoro technique, TDD, assertive programming, source control, continuous integration, and more, promote both individual and team flow, which in turn increases the peace of mind in their deliverables. In this highly interactive session, participants will experience first-hand (via legos) how these practices contribute to flow. Though some of these practices are developer-centric, the whole team (Project Managers, Testers, UX Designers, etc.) can apply these individual disciplines to contribute to team peace of mind.
Ten Practical Tips for Automated Testing of Web Applications
60 minutes, ten takeaways for making solid functional User Interface tests of web applications. In this session we’ll quickly cover the fundamentals of how automated web functional tests work, then dive into practical solutions you’ll be able use on a daily basis. You’ll see how to create maintainable tests using the Page Object Pattern, handle complex asynchronous (timing!) situations, and deal with common controls like complex grids, trees, calendars, and a number of other “interesting” automation scenarios.
You’ll leave this session armed with knowledge you can immediately apply to make your automated functional tests faster, more maintainable, and easier to write!
APIs are everywhere these days and every company seems to want one. There are never-ending attempts in building tools that will make construction of web based APIs easy. Yet there are far fewer for testing them. If you're serious about building one and having other companies use it and depend on it, you better build it right.
Testing With Vagrant
Learn how vagrant can be used to set up automation environments quickly and repeatedly that can be combined with cucumber to create a number of solutions that address common environment and testing issues.
The Business of You - 10 Steps to Running Your Career Like a Business
Smart businesses come up with a mission, vision, and values that define the way that they do business and help them focus for success. So why don't we apply the same ideas to our own lives and careers? I'll go over ten steps that you can take to run your career like a business, take control of your life, and help you work towards a successful life and career on your terms.
The Emergency Content Strategy Survival Kit
Content strategy as a discipline is on the rise, but what if you don't have a content strategist in easy reach? If you don't have a content strategist in-house or on retainer, and your organization is full of folks who wouldn't know an adverb if it bit them, there are nevertheless some simple techniques you can use to reveal the right message hiding in any piece of web content.
Should you hire a content strategist? Ideally, yes. But there will always be those home-grown, cash-strapped, gotta-launch-in-3-days efforts where the content needs to be done, and needs to be done right – and it needs to be done by you. This talk will be your Content Strategy Survival Kit, tucked in your desk under emergency glass. Don't be afraid to break it.
Attendees will learn simple, practical content strategy tips and techniques so that they can put on their content strategist hats whenever the need arises. We'll walk through these tips in the context of a real-life case study: the story of how my team and I created our own Survival Kit in our organization when we had a website to launch in a hurry. I'll take lessons from that story and explain how attendees can apply them in their own organizations.
The Overlooked Cool Features in Windows Azure
We hear all the time about the cool VMs, SQL and websites within Windows Azure but sometimes we miss some of the really cool smaller features that can change our applications and solve business problems that were a real pain in the past. Did you know that we can expose WCF endpoints to client desktop/mobile applications without exposing our server to the public internet? Did you know that we can storage data of many different schemas within the same table in Azure Storage? Did you know that we can VPN directly to our Azure VMs from home without having a corporate site connection? We will look at some of the most overlooked features and show examples of how they are used effectively in really cool cloud applications.
The Success and Failure of Moving to a Message-Oriented Application Architecture
In this session, I'll talk about one of my clients – let's call em “Client O”. Over the last eight months, I’ve been working with Client O to migrate their enterprise software application from a monolithic web service to a loosely-coupled, message-centric architecture based on MSMQ (Microsoft Message Queue). The results have been remarkably positive: their processing capacity is currently over 800% of where they started, and they have the ability to scale even higher if necessary. In addition, their error rate has fallen by about 96%. However, alongside these successes are colossal new problems for the organization – specifically, the new highly-dispersed architecture represents a serious challenge for the barebones systems management team.
This session will tell the story of this system-in-flux, and discuss ways to resolve the problems caused by the system’s success. I will include a technical overview of the legacy system and the migration to the queue-based architecture. Specific attention will be given to assumptions in the legacy system that prevented scaling, and how these assumptions were addressed with message queues.
Touch Me, I Dare You
Designing for a touch first web is becoming more important every day with the proliferation of touch devices ranging from phones to tablets to convertible laptops to touch monitors. The issue is that most folks think this just means having bigger buttons but they are wrong. Yes, understanding touch target sizes is important but that’s the absolute bare minimum. A great touch experience starts with understanding your user’s context and includes understanding the difference between touch and a mouse with issues ranging from how to handle gestures to thinking about things like your usage of hover state to scoping input correctly and more. In this session, we will dive into these issues and show you how to build a great web experience that will help you on all platforms and devices with touch interface.
What Have I Done?
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 and strategies into your lifestyle. In this session, I'll discuss some very easy to implement methodologies that can help jolt you from unproductive and wandering through your day to a more focused and in control lifestyle.