Long story short, DHL mistakenly put my next day delivery (passport) on a truck instead of a flight. Having been made aware of the problem and the urgency of the situation they organised a special delivery (and flight) to make sure I got my passport in time. A big thank you to Tomasz Buraś, the Managing Director in Warsaw for making it happen.
It’s not the mistake that’s important, it’s how you recover from it, and they did so in spectacular fashion. Fair dues.
As described by Steve in some earlier posts, we were looking for a good way to allow video conferencing in the Alzheimer’s/dementia memory helping product called Memaxi. First, we thought it should be easy and simple to video connect these days. After some research we realised, it is not so simple to find a C# library for it. Here is a short summary of what we did, and found:
- Tried Tokbox – web based video conferencing system. It is Flash based and easy to use. To make it simple we embedded a browser window in our WPF application, and it worked. It was required to choose a hosting server location, which is a bit of a problem for an international application, and the quality was not enough, when compared to Skype. It gave us the ability to call the application from the web page.
- Tried Wowza – it is a media streaming server. It is actually a provider for a tokbox as well. I needed to learn Flash programming, which I didn’t really like (the tools and the language seems old fashioned compared to Visual Studio which I am used to). We managed to make it work better than tokbox, but it was still in a browser window. It is still one way calling: from web page to application.
- In the meantime we signed for SkypeKit beta program, and started waiting.
- Tried ooVoo API – we hoped it will allow as to include PC, mobiles, and landlines calling, but
- found that Oovoo API is no longer supported. Stayed with Wowza.
- Suddenly Skype invited us! After some moments of applause we realised that video for windows was not supported at that moment. (It was supported before, but after some code restructure it was unavailable.)
- After another few months skype announced a new version with video for Windows!
SkypeKit supports C++, Java and Python wrappers for their library. No C#. So we needed to write a C++ -> managed C++/CLI wrapper (quite an interesting experience). So we now have a .NET Skype library that can be used by any .NET language.
At the beginnings the Skype library seemed to be a bit unstable and unreliable, but after doing everything right and correct we cannot find any real problems now. After few weeks of testing it seems bug free and stable. So, we can now call Skype<->Memaxi application in both directions. The quality is a Skype quality, which is something we wanted to achieve. For now we stay with Wowza for calling the Memaxi application from a web page. The testing is close to finished, so you should be able to check the “Plugged into Skype” Memaxi version at www.memaxi.com soon (1st month free).
Bear in mind it is not a closed list of video conferencing libraries. These are the possibilities we have checked. There are some other options, including open source software (like libjingle library released by Google for an opensource protocol – Jingle – used in Google talk, and some opensource clients). We started over a year ago, and the situation changes with every day. For us SkypeKit is an easy enough and reliable tool. It also allows to call landlines and mobiles which makes our users very happy (ok, test users at the moment…).
Yesterday I started receiving messages from microsoft security essentials that it had detected a virus called PWS:Win32/Zbot, a password stealing trojan.
The infected file was Chrome.exe !!! yikes. A trip to Microsofts Malware Protection Centre reaveals that Chrome is not as evil as MS would have it be and that some overzealous virus hunter has left Microsoft with a bit of an apology to make (fair play to Microsoft for that)
This from Microsoft …
Information about incorrect detection of Google Chrome as PWS:Win32Zbot
Output42 is getting busier and busier developing HTML5 web apps with jQuery Mobile providing a really good user experience. There is one problem which can be hidden but not removed and that is the pesky URL Bar which in a web app is generally useless. When I say hidden, I mean scrolled out of view, however that means it can be scrolled back into view by the user … not very tidy.
Wouldn’t it be great if there was a ubiquitous mobile HTML5 compatible browser that has no URL Bar, no Bookmarks, no Tabs and no History. In fact none of the appendages that come as standard with most modern day browsers.
Surely there is someone out there ripping things out of webkit ? Or maybe Apple owns the patent on that one too…
Output42 was recently contracted to create a line-of-business application by one of its largest customers. When we saw the spec we knew this was going to be a difficult one. The task was to replace a spreadsheet-based system. One of those, which users would have pried from their dead, cold hands before they gave them up. When faced with such a challenge the only way to succeed is to outdo the competition in every possible way. At the same time it is important to deliver a clean, well engineered solution that will be easy to maintain and extend in the future.
The customer had a strong preference for the user interface to be implemented as as Windows desktop application. After much deliberation we decided to give WPF a try. Some of the principles behind make it easy to design an application well. That’s of course if you follow the recommended design pattern: Model-View-ViewModel. It is a concept which derives from the ages-old Model-View-Controller pattern, and modifies it to work with perhaps the most important new concept in WPF: the binding.
If you delve deeper into the WPF design concept, you will find out that it is significantly different from Microsoft’s previous UI frameworks. Or anybody else’s for that matter. Whether you’re coming from the MFC or Windows Forms world you need completely change you way of designing desktop applications if you want to use WPF’s new capabilities efficiently. Ivan Towlson probably describes it best:
Windows Presentation Foundation isn’t just a new control library – it’s a radically new architecture.
The other very important concept, which builds on top of binding, is commands. Granted, there are many other important concepts in WPF, like events, triggers, resources, etc. In fact Christopher Estep has got them nicely catalogued for you. But between binding and commanding WPF helps to solve the most important problems of business software design: clean design, clear interfaces, separation of concerns and encapsulation. It does that mostly by making it easy to separate the UI design from the underlying business logic.
In fact not only do WPF and MVVM facilitate clean design. They encourage it. To me as a developer it is a big deal. It allows me to design well and use the the UI framework the way it was intended to be used, rather than work against. It also directly affects hundreds of tiny decisions we make each day as developers when we write code, steering us towards a better design and better software in the end. Very much the way Jeff Attwood and Brad Abrams talk about it as the “pit of success”.
Next time: is it really all sunshine and roses?
1) Release on a fixed schedule ( often as possible )
2) Share a daily or continuous build ( warts and all )
3) Write it down in tickets
4) Daily report and chat
5) Watch a team activity stream
6) Recruit good people
Assembla covers 1) to 5) very well… no. 6 we have defintely got right.
We’ve dipped our toe in the wild west world of mobile App development and so far have got out with our sanity and bank balance intact. Jquerymobile has proved to be incredibly good at delivering very rapid, clean interfaces for straightforward data input for one of our web based projects.
What we have ended up with is a mobile App that runs in any browser…any browser… PC / Smartphone / Linux / bingobongo. We havn’t gone for any fancy graphics or swish looking gimmicks – just good old Labels, buttons, lists and data entry boxes and our current Alpha version all hangs together very nicely.
Michal Morawski took JqueryMobile by the horns just under 2 weeks ago and left us with a very useable APP before heading for the Polish costa brava for a few weeks.
Output42 are now officially APP-sperts
We are looking for great software developers.
As a programmer at Output42, you will help design, develop, and implement the code for a variety of systems and applications, including some of our innovative products.
- Excellent coding skills. Your programming ability is above average, as demonstrated by successful projects.
- Good command of written and spoken English.
- We expect that you will be able to master any technology, language, or development environment that we need in the future.
If you’d like to join our team please e-mail your resume to firstname.lastname@example.org.
Maybe someone in the skypekit beta program happened upon our blog and took pity, maybe they needed my 10 dollars or maybe the beta program is opening up, whatever it was we are now officially part of the skypekit beta program. For the developers at output42 it means we can finally knuckle down and get on with coding rather than trawling google for the next best thing.
Skype went down again yesterday. They claimed it affected only a small number of users and only in Europe. However contacts of mine in Australia reported they could not connect either and there have been reports from around the world of similar problems. It wasn’t a minor outage as they claimed, so why pretend it was ?
As a result of this output42 is going to start using Google Talk as its backup communication system, I suspect many others will be doing the same.
Oh and don’t blame MS, they don’t own Skype yet !