Jun 032014
 

My apologies: this article was accidentally scheduled for publication before it was completed.  It is now updated.

Okay, enough griping about Cowtown’s obstacles in attaining some degree of technological leadership– what are some resources currently available to improve the situation?  Today I’ll go over some that are key, focusing on communities rather than places.  Not all listed are exclusively oriented around technology, but it is at least included in their scope.

I’ve mentioned these organizations in previous articles, but it’s worth gathering them together and highlighting. Continue reading »

May 272014
 

Every serious fisherman has a One That Got Away tale, usually shared with wistful regret and a declaration to get back out there and overcome the loss.  Fishermen are a stubborn lot, rarely letting anything get in between them and the prize.  They will always make the effort.

Fort Worth is surrounded by many nice lakes and as a consequence we have more than our share of committed fish stalkers.  But I’m curious: why wouldn’t that sort of dedication translate to opportunities in technology?

That’s not just a rhetorical question.  As I wrote last time ["Cowboys and Culture"], we can be a laid-back bunch in these parts, exhibiting a skepticism over urgency that would make Show-Me-Staters proud.  And as I promised in that previous article, I will now share the perfect example of one that got away… and maybe shouldn’t have. Continue reading »

May 232014
 

Yesterday I wrote about tech events in Fort Worth, Texas ["Cowtown and Code"] so it’s only fitting I expound on that theme with another alliterative article.  Today I’ll dare to get politically incorrect and lay bare one aspect of Cowtown culture that is simultaneously brag-worthy and yet fiendishly aggravating as well:

Folks are laid back here.

Stereotypical cowboy talk includes words like “mosey“, a colloquial verb describing walking much like glacial describes progress.  Like their trail-dusting forebears, Fort Worthians are usually in no hurry.  Whatever it is, it’ll wait.

This is at once endearing and maddening.  Sometimes it can’t wait, and that’s especially true with technology. Continue reading »

May 222014
 

June is looming and I’m excited: the second-ever Cowtown Code Camp is being held on the 14th and I hope to make it.

Last year it was thrilling enough that we even had this sort of event in Fort Worth; everyone in tech in DFW knows Addison, Irving, Frisco, Plano, Richardson and North Dallas are where you go for software and related events.  It’s a circle of cities that has held tightly to this honor for years, and facilitated a self-fulfilling situation.  Developers go because that’s where the events are, and the events are held there because developers go.  Breaking into that cycle, even for a single occasion, was special in and of itself. Continue reading »

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. Continue reading »

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. Continue reading »

Oct 222013
 

appsweepstakes-216x100I’ve urged the Windows Developers in my outreach areas to enter their apps into Microsoft’s Tech Affiliate Sweepstakes on numerous occasions… but I haven’t really gone into just what that is.

The contest of course rewards a few randomly-selected developers and their community leaders each month for app submissions.  There’s a lot more to Tech Affiliate, however, than monthly cash prizes. Continue reading »

Oct 032013
 

I recently wrote about a long shot opportunity I thought I had to attain a “dream job”.  In the aftermath of failure, a friend mentioned that we don’t always land our dream jobs.  I had to reply that I did have one, once, in a quality assurance role in a former Nokia factory from 2005 to 2007.

Of course defining a dream job is very personal, and for me there were some distinct, key elements that inspired me to literally race to work most mornings and hate leaving some times:

  • Management trust.  My boss made it clear she trusted everyone on her team to have the necessary skills and do the right thing on every occasion.  She never hovered over us, never micromanaged.  And when I doubted myself on a tough, critical project, her faith in me got me past a brief approaching-deadline panic and on to a satisfying solution.
  • Clear goals and communications.  I was never caught off guard with ad hoc expectations.  I always knew what I was supporting.  In fact a large part of my role was to improve the team’s data mining and reporting solutions so that we ALL knew.
  • Ideal work environment.  On the first day my boss was embarrassed, she said, that I would have to sit near the edge of a mezzanine overlooking the factory floor.  I thought she was kidding– for a Maker, that was workplace heaven!  Not only that, but cube walls were almost non-existent– so low that I could actually see my colleagues at any moment.  That may bother others, but I loved it.  Out of the maze and right over the frying pan!  Not to mention that I got to spend a lot of time in a test lab.
  • Travel opportunities.  When I was told I would be going to Finland sooner or later, I was terrified.  I had never left the states and did not know how I would handle a foreign country.  A trip to Mexico was not really a big deal; it was just southern Texas with different laws.  But not only did overseas travel turn out to be tolerable, I actually enjoyed it.  I’ve been to Finland 13 times now and eagerly look forward to getting back as soon as I can.
  • Beneficial training.  Oh, the training I received!  Useful.  Interesting.  Not the usual rote lecture stuff but engaging sessions where I came away a much better employee and person.  Nokia had training down to a fine science.
  • Opportunities.  For a while, the sky was the limit in Nokia.  I have a feeling it will be again before too long.
  • Enjoyable culture.  I’ve worked for many companies but only found myself truly at home in two: Texas Instruments and Nokia.  A large part of that was culture.  The previous bullet points are reflections of rich, rewarding corporate culture.  Where employees feel empowered and even encouraged to contribute, and not just treated as cogs in a cube farm.  True, no company is perfect and even TI and Nokia had some cultural failings, but they were still far above many of their peers.

Of course those attributes work for me but may not for everyone.  They thing to take away though is that a dream job is one that easily fits your aptitude and interests.  One you might even do for free, for fun.  I think we can all agree on that sort of definition.

But I’m eager to hear from others: what defines your dream job?  Please add to comments.

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!

 

Aug 232013
 

I’m behind on publishing some content but an opportunity has come up that trumps just about everything else.  Except beer and pizza.  First the background.

Many of you know that for several years now I’ve been supporting creative communities, both on and offline.  If I really want to date myself then this activity goes back further than I’ll usually admit, to a stint as a writing forum moderator in the heyday of America Online.  Don’t judge: it meant free dial-up.  ;)

As you can see on LinkedIn, my more recent history has gone from Maemo to MeeGo to Windows Phone plus local Makers.  An interesting mix of communities that has helped me understand myriad arguments for and against various platforms and preferences, as well as learn to socialize with creative types from all walks of life.  This understanding has pushed my thinking above and away from the sort of religious dogma that can cripple a project, and in turn helped me (I think) be a really good all-around community leader.  And even as I’ve helped Nokia’s efforts to pull in Windows Phone developers, I’ve kept a watchful eye on Jolla and kept fairly current with Qt developments.  I even assisted Tuukka Ahoniemi with Qt outreach in Dallas (although other activities got in the way, something I would fix if I got this role).

Which leads me back to the opportunity.

Against all odds, I will be interviewing with Digia soon for an Online Community Manager position.  Exciting!  I think I’m the ideal candidate, and so do a few others who have already spoken on my behalf.  But landing this position will take some serious effort: they really want someone situated in Norway, Finland or Berlin.  I have to prove that I can do even better than someone in close proximity.

Now, I’ve done the remote working thing both voluntarily for the aforementioned communities and professionally for Nokia.  I know I can perform this role with the same success.   Heck, I’ve always said I can work from Antarctica as long as I had Internet.  I just need to convince Digia.

To that end, I’m looking to the communities I serve for advice.  What should I emphasize?  In what areas do I still require polish?  Feel free to add comments here.  Be critical if you feel led.  Or contact me privately, too.

I had a similar opportunity with Scarlet Motors at one point, and touched on that in an article about keeping a childlike aspect in communities, but unfortunately they lacked the means at the time to make it a paid position.  The Digia role will be full time, and involves work I love and have been preparing for.  I relish the opportunity to take lessons learned from other communities and see where it will support Qt’s desire for broader adoption.

I really, really want this job.  Your feedback will help, and perhaps so will lobbying Digia.  Make sure to hit Qt Project and Qt by Digia on twitter, as well as their Facebook page.  After all, a good online community manager should mobilize Internet citizens, right?  ;)

Thanks.