The lost opportunities of data validation

Conventional programming wisdom says you should always check any data input from the user and exclude anything that your code cannot cope with. [“User” … a strangely demeaning term for a person whom you are trying help. We need a new more respectful word for the people who are left struggling with the results of our coding. ]

Anyway, the normal practice with data validation is to only pass on whatever gets through the filters for further processing. All well and good. But what about the input you reject?

99% of the time when input is rejected the only action taken is to present the “user” with an suitably arrogant message.

"ERROR: We can only accept your information if you kneel with your knees exactly 10cm apart in front the great computer and bow deeply".

But what we as programmers routinely throw away contains vital nuggets of information – the cases we did not properly consider. Take my address for example. I live in a village where there are no road names or house numbers. What happens when I try to order something online?

I come up against the preconceptions of the programmer who designed the address form. House number and street name are required fields into which I’m  forced to enter rubbish just in order to get my order accepted.

The fact that the program is expecting a house number and street name in each case is a design flaw.  That information should be captured and fed back to the programmer.

the penny dropped!

Blogs are the new confessional, a place to cleanse the soul by publicly admitting  failures. My question to the powers that run the universe is:

“why has this taken me so long to think of ?”.

Problem: connectCAD likes objects to be on the grid

Solution: laboriously click on each object and drag it back onto the grid

or

About time too. How come I didn’t write this simple and useful command all these years? Still kicking myself.

Thanks to Edward Kitchingman for finally jogging my mind.

Learning (from other people’s mistakes)

Being on the receiving end of other company’s customer service is a wonderful education. Just look at how “Krikor” from JoomlaWorks handles my question. Every mistake in the book.

If anyone catches me talking to a customer like that, I will personally fire myself from my own company.

Me:

[just a little bit fed-up with having bought a Joomla module that under-performs, but I’m still polite if a little ascerbic.]

Really happy with the way FrontPage SlideShow works on laptop screen but alarmed when I brought the site up on a tablet. I see from the Joomlaworks forum that FPSS is not responsive – period. To be quite honest it didn’t even cross my mind that such a thing could be possible in 2015.

Please confirm one way or the other and if ( responsive ) { tell me how it’s done } else { please refund my subscription – FPSS is no use to me }

Thanks,

note that I’ve asked a specific question here.

Customer Service:

Hello,

Since our company is offering non-tangible irrevocable goods we do not issue refunds after a subscription is purchased, which you are responsible for understanding upon purchasing. Please make sure that you have carefully read all relevant documentation and tried out the demos.

Sorry but if you have read our Terms & Conditions here: http://www.joomlaworks.net/about/tos
you would have known that.

If you want assistance with creating a responsive template (we have some ready) let me know.

unbelievable attitude here !!! “we’ve taken your money and we’re hanging on to it – if you have a problem it’s your fault… oh and by the way there is a solution but I’m not giving it to you unless you beg me…” AND no answer to my question.

Me:

Thank you for your reply. You have not clearly answered my question as to whether FPSS is responsive. Would you care to do so?

Of course you are right that the subscription I have paid is for not for the software itself, but for your professional support. Yet there is already a question-mark over that. Please look again at your reply. Only the last line in your email actually addresses the problem that I face i.e. that FPSS as supplied is not responsive and fails on tablets and phones.

If you have a solution to this and I mean one created by Joomlaworks, then please point me to it. You say you have some templates ready so shouldn’t you have already done that? Should that be included with the product? It isn’t a really good use of my time forcing me to ask you yet again for a solution that you already have.

Drawing my attention to your terms and conditions is irrelevant ( unless you happen to be a lawyer ). Reputation is what matters in our world. Looking forward to your pro-active and helpful reply.

Trying to restrain myself here…

Customer Service:

I am asking to know which template you want use, so I can post the proper adjustments.
Inappropriate use of the present continuous … this was not asked for in the previous messages. Still no answer to my question.

Me:

assume you mean FPSS template, not Joomla template. Currently using Movies.
Let’s at least be clear this time.

Customer Service:

And FINALLY we pry the solution out…. still no answer to my question.

First of all you need to override the template so you won’t lose any changes when you update.

1) Create a template override of the template you are using for your FPSS module, i.e. FSD. Read here how to http://www.joomlaworks.net/docs/frontpage-slideshow under “MVC TEMPLATING: THE POWER TO CREATE UNIQUE SLIDESHOWS”.
2) After you have correctly copied the files in your template’s folder, you will have to edit the template.css.php file in templates/Your_template/html/mod_fpss/Movies/css/

Try adding this gist -> https://gist.github.com/kricore/5ec94077098f95c63ba6

If this is causing visual errors (not all templates/ sites etc ) are not the same, send me a link and Super User access so I can provide a solution.

give YOU Super User access? you must be joking mate!
Realise that the last two posts have been customer service rants. Perhaps that’s a bit boring, but you know there’s no reason to suffer this – on either side. There’s such a real satisfaction in knowing that you’ve helped someone out, I really don’t get people like Krikor. What extra does he get for doing his job so badly?

“When it absolutely positively has to be there overnight”

Well here I am looking forward to setting up satellite internet. I surveyed the rooftop – good view of the sat. So placed my order and hey, the stuff arrived.

Or so I thought…

well only 2 of the three packages made it. I’m sitting here looking at a beautiful new dish complete with transceiver block and a cool-looking modem but … the bracket to mount the dish is on a tour of Europe organised by Fedex.

The tracking page reads like the travels of the garden gnome from the film ‘Amelie’. London, Paris, Madrid, back to Paris, Cologne, a couple of days in Cologne for some shopping. No news at all about today. Is Thursday a day off in the Fedex-world? No wonder it took them four years to find Tom Hanks 😉 Will my mounting bracket be washed up on some desert island?

Software development addict

There’s a special thrill about computers that only we nerds feel. We are the sorcerer’s apprentices who peek into the Spell Book while the master’s away. Our experiments run wild sometimes flooding the basement.

But here’s beauty of it – in our contained little world of keyboard and screen what’s the worst that can happen?

       “oh, well …”

As you hone your spells and perfect them, their enchantment takes hold of you. You can’t stop tweaking, adjusting and improving. There’s always a better way and there seems to be no limit.

It’s all about how we understand are world. Teaching something as stupid as computer to do things makes you question everything you take for granted. Common sense. What is common sense? As you probe deeper into a process you find out more and more. What are the rules that govern it? Can they be expressed clearly enough for the dumb machine to execute? What are we really thinking about when we decide if a job is done or not?

Mickey Mouse didn’t get his loop exit condition right before the master returned to his wet lair and pressed Control-Alt-Delete. But perhaps if Disney had let him, Mickey would have debugged the spell and tried again. Once you start you can’t stop.

A creative space…

Wake

Greek island ferry trips in the winter. Four and a half hours of un-distracted time on the deck in economy class. Low rumbling engines, wind lashing the after-deck and rolling rolling on the swell. The buzz of a political discussion in Greek from a neighbouring group of islanders – a language I understand well but as a foreigner doesn’t penetrate my psyche. So I tune out leaving only the friendly sound of humanity.

office

Time without the pressure to accomplish anything. A parenthesis in the modern world. If I do nothing that’s fine. Mildly bored, relaxed the mind wanders open to any thought that might break the monotony.

Idly playing with software and ideas, inspiration strikes! A old dead-end opens into a wide avenue. Away from this wild and rolling seascape how dull the mind becomes in the constant din of everyday life. But in the sweet boredom of life at sea, like Ishmael in Moby Dick the mind rambling the landscape of consciousness peers over into the unconscious making out strange shapes in the mist.

Schematic design revisited

Back in September as I began thinking about connectCAD 2015  I was fairly sure that we had schematic design wrapped up and it was time to move on. So I began a quick review of user comments to tie up any loose ends.

Well it’s amazing where following a loose end can take you!

The new connectCAD is all about schematic design. From seemingly simple changes to the look of connector panel devices all the way through to new cable numbering systems, it’s a major lift of the entire application.

Let’s see what’s inside.

Ho hum! Even more smart objects – all the fundamental components like devices, sockets and circuits. That makes them even easier to use and edit – just select it and edit the properties that appear in the Object Info Palette. Select several and you can edit them all at once. Quite a move…

And you can still configure connectCAD to way you want it to look and work, add your own parameter fields and make your own socket and device graphics.  Smart objects for everything let’s show you use graphics for inputs, outputs and bi-directional ports giving you an instant visual picture of signal flow. Cool !!!

No more searching for tool setting. Central settings management gives you a clear picture of your drawing setup and let you make your adjustments in one place. Much better !

A whole new concept in cable numbering and panel labeling! A new framework that let’s you set things up the way you want them, simply and effectively. That’s the stuff !!!

But my favourite is Connect Next… it’s almost like it reads your mind and does the next connection you were about to think of. And we’re not done yet – there’s even more intelligent guesswork that will go into this command.

Well all that was fun. It took up most of the winter so far but its out now.

 

Emails that don’t let you ever stop working

I got an unexpected Christmas present from a customer. One of those emails that makes impossible for you to ever stop.

“First I want to thank your for creating ConnectCAD.  I originally used Visio for all of my A/V drawings, but it was never meant for this use and was slow and cumbersome.  I built a TV station from the ground up last year and did the drawings in Visio.  After that experience I decided to look at other software to aid me in my A/V drawings

I then tried X but it crashed too often and I didn’t care for how regimented it was in making you put your devices and cables in a database.  I also looked at Y, but it seemed like I would have the same issues of X.

Then I tried ConnectCAD and haven’t looked back since.  I just got done rebuilding a TV station (they went from analog to complete HD) and had the drawings done in record time.

On ethical grounds I’ve deleted his specific references to certain products. The disadvantages of other companies software is irrelevant. What matters to me is knowing that what I’m do is making a difference to peoples lives the world over.

Emails that make you think

Every now and then I get a mail that overturns my assumptions. In the many years I’ve spent designing broadcast systems the task was to understand the need, create a concept design, write tender specifications (formal or otherwise), send out a call for bids, select the final gear and complete detailed design.

But yesterday a designer told me the kind of brief he often hears from his bosses.

“We’ve bought a station group in <major US city>. We  need to move them from SD to HD by the end of the year. They are an Evertz house, with a Sony switcher. We just signed a huge deal with Grass Valley/Miranda/a Belden Brand. Get it built using the Miranda version of whatever you need. In fact, use all Miranda audio processing gear. Maybe leave the Sony switcher. We’ll see.”

“On occasion stuff just lands on a loading dock, and we need to make it work.”

So the big manufacturers are setting the rules. One day I’ll have no more assumptions left and I’ll be a free man…

CAD for the mad, mad world

Ever been involved in one of those projects where the client doesn’t know what they want? the budget and the goals keep changing and the deadline is yesterday?

Of course you have. That pretty much describes every project in the world of show business. The situation can get under your skin when you have work to get finished and there are consequences if you don’t. But that’s how the world is – the question is can we live in it?

Broadcast System Design
Photo by Jan Starzak

Back in the day when I was a broadcast systems designer it was terribly hard to progress under these conditions. Each change of wishes and resources meant painstaking re-drawing and re-calculating everything. Computers came along, but the software we had was little more than a glorified piece of paper. The big bonus was that you didn’t have to cover the screen in Tippex every time you needed to change something.

With CAD we got pristine beautiful drawings of the state of play about a week ago. But producing  drawings and keeping them up to date was almost as slow as doing them in pencil. Remember the old joke? ” What does IBM stand for? It’s Better Manually !!! ”

I have the advantage that I’m not that young and the first personal computer emerged just as I was finishing college. So as a true geek (to the consternation of my parents) instead of putting down a deposit on a house, I spend my entire savings and bought one. It was just as exciting as I’d expected. I switched it on, it beeped and a glowing green > prompt flashed at me on the screen. That was all. But you could program it in BASIC. And happy months passed as I taught this dumb box more and more tricks.
Hidden deep inside MiniCAD was a script editor and while I was spending another late night at the office drawing yet another distribution amplifier I began to think, ” what if I taught the computer to do this for me”. I stopped working on the project and dusting off my dormant programming skills I began to build some macros to make my life a bit easier.

The whole thing spiraled wildly out of control. The macros became longer and more complicated and then they started talking to each other. In the process I had bent MiniCAD (by then called Vectorworks) away from being merely tool for a visual  representation into an actual functional model of the systems I was designing.

example of schematic design in connectCAD

Suddenly deadlines held no terror for me. Change requests – welcome. Updates processed in seconds. Reports – no problem. It was way to good to keep to myself.

Finally CAD for the mad, mad world. A program that lets you get started on a “normal” project with no clear goals, unknown resources and budget. Where changing your mind is not a crime to be punished by hours of hard labour, but just a natural way of evolving your thoughts.

It’s called connectCAD.