Jan 102014
 

I’ve been working with various developer communities for several years, and there’s a common question I encounter regardless of the platform:

Q: “What should I work on?”

This isn’t always easy to answer specifically, because a great deal depends on the skills and interests of the person asking.  But there is an easy general response:

A: “Solve a problem for yourself.”

I’ve found that the developers not asking that question tend to do exactly that.  They have a need, see no available solution, and jump right into solving it for themselves.  Often enough, that tends to work for others as well.

I’ll demonstrate with an example that’s close to home for me.  My youngest son was riding with a friend who got stuck at the edge of a lake in his truck, well away from any paved roads.  He was unable to tell me exactly where he was, so I needed his geocoordinates.  Unfortunately his phone’s battery was low and he was reluctant to do anything else to drain it; calling me was cutting it close.  But eventually I was able to figure out that he was at a park I’d been to, and headed off to get him.

I also checked the Windows Phone store for location-sharing apps, for future use.  Something like that would be handy for teen drivers and their parents.  But while I found several that provided coordinates, I didn’t see any that provided routing.  As I drove to pick my son up, I sketched out in my head how I could address that.  Back at home, I immediately got to work.

When I talked to others about it during development, I kept encountering the same response: “I’d love to have that for my kids!”.  As I got further into the project, I thought of other modalities: meetings, deliveries, even macro gaming.  I incorporated many, but kept the basic functionality simple and focused on emergencies, so that someone needing urgent help need only use a few clicks to get it.

The result is my first published app (after 30 years of coding!), Here You Go.  I’m pretty pleased with the outcome and have several ideas on how to make it even better.

Point is: I had a problem, checked out what was available, and then solved the problem.  That sort of process tends to result in apps that resonate with others.  It works for hackathons too: time and time again I have seen clear, simple, monofunctional solutions take the big prize away from more complicated projects.

So, at least for your first app(s), forget Change The World type solutions.  Look at your own needs, and implement something simple that solves them.  The odds are very good that there are many, many potential customers with the very same needs.

Now go code!

Dec 062013
 

Greetings all!  It’s time to dive back into Windows Phone developer community land.  In this post I’ll be sharing the good and not-so-good news for WP development in my region, which is physically centered in the Dallas-Fort Worth area but also includes Oklahoma, Kansas, Colorado, Nebraska and South Dakota.  I’ll summarize the year and share some ongoing/upcoming stuff too.

Developers

Since starting this part-time role, I have spoken directly with hundreds of developers in my coverage area, and communicated with or become aware of many more by email, Twitter and other virtual means.  Out of that, here’s a breakdown of current status:

2014 Windows Phone Developer Information – Nokia Dev North TX

Status

Number

Notes

Contact and related info

Have provided a name and expressed interest

~180

Partially registered with me (Name, email address and location minimum)

47

Fully registered with me (email address, DVLUP account name,   Windows Dev Center name, location)

64

Twitter name also helpful but not required

Development

Have published app(s) to the Windows Phone Store

48

Active (WP app created/updated within previous 180 days)

29

 Goal: get this higher!

Related developer and enthusiast groups (must show examples of Windows Phone support)

North Texas

Member of Windows Phone App Developer Group – DFW

189

Member of DFW Mobile .NET

108

Supports Windows Phone, iOS and Android
Member of Dallas .NET User’s Group

193

Broad interest that includes .NET mobile development

Oklahoma

(no groups known) Rich Dunbar is working on starting a group in Oklahoma City

Kansas

(no groups known) I am in discussion about this with the Kansas City Mobile App Developers Group

Colorado

Member of Boulder .NET User Group

371

Broad interest that includes .NET mobile development
Member of Colorado Microsoft Developers

260

Member of GeoDev Meet Up Group – Colorado

341

Broad interest that includes .NET mobile development

Nebraska

Member of Omaha Mobile Group

271

Broad mobile interest

South Dakota

Member of Sioux Falls Developers Group

149

Broad interest that includes .NET mobile development

 

Note some big gaps between some of these numbers… which means missed opportunities for many developers and myself.  For developers because in the past year or so I’ve given out plenty of Nokia phones, swag, software development resources and even cash to many.  For myself because I receive incentives from Nokia directly tied to developer activity and success.

Obviously I’m highly motivated to help interested developers, who should in turn be motivated by their own rewards.  Too many have been missing out, as I’ll explain further in a bit.  But bottom line, I’d like to see that 29 active developers count go up.  WAY up.

Events

There haven’t been many Windows Phone meetups in the DFW area recently.  The original DFW developer group has been inactive for a while, and my focus for the past few months has been on a multitude of local hackathons.  On that note, here’s a list of some I’ve supported:

And events planned for the future:

  • AT&T Developer Summit Hackathon, Las Vegas, 04 to 05 January 2014.
  • Dallas IGDA Holiday Party, 11 January 2014.  Hang out with rockin’ gamers– I’ll have prizes!  Bonus prize for registered developers.
  • Global Game Jam, 24 to 26 January, 2014.
  • UNT Big Data Hackathon, 07 to 09 February 2014.
  • Dallas Day Of Dot Net, 28 March 2014
  • BRIT Civic Hacking event, probably summer of 2014.  Planned to coincide with the annual, US-wide Hack for Change events.
  • DFW Mobile.NET learning sessions under development for 2014.  Will cover Windows Phone, iOS and Android.
  • DVLUP Day(s) DFW.  We’ve had a few large events focused on DVLUP around the country and they’ve been a tremendous success.  Some have in fact broken developer-involvement records for Nokia and Microsoft.  I intended to hold a small one for DFW this Fall but the previously-mentioned hackathons interfered.  Look for one sometime next year, and possibly something bigger.

Let me know of any I’ve missed!  I’ll update this page.

Promotions and Opportunities

Chances at prizes and fame!  Note that not all of these are for coding.  Some key opportunities:

DVLUP

As of this writing, DVLUP now supports 40 countries around the world.  It’s an unstoppable phenomenon!

We’re rewarding Windows Phone developers for doing what they love best: coding apps.  Many have made out well, with success stories that include one developer earning enough points for six Lumia 920s during a December 2012 promotion!  And yet, there are many who have published WP apps yet aren’t active in DVLUP.  I personally find that mystifying, but I’m here to support those savvy developers who know a good thing when they see it.

There have been some growing pains, including recent site glitches, but rest assured the DVLUP team is highly committed to providing you a rewarding experience.  Get in and get active!

General

As many of you know, Windows Phone continues to grow in popularity.  Back in early 2012 I struggled to get local developers interested.  By early 2013, Windows Phone teams were winning at hackathons!  I believe the platform is at a tipping point toward huge success, and suspect that Microsoft’s acquisition of Nokia’s handset business will help cement that.  Get involved before the WP app store is oversaturated!

Along those lines, we’re not sure what’s going to happen with our little team when the buyout dust settles.  However, I have no doubt that DVLUP’s success is being recognized by Microsoft.  No guarantees from me, and I have no inside info, but I suspect it’s going to continue.

Going Forward

Let’s make 2014 the year of no excuses.  If you have ideas, start developing!  If your app has grown stale and you’ve fallen out of the active category, refresh it!  Remember that Nokia’s Ambassador team is here to help you.  And if you have suggestions for me, please share!  Especially for events.  I didn’t get out to other states in my coverage area this year and I’d like to change that.

But generally, I challenge my immediate and extended WP developer community to do the following:

  • Code/update Windows Phone apps.  Keep them fresh!
  • Make sure you’re active on DVLUP, and submitting apps.  We’re giving you great stuff!
  • Get fully registered with me.  I’m going to be doing more promotions!  You must be registered to be eligible.
  • Enter your apps in Microsoft’s Apportunity Sweepstakes.  Ca$h to be had!
  • Follow this blog and my @NokiaDevNorthTX Twitter account religiously.

Don’t be one of the many missing out.  Make sure you’re taking advantage of every opportunity.  If you’re already coding Windows Phone apps and not hooking up with promotions, why the heck not???  I’ll be releasing my first WP app soon and you can bet I’ll submit it for DVLUP XP.

More to come in 2014!  Thanks everyone.

Oct 012013
 

Deliver HereI’ve just recently gotten serious about learning XAML for Windows Phone development, and it’s been a real rollercoaster.  Hours of bad-document-reading, tutorial-deciphering and hair-pulling punctuated by brief bursts of accidental success.  My wife has learned to ignore my cursing but my poor dog Peanut still runs under a corner desk when some seemingly innocent code breaks.

Part of the problem for myself (and others, based on threads on MSDN and stackoverflow) is that documentation is woefully incomplete.  Too many examples telling you WHAT needs to be done but annoyingly omitting critical HOWs.  Too many segments of potentially useful code lacking the necessary prerequisite references to run.

But I digress.  And if you just want to avoid further background and skip to the solution, scroll down.

I’m working on a C# Windows Phone geolocation app designed to route an email recipient to a person in need.  One of my goals as always is to craft the best user interface for the solution.  For touch devices, that often means stripping out conventional interface objects like buttons because they tend to occupy a layer between the user and what he or she wants to do.  In this case, I want the app’s Map object to be the center of attention, and most if not all user interaction to take place on or around it.  As is my norm, I dose this work with lots of context sensitivity.

I began with PNG objects like those shown in this post.  I got that working fine eventually; tap on the graphic, and a context menu of several options pops up.  Select one, and the graphic updates to reflect the user’s purpose.

But as I began the task of replacing Application Bar buttons with more Map-centric interaction objects, I began thinking that bitmap graphics were too low fidelity.  If I went with vectors, and added more Map layers, I could truly orient the user better and improve engagement.  The Map itself could host most of the UI.I Need HELP

It’s easy enough to add polygonal objects to XAML.  Many of the Windows Phone content objects can host them.  But once you get beyond simple shapes, editing can be a pain.  One quickly misses Adobe Illustrator.

I found a really sweet XAML export plugin for Illustrator, but the creator has been unable to update it past CS4.  I’m using Creative Cloud, and older plugins no longer function [edit: as one reader pointed out in comments, Microsoft's Blend can import AI files.  Part of my purpose here was to identify a completely free solution.  For many uses, Inkscape works fine].  I discovered that the free vector editor Inkscape supports XAML export, so it was a no-brainer to bring my AI graphics into it and export.  Below is an SVG file of my Map Pushpin object:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="28.263px" height="72.538px" viewBox="0 0 28.263 72.538" enable-background="new 0 0 28.263 72.538" xml:space="preserve">
<circle fill="#3D5EAB" fill-opacity="0.9" cx="14.132" cy="7.041" r="7.041"/>
<path fill="#3D5EAB" fill-opacity="0.9" d="M14.132,16.012C6.327,16.012,0,22.339,0,30.143v0v42.395l28.263-28.263V30.143
C28.263,22.339,21.936,16.012,14.132,16.012z M22.332,44.275h-3.956v-8.347H9.814v8.347H5.872V23.784h3.942v8.076h8.562v-8.076
h3.956V44.275z"/></svg>

I next exported that to XAML, getting:

<?xml version="1.0" encoding="UTF-8"?>
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stretch="Uniform"><Canvas Name="Layer_1" Width="28.263" Height="72.538" Canvas.Left="0" Canvas.Top="0"><Canvas.RenderTransform><TranslateTransform X="0" Y="0"/></Canvas.RenderTransform><Canvas.Resources/><!--Unknown tag: metadata--><!--Unknown tag: sodipodi:namedview--><Ellipse xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Canvas.Left="7.1" Canvas.Top="0" Width="14.1" Height="14.1" Name="circle3405" Fill="#E63D5EAB"/><Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="path3407" Fill="#E63D5EAB"><Path.Data><PathGeometry Figures="M14.132 16.012C6.327 16.012 0 22.339 0 30.143v0v42.395l28.263-28.263V30.143  C28.263 22.339 21.936 16.012 14.132 16.012z M22.332 44.275h-3.956v-8.347H9.814v8.347H5.872V23.784h3.942v8.076h8.562v-8.076  h3.956V44.275z" FillRule="NonZero"/></Path.Data></Path></Canvas></Viewbox>

I am LOSTOther than redundant schema info and unknown tags, it looked okay.  I cut out the portion I needed (Canvas tag content) and plopped it into a XAML MapOverlay in my project.  Visual Studio immediately complained:

TypeConverter for “PathFigureCollection” does not support converting from a string

The offending bit was the Figures object.  Time to Bing for an explanation… but while I found many examples of people encountering the error, there were no useful solutions.  Some mentioned Kaxaml, which I downloaded.  While it’s a very helpful tool for visualizing and troubleshooting XAML, it didn’t see any problems with my code and offered no way that I could see to refactor what I had into something Visual Studio would like.

The Solution

But reading more about the PathGeometry object tickled a few brain cells.  I found a Path example that looked like it would work for what I wanted.  So I changed the essential code to what follows (key portion in bold):

<Canvas Name="Layer_1" Width="28.263" Height="72.538"><Canvas.RenderTransform><TranslateTransform X="210" Y="300"/></Canvas.RenderTransform><Ellipse Canvas.Left="7.1" Canvas.Top="0" Width="14.1" Height="14.1" Name="circle3405" Fill="{StaticResource PhoneAccentBrush}" Opacity="0.8"/><Path Name="path3407" Fill="{StaticResource PhoneAccentBrush}" Data="M14.132 16.012C6.327 16.012 0 22.339 0 30.143v0v42.395l28.263-28.263V30.143 C28.263 22.339 21.936 16.012 14.132 16.012z M22.332 44.275h-3.956v-8.347H9.814v8.347H5.872V23.784h3.942v8.076h8.562v-8.076 h3.956V44.275z" Opacity="0.8" /></Canvas>I Want to Play

Success!  In a nutshell, the trick was to remove the PathGeometry and use the Figures string as Path Data…. which just makes sense.  My custom Pushpin rendered exactly as it should, and looked much sharper than the PNG bitmap.  Now to construct other UI elements, add Map layers, and wire up the events.  I’ll post more later, and will provide the full code on app release.

Hope you find this technique useful!

 

May 282013
 

For those who have been active in the Dallas-Fort Worth Windows Phone developer scene for some time, the headline here may seem odd.  After all, the Meetup.com group has been gathering on occasion since this time last year.

But what’s been missing, according to the most common feedback I receive, are semi-social gatherings with a focus on Getting Stuff Done.  Attendees have had enough consumption; they’re ready to create.

With that in mind, I have spent the past few months scouring DFW for good venues for this activity.  I put together the following criteria for sites:

  • Should be free (or at least low-cost)
  • Should have easy facility access (preferrably no security hurdles)
  • Must have decent, dependable WiFi
  • Must have easy access to power
  • Must have comfortable seating for at least 15 attendees for 3+ hours
  • Should have easy access to food and drink (including catering)
  • Must be available weekends and/or evenings

This is not an easy bill to fill.  I encountered many potential venues that had one or more of the must-have items but lacking something critical (usually weekend/eveing access).  To increase our prospects, I asked community members to aid in the search.  Pointing out a possible location wasn’t enough– I needed these foot soldiers to compare sites against the requirement list, talk to managers, and even take pictures.

It may come as a surprise to readers that grocery stores turned out to be generally good locations.  Specifically, the Tom Thumb flagship stores, which meet every Must and Should.  The only drawbacks I’ve run into were man-made… such as the strange reluctance of one store manager (who was worried about us displacing customers, when I saw only 3 people occupying a 35-seat area) and human mistakes.  Mostly mine.

I had scheduled a meetup for May 25 at a Tom Thumb store in Arlington after one member, Dallas .NET’s Omar Villarreal, got clearance from the manager.  Unfortunately I misread Omar’s instructions and secured the wrong store.  When the group arrived, we discovered that there was no WiFi or Starbucks.

Oops.

We waited for stragglers to show before moving to another Tom Thumb a few miles north.  This cost us an hour and a half of valuable time.  Lesson learned: read the fine print.

The second store turned out to be acceptable.  WiFi was mostly reliable (I had a couple of brief drops) and the deli sandwiches were excellent (I recommend the pulled pork).  The 5 other attendees seemed fairly pleased.  However, the late start combined with another error on my part got in the way of getting any work done.

I had set aside the beginning of the meetup for introductions and announcements, which would be okay for social meetups but took way too much productive time from this one.  Socializing is certainly useful, but we’ll hold separate events for that.

I would like to think that the attendees at least benefitted one way or another, but I welcome constructive criticism to help shape future get-togethers.  I definitely need to arrive early to get things set up.

The good news is that this somewhat-rough experience was useful in certain contexts, especially since we had new members attend, and allowed me to get a good idea of what works and doesn’t work.  Going forward, I will put together a handout for updates and trim the initial verbal presentation down to about 5 to 10 minutes.  Less time of me chatting, more time Getting Stuff Done.

Ideally, we will see a good mix of skill levels and experience at these sessions.  I really want to pair mentors and experienced app publishers with beginners, for one.  Same with bringing in more data modelers and UI designers.  To motivate members in that regard, I am offering a recruting incentive: bring in any new member with any useful skills for app creation, and get a $10 gift card.  Bring in any new member with at least one published app, and that amount goes up to $20.  Stipulation: new members must agree to sign up at DVLUP and also provide me full contact information before I award the gift cards.  This promotion runs until I am broke or we have too many members.  ;)

Speaking of DVLUP, I’m also considering holding specific “DVLUP Days” events with the goal of just tackling DVLUP challenges at the event.  XP building opportunities, if you will.  I’m also working on partnering with various companies and instructors for educational meetups– stay tuned!

My intent is to “bounce around” the metroplex and hold these sessions in various parts of the area, with a preference for central locations.  If you know of any, let me know!  By all means, ask the managers about the items on my list, and pictures of the venue are very helpful.  And ask your employers about hosting!

We’ll probably hold another such event in North Dallas next, at an office near highway 35E and Beltline Road.  Registration will be at the Meetup.com website, and I will announce in the usual social channels.

Ultimately, we’ll get into a rhythm that will benefit everyone involved.  I can’t wait to see the results!

Oct 302012
 

Yesterday I received an email from a Dallas entrepreneur who wondered why he kept seeing my name pop up a lot.  Then today I got a call from a former Nokia colleague following up on a LinkedIn update, wondering what I’ve been up to lately.  So it’s no doubt time for Yet Another Boring Update.

Only it hasn’t been boring for me.  Far from it!  Here’s why, explained by what I am and will be doing, in order of priority:

  • Full time job and family.  Hard to say which really comes first, since I could only go without a full-time job if I had no family.  But I’m stuck with both, and regardless of pecking order they come before all else.  I love working for BNSF Railway and hope that continues as long as I need it to!
  • Nokia developer outreach.  As many already know, since 2005 I have supported Nokia’s business in some form or fashion, and it just got real again.  I am now officially working part-time for my former favorite employer, as a project coordinator with the cooler-sounding label of Nokia Developer Ambassador.  The goal is to get developers cranking on Windows Phone.  I’m currently working on getting my embassy in order.  That would be home office (corner of our bedroom and a tiny spot on a living room table), this website, twitter account, a local meetup site, and various coffee shops around town.
  • Qt.  I can’t give up on this platform, even though I sadly retreated late last year and set it aside.  I’ve been asked by Digia to help with Dallas-area meetups and I believe I can fit that in.  I just hope there’s enough interest!  I’m also eager to find out what’s brewing at Jolla; the new mobile phone manufacturer may offer renewed hope to mobile Qt developers.
  • Tarrant County maker community.  Since returning from the Devaamo Summit in Finland some months ago, full of fire and foolishness, I have been trying to pull together a local maker community.  There’s no shortage of talent and interest in my home county; just little in the way of Big Picture Organization.  That hurdle appears to have been crossed, thanks in large part to Sherry Huss of O’Reilly Media and the visionaries at http://DFWI.org.  A makerspace website has been constructed by the hardworking Robert Bradbury, and the community is taking shape!  There’s synergy with Qt and Windows Phone efforts, which will help minimize my time.
  • Hildon Foundation Board.  This is a new organization chartered to find a future for Nokia’s Maemo assets and community.

I’ve also been helping Scarlet Motors on community-building.  But you’ll notice no specific mention of 3D printing or Tribal Method in that list.

Where the former is concerned, I’m not stopping activity– just reducing it.  3D printing will be a large part of maker community activities, and I’ll still putter with my inventions as I find time.  But it won’t be as high a priority as it has been… unless something changes in the list above.

As for my ventures, aka Tribal Method, I’m putting that on a distant back-burner.  I still have big ideas, and strongly believe one or more of them could create many millionaires, but I continue to struggle in selling my business ideas and building the teams necessary to bring them to life.  Yes, for those in the know that includes Kintegrity, Conkin, unfolo, Resuflex, Cocoa Labs and others.  Maybe at some point I’ll be able to get something going on one or more of them, but it isn’t now.

I’m busy enough.  ;)

Mar 012012
 

Update: plans for Tribal Method have changed just a bit.  See the website for details.

Just recently I sat down to share with whoever is interested what I’m up to lately and where I hope to be going.  Instead, the article turned into a screed on introvert exploration.  Which is okay, because it was a topic I wanted to talk about anyway, and with it now out of the way I can try the other bit again.

I’ve rambled quite a bit about my past in other places, mostly at Tabula Crypticum, so no need to dig into that deeply.  But a synopsis is worthwhile still before revealing the new stuff.

At age fifteen I started in the plumbing business, a family obligation.  After ten years of that torture I stumbled into a product design career, my goal at the time, starting with 7 highly educational years at Texas Instruments.  When that ended I bounced around a bit in various technical ventures as US manufacturing outsourcing reduced opportunities for a maker like me.  And after losing a too-short dream opportunity at Nokia I ended up in IT application support.

And that’s really not where I want to be.

I have some ideas, guys.  Some small and easily rendered by myself into something real, and some so big and potentially game-changing in some way that I would need to wrap a sizeable company around them.  They’ve been popping up for decades, and each job change has just opened up more possibilities to explore.

I have so many ideas that I can’t manage them all.  So I’ve tried assembling teams, virtual and local, to get things going.  With very little, if any, success so far.

So most of these ideas are stagnating, which is really eating at me.  But one thought keeps me optimistic.  It’s that I don’t need to be their ultimate owner; I just want to be their launcher.

You see, I’m not as big on monetary gain as I am on accomplishment.  And I’m also a huge believer in the team approach… including team recognition over my own.  Because I was insecure enough as a kid; having outgrown that long ago, I have motivators other than the need for attention.  My biggest satisfaction comes from helping someone else succeed.  And if it’s with the germ of an idea I had, even better!  But I want the attention on the solution and the team that made it happen.

As my ideas accumulated and lingered, I realized I was seeing the same sort of thing I had seen in the Maemo and MeeGo communities: plenty of needs, plenty of people wanting to work on needs, and yet a big gap in execution.  Organization was required, but these were contributors who resisted organization.  After all, that leads to bureaucracies.  Which lead to dead projects.

But then, so does inaction.

I’ve been thinking for some time that a solution to this dilemma would be big.  And every now and then I toyed with creating one.  I know many of the issues: different opinions on best practices, resource fragmentation, etc.  I also know that the answers lie in solving functional disconnects, automation gaps, and similar.  If people can work the way they want, without being burdened by technical obstacles and personality clashes, it’s a lot easier to get them on board a project.  After all, technology is supposed to be an invisible enabler!

With those thoughts in mind, I believe I’m finally pulling a solution together.  Participating in local entrepreneurial, social media and application development groups has really helped.

So yesterday I took out the domain tribalmethod.com.  Because I have this idea that will help me solve the team assembly problem holding back other ideas, and very likely help you, too.  It will work for open source, closed source and gradients in between.  There will be opportunities for recognition, money and whatever else motivates you.  I just could use help developing it.

There’s nothing at the Tribal Method domain… yet.  I’m going to need to assemble a team for that.  A chicken-and-egg dilemma, but hopefully I’ve piqued the interest of the right people.

Hop on board.  Ask anything.  This is going to be fun.  ;)