Tag Archives: codemash

VicinityBuzz Update: Windows Phone 8 & More

VicinityBuzz on Win Phone 8

While attending Codemash a few weeks ago, I ended up in a Windows Phone development precompiler (Codemash’s name for a training session). It was my plan to hit mostly mobile and analytics sessions, but I was not originally planning on attending this session. With Windows Phone still struggling for market share, I wasn’t in a rush to work with it. However, other sessions were cancelled because weather had delayed some presenters, so I ended up in this session. Microsoft’s Jeff Blankenburg was teaching the session, and I have enjoyed some of his presentations and a Silverlight fire-starter event in the past. It’s one of my rules of conferences to attend sessions based more on good speakers, rather than based solely on topic.

With regards to marketshare, Jeff made the point during the session that with a less crowded app store, you do have a bit more discoverability. Even if that doesn’t hold up, the platform shares enough similarity with Windows 8 that a port to the Windows Store will be trivial. The Windows App Store isn’t exactly setting the world on fire either, but I’d like to see my app on all of these platforms, and as Windows 8 adoption rises with new machine sales, that marketplace should see constant upticks.

Having worked with Silverlight in the past, I found it pretty easy to get going on Win Phone 8 development. There was some definite rust on my XAML skills, but it came back to me fairly quickly. One thing to keep in mind is that you want to keep things relatively simple on a mobile platform. I have worked on some WPF projects in enterprise settings with MVVM frameworks, dependency injection frameworks, and more. While I followed an MVVM pattern, I just rolled my own with a simple base class.

My project was to do a version of an app I already have in the iOS App Store, VicinityBuzz. It does location based searches of twitter. You can search around you, or by entering an address. The radius is a configurable setting. I like using the app at conferences like Codemash to catch all the chatter that may not have a hashtag. One catch is that obviously only tweets that included location will be found. If folks have that feature turned off in their twitter app, then it won’t show up.

Since I had written the app before (in phonegap for iOS), I knew the feature set and domain cold. The challenge was just getting up to speed with the latest API’s for search and geolocation, and then implementing within a new platform. One of the biggest benefits of this project was getting up to date with the latest Twitter API. I still need to update the version for iOS, as it’s currently non-functional because of api changes over the last several years. I plan on doing that very soon now that I know the latest version.

Anyway, I won’t go into the development details here too much, but I finished a version 1 of VicinityBuzz, and it is now in the windows phone store here, and it’s free. So go check it out. If you like it, I’d love to have some more reviews.

Also, if you are inspired to do any Windows Phone development yourself, you may be interested in a device to do some real testing. I recently found there are some prepaid phones new on Amazon that are dirt cheap for that purpose. Check out the Nokia Lumia 520 and Nokia Lumia 521 on Amazon.

Watch this blog for upcoming posts about working with the Twitter API, and some of the things I learned working with Windows Phone 8. And more mobile in general. I have the bug again…

Networking Yourself As A Developer

In a tough economy, jobs can be hard to find. Especially the right jobs, ones that make you happy and help you grow in your career. Even if you are satisfied with your job, having a network of programmers, managers, and other IT professionals is a great thing. You have people to bounce ideas off of, and a safety net of jobs that you have a head start on should something go bad with your job or company.

Looking through the list I came up with, there is a heavy emphasis on social networks. Maybe that’s because I’m a working parent, and in-person events are hard to attend. You’ll see some on the list, but I’m not racking up frequent flyer miles going to events. But I think it also has to do with taking advantage of communities that span the globe.

Follows is what I would consider the basics of getting your name out there:

  1. Local User Groups – These are invaluable. Once a month or so, you get to learn about a new aspect of your favorite community while interacting with other members. And you can often present once you know the group, which is a great way to work on your presentation skills.
  2. A Blog – Sharing your ideas, and getting feedback is a great way to engage other developers who will take the time to read a thought out blog post. It will give you practice at clearly communicating your ideas, and processing feedback (and spam comments). Write about what interests you, and write in the style you like. For instance, Steve Yegge’s blog posts are my all-time favorites, and they are novellettes, but I write nothing like that.
  3. LinkedIn.com – It’s like facebook for your job. Sure, there are a lot of recruiters on there, and some other hassles, but it’s still a great way to keep in tough with old coworkers and keep up with what is happening in your region and field.
  4. Twitter.com – If you’re a developer and not on twitter, I’m not sure I understand why. Sure, there’s a lot of noise, but it’s like a new form of IRC. There is just so much instant sharing of good ideas, and promoting of content. For instance, I’ve gotten into quora lately (see below), and I regularly tweet out quora questions that I want more people to look at.
  5. StackOverflow.com – Yes, stackoverflow is about answering questions. But you also get to seeing the same faces answering the same types of questions, etc. Your quality and clarity of answers earns you a reputation. And what you end up building is a great resume. I regularly feel like someone could evaluate a programmer by looking through their stackoverflow profile alone. It would tell you what kinds of technologies they are comfortable in, how clearly they communicate, if they get easily drawn into arguments, and how much detail they can go into when necessary.
  6. Quora.com – Quora is new and trendy right now. It’s a Q & A site that wants it’s content to end up serving as a Wikipedia of answers. It has lofty goals, and it has drawn a fairly elite crowd so far. Similar to stackoverflow, I think there is social benefit and a resume like quality built upon your content.
  7. Facebook.com – Why facebook? It’s for soccer moms and college students, right? Most of the other communities tend to host a lot of tech people in general, and can be a bit homogenous. While facebook is the most broad representation of people I know… friends, family, old coworkers, you name it. So that’s the way I prefer to keep up with my family and friends. But it’s also a great way to stay connected about jobs, local events, and other relevant info. There are groups on there for developers, and you never know when one of your friends in another industry will have info on work relevant to you.
  8. Online User Groups – With StackOverflow getting big, I don’t find myself using user groups as often as I use to. But there are still questions that are so specific to a community, that I know I’m better off posting in a user group than on a general Q & A site like stackoverflow or quora.
  9. Regional Conferences – I’ve gone to Codemash the last two years. The presentations are great, and I’ve always come away with new ideas and interests. But I also come away with new contacts for linkedin and twitter, new reading suggestions, new acquaintances and friends, and job leads. I’m not looking for a job, but it’s great to know you have some backup plans. And when my company has been hiring, I have several times recommended people that I’ve met out in the community, and had them well received as strong candidates.
  10. Start Your Own Event – Many conferences and user groups will host open spaces, or lightening talks. They are highly interactive and you’ll have a hard time leaving without some new contacts.
  11. Vark.com – This is an interesting new service you have to try to believe. You sign up, and specifiy some topics you’ll answer questions on. Then you ask questions when you have them (preferably that are not google questions, but need a human touch), and vark will find someone to answer and get that answer back to you. I asked for a recommendation for a portrait lens for my Sony a390 DSLR camera, and got a well thought out answer with buying options. Like StackOverflow, this is a resource first and a community second, but your profile is a great way to show off your ability to communicate and explain detail.
  12. Give Camps – I haven’t been able to attend one yet, but am really hoping to this year. It’s for good causes, and you’ll meet other developers in your area from all kinds of backgrounds. What a great idea.

About the sites that involve getting and receiving help (StackOverflow, Quora, Vark), you’re probably only using the site well if you’re both asking and answering questions. Asking a well worded thoughtful question with adequate detail is as much of a skill as answering a question.

Finally, my advice would be to simplify cross-posting to these groups by integrating accounts when you can. For instance, I have linkedin and facebook set to watch my twitter account. If I post anything with the #fb hashtag, facebook picks it up and posts it as my status. Similarly, #li is picked up by linkedin. Beyond simplying the effort of getting content out, all that linking back and forth helps out your search engine traffic as well.

Happy networking…

Chad Fowler’s Keynote

Chad Fowler’s keynote at Codemash was excellent, and well timed to get me through the week. While I have really enjoyed my time there, and learned a lot the last 2 year’s attending, I run into a lot of attitudes that are hard for me to handle.

Simply put, I work in multiple dev communities (Ruby and .Net), and both can be dismissive of each other at times.

This manifests itself in a couple of ways:

  • not just making a case, but implying anyone who disagrees is stupid or ignorant
  • assuming that success with their tool (framework, methodology, ide) means that all other tools fail
  • judging a tool based on an experience where they never tried to learn the tool

Since the last one is vague, I’ll give an example. You learn how to use database VendorX’s product in college and in your first couple of year’s programming. You have read up, you know the product inside and out. You get a contract to do work on a project that will use VendorY’s database. You consider yourself a SQL expert and decide to learn on the job. However, DDL, Programmable Sql, and identities are handled differently, and you are frustrated by this, and declare VendorY sucks. But you never picked up a book or put in any of the effort for VendorY that you did for VendorX.

So what does this have to do with Chad?

He’s a part of a vocal Ruby community. And many in this community are the source of my frustrations above. (To be clear, I may agree with what they are saying, I just am turned off by how they say things). So when Chad started talking about his experience in corporate America and poking fun of Six Sigma, I thought “here we go”. (For the record, I have no experience with, or understanding beyond the basics of Six Sigma practice, and no reason to defend it).

But Chad showed a deep desire to learn about and understand what he was working with, whether he liked it or not. He revealed that he was a trained Six Sigma “black belt”. He explained his frustrations, but also talked about the pieces of it that he found effective, and it sounds like he carried over pieces that were useful into his future places of employment.

Why does this strengthen his my view of his credibility? First, he had the humility to realize his first impressions may have been wrong, and the practices of 6S deserved more investigation. Second, he made an attempt to understand the context, history, and motivations involved, so his end argument was full of salient points, not just “gut-feelings”.

That quality, like offering a solution when you complain about a problem shows a deeper level of maturity. I was glad my first impressions about Chad were wrong, and I chose to stick around for the keynote, it was worthwhile.

Pre-Codemash 2011 Thoughts

I’m looking forward to Codemash this year. Thanks again to my work for sending me. Founders like Jeff Blankenburg do a great job putting this conference together.

Last year, I concentrated on TDD/BDD, Silverlight, ORM, Ruby sessions with a few others thrown in for fun. This year, I’m still going through the schedule. I’d like to sit in on some mobile presentations, but I’m just not sure how much time in 2011 I’ll really have to spend with it. Primary goals this year are: I want to try to network more in the evenings, focus on good content, and try to capture as much as I can so I remember to go back and investigate good topics after the conference. One of the things I learned last year that should help: speakers make the presentation, not the topic. I’ve sat in on some topics I wasn’t interested in and found the content to be great, and vice versa. For example, I wasn’t that interested in prism, but Brian Genisio gave a great talk on it.

It’s hard being away from my family for 3 days, but I really enjoyed this conference last year, and it’s good to get a perspective on what other developers are up to. And on the positive side this year, I’m going there without a cold. Now if I can manage to stay healthy, after all last year there was an epidemic at the conference.

Finally, I look forward to struggling for bandwidth for 3 days. When geeks get together for a conference, there’s not much to go around…