Caveats on Imaging Formats and Surveillance

Just a few thoughts in my head this morning. One advantage of traditional jpeg over wavelet is that old jpeg can probably be tweaked to use different compression ratios for different areas of the frame. With good foreground/background segmentation, one might chose to compress the background a great deal, while keeping the foreground close to the original.

Again, for video surveillance, keeping the frames totally separated (no reduction of temporal redundancy) is pretty crazy any which way you slice it.

Some Google Trends

Google Trend for IP Video Surveillance

Video Surveillance is relatively less interesting as time passes. Google trend says so. I checked “ip video surveillance”,”video surveillance” and even “surveillance” this morning, and the trend is clear. Down.

The news volume is trending up it seems (not for ip though). Not really sure what it means. The nominal volume may be growing, but as more people search for “Snookie”, “Lilo” and “Speidi” the relative search volume for “Surveillance” drops.

Ip Video Surveillance

Video Surveillance

Surveillance

Google Trend for "Surveillance"

Aesthetics vs Usability

Myth #25: Aesthetics are not important if you have good usability

Aesthetics is no substitute for usability for sure, and if I had to chose, I would pick usability over aesthetics any day. Except when pithing to a VC or a marketing person, then aesthetics always beat usability. But I think the two concepts are fused at the hip – if you care about the user experience, then you do both.

The problem is that you may know what you like, but you are unable to create it, so once you find a good graphic designer hold on to him/her.

Story here

Abusiness.dk Screwed Me Over

A while back I received a reminder that I owed abusiness.dk around 50 bucks for a web hotel. I paid right away, but soon received another letter from them. Confused I sent them an email and asked for clarification on the issue, I attached the bank-receipt and soon received a response stating that I owed them nothing.

Wonderful I thought, pretty easy.

Today I received a bill of almost 200 bucks from a collection agency on behalf of Abusiness.dk. I was baffled, and tried calling abusiness.dk right away. Naturally their office was closed, so I wrote them an email. Luckily their accountant responded later that night. Turns out I had 2 accounts with them and that only the one account had been paid in full. When I inquired the first time, on account A, they cleared account B. Leaving account A still in arrears. Since they sent me an email stating that I owed them nothing on account A I had no reason to think that things were not OK. I was not aware that I had 2 accounts, and neither were they.

Strangely, Abusiness.dk feels that when sending reminders all you need to know is “receipt no”. I would assume that an ISP would at least add the domain names to their correspondence. This is not possible I am told. I was supposed to match up the receipt numbers and realize that the numbers did not match. The fact that my name appears on both accounts and that the address is the same does not ring any bells. That I write them with the domain for one account and they tell me that THAT account is paid in full, and then 2 days later they send me a reminder on the SAME account is somehow my fault.

The wonderful thing is that the person I am communicating with seems to understand the absurdity of it. But to paraphrase the obnoxious woman in “Little Britain” – it as simple as “computer says no”. Its the sort of mentality that I simply do not understand. I have been a loyal client with Abusiness.dk for many years, I would probably have recommended them to others, but reducing people to “talking machines” means that Abusiness.dk is losing a client, revenue, and they will have this post online to taint their reputation forever (or until WordPress start charging).

Abusiness does not offer anything that you can’t get cheaper elsewhere (Web10 is the one we use from now on). I’d just steer clear of them.

Plenoptics? Anyone?

Adobe is messing around with plenoptic lenses that allow for some pretty cool modifications of a still shot to take place.

I surveillance we want EVERYTHING to be razor sharp, always, so this is probably more for entertainment. But I am left wondering how this differs from just recording a video sequence, letting the DOF travel from far to near, and then picking the one you like later. To me (because I am a little naive) what they’ve done is to re-arrange a sequence into one frame. Obviously there is no difference in time (temporal aliasing?) with the plenoptic system; the “frame” that was shot with far DOF is recorded at the exact same time as the one where DOF is near. But to accomplish this, you need a new lenticular lens and possibly a different aperture too.

The original story here (they also posted the “lets enhance” video 🙂 )

Stop Crap Shooting, Blindfolded, In The Dark

Most people add some sort of tracker to their website. It allows you to monitor the performance of your posts, your geographical reach, what articles made a splash and so on. You instinctively know that you need to measure, if you want to know where to focus your attention. Talking to people is one way of “measuring”, but it is notoriously unreliable; an old saying is that “people bitch about the stuff they use”. So when people “just love the new feature” it usually means they are not using it.

Eqatec is a tracker for .NET applications, which works almost like Google analytics for web-pages. There are privacy concerns, off course, and for our vertical it is even more sensitive. But for beta-testing this is simply a must (naturally client consent is mandatory), it takes a lot of the guesswork and – frankly – BS – out of the equation. The beta testers provide valuable input, but unless the input is anchored in REAL use, the input is meaningless. Some people will balk at the notion of being tracked (yet use google on a daily basis), while others see no problem at all. I am probably in the latter group. In fact my radio-listening habits are being monitored almost 24/7 (all death-metal all the time 😉 ). The polling agency ASKS, but also measures what I am listening to – let’s see if the two match up.

Linkage made a great video about it. See it here.

Microsoft is Dying

Not really news here, but as I dig further into the bowels of Microsofts new technologies it just boggles my mind how poorly it is put together. It’s “small” things, like a scratch on the dashboard of your car, a coffee-stain on the collar of your white shirt, a broken window here and there.

Yesterday I ranted against WPF, and today we can look at WCF, or Windows Communication Foundation as they like to call it. Foundation is a term Microsoft likes to use. It isn’t really a foundation, not technically, or conceptually, but I guess it makes it sound as if it is solid, trustworthy, worth building a castle upon. The truth is that if this a foundation, then Microsoft is in bad shape. To me it looks like randomly dug holes, various things are tossed in there in lieu of concrete – big rocks, bikes, old newspapers etc. It sort of works, but it sure ain’t pretty.

An example is a reliable session in WPF. Well. Just doesn’t work. Microsoft did not have the capability of implementing a periodic ping underneath the covers. No. Every developer in the world who wants to cache the session will need to create a timer and periodically ping the server. When pinging fails, because the server is down, the session enters its faulted state. You can’t really close a session in a faulted state. Nope. You need to TEST if the session is not in the faulted state prior to closing it. Failure to test the state of the channel prior to closing it causes WCF to throw an exception. So at times you see exception handlers INSIDE exception handlers (as closing the channel is usually something you’d do if an exception is thrown during the connection phase).

I think the clever folks have long left Microsoft and gone somewhere else. Microsoft seem to have a hard time understanding that in software development 1+1+1+1 = 0.7, even 10+1+1+1+1 = 0.7 if things are not managed carefully!

Oh, well…

UPDATE : Here is another jaded developer

Is WPF an Ungodly Jumble of Concepts?

I’ve been messing around with WPF for a little while, and every time I revisit it I feel as if the idea was pretty good, but there were simple too many chefs in the kitchen when it was made, and subsequently we are left with this “thing” that seems to have a lot to offer, but somehow rarely delivers. I see a bunch of “conceptual applications” written using WPF, but very few successful commercial applications rely on the framework. The ones that do, sometimes struggle to run smoothly and usually a range of graphical issues. I think the reason is that there are simply too many ways to skin a cat in WPF.

Take a TreeView for example. Because there are so many ways to customize the control, it is extremely hard to find the “right way”. The idea that you “style” your control makes sense – right – just like CSS,  you define how your control should look and feel. Ah.. but naturally, nothing is as easy as it seems. When you select an item in the list, the default implementation draws a horrible looking flat blue box behind everything. Guess what people try to change the color? Alter the “Background Color” property! Does that work? No because the property is not the “Background” it is “Highlighted”


<TreeView.Resources>
<SolidColorBrush Color="Yellow" x:Key="{x:Static SystemColors.HighlightBrushKey}"/>
</TreeView.Resources>

People look at the behavior of the control, and it appears that the background color is changing and therefore thats what they try to change. It doesn’t work obviously, and if you are like me, you get frustrated. There might be some academic logic behind doing it the way they’ve designed it, but a great API must also cater to the expectations of the user. In this case a multitude of developers who ran into this problem (naturally, we will never know how many people ran into it – once one solution is posted, the number of posts drop), so clearly the API is – if not broken, then cracked here. But to make matters even worse, you don’t need to populate the tree with traditional content. You can populate it with pretty much anything, buttons, images, combo-boxes and even your own custom controls that also handle mouse-over events.

There are also some evidence of poor discipline in naming convention. A Border has a “CornerRadius”, while a Rectangle has a “RadiusX/RadiusY”. The border is a container element, but it does not clip the content to the rounded corners!? Sometimes the background is a “color” sometimes it is a “brush”, so even though the values for “Fill” and “Background” are the same (say “Blue”), and even though they perform the same action (determine how stuff “behind” looks), they are not the same at all.

A bunch of issues are not revealed at compile-time. As a developer you need your errors to be caught as fast as possible, yet happens quite often that things just don’t work (Brush vs. Color for example) and there is no way of knowing until you run the app.

Add to that the confusing idea that Silverlight and WPF controls are not interchangable. .NET Compact Framework is a well defined subset of .NET, while Silverlight is not really a subset of WPF. Well – it might actually be a subset in terms of functionality, but Silverlight controls don’t, natively, work with WPF (this is either fixed, or in progress to be fixed – but still weird that it was not made like that from the beginning).

Take a look at the WPF samples, and what you usually find is awful copies of OSX concepts mixed with examples of effects that date back to when a Java reflective pool was considered cool. A fair number of samples exhibit a horrid use of resources. Even if you DO have a GPU, you still need to know what you are doing, and since WPF lends itself to creating semi-transparent-dropshadowed-reflective images, people will pepper their apps with those functions – just because you can. It’s like Wordart for programmers.

I am not saying that WPF makes it impossible, or even difficult to get your app going. I am saying that the learning curve is unnecessarily steep. Anyhow. Thankfully we have some people who know WPF better than I do, and most of them disagree with me, but that should not keep me from speaking my mind about this topic.

New Twitter

Lovely Video, Lovely Layout…

You can make some pretty awesome interfaces with modern CSS, which is why locking us down to IE is a bad idea. IE is keeping us from awesomeness, and if it does, we should ditch it. I am sure that when the wheel was invented, there were people arguing that the bigger market was with “whatever we had before”, and therefore we should keep catering to them. I disagree.