Sonos & CBCMusic.ca

February 20, 2012  /   By Craig  /   4 Comments

So CBC has launched this new music website. 40 channels of commercial free streaming radio. Fantastic! Except, they are not recognized by Sonos radio. The solution? Add the feeds yourself. If you are somewhat technical you should be able to …

Read More →

Android – Could not open Selected VM debug port (8700)

August 18, 2010  /   By Craig  /   No Comments

 After having checked out the BB (which I’d like to revisit with OS6) as well as some iPhone development (ergLog) I’m turning my attention to Android. I’ll document some of the troubles and hopefully solutions I’ve found along the way.

 

 Problem #1

After successfully installing Eclipse and AVD plugin I received the following error when restarting Eclipse:

“Could not open Selected VM debug port (8700). Make sure you do not have another instance of DDMS or of the eclipse plugin running. If it’s being used by something else, choose a new port number in the preferences”

Every response to this issue was something along the lines of “well, see what’s using that port and kill it/change the port”. So let’s check that just to make sure the port isn’t in use. (NOTE: I’m using Windows)

 From the cmd console:

>telnet localhost 8700 

Can’t connect? Me either, so port 8700 isn’t in use. Let’s just be sure:

>netstat -an

Can’t see port 8700 in use? Me either. So it seems as though the error description is a bit misleading. Next have a peek at your hosts file (C:WindowsSystem32driverserchosts). Did you do the same thing as me? Several months ago I pointed localhost to another one of my machines while testing something out… and completely forgot about it! 

I looks like AVD looks to localhost not 127.0.0.1 so just make sure that you remove any old mapping in your hosts file or go ahead and explicitly add it if makes you feel better. 

Read More →

BlackBerry and .NET WebService Tutorial (It Works!) – Part 3

January 27, 2010  /   By Craig  /   No Comments

Sorry for not keeping this up to date, but I haven’t had much time to revisit this since my original post. Fortunately, Michael Soltys was able to figure it out and he was kind enough to share. So without further delay here is what Michael sent me: 

 

 .NET web service

{codecitation class=”brush: c#;” width=”500px”}

 [WebService(Namespace = "urn:tempuri")]

 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

 public class HelloWorldService : System.Web.Services.WebService

 {

    [SoapRpcMethod(), WebMethod]

    public Complex HelloServer2(string user, string pwd) 

    {

       Complex myObj = new Complex();

       myObj.name = string.Format(“user:{0}, pwd:{1}”, user, pwd);

       myObj.value = 42;

       return myObj; 

    }

 

    public class Complex 

    {

      public string name; 

      public int value; 

    } 

 } 

{/codecitation}

 

In HelloWorld.java: 

{codecitation class=”brush:java;” width=”500px”}

String serviceUrl = “http://localhost/HPServices/HelloWorldService.asmx”;        

String serviceNamespace =”urn:tempuri”; //saw a post saying “http://tempuri.org/” might cause a problem.  Who knows?!

String soapAction = “urn:tempuri/HelloServer2″;

       

SoapObject rpc = new SoapObject(serviceNamespace, “HelloServer2″);

rpc.addProperty(“user”, “testuser”);

rpc.addProperty(“pwd”, “123password”);        

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.encodingStyle = SoapSerializationEnvelope.ENC;

envelope.bodyOut = rpc;

//envelope.dotNet = true;

     

// Add the mapping so that the return value can be converted back to our Complex object.  

envelope.addMapping(“urn:tempuri/encodedTypes”, “Complex”, new Complex().getClass()); 

 

{/codecitation} 

 
Did you see that?!?!?!
{codecitation class=”brush: java;” width=”500px”}

        //envelope.dotNet = true;

{/codecitation}
Nice.
 
Thanks Michael.

Read More →

Stackoverflow DevDays – Toronto

October 25, 2009  /   By Craig  /   No Comments

I had great expectations for this day. I didn’t attend expecting that I would learn how to program in within a 50 minute presentation. I can do that on my own time from the comfort of my home. I came expecting to be inspired. I wanted to see things that I don’t normally see in my day-to-day work. I wanted to leave all fired up and ready to make a difference in the world (ok, at least in MY world :) ). Did it deliver? Kind of.

Joel’s keynote hit the mark. It’s something that all (most) developers should struggle with. How do we make something so incredibly difficult and complex appear effortless and intuitive? Elegant user interface design is something that is lacking far too many applications.

From there things went downhill. Not that the presentations/presenters were bad or didn’t know their stuff. I just wasn’t inspired. For example, I felt that the JQuery talk could have demonstrated how jQuery can create the worlds most intuitive UI (as an aside, Joel’s demo where he added sub tasks completely via the keyboard should be how every interface works. He mentioned that they tried to make it as simple as using notepad).

 [Update: Ralph Whitbeck's jQuery talk can be found here]

Greg Wilson saved the day (slides here). His talk focused on bringing the science back to computer science. Very interesting stuff. He opened my eyes, challenged and inspired me. Thank you Greg.

[Update: Greg Wilson's talk can be found here] 

Reg Braithwaite also gave a great talk. I heard grumblings that there was little in the way of ruby. Which (in my opinion) was his point. Who cares about the language? Languages will come and languages will go. As developers we need to learn how to solve problems, programming languages are just a means to achieve that. If all you know how to use is a hammer then every problem will look like a nail. I wish I would have known a bit more about Reg before the talk. I’ve followed some of his projects (from a distance) in the past without realizing that he was involved. He is brilliant.

In the end it was a great day. I’ll be back next year and I’ll be bringing the rest of my team with

Read More →

Your invitation to preview Google Wave

October 14, 2009  /   By Craig  /   No Comments

What a pleasant surprise this morning; I awoke to find an email with the subject of “Your invitation to preview Google Wave” waiting for me in my inbox. I haven’t had much too much time to play with it yet, but from what I have seen it’s a little flaky, but that’s to be expected and can be forgiven (for now).

My wave account is cagreen@googlewave.com 

 

 

 

 

Read More →

BlackBerry and .NET WebService Tutorial – Part 2

July 1, 2009  /   By Craig  /   No Comments

Depending on what you are trying to do it’s quite easy to get a simple web service up andd running. Passing simple types back and forth is fairly trivial, complex types is not much more difficult. Where I’ve had trouble is in passing simple types as input parameters and returning complex types. We’ll explore this later on. First lets look at the easiest case, passing simple types as parameters.

Read More →

BlackBerry and .NET Web Service Tutorial – Part 1

June 22, 2009  /   By Craig  /   No Comments


I have recently been trying to write a BlackBerry application to consume a .NET web service. It wasn’t as trivial as I had first thougt. It wasn’t the code that was challenging,  for me it was the environment setup. By cobbling together various bits and pieces from around the net(see references below) I was able to get my application running. I’ve documented my experience here. This tutorial will take you from a clean machine to a working BlackBerry app with .NET web service.

Read More →

Agile Presentation

June 3, 2009  /   By Craig  /   No Comments

I recently gave a high level presentation on Agile and Scrum. Below is a sanitized version for reuse. If you do resuse any of it all I ask is that you drop me a line to let me know that you found it useful.

Read More →

Application Personality

May 25, 2009  /   By Craig  /   No Comments

What is your application’s personality?

We are currently updating our error page … this got me thinking about our what the error page says about our web application.  Is it serious, cool and business-like, does it “work hard, play harder”, or is it light harted. Further more, is it consistent throughout the application or does it suffer from Multiple Personality Disorder?

As a user, how do you feel when a Windows error dialog comes up accompanied with the ‘Critical Stop’  sound? Do you feel the same way when you see Twitter’s Fail Whale? What about Google Chrome‘s “Aw, Snap” error?

 Google Chrome's Error Page

Chances are you are more forgiving of the latter two than you are of Windows. Why? Same reason you are more likely to forgive people. You like them better, and that starts with personality.

In Marcus Buckingham and Curt Coffman’s book, “First, Break All the Rules: What the World’s Greatest Managers Do Differently“, they explore what makes a great nurse. They found that it wasn’t the technique used when giving an injection, it was what they said before the injection. It was their personality. Nurses that showed empathy and told their patients that the injection would hurt a little were see as superior nurses.

A software application should do the same. Even a line of business (LOB) application should say “I know you are forced to use me from 9 to 5 to do your job and you would much rather be on Facebook, but let me help to make your work a little less painful and maybe even enjoyable”. For non-LOB applications a strong personality and sense of identity is a must.

Read More →

When Scrum Smells Funny

May 17, 2009  /   By Craig  /   No Comments

The great thing about Scrum is that when you do it right it lets you know when you are doing it wrong. At ZTR we have been practising Scrum for a while now, but lately it hasn’t felt right. Maybe it’s because we’ve fallen back to the Waterfall mentality of “code now and let QA find the bug later” or perhaps it’s becuase the team if feeling less empowered as some decision making is removed. Whatever the reason, something doesn’t smell right, and as long as you are truthful with yourself, your team and your process Scrum has wonderful mechanisms to let you know when you’ve become a ScrumBut (“Oh yeah, we do Scrum, BUT… <insert shoot yourself in the foot shortcut here>). 

Read More →
craigagreen.com  /  stuff