Eric Polerecky bio photo

Director, Professional Services @RightBrain_Net - 50% engineer, 50% entrepreneur. Former: CTO @Wantify, @agilesoftware, @grasshopper

Eric Polerecky

Email Twitter LinkedIn Github Stackoverflow

Certifications

Xamarin (expired)

All Posts

All Posts

Driving Personal Growth

  • October 01, 2015
  • learning
  • interview
  • podcast
  • startup

Starting Monday my commute is going to get a little longer and with that I decided to update my podcast catalog. The reason for this update update was to find a new batch of podcasts to help me become a better technologist and leader. As my roles have changed through my career so has the places where I look for input and information.

Taking a look back, a large part of what has made me successful has been the influx of information during my daily commute. I’ll write a detailed post on that soon. Here are a list of the podcasts that I’m adding to my rotation.

Product People

I found product people through the blog post “LAUNCHING IS A MYTH”. I have not listened to a complete episode yet but skimming the titles was enough to give it a shot.

  • http://productpeople.tv/

Startups For The Rest Of Us

The about us page describes this podcast as “the podcast that helps developers, designers and entrepreneurs be awesome at launching software products.” and that is exactly where we are in our product life cycle.

Listening to episode 225 on paid advertising campaigns instantly had it added to my doubletwist.

  • http://www.startupsfortherestofus.com/

The next two podcasts I’m going to add before having listened to them. They are both product focused podcasts that I don’t know much about.

  • http://buildandlaunch.net/
  • http://www.chasingproduct.com/

If you have any input or suggestions for other product and launch focused podcasts please leave a comment.

10 Things I learned from a16z podcast

  • July 07, 2015
  • learning
  • interview
  • podcast
  • startup

You won’t believe what I learned from the a16z podcast.

Everything is open for disruption:

Women in India sell their hair to buyers from China, who treat and package it, then sell it to primarily Korean distributors who sell to Korean-owned beauty supply shops in the U.S., who then sell it to primarily African American women.

  • Enter the startup Mayvenn (Yiddish word meaning “trusted expert”) lead by Diishan Imira.

What industry has adopted mobile tools?

  • Construction workers!

Technology vs. Globalization:

  • 0 to 1 = Technology
  • N+1 = Globalization

Strategy:

  • noun - The art and science of reducing competition in your industry

On first mover:

  • First mover is an advantage but being the last mover means you own the industry.
  • Facebook (Social), Google (Search), Microsoft (PC).

Hooked:

Full Stack Startups

Innovators Dilemma:

  • Old companies can’t compete with new companies because they are scared to sacrifice current revenue for future potential revenue.
  • New companies have nothing to sacrifice!

On Facebook:

  • Facebook is working to kill Facebook.
  • If they don’t do it; someone else will.

About secrets:

  • Successful startups are built on a secret. If your secret becomes valuable, then your startup will be successful.
  • That does not mean that you need to keep your ideas a secret.

More about secrets:

  • What valuable truth do you believe that other people disagree with you on?
  • This is a great question for startup founders.

Let’s go viral!

  • Virility can and needs to be planned
  • Virility is created by creating actions that a user wants to take that pulls another user into the system.

Measure how viral your application is:

  • K-Factor can be used to describe the growth rate.
  • k=abc*d with the following definitions:
  • a: the percentage of users who publish at least one share event per visit.
  • b: the average share events per user per visit.
  • c: the number of Users referred from social networks for each share event.
  • d: the percentage of c that become authenticated users (i.e. in a state where they too can publish).

About the enterprise:

  • Oracle, Microsoft, SAP and IBM control 82% of the market cap of software businesses
  • Representing $800B in market cap.
  • SaaS represents less than 10% of the legacy players’ revenue.
  • $720B opportunity

Facebook traffic:

  • Facebook sends more traffic to the wall-street journal than the rest of the internet combined!

Facebook app advertising:

  • There is over 1B dollars spend on app install advertising on Facebook each year.

Facebook Mobile:

  • 80% of Facebook users use it on mobile

Competitive advantage:

  • Previous: how quickly you could install and keep up SAP
  • Future: how you manage data in the gaps (connecting SaaS, data mining)

Google is pulling all apps into the cloud:

  • Google play services are all the google core OS features that can be updated without updating the OS.

Hardware:

  • Apple controls the hardware, they don’t care about your cloud experience, they focus on the seam between hardware and software

Your own facebook:

  • Applications are engineered to be tailored to you in real-time.

Apple loses control:

  • iCloud runs on Azure
  • This is odd because unlike the entire hardware chain - including designing and manufacturing processors - the Apple software strategy gives “control” to 3rd parties.

On the maturity of mobile:

  • Early in the area each PC looked and function the same.
  • Everything was PC compatible.
  • Then there was divergent.
  • We are in the early area of mobile. now every mobile platform has copy-paste and other features.
  • We will soon see more unique features coming to each mobile platform. (cyanogen)
  • We need more then 2 companies building phones for this to happen.

Mobile math:

  • There are 500M iOS users
  • There are 1B android users.
  • 10B paid out to iOS developers
  • 5B paid to android developers.
  • iOS has half the users but is worth twice as much (to developers)

You are your phone:

  • Why are iOS users so much more valuable then Android users? Simple.
  • People that buy $600 devices have different purchasing habits then people that buy $200 devices.

Linux philosophy for software:

  • Do one thing; it’s the next consumerization of apps.
  • The next wave of app development is going to be “unbundling” of applications.
  • Facebook messenger is an example
  • Opportunity for new developers and applications

Competition comes in many forms:

  • Who is twitters main competitors?
  • The games on your phone
  • Most competition comes from “things” that can solve the same problem, not same category
  • If you like burgers you will try both, all, every burger place.
  • This is why you see McDonalds next to BurgerKing

Virtual business:

  • Skype completes with business class travel.

Competition levels:

  • Indirect: McDonalds vs. Wholefoods,
  • Direct, Indirect and secondary competitors

Change is hard:

  • Most people overvalue where they are today (x3) and undervalue what you have to offer (x3)

4 forces of switching to products (if the top 2 are more powerful than the bottom 2; you win)

  • What is wrong with current world? (what is wrong with outlook)
  • What is attracting me to the new place
  • What is keeping me from where I am today (I’ve got all my saved searches, my contacts)
  • What is the fear of change (why is this tough)?

How to get someone to consider change:

  • Tell them their current problems are shit
  • Tell them how outdated their current products are,
  • Tell them it’s easy to switch and switch back.
  • Ex: I’m a mac, I’m a PC.

Google+ is/was a success:

  • It’s not a social network; it’s a tool to index something that google was not indexing: People

Slides from my AADND talk on FRP

  • March 17, 2015
  • reactive
  • functional
  • frp

First; thank you to everyone that showed up to my talk on Functional Reactive Programming at AADND last week. It was great to host the Ann Arbor .NET Developers in The Forge by Pillar….the food was pretty good too.

The Forge

Slides

If only as a way to catalog the evolution of my attempt at trying to explain and provide a “real world” reason for using FRP; here my the slides from my second time giving the talk.

http://www.slideshare.net/detroitpro/real-world-functional-reactive-programming

Based on feedback and continued learning about FRP and it’s usages; I’m in a constant cycle of present-update-present. It’s going to be a long time until we have a presentation that captures just enough FRP without being BORING.

Next Up

Saturday, March 21st, at GRDevDay

Xamarin Forms 1.4: Parallax Scroll

  • March 08, 2015
  • mobile
  • xamarin

Xamarin Forms 1.4 is a minor point release and that means there are API changes. One of the new API changes is around the ScrollView.

ScrollView now has a ScrollX and ScrollY property;

public double ScrollX { get; }
public double ScrollY { get; }

This means we can now get the scroll offset. With the scroll offset we can adjust a background image…we can create a parallax effect!

Parallex Scrolling

Parallax scrolling is a special scrolling technique in computer graphics, wherein background images move by the camera slower than foreground images, creating an illusion of depth in a 2D video game and adding to the immersion

– Wikipedia

Scrolling Example

Example App

It’s actually pretty easy, now that we have access to the offsets, to implement parallax. I put together a little demo app today; Parallax Xamarin Forms Demo

However; the core of the scrolling can be found in this gist:

Source

Xamarin.Forms Forums

Xamarin List Detail

  • March 06, 2015
  • mobile
  • xamarin

There are plenty of examples of create List Detail style application workflow using either UITableViewController or without using a Storyboard. Of course; I wanted to use a Storyboard and to use a UITableView

Working with Storyboards

Getting started; I added a UINavigationController which comes with a “Root View Controller”. On the root view controller I added my UITableView

Getting started

Prototype Cells

The default UITableView comes with 3 prototype cells.

  • The UITableView can display different data in different formats.
  • You can use these prototype cells to design how they display.

If all your data is of the same type and displayed the same way you can change the number of prototype cells down to 1.

Cell Identifier

ViewCells don’t have a Cell Identifier by default. You will want to add one so you can decided which Prototype Cell will be returned by your custom UITableViewSource

Getting started

The arrow below shows where you decide which type of cell to dequeue. The string value passed into DequeueReusableCell must be the Cell Identifier of one of your Prototype Cells

dequeue)

All of my troubles started when trying to implment a simple list to details navigation. Without dequeuing the correct reusuable cell, by ensuring the name Cell Identifier; my navigation would never happen.

As long as you wire-up the Cell Identifier and Prototype Cell configuring navigation using a segue is pretty straight forward.

Simply, ctrl+drag from one of your Cell Prototypes; you likley only have one, to the details view controller. Now; when someone clicks on your UITableViewCell the segue will fire and navigation will happen from the list to the details.

Passing Data

Unlike normal navigation there is not an event to connect to when the UITableViewCell (Prototype Cell) is clicked. Instead; you override the PrepareForSegue method from the view controller that holds your UITableView.

public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
    if (segue.Identifier == "TaskSegue") { // set in Storyboard
        var navctlr = segue.DestinationViewController as TaskDetailViewController;
        if (navctlr != null) {
            var source = TableView.Source as RootTableSource;
            var rowPath = TableView.IndexPathForSelectedRow;
            var item = source.GetItem(rowPath.Row);
            navctlr.SetTask (this, item); // to be defined on the TaskDetailViewController
        }
    }
}

Conclusion

There are many different little gotchas that can getya when you are setting up simple list details view navigation. In this post I highlighted the Cell Identifier of the Prototype Cell because that is the one that got me.

You can also find a good overview of this navigation pattern in the Xamarin developer center.

Creating Tables in a Storyboard