Code of conduct when conducting code

"... why on earth are we doing so many projects that deliver such marginal value?" - Tom DeMarco

How to fix the Google Feedburner and Yahoo Pipes problem yourself

clock November 18, 2009 18:57 by author christerdk

If you have tried to use the Google Feedburner service and the Yahoo Pipes together you have probably experienced the “Error 999”, which means that Google Feedburner does not consume the feed provided by Yahoo Pipes. In other words, your RSS feed stalls although there’s new content from the pipe to expose.

I ran into this error myself and hoped for a resolution between the two parts. However, it seems that people have been experiencing this since the beginning of 2009, and I’ve just been spared until the beginning of November. And apparently the progress has stalled totally between the two camps, so nothing is really happening to solve this issue for their users. So I’ve tried some things, and the solution/fix/hack is actually quite simple. It does, however, have prerequisites: You’ll need to have a little programming done and a place to put the program.

The normal Google Feedburner/Yahoo Pipes setup looks like this:

Request flow: Google Feedburner –> [Get RSS] –> Yahoo Pipes
Response flow: Yahoo Pipes -> [Returns Pipes mashup RSS content] -> Google Feedburner

To fix the problem, you need something like this:

Request flow: Google Feedburner –> [Get RSS] –> Intermediary service –> [Get RSS] –> Yahoo Pipes 
Response flow: Yahoo Pipes -> [Returns Pipes mashup RSS content] -> Intermediary service -> [Returns Pipes mashup RSS content] -> Google Feedburner 

The setup above means the Google Feedburner will be able to consume the Yahoo Pipes feed indirectly instead of directly. My personal intermediary service is placed here on christer.dk. Now, the only thing that the service has to do is to consume the Yahoo Pipes feed and forward its content. Here is what you do (in inline asp.net c# 3.5 code).

   1:  <%@ Page Language="C#" %>
   2:  <script runat="server">
   3:      protected void Page_Load(object sender, EventArgs e)
   4:      {
   5:   
   6:          System.Xml.XmlReader reader = System.Xml.XmlReader.Create("[YAHOO PIPE RSS URL HERE]");
   7:          System.ServiceModel.Syndication.Rss20FeedFormatter formatter = new System.ServiceModel.Syndication.Rss20FeedFormatter();
   8:          formatter.ReadFrom(reader);
   9:          reader.Close();
  10:   
  11:          using (System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(Response.OutputStream))
  12:          {
  13:              System.ServiceModel.Syndication.Rss20FeedFormatter outputformatter = new System.ServiceModel.Syndication.Rss20FeedFormatter(formatter.Feed);
  14:              outputformatter.WriteTo(writer);
  15:              writer.Flush();
  16:          }
  17:          Response.End();
  18:      }
  19:  </script>

Place this code in an asp.net aspx-page or create a similar logic on a different platform and expose it on a server. Then reconfigure your Feedburner feed to retrieve the RSS content from your new service.

That’s it. I hope it helps you like it helped me. :-)

[Update]: Seems that my layout isn’t very code friendly! ;-) Here's the asp.net code to download: RSS.zip (453,00 bytes)

[Update two] I've clarified the request / response flow description above.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


A talk on iPhone development

clock August 29, 2009 16:06 by author christerdk

Had the pleasure of seeing Adrian Kosmaczewski perform an excellent and enthusiastic presentation about iPhone development Thursday evening. Although I’m a senior developer on the Microsoft .Net platform, I’m a complete iPhone novice. It was therefore nice to attend this sort of “brain dump”-session, where we were given a brief walkthrough of the history of Objective-C, introduction to the development environment and then got into some example code. It sure made me consider writing my first “Hello iPhone”-application, unfortunately, I need to find someone to sponsor me a Mac. Anyone? ;-)

The event was a free JAOO event organized by Trifork, held at Telenor in Copenhagen. Below are a few pictures from the demonstration:

IMG_6679 IMG_6665

IMG_6666

IMG_6667 IMG_6668

IMG_6669

IMG_6670

IMG_6671

IMG_6672

IMG_6674

IMG_6675

IMG_6676

IMG_6677

IMG_6678

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Reading Devil May Care... with a sound track!

clock October 27, 2008 23:12 by author christerdk

I experienced something rather cool this sunday. I finished reading Devil May Care, the new James Bond book, and did it while listening to a "sound track"!

Soma FM has a channel called Secret Agent (direct wma or see other types of media). It oozes "stylish, mysterious, dangerous" (and martinis) and it's simply brilliant as background music for spy books such as Devil May Care.

I was lucky to have the channel build up suspense in the music as I was coming towards the end of the book. Music from movies such as Mission Impossible, television series such as The Man From Uncle and great artists such as Henry Mancini was floating out of my speakers all rainy sunday afternoon. Quite the ultimate 007 experience ;-)

I urge you to have this channel in the background the next time you read a thriller - or at any other time in your life, because this is truly a channel that could potentially become the soundtrack of your life...

Oh, and just wait until the first sound bites comes along:
Some evil guy: "Do you know anything about alligators, Mr. Bond?"
Bond: "No, but I always try to keep them at arms length..."

Great!

 

And hey, remember to support the channel. Secret Agent and other channels are good and in high quality. They deserve the support!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Facebook virus - or incompatible settings?

clock August 16, 2008 07:54 by author christerdk

I was at my sisters place this thursday. Her computer was acting all wierd. She had also started to have problems on Facebook a few days ago where the dynamic interface functions of Facebook suddenly began to throw errors... (javascript errors)

The word on the street is that a new kind of Facebook virus is out there to get us. I don't really know any details on that. My sister, however, had been searching the net, and from the huge result set of sites about "Facebook virus", she was getting a bit nervous.

We tried three different virus / trojan cleaners, but none of these reported about any installed virus og trojan. Then it struck me that it could be something with her settings. The following change of settings is a classic within the web developer community, because it enables a developer to see the last change he/she made properly.

In Internet Explorer, go to

Tools -> Internet Options and click Settings under "Temporary Internet Files". Here you check "Every visit to the page". Click OK twice.

The default setting is "Automatically". I'm not sure about what algorithm that is behind "Automatically", but basically it all comes down to how and when to use cached items on your laptop instead of downloading them from the web page in question.

After doing this change my sisters problems with Facebook were gone.

PS. The computer acting wierd and her problems with Facebook had nothing to do with each other. But that's a different posting...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


All about service

clock July 27, 2008 17:22 by author christerdk

Although my 5 week vacation in Spain was primarily about studying Spanish, I did have some extra time to read some books on other subjects. Some were fictional, such as the intense Manhattan is my beat by Jeffery Deaver, the funny Gold by Dan Rhodes and the more philosophical Baade-Og Mandag. Others were non-fictional, such as Great Service: A Framework for Action by Leonard L. Berry and Moments of Truth by Jan Carlzon.

It is the last two books in this line up that is the driving force behind this posting, because they contain so many interesting messages that are very close to my heart. They are all about customer service. They are about how to create it, how to think it and how to ... well, live it - as a company and as an employee in such a company.

Customer service found a place in my heart when I got a job at a Shell gas station in 1995. I went through internal training on customer service (I still have the material that was handed to us) and was put in a position where the gas station was my responsibility during my evening shifts. Many of my young colleagues considered the owner of the gas station quite strict (and yes, he was a little paranoid, but wouldn't anyone be that, if you have had experience with previous employees stealing from your shop?). However, that aside, he also had many positive opinions on how we looked (with regards to the uniforms) and how we conducted service to our customers. This experience did, in retrospect, open my eyes on customer service, and I must say  I found it quite fun to help an old lady replace a front light on her car, even though such service wasn't in my job description.

Lately, focus on customer service has taken a nudge up for me. I think it is an reaction to several things, but mostly, I think, because I don't quite agree to the way things typically are carried out in the software development and consulting industry. Management of IT businesses tends to have a very strong focus on short term profit, to the point where it sometimes hinders the employees in doing things the right way. What the "right way" is, however, is also a subject for discussion.

Producing the "right way"
In the software industry we have processes, roles and frameworks for basically every dimension of software development, maintenance and management. We have project management, software development processes and patterns, test processes, delivery processes, processes for handling change and more. We have roles such as project manager, architect, developer, tester and sales people. We have requirement documents, solution description documents and systems to handle bug reports. We don't even have to rely on guessing, analyzing or ask the customers what they want - we create a Service Level Agreement that contains the details on when, where and what kind of service, the customer can expect from the supplier during a defined period. With all these elements why do I then believe that something is missing in the picture?

The thing is that all of the above exists to ensure that the software is developed in time and with right quality, and gives everyone involved in the production a structured way to produce it. But sometimes, to me, it feels like the processes chosen and roles used aren't quite made to handle the different needs that customers may have. Some customers may have to react to changing markets or be involved in political questions, which forces them behave in ways that might not be compatible with existing processes in the software industry. And when this happens, interesting things tend to surface. Here are a couple of examples:

  • When a need rises from the customer to have employees from the supplier to stand by during night time (for what ever reason), the reaction can be "We cannot (or need not) do that, because it's not in the Service Level Agreement".
  • When a customer needs to introduce some changes and it happens during the "wrong" period of the development process, developers, project managers and the like will often tend to work against such a change, because it's "not the way to do it" (what "the way" means depends where in the process the request for change occurs).

I too believe that there's a right way to create software for a customer. But it's not by rigidly clinging to processes that are not compatible with the customers needs, and getting all annoyed and irritated when the customer is not behaving in a way that supports the process. To me, this is where customer service and mindedness could come in and save the day in more than one way...

The focus on short term profits
During the years I have seen plenty of good ideas go nowhere, often because of managements intense focus on getting the most out of all employees, that is, making them have as many billable hours as possible. Some of the ideas could have resulted in for example rise in speed of development or quality of the products to benefit the customer and gain competitive advantage for the company in general. However, because these ideas demanded research and / or investment (that is, no billable hours), they were put on hold or prioritized so low, nothing ever happened. I have seen the same thing happen to knowledge sharing meetings and other non billable activities.

Of course the numbers need to stay black. But, to put it very simple, you have to give a little to get a little. That is a universal fact. But I think there's more to it that just blaming management of having focus on short-term gains. I cannot recollect ever having heard of any IT company, where middle management and its employees were measured on anything else than short-term numbers. And as long as this is the case, initiatives for better performance, quality, customer satisfaction and loyalty will suffer in one degree or another.

Change
Changing the view from production orientation (that is, the chosen processes, roles and frameworks) and short-term profits to customer orientation (what do the customers want and how do excel in giving it do them?), and implementing this kind of thinking company wide (which is crucial, no matter if everyone has direct customer contact or not), can have a lot of benefits:

  • Instead of letting processes, roles and frameworks dominate, the company should think customer needs first and tailor the processes to it. Because focus is now on customer satisfaction instead of violation of rules and procedures, there's really no "wrong" customer behavior contradicting process. Sure, there will be conflicting interests, but how to solve them should be apparent: whatever it takes to keep the customer happy!
  • The customer first approach also enables front line servers (project managers, test managers, sales force) to serve the customer even more. If the customer needs change or something else that might have been in contradiction with earlier applied processes, then everyone must now accept the need as customer satisfaction is now the main focus.
  • Putting customer service first will enable the employees to have a genuine interest in the customers and their needs, and make it possible for them to proactively handle any concerns the customers may have. Strong customer loyalty will rise from this.
  • Focus in top management must change to include customer satisfaction and loyalty as success factors. This will open up for middle management to invest in initiatives with long-term goals such as long-term profit, customer loyalty and competitive advantage.

To summarize, I think there is a degree of unhealthy focus on production orientation and margins in the IT consulting industry and not enough on customer service orientation. While processes, roles and frameworks are crucial for making good and reliable software, they should not dominate over customer service and satisfaction - the customers are vital for the existence for an IT company.

What do you think? Does customer service orientation have a place in IT companies? Or does it simply conflict so much with the "right way" to create software, that customer service orientation in an IT company close to impossible?

Christer

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


A new breed of heroes?

clock July 11, 2008 14:09 by author christerdk

Yeah... my brother has one. My friend has two. We even got two here at the job... yeah, we all give it like real guitar heroes.

While being guitar heroes playing under influence, hammering at the guitars like there's no software to be produced tomorrow, it struck me that "they" really should expand this idea to a variety of other instruments... yes... here are my suggestions:

  • Bagpipe Hero... William Wallace would be proud
  • Violin Hero ... step back Vanessa-Mae, step back!
  • Computer Hero - singing like Lene from Aqua (think about that for a minute...)

Any other suggestions?

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Overheard at school in Spain

clock June 26, 2008 11:00 by author christerdk

- Dude, where did you get those shorts... damn, they're tight..
- From my... mm... suitcase... (responding with wierd look on face)

:)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


GFI Events Manager

clock February 10, 2008 17:51 by author christerdk

When hosting a server application on several tiers, with several servers representing each tier, being up to date on the content of event logs can be quite a task. And when errors occur, you're forced to look through all error logs to track the path of the errors, which can be a very time consuming. The task of trying to figure out what happened and why can is also a frustrating task, because you have to put a picture together while gathering infomation by browsing through servers.

That is, unless you're using something like GFI Events Manager. You place it on your servers, and it transfers all their log information to a central database, where you can browse and query the data. It makes it easy for developers to see information, that would normally only be available for the hosting department.

Check it out here: http://www.gfi.com/eventsmanager/

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Using Equals on the string object

clock January 31, 2008 09:05 by author christerdk

Got a nice little tip today from my friend and colleague Björn. Check out the difference in these approaches for testing strings, using the Equals method:

string someString = null;
if (someString == "gnu") //This is error prone if someString is null
{
}

if (someString.Equals("gnu")) //This is error prone if someString is null
{
}

if ("gnu".Equals(someString))//This returns false, if someString is null
{
}

Nice, huh? :-)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Windows SteadyState

clock January 24, 2008 17:19 by author christerdk

I came across a really cool tool today. Not exactly new, but still pretty cool. It's called Windows SteadyState and it makes it easy to manage computers used for shared access, such as computers in libraries or schools.

Personally I see some possibilities in making a very specific paranoia disappear: You know the feeling - some visiting family member or your media naranja wants to use your laptop. But your laptop is not just any laptop. Your laptop contains code lines counted in hundreds of thousands, it contains all your mail for several yeas back and of course many of your latest party pictures. The laptop in question is indeed your precious one. ;)

Of course, all that data (or at least the important stuff) is backed up on a regular basis, and of course you have created a special account for them to use, which, among other things, disables access to the business section of the disk drive. But still, there are still things that you cannot control in ACLs and policies (yet): why is she hovering her cup of hot tea directly over the keyboard, why is he balancing the laptop on one knee while playing with the remote control to the TV?

Windows SteadyState can help you in a simple way, and make your efforts last. It makes it easy to take some 2. rank computer and make it the "shared" computer in the household, sparing your laptop from manhandling by barbarians with no respect for technology! :)

Check Windows SteadyState out here... 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


About Christer

Creative freelance software consultant with more than 10 years of experience. 

Contact Christer here

Check out his mobile broadband user blog as well! Lots of goodies, fixes and solutions!

 

Sign in