Stiqrd is Starting Up

It is a story that is all to familiar with most startups, but I can honestly say I am happy to a character in this one. For the past 6 months, on nights, weekends, holidays (see my recent tweets) and every other spare moment that I have had, has gone into help co-found a company: Stiqrd 

"stiQRd is a mobile platform that helps you increase customer loyalty as you reward your most faithful fans. Tailored to your business needs, it's easy to use and secure. Our free mobile app stores authenticated check-ins to protect you from fraud and tracks demographics."

Though my primary roles are the development/architecture of the mobile platform and implementation of the iOS app I have had the pleasure of working with my other co-founders in truly building a business platform that is unique and gives consumers a product and service that will simplify their lives. It is truly "Apple-esque": elegant and simple to use.

I have a tremendous respect for all my fellow startup brethren who have endured the hardships of "startup life" and still overcame those obstacles. Tight deadlines, constant pitch practicing, pivoting your business models when need be, traveling, coding and coding and coding….and coding!

We have been in the final crunch for the past month in preparation for Investor Day with the SeedHatchery program we are in and during that time, I have changed day jobs, moved across the state, had to pack and prep for the move within 5 days, 2 of which I didn't have power because of the horrible storms that ransacked the Mid-South.

With that being said Stiqr is days away from submitting the first version of our app to the AppStore. I would be lying if I said I wasn't a nervous wreck. There are a lot of technical and UI/UX features that I wanted to put in for v1 that didn't make it in, but isn't that always the case?!  I have dozens of drawings, Evernotes and prototypes for these upcoming features. We are releasing the app early, but updating it often.

Through all the peaks and valleys of this journey I couldn't have been happier with the experience of working with the top-notch individuals who have put their heart and soul in this venture.

Stiq with us…the best is yet to come.

Please Enter Your Password Gesture

The more and more that I develop apps the more I try to challenge myself to come with creative ways for users to use the apps. Really trying exploit the power of multi-touch. As mentioned in a previous post, this trend is becoming more and more mainstream. Unfortunately, when it comes to authentication, we are still stuck using the old attage of a PIN and/or using biometrics, which never really caught on with the masses. I personally think that has to do with implementation of it not the mechanism.

In order to try and contribute, to a hopefully better way to authenticate, I started working on a password gesture framework. Though password gestures aren't new what I think differentiates mine, at least conceptually, is how it deals with resetting it. My first thought was to just stick with the same old "email me my password", however email isn't always relaible and the "gesture" password isn't stored on a server, but on the device. In addition, I didn't want to have to rely on a separate server or component. Lastly, by doing that I am relying on an outdated "desktop" thought process of handling lost/forgotten passwords. So how do I give a user a usable and easy way to reset their password without having a server dependency or leaving the app?

My solution is that during the password setting process is to present the user a list of pictures and have them choose N out of X. If they need to reset their password they will be presented with the "reset" picture screen and select the correct ones. If the correct set of pictures are choosen then reset occurs. If not then fail. Due to my extremely busy schedule I haven't had the opportunity to really dedicate the time I want to. I am hoping that posting this to github that the iOS community will take it and make suggestions or fork and implement it with ideas and features that I haven't thought of.

I have started the project as a sample app, but once it reaches a stable point I will make it a static library that can be dropped into any project.

It goes without saying that I am really looking for feedback on this. All comments and suggestions are welcome.

Password Gestures on Github

StiQRd

This isn't an app...it's the way loyalty programs should be!

Private beta this weekend and App Store launch soon. 

"stiQRd is a mobile platform that helps you increase customer loyalty as you reward your most faithful fans. Tailored to your business needs, it's easy to use and secure. Our free mobile app stores authenticated check-ins to protect you from fraud and tracks demographics."

Yes...I am architecting and writing the iOS app(s).  


Sent from my iPhone

Using CAAnimationGroup for View Animations

Lately I have been pushing myself to increase my knowledge and understanding of more advanced animation techniques. The more that I
dig into the lower level
core graphics framework and core animation the more impressed I become with their power. I also have a greater 
respect for those developers who can leverage their power in creative ways.

For most use cases leveraging
uiview basic animations with blocks will do exactly what you need. However, in my particular case I wanted to
accomplish the following. Scale, rotate and change center point of subview "A" to subview "B" all at the same time.

Taking my own advise I first started down the path of using basic uiview animations. I want to make sure that each different piece of
the animation would perform the way I wanted them to. Separately, they did exactly what I wanted. Unfortunately, grouping these together was
not going to happen with uiview animations.

When I ran the process all the animations executed, but the transition to subview b's center point was very jerky. To make sure that I didn't
miscalculate any of the individual animations I went back and tested each one separately. Each animation ran smoothly. When I ran the group within the block
I had the jerkiness problem of animation the center point.

After going back and reviewing Apple documentation I found what my problem was.
Imagine that. To do the rotation I apply a transform on
the view's layer. However, the transform performs it's animation based upon the views center point. Since I was trying to apply an
animation on the center point as well the group animation had to reposition subview A's center point first before it could apply any of
the other animations. Hence the jerkiness.

I pushed all my animations to a
CAAnimationGroup and all the transitions were performed.


-- 
Cory D. Wiles
kwylez@gmail.com
www.corywiles.com | twitter.com/kwylez

A Bold NeXT Step From Apple

When historians look back at the legacy of Apple and the revolutionary products they created what will they say was the turning point, the catalyst that projected Apple from an almost bankrupt company to the most recognized and admired brand in the world to-date? Would it have been the release of iTunes, the first iPod, iPhone or the iPad?

Though it goes without saying that those products changed the future of computing, but the turning point was Apple (really Steve Jobs at this point) deciding to change the MacOS platform over to NeXTStep…the basis of which is Cocoa.  To put that importance in perspective that is like Bill Gate walking in to the team that was working on developing Windows95 and saying STOP what you are working on! We are going to start over from scratch on this OS and make it sustainable for the foreseeable future.

*Bill Gates didn't do that and as a consequence their OS sucks.

Up until that moment that Steve made that executive decision Apple had been busy working on a new OS since the one that had been in production had reached the limits of its single-user, co-operative multitasking architecture and the UI was certainly looking dated.  From that decision alone the world would later be introduced to Mac OS X and iOS.  I am not sure of the stats for the latest iOS, but as of iOS 3.0 both iOS and Mac shared 80% of the same libraries and with each iteration, and the upcoming release of Lion, that gap will decrease.

When people talk about company leadership, for this humble technologist/developer, this is what all about.  Being able to see longevity in your product before it is conceived, make a definitive decision and see it through.  Are Apple and Jobs fortune tellers? Could he see that his decision would one day be the basis for the next evolution in mobile computing, of course not. But what he did see was the need to have a solid foundation for the buildings of those world changing products could/would be built.

That is VISION. That is LEADERSHIP. The rest is HISTORY.

Twitter Group Conversations - My Requested Feature

Last Friday @JeremyKendall tweeted for input on processing Excel files with PHP.  The resounding recommendation from at least 4 people was to use PHPExcel.  As the conversation continued the number of participants grew. Unfortunately, I had to cut out the others in my replies because instead of having 127 available characters (140 - jeremy's handle) it dropped down to below 80.  The solution? Group reply shorteners.  If you look at bit.ly and their bundle service of having group urls as a model this concept isn't insurmountable.  Twitter already provides the shortest possibly url service and I would love to see them extend that to group messaging.  While there are currently third party services that provide something similar, they are not a native Twitter offering and usually only for private groups.


After watching Demetri's talk Devoxx I could see how this feature would be able to integrate into their infrastructure in almost the same way they handle @ replies. Having a group reply shortener would have kept a brief, but interesting conversation, going.


As it turns out I am not the only one who thinks that group messaging and conversations are a growing trend.

Passion Can Drive Innovation and Inspiration - Ask Smule

Not too many people outside of the startup/iOS world know the name Ge Wang, but he, and his company Smule, are both to be studied and admired. The company that he co-founded, Smule, is not only one of the most successful iOS development companies with titles under their belt as "I Am T-Pain", "Glee Karaoke" and "Ocarina", but they have taken music composition and performance to a whole new paradigm.  One of the key "tag lines" that Steve Jobs always uses in his keynotes is that Apple is combining Technology and Liberal Arts.  Smule is a PERFECT example of just that.  They were definitely one of the trail blazers when the App Store was first announced to push the envelope when showing the creative potential that the iPhone offered and benefits of a gesture driven interface.

I was very impressed by Ge Wang's generosity of taking time out to speak with Jeremy Olson, the creator of Grades. The impromptu interview was a complete joy to watch.

Top 5 Reasons to Show Ge Some Respect:

Look and Listen

The Almost Perfect CMS Using AWS and NoSQL

This past week Amazon announced their new static site service using s3. After reading a few reviews and technical how-tos I was reminded of an old project that my friend, and former coworker, Stan Harris and I
worked on but got shelved. If this service had been around back then I do believe our project would have been green lit.

Do to the success of the many open source CMS's (Wordpress, Joomla, Drupal, MODx) everyone, no matter how big or small your website is, assumes that they have to have a content management system.  It isn't just small businesses that preach this mantra, but big corporations as well.  Over the years I have come to realize that in most instances going with a content management system or blogging platform is really lighting a grill with an atom bomb.

There is an emerging market growing for those "in-between" scenarios where using anything from Wordpress to some "god-awful" behemoth like Vignette is just not the right fit for managing a user's or business's website. Let's be honest, the majority of the pages for your site are static anyway so why NOT serve up static pages.

Time to get back to basics.

I do not expect most people, especially content editors, to spend their days managing html tags for these static pages, but that is where AWS and NoSQL come into play. This philosophical approach to managing content is nothing revolutionary, but the reason that it has never taken off is due to the fact that all the technological pieces weren't there. There has to be a way for the content to be managed, but installing, maintaining and scaling a relational database is a nightmare. Most of the noSQL families are built from the ground up with these features in mind.

Someone needs to develop a SIMPLE CMS that allows for the management of content from a backend system, let's use CouchDB as an example, and when an article is published you write out the static template to AWS. 
For those pages where you have to have some dynamic/server-side driven module, just include that in another content-type template.  All the caching strategies and plugins in the world are not going to speed up your web server and make it run as lean as possible as just letting your web server do what it does best....server up static pages.  Not to mention that by using AWS you have instant scalability on an infrastructure that is as reliable as it is going to get.

Since there is still a backend management app, the content-editor will still be able to run reports, add in taxonomy, etc.  Granted, in this noSQL CMS there is more upfront development, but it is a solution that will fit one's business needs without being overly complex.  Just because Wordpress and Joomla are "easy to install" doesn't mean that the additions and maintenance are.

SimpleGeo's Continued Success Formula is Just Simple

There is no doubt that location-based-services are a EXPLOSIVE trend. It doesn't take a genius to predict that it's growth over the next 12 months will be immeasurable. The company at the center of it all, that EVERY developer needs to pay attention to is SimpleGeo. It is no surprise to this humble iOS developer that SimpleGeo was named the most promising company of 2011.

*Disclaimer - I am using SimpleGeo for a project I am working on, but not paid by SimpleGeo in anyway for this endorsement. </Legal bullshit out of the way>

There are many technical reasons why you should use their service:
  1. Outstanding infrastructure
  2. Official and community libraries for any platform - browser and mobile
  3. Product Offerings
  4. Ease of integration into any of your existing products/services
  5. Transparency of technology
However, no matter great a company's product/service is, when "in the wild" developers and users will inevitable find flaws.  What sets SimpleGeo apart from any other framework/service that I have used is their OUTSTANDING support.

When I first started using SimpleGeo I ran into a road block and couldn't tell if it was something incorrect that I was doing or a bug. Within four hours of submitting my trouble ticket (this was free support) I got a detailed answer, in addition to a request for how they could improve their documentation so that someone wouldn't have the same misunderstanding.  To have a company take that kind of pride in the product and literally doing everything they can to improve themselves is bound for great success.  Over the past few months I have sent a few more tickets and requests and each one has been responded to in a timely manner, the utmost professionalism, and with enthusiasm.  To my delightful surprise SimpleGeo is offering office hours for even more personal support, which I signed up for immediately.  Doesn't matter if you are not located in SF, they'll meet you on Skype.

Simply put, SimpleGeo knows that their continued success is dependent on not only their technical superiority to other LBS platforms, but the experience that the client will have while developing and using it.  Regardless, if it is a solo developer or fortune 500 company.

They are passionate about what they do.  It is so simple everyone should do it.