I’ve found system testing Ember.js applications to be quite enjoyable—the Ember run loop and test helpers make tests deterministic and fast. That is, of course, when your application code lives happily within the confines of the run loop. But what happens when your application generates asynchronous behavior? How do you test that?
Perhaps the most important ability any person can have is the ability to practice, for by it almost everything else is possible.
Since having a daughter, I’ve discovered humans are born with the ability to practice. She practices new skills daily. One day it’s repeating the same sound over and over, another it’s rolling across the floor front to back, back to front. Lately it’s pulling herself to a standing position, then sitting down without falling over. She practices relentlessly, and it’s a good thing too, because practice is the only way she’ll master important skills like walking and talking.
If you are new to iOS programming, you may not know of a very useful feature in iOS called container views. A container view allows you to create a reusable component that all of your view controllers can share. The containers are easily edited with the storyboard editor of Xcode. Plus the reusable component is also backed by the power of a separate child view controller.
In part one of this series, we explored the Who, What, Where, and How of our membership and pricing models. Now it’s time to think about the value propositions that will speak to best to users.
This approach can be broken into three sections: Discover, Test, and Pivot. Read more on Pricing & Membership Models: Part Two – Value Propositions…
New user groups pop up all the time around new technologies and methodologies. Self organization around learning is amazing and powerful—having a community of smart people that self organize and improve the software community is vital for our long-term success.
The major roadblock that these groups commonly struggle with are the business aspects of running a group: Read more on The SoftwareGR Alliance – Supporting Local User Groups…
As a general rule, I try to minimize the number of programs installed and configured on the host OS of my laptop. I use the host mostly for email, office, and web browsing. It’s much faster to create isolated development environments inside of virtual machines. If a project requires some third-party applications or modifying system-wide settings, I don’t need to worry about it corrupting my host OS or affecting other projects.
As my colleague Jeanette and I were walking home from the office a few months back, we came upon an unpleasant-looking accident approaching the bridge west of 1st Street on Washington. This unfortunate truck was too tall for this bridge’s 10’6″ clearance, and as such incurred serious damage. Read more on Tall Trucks, Low Bridges, and iOS Geofences…
Speaking a language fluently is impressive, and speaking many languages is impressive, but ultimately, it’s not about the words. Talking is about communication. This applies as much to programming as to speaking. Switching to Spanish or Cantonese won’t help if you don’t know how to form and organize meaningful thoughts about a subject, and knowing all the syntax and semantics of C++ won’t help if you don’t know how to write organized, meaningful code. Learn the principles that apply in many languages, and the rest will follow. Don’t just learn a programming language. Learn to program.
During a recent project I came upon an interesting CSS problem. I needed to create a square element that would maintain its square shape as it responsively resized to a changing window size.
It’s almost time to launch that product that you’ve been working on for months (maybe years?!) and you want to ensure that users will not only sign-up in droves, but also fork over the cash. Thoughtful pricing models and a solid membership structure will let you make it rain in dollars and users.