Every now and then I come across an application or utility that I think is amazing. Doesn’t have to have an all singing, all dancing interface, but do something really well.

SQLBackupAndFTP is one of those programs. There are a couple of really cool things about this package. Firstly is the price, it’s affordable and well worth its weight in USB keys. Only $69 for a professional licence, or $149 for a lifetime license. Anyone who needs to back-up their SQL server on a schedule basis (and let’s face it, who doesn’t need to) should be using this package.

It’s easy and quick to setup,

q1

The schedule function just works. Once you have configured your destinations, it really is just set and forget. Everyday an email pops into the inbox advising the success (or failure) of the scheduled backup. I prefer to send multiple destinations, both on the local file system and remote FTP. The program has support for Local/Network, FTP, Dropbox, Google Drive and Amazon.

q2

But wait, there’s more…

As part of the installation is the One-Click SQL Restore tool. Now this is cool. When we need to look at clients data, it quite literally is a one click process. I just point the program to a zip copy of the .bak file (which was produced automatically from SQLBackupAndFTP) and whomp, it gets restored. No hassles, no messy dialogs. If you need more options and control, it’s all there under the hood waiting.

q3

ANYONE who has a SQL database that requires backup (read: ANYONE who has a SQL database) should be using this product.

I’m DXcited !

Posted: October 5, 2012 in Keep IT Real

And so begins a new chapter…

Evident in the pages of this blog is my passion for cool tools, with a definite bias towards the DevExpress tool set. Well today, I am proud to announce that I loved them so much I joined the DevExpress team as a Technical Evangelist for Asia Pacific. In other words I get to tell lots more people how cool the tools are :)

There is so much happening in the developer community at the moment, such as Windows 8, Surface, Mini iPad, iPhone 5, DXTREME, DXv2 12.2, its a great time to able to share my knowledge with people and help teams prepare for the next big phase in our ever evolving industry.

So does this mean the ‘Keeping IT Real’ blog will stop ? – NO, it may be quiet for a little while, but there will always be something to talk about. What I would encourage you to do though is also frequently visit my new blog home… DevExpress.Paul

For those that haven’t heard it mentioned yet (where have you been hiding?), check out the new DXTREME product suite introduced on September 17th, it is one of the coolest things to hit your IDE since CodeRush.

I plan on doing a couple of discovery videos to help demystify multi-channel development, so stay tuned.

A big thank you to all those people who have helped me reach this DXciting new chapter, and a definite big thank you to Dave Mendlen for the chance to work along side some of the smartest, geekiest, coolest people on the planet !

Paul.


Is it ambiguous ? Well at the outset it seems to be.

After a swag of updates (iOS 6, Xcode, OSX 10.8.2 ::modem has officially asked for time off now::) I opened an existing client project that was working previously. This project was used during a prototyping session with the client, so why does it break now ?

The error:
2012-09-21 07:42:07.257 Stenhouse Workshop[3017:c07] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘Could not load NIB in bundle: ‘NSBundle /Users/paulusher 1/Library/Application Support/iPhone Simulator/6.0/Applications/B1F4C9E9-EAB6-4AD8-96D6-D82EDD9E6E48/Stenhouse Workshop.app (loaded)’ with name ‘WorksheetViewController”
*** First throw call stack:
(0x1c99012 0x10d6e7e 0x1c98deb 0x239fac 0xfee37 0xff418 0xff648 0xff882 0x10b235 0x30a3d2 0x1084f3 0×108777 0x96d933f 0x1087b7 0x25ee 0x10ea705 0×21920 0x218b8 0xe2671 0xe2bcf 0xe1d38 0x5133f 0×51552 0x2f3aa 0x20cf8 0x1bf4df9 0x1bf4ad0 0x1c0ebf5 0x1c0e962 0x1c3fbb6 0x1c3ef44 0x1c3ee1b 0x1bf37e3 0x1bf3668 0x1e65c 0x1e7d 0x1da5)
libc++abi.dylib: terminate called throwing an exception

Googling this type of thing will send you on a wild goose chase, the NSInternalConsistancyException seems to cover a lot of ground.

Because of the number of upgrades that had taken place I decided to start by doing a ‘clean’ on the project,when that failed, reseting the content on the iOS Simulator, still nothing, (insert head banging here). I checked all the connections, made sure no objects had been removed leaving bad things behind. There were some ‘warnings’ on the project, pointing at deprecated color options on my grids. So dutifully, I changed the selection to something that was current, did another clean and build but the app still crashed.

I then noticed the smallest difference, the NIB name was “WorksheetViewController” and the code was calling “WorkSheetViewController”. It seems the issue of the Simulator correcting these behind the scenes has been fixed (see the note here on Simulator black magic)

After a quick alteration of the NIB name the project was useable again. So while technically it was not anything specific to the OS changes that broke the project, it was changes in Xcode and the Simulator. Of course the app would have crashed on the device anyway, so at least we were spared that pain.

What would have been nice to see was an error message something like- reason: ‘Could not load NIB in bundle: NIB File Not Found’.


Before everyone starts messaging me and telling me 110% is not possible, just listen !

For weeks I’ve been watching the countdown over at DevExpress promising to announce something cool.

Well tonight 6pm AEST all was revealed – DXTREME

In a nutshell, 3 tools in 1 – developing rich cross platform applications, and it looks amazing. Simplified codebase, clever wizards, deployment via QRCode (for testing)

There is no way I can do justice to what is being shown, so instead, head over to DXTREME and watch the announcement video.

I can’t wait to get my hands on the product to use a single environment to create my next iPad project that compliments my 100% DX WinForm app !


Ok, I understand there is money in advertising, I’m ok that some sites are funded purely by these funds. But shouldn’t they be relevant ?

On a recent visit to VB.Net Forums, I was greeted by some “older woman” in a skimpy black top, breasts prominent, pained look on her face with a caption “Meet older woman for dating”, ignoring the grammatical issues, I found it difficult to see the relevance of the advert on a tech site, I mean, “hmmm.. I have a coding issue, so lets go ask for help, oh, and whilst I’m there why not see if I can find a love interest as well.”

I think it would be much more appealing to see ads targeting the specific audience, tool vendors, training courses, gadgets and such. Since the site is aimed at developers, I’m pretty sure we all know how to use Google to find dating sites if we wanted to !

Relevance people !?

Image  —  Posted: September 17, 2012 in Digital Viagra, Keep IT Real


I was answering posts in a community forum on the weekend when I came across an entry asking for help to build a data grid. The requirement was complex. The poster had expressed at the time that the functionality needed was available in a 3rd party control, but did not want to spend the money as the price was too high. On investigation he could have spent as little as $895 for the suite of tools. I just don’t understand the mentality ?

If you are working on a commercial piece of software (defined here as software that you are being paid to write by virtue of wages, contracting or future sales), then do the math…

NOH x YHR = VOT

So, Number Of Hours for you to write the tool you are looking for, multiplied by Your Hourly Rate equals Value Of Tool.

Take a basic data grid with grouping, sorting, binding, totals and some nice UI, I’m pretty confident it would take more than a couple of months to get right, but even if we said 4 weeks, or 152 hours, at a nominal rate of $25/hour (who works for that rate?), you are still looking at a cost of $3,800. So the cost of $895 is looking good.

Lets work it back the other way… $895/$25 hr = 35 hours, could you develop what is on offer for that?

Or (based on my estimate of 152 hours) $895/152 = $5.89/hr

I understand when buying tools we have to find balance, but I find it ridiculous when Devs expect everything for free.

There are some great tools out there (my obvious preference being DevExpress) and these companies put a lot of resource into making our jobs as easy as possible, lets show some support and appreciation, if everything became open source no of us would have a paying job.


Normally when I need to present a complex lookup I would spawn a new form have the user select a row from a carefully crafted UI and return the single value result back to a combo style element on my main form. When less complicated lookup’s are required a drop down list with concatenated fields may have sufficed, but not anymore…

In the midst of a recent sprint I found myself needing a little more. The task at hand was to provide an easy way to select a job from a collection (currently around 2000 entries and growing), the problem was not everyone would want to use a single field, they may not know the job name. Some users would be more comfortable with the claim number, or the client name. Enter the XtraEditors.SearchLookupEdit control.

I almost tripped over this control whilst trolling through the extensive collection of items in my toolbox. The name intrigued me so I decided to investigate a little further and was surprised at the power this little guy punched.

In a nutshell it is a container with a grid, text field and button, but don’t be fooled, I found it to be fast, quick to configure and simple to implement. For me the steps were;

1. Add SearchLookUpEdit control to form
2. Bind to existing datasource (and specify field as return value)
3. Adjust column properties (keeping UI noise to a minimum)
4. Tweak a few specific appearance properties (finding the drop down width was a pain)
5. Hookup an event
6. Test

Because you can control all aspects of appearance you can pretty much make the style fit any WinForm design.

The power comes from the ‘out-of-the-box’ features on the control, users can filter, search, group, select columns etc and all without chewing up valuable screen real-estate. I know that from now on I’ll be looking to use the SearchLookUpEdit control in more places, and it taught me not to undervalue some of the ‘smaller’ common controls at my disposal.

(Picture taken from DevExpress website, my use of the control contain confidential data).