JSONP-DOM, JSONP without callback querystring.

While working on centrally hosted Backbase widgets we needed a JSONP solution that is cachable by proxies (Squid, akamai) as well for browsers. Where regular JSONP requires the response to wrap the response using a callback.

As we have full control on the response, the solution we came up with (and dubbed “JSONP-DOM”) is to use attributes on the script tag that includes the file:

<script
  type="text/javascript"
  src="myService?response=application/json"
  callback="MyLoader.requests[{someId}].success"
  callbackError="MyLoader.requests[{someId}].error"
></script>

Read the rest of JSONP-DOM, JSONP without callback querystring.

Working around __flash_removeCallback

Abusing your own blog for delicious like bookmarking should be forbidden!

Either way, Dave Smith provides (see comment section) a nice workaround for __flash_removeCallback “Object required” alerts when embedding flash in internet explorer and reloading the page.

<script type="text/javascript">
(function(){var s=function(){__flash__removeCallback=function(i,n){if(i)i[n]=null;};window.setTimeout(s,10);};s();})();
</script>

I decreased the setTimeout interval to somewhat higher then 10ms, because for me it’s just a charting dashboard, which doesn’t interact too much between flash and html. Overwriting the __flash_removeCallback only every 200ms proved to be sufficient.

Tags: , , ,
Posted in Development flash javascript note-to-self Work by Arnoud ten Hoedt. No Comments

Shirt arrived from itailoronline

Following a post on FOK! on experiences with itailoronline.com, I considered the low pricing (< €20) and gave this site a go.

Configuring a shirt went fairly easy, although I didn’t try out all options. Doing some googling I found Youtailor.eu which offers more options, but at 4 times the price ITailor offered it shirts for.

The FOK! thread also displays the excellent webcare of the itailor team, who joined FOK! after discovering the thread on google I assume. A similar service I got as there seemed to be some shipping problems with my order.

Read the rest of Shirt arrived from itailoronline

Tags:
Posted in unwork by Arnoud ten Hoedt. 3 Comments

Approach towards Lazy Loading and booting Backbase

Introduction

I am not under the impression that what we are doing here is rocket science, but might be nice to share anyway. Lets first elaborate a bit on the situation at hand.

At my current client Backbase is used in a progressive enhancement kind of way:

<!-- Backbase Library -->
<script type="text/javascript" src="core/4_3_1/engine/backbase.js"></script>

<!-- Bindings and controllers -->
<script type="application/backbase" xmlns:myNS="http://my.domain/2010/controls">
  <xi:Include href="bindings/myNS/config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
  <myNS:WidgetController />
</script>
<!-- Example of progressive enhanced hyperlink -->
<a widgetType="myType" onclick="javascript:MyController.loadWidget(event)">Click me</a>

For this to be working, you need to be aware that the WidgetController has created a top level plain Javascript object that interfaces to the Backbase WidgetController instance:

<d:constructor type="application/javascript">
  oThis = this;
  MyController = Window.MyController || {};
  MyController.loadWidget = function(event) {
   oThis.loadWidget(event);
 }
</d:contructor>

Although the upsides of this type of progressive enhancement in this way is obvious (tiny model tree, lazy loading of your bindings) you are still running into the problem of having the Backbase engine loaded and booted, even though you are not sure if anybody is actually going to click any link or button that triggers you widget. From terms of website optimization it seems to make sense and see if this can be improved, and after some hours playing around a workable solution seems to be at hand.

Read the rest of Approach towards Lazy Loading and booting Backbase

Perceived standardization / differentiation

In a discussion on Yammer it seems that merely 30 years ago the vision was to have 30 engineers around the globe writing services that others would use. The concept might be working if you increase the number of engineers 10 to 100 fold. Most important however it seems that even though we discuss a lot on standardization, which would be the foundation for such a result, but we don’t realize that nowadays we are only able to achieve perceived standardization.
In our day to day software development we use all kinds of standards, patterns and our software will comply to all kinds of usability and accessibility guidelines. But when do you get to the point that there are so much standards and the standards are so overwhelming that even complying to them does not actually say anything. From my web-development work, would my work be better if my coding and output would be able to comply to more standards, or would I just be fooling myself? With so much standards, do we sell standardization or just the perception of standardization?
If the vision would come true that only a limited set of services would be used by anyone, could we satisfy the need for differentiation? Of course if you do the math and calculate the ways in which services can be combined you get millions of services. It doesn’t make sense for 80% of the combinations, but in general the pattern would work as it is already in place.
And by standardization would we complete with the ability to deliver differentiation or would we then only able to deliver perceived differentiation? And which one is economical more sensible? In a production line offering perceived differentiation seems to be the most sustainable one, but there is a leading trend towards customizations. Software development is shifting from large vendor stacks to mix and merge of best of breeds. Can we envision a standardization coming up on non standardizing? A standardization with the sole purpose to enables continuous change and differentiation?

Reflection 2

Currently I have the luxury to be back with my roots and do some full-time software developer, rather than work on three projects at once spending more time on managing, discussing and commuting. As there seems to be a tendency in developers careers to shift out technology at some time and become project manager or a terrible Architect, I promise myself to not join their ranks.

On the flip-side there is a discussion going on at work about leadership and motivate and inspire people to become their greater selves. Me myself was withholding myself for more than a year restraining me from being great, and fighting trench wars against mostly my own false assumptions. So if you would have asked me three months ago, I’d probably wasn’t going to be helpful.

Recently I have been doing better – causing also my higher presence on the web – and considering that a nice get together would be to be an in-the-trench-inspiring-leader-slash-ace-developer. I do have some doubts that if will ever fit a role description. I did become to believe that although I talk to much, think to much, jump to conclusions to much, I also believe I might actually be able to trigger people to be more ambitious and claim their (in my opinion rightful) roles and places.

Just some moments ago I finalized some input for the company newsletter trying to convince people to aim for the sky in order to achieve their dreams. Although the phrasing is poor, the passion is there. And next to being a brilliant web developer, passion is the one thing that will differentiate between being good and being great.

Tags: , , , , ,
Posted in Development unwork by Arnoud ten Hoedt. No Comments

Why would you even build a feedback page?

Ever considered how dull it looks: “If you have suggestions or remarks, please leave a message”. Even nowadays interaction designers tend to leave feedback forms in there wireframes, and totally mis the concept of websites like getsatisfaction.com.

In general I believe that web marketing managers and editorial and support staff should be aware that people are not coming to you, unless you reach out. Reaching out is not placing a form on your site, or allowing user generated content like ratings and comments.

Of course, you might want to have those as well, but the elegant feedback flyout to the left or right of your site that then opens op a vibrant platform like getsatisfaction shows you actually care, instead of pretending to. Why? because you can easily ignore a mail coming in from a feedback form and never hear again. But online you are basically forced to make a good impression. Better for the client, better for you, because you have to care, and have to engage, and have to get to know your market.

My 2 cts (although poorly written; might need to grap a coffee)

It must be friday – Tenpages investment

Still not sure whether this was a good thing to do or not, but then again I like to enable people and push them a little to get to the next level. Maybe because I decided for myself to get to the next level, which might also explain me being more active and more positive lately then I have been before. In general I tend to read more and invest more. Sometimes by just connecting the right people, or at least trying to.

Today I stumbled upon a manuscripting site where one can invest in writers. Although I got there following some spam complaints about some writer using FOK!’s private messaging system (I programmed) to trigger people to invest in his book. Not a good concept on FOK!, as people are not even willing to put down some money for a site they visit daily.
One major problem I have with tenpages.com, is that it seems to be limited to the Dutch market only, not including english books or considering a bigger picture. Isn’t that just too much 2003 way of thinking? Can you get to the next level without thinking large?
Probably going to take some time in the weekend googling for alternatives. But for now, just hope my “investments” takes it to the next level. It is a children’s/teenager book which is not my typical reading, but for the target group it seems to be a proper book and worth some support.
And also I like the general attempt that tenpages tries to work around the default publishing model, although they need to step up a little. So it’s not only an investment in the book, but 5% also in the tenpages concept.

Tags: , , , , ,
Posted in unwork by Arnoud ten Hoedt. No Comments

Writing Yammer Bots

After having written a Yammer Extension for mediawiki (http://code.google.com/p/mediawiki-yammer-tag-extension/) which I got some really good responses to, it was time to look around for new challenges.

So on to the new plugins we write and are about to write; Just last week we decided it would be good to implement some reward and recognition model to our hard working Yammerees. As easily as done as said we now have an Achievements Bot which runs every 4 hours and tracks which people reach the 50/1000/5000 yams milestones and sends out a Yam congratulating the colleagues. Although in the ramp up phase while building the database we got a lot of false positives because the database had to build up, and people with 400 posts being congratulated with achieving the 50 yam mark, it has added a positive fibe to Yammer.

The next challenge will probably be a bot that can generate some usage statistics to create dashboards, but I might wait for other tools that are around. Development of tools seems to be going quite slowly, or I am just overlooking the right sites and communities.

If you have some nice suggestions or want some help in developing this kinds of bots (PHP based) drop me a line.

Tags: , , , , ,
Posted in Development Internet Tools by Arnoud ten Hoedt. No Comments

Reflection 1

Do you know the feeling that some four weeks after you finish a project you get that moment of reflection. You decide what you have learned, what you seriously never need to do ever again, or just be amazed at how things came and went and in the end there is something there but you are still amazed it is.

The last days I had this feeling about a portal project I did this winter and finished end of May. I originally titled this topic “portals from hell” but that is a bit dramatic. I might explain in more detail at some other stage, but lets just summarize the project with an architecture based on a Non-XHTML CMS as backend, a Backbase Portal front-end and IE6 support (+ some evils like nested iframes, iframe’s as modals, state management, progressive enhancement, click-, submit- and navigation-interception) and you’ll probably get an impression.

A ‘Software Engineer’ would probably state we delivered low quality using little design patterns, series of hacks and just basically screwed up. A front-end scripter might just run away at the first sight of the complexities we introduced trying to solve the simplest concepts. An architect would just say we need more architecture. And even a sane project manager (sorry Robin) would have stepped out in the first stage. And still.

In the end the people person might just note that the project was one of passion. Passion to succeed and a drive to make even the impossible possible. Strengthened by my experience within a recent bid where we had a passionate team as well I think there are just three key elements to a successful effort: people, passion and vision.
Leadership is one I am hesitant to add, because it is too hard to define is too ambiguousness and has too many books written on the topic – I read only two, which where useful, but I learned just recently from TED Rotterdam that the best ideas might actually come from complete isolation. Where is this going? I don’t know. Maybe I’ll try and post some more when I find my natural leadership and the key to repeatable success.

For now I just decided to go with the people person camp and imagine the project is just a once in a lifetime gem of complete evilness turning into beauty following our combined sheer passion.