Showing posts with label General. Show all posts
Showing posts with label General. Show all posts

Saturday, May 30, 2009

DevDays are over

The last couple of days I was at the DevDays and I enjoyed it for most of the time. There were a couple of sessions that made me waste some of my time (at some I even dozed off). But there were others that I fully enjoyed. The session by Sara Ford was fun because of her enthusiasm and energy. At one point in the session she (tried to) persist that a particular functioned wouldn’t work. But, I’ve go to hand it to her, she still followed some hints from me (sitting in the front row as ever) and was perplexed that that function did work. She got down from the stand and bowed for me in front of a 100 people or so. That was fun.

I also very much liked Rob Miles’ session on Micro .Net. He is a fun speaker and he showed how easy it is to create software for embedded (tiny) systems. I will definitely try some of that stuff out, if I can get my hands on some hardware that doesn’t need fiddling with. I’m a software guy and definitely not a hardware guy. Rob’s session on XNA was not much more that the first two pages of the tutorial, so that was a waste of time I’m afraid. I was baffled that he didn’t know MS Surface supports XNA too. Should have known…

I also ran into some former colleagues and it was nice to get up to date about their (working) lives.

Monday it’s back to work again. Although the rest of the Netherlands will enjoy a day off, I won’t (because I forgot it was a holiday and I promised some work to be done).

Not much technical stuff this time, but: if you are a Visual Studio user, check out Sara Ford’s web site for the VS tips. I’m sure there are a couple that you didn’t know and will like. I know I picked up a tip or two.

Bye,

Bart

Monday, November 17, 2008

Twitter in outer space

I have fallen in love with Twitter. Somehow it's interesting to know what people are doing. I find myself simply picking random Twitterers to find out what they are up to. I also found it very entertaining to follow Stephen Fry on his trip to Madagascar.

Is it voyeurism? Yes, probably, though not in a sexual way :-) I mean, watching the Delphi Twitters arouses only the geekiest of geeks ;-)

I also found that the astronauts on the Endeavour are twittering. That reminded me of a project of many moons ago that I did for Nasa.

4fe5_1I developed an application that used an Apple portable computer and a pen table of some sort. A Hypercard stack contained a lot of information (images, text, maps, et cetera). We developed a nice little application to browse that information. The table was used to draw something on top of the pages displayed.

Now, the fun thing was that there was one portable in the space shuttle and one on the ground. Whatever page was navigated to on either end, the others got to see too. And whatever was drawn on top of that page was shown on the other end too.

This helped communication between the astronauts and the ground people in explaining what to do at certain times. People on the ground would simply find a photo of the door to open and mark an X next to the lever to pull.

As someone that only failed to make a pilot due to a stupid motor cycle accident, you can understand that this little project (it wasn't that hard to do) is one of the dearest to me. I even got some memorabilia sent to me when that flight was over.

So, every time I see a little twitter from outer space, I think back to the time when I was still hacking my way through Hypercard. Sometimes it's fun being the older guy in the room :-)

Bye,

Bart

Thursday, May 29, 2008

I'll better my life as a designer, promised...

As you may read on my blogs I sometimes write for pdalive.com about using my smartphone and evaluating software on it. My last post was about Windows Mobile 6.1 on my TYTN II. Although the update was minor (from 6.0 to 6.1 is a small step after all), there is something in this update that made me realize something important about creating updates of my own software.


There is a couple of things in WM 6.0 that I always did wrong. E.g. when I want to lock my phone, I press and hold the red 'hang up' button. This locks the device so I can't make an accidental call to someone (something that happened quite a lot before I made a habbit of locking my phone). But, when you lock the phone, it locks with the current application in front. Most of the times I want the home screen active before I lock it. So, I made a habbit of activating the home screen before I locked the device. Frequently this means unlocking the phone, activating the home screen, and lock the phone again. But, I also want the first page of the HTC pluging (which displays a clock) active. So, most of the times, I unlock the phone yet another time, activate the first page on the HTC plugin before locking it finally.

Besides all the 'major' improvements in the WM 6.1 update, this is something that either Microsoft or HTC now does for me. Whenever you press and hold the read 'hang up' button, the home screen is made the active application and the first page of the HTC plugin is selected before locking the device. Apparently, other users found themselves performing the same procedure as I did in WM 6.0.

Now, what's all this got to do with my life as a designer? Well, I realized that I was very please to find such a small improvement in a new release of the software. It's not something a sales person can use to sell additional licenses with, but it is a change that makes the life of a uses just that tiny bit better.

I want to add more of such things to the releases of our own software. I want my users to get the same pleased feeling about our software when they start using a new release. I want them constantly thinking: hey, that's great! Simply because a little function or feature just does it's job a bit better.

From a commercial point of view it might be much better to have big new features in your release (like support flow charts in our upcoming main release version 6). But, and that is the promise, I will make sure that version 6.1 will have a big focus on all those little things that can make you go oooh. I think in the end, that will pay off, even from a commercial point of view.

Bye,
Bart

Tuesday, April 22, 2008

The top 10 tools every (Delphi) programmer needs

This week I was at a client site to talk about our ways of developing software. Our client uses Delphi for developing their software too and are contemplating using DevExpress' components for their next generation software.

I was stunned to find that (until now) they only use Delphi. That's it. No other support tools or component libraries (apart from the Virtual Tree List).

That meeting inspired me to list the tools I think are absolutely necessary or at least very helpfull in developing (Delphi) software.

1) A professional component library.

As you may have guessed DevExpress is my top one favorite. I hardly need any other components to implement a professional user interface. There is *no* way you can get better results for the amount of money you need to spend on the library. I would always recommend the VCL subscription. It will set you back $500-$1000 every year but you will get a ton of components for that.

There are a couple of alternatives that you might want to look into. I'm sure that I will get some recommendations in the comments on this post :-) Let the list grow...

2) A logging tool / component

Of course you can use OutputDebugString to print debug statements or you can write your own logging tool. But there are a couple of professional libraries out there that already have done that for you (and more than you probably think of at first) and that are extremely usefull.

My favorite is Raize's CodeSite, but SmartInspect is very good also. Again, I'm sure there are others out there.

3) An exception catcher

I don't know another word for this type of tool, but I'm using two actually. Madexcept (which is my favorite, and only $25 for a commercial license) and EurekaLog. It will help you explain exceptions, especially when your software is already in the wild out there.

4) A bug administration tool

There are a couple, but my favorite is FogBugz. It's reasonably priced and does the job very well. It also has a simple but very effectie planning and time tracking feature. It will handle registering the status of issues, mailing to clients, handling received mail, et cetera. Excellent stuff.

5) Version control system

Now, I was perplexed to find that the client I visited didn't use a version control system. I couldn't think of a workable environment without it. We are using Visual SVN Server and Turtoise as a client. Even if you are in a single developer environment you should take the time to set this up. Don't let the costs scare you: it's free...

6) Creating setups

Every piece of software should be delivered in a setup. There's a couple of free (and not so free) tools out there, but we are using Wise for Windows. That's a bit old actually, but does the job very well.

7) Build tools

Now, eventually you have to deliver your software. You can build your software and assemble and distribute the setup by hand, but invest some time in setting up a professional build tool. Once you got the right scripts set up, delivering your software is a snap. We use Automated Build Studio. I actually wrote a testimonial on that which you can find on their website. Good support too.

8) Debugging tools

I don't use many other debuggers from the one in Delphi, but if you need some special things (like profiling the performance of your application), you might want to look elsewhere. We are using AQTime but I don't need it that much to be true. It's only at special occasions that I start that.

9) Unit testers

Every other month or so I tell myself I have to develop some unit tests. I never get to it, but writing this piece makes me a firm believer in unit tests again. I will, honestly, setup some unit tests.... Really, you should do it to.

10) Documentation

Now, here's a bit of plugging our software. How could I ever use anything else but our software for that? Google does it, SAP does it, Microsoft does it, so I'd better use it myself too :-)

If you want more information on what our products can do to your documentation (not only as a technical documenation tool, but for a great variety of documentation needs), please don't hesitate to contact me.

That's my list. What do you have to add, strike or comment?

Bye,
Bart

Thursday, April 17, 2008

DevExpress apparently will support unicode with their controls

It is not official yet, but in one of the Delphi news groups there was the following reply from DevExpress' Julian Bucknall to a question if they will support Unicode.
Re: Delphi 2008, Unicode and Dev Express

Tony

On Wed, 16 Apr 2008 15:22:46 -0500, Tony Caduto
wrote:

>Anyone know if DevExpress is going to release versions of the Quantum
>Grid etc that will be Unicode Compatible with Delphi 2008?

Duh . Of course we are.=20

You know you can just email me if you have questions like this. Anyone
can. Heck, I don't even try and hide my email address with DOTs and
ATs.

--
Cheers, Julian

-----------------------------------------------------------
Julian M Bucknall
CTO, Developer Express, www.devexpress.com
julianb@devexpress.com

Personal blog at http://www.boyet.com
Company blog at http://community.devexpress.com/blogs/ctodx
Author of "Tomes of Delphi: Algorithms and Data Structures"=20
Read my articles in PCPlus every month
-----------------------------------------------------------


Kind of makes my day :-)

Wednesday, April 16, 2008

Spending a lot of time on your support department pays off,

I am using third party controls wherever I can. If I can buy the stuff that I need, we don't need to develop it myself. Buying software components is always cheaper than developing them yourself.

If you look at two component(s) (sets) that I am using (DevExpress Suite and ProfDHTMLEdit) you can tell which gives good value for money. We spent $3000 on DevExpress software and about $100 on the ProfDHMLEdit component. DevExpress is way cheaper for us and I will always recommend that to others. ProfDHTMLEdit has proven to be very expensive and I won't recommend it to anyone.

I'll explain why. But first, let me emphasize that the two software packages don't compare in functionality. The DevExpress package is much bigger and serves quite different purposes then ProfDHTMLEdit, hence the difference in price. But, that's not the point. The point is: what do I get for my money, support wise. And how does that make you feel as a customer.

Another thing to know is that I realize that DevExpress is a much larger company then the single person that supports ProfDHTMLEdit. But, again, that is not the point. The point is: what does attention, curtosy and friendliness do to you.

The Bad Support Scenario
Once upon a time I started to use ProfDHTMLEdit. I was looking for a WYSIWYG XML editor, couldn't find a suitable one, and ended up with ProfDHTMLEdit. It is a HTML editor with no special features to support XML. However, using some tricks and stylesheets I was able to make into the light weight XML editor that I was looking for. Usage of our software grew and I was beginning to get strange bug reports that were caused by ProfDHTMLEdit. I looked high and low but couldn't find a cause nor a solution. I contacted the author of the component and at first he was very helpfull in trying to locate the problems. But, after some time it became clear it wasn't the usual kind of problem and he sort of gave up. I tried to insist, offering to travel to him in Russia, looking for the cause together. But, he wanted a lot of money for that (starting with a 'setup fee' of $1500) and that made me move away from that option.

I tried other components, but there still wasn't a good alternative available. I continued debugging, tried wild guessed work arounds, all to no avail. To make a very long story short: after two years I found help with Marco Cantu and we were able to solve the problem in the end. It was all caused by a memory corruption in the ProfDHTMLEdit control. We were even able to create a good work around for the problem.

I reported this (including demo program of the problem) to the author again and also found that my work around benifitted other users. I have had no official reaction or software update since. In general, the questions asked on the support forum are answered in one sentence, sometimes a single word. No thank you, sorry, did it help? None of that. You feel like you are a burden to the supplier instead of a customer.

I never did a calcuation of the actual cost of this simple, one component. But it must be in the many tens of thousands of euros. Remember the original purchase price was about 100 euro.

The Good Support Scenario
As said earlier, we spent a lot of money on the DevExpress components. Starting with buying the one component pack, gradually we used more and more DevExpress components and ended up with a VCL subscription (worth $600 / year). All in all a couple of thousand dollars changed hands.

In the years that I have used the DevExpress components I have reported numerous bugs and questions with DevExpress. Let me just describe the typical flow of support messages.

  1. I report my problem on the website. Using a form I can supply the necessary details, search existing questions and knowledge base. If it is a new problem or question I can submit it.
  2. I will be notified when the issue is accepted (or declined) and will be informed when:
    1. The issued has been reviewed
    2. An answer was given
    3. A suggestion for a new feature is accepted
    4. The new feature is planned
    5. The new feature is actually implemented
  3. If the answer to a question cannot be described in text only (in a few lines), a sample project is always supplied.
  4. I can respond again using text, modifying the sample program or whatever I feel is the right way.
I will always get a prompt answer. If a solution or answer is not easy to give, they will tell you they need more time. You can track the issues you have opened. You really feel there's somebody on the other side that is working with you.

If I had to pay the hours that the DevExpress support people spend on me, I probably owned them another couple of thousand. And, having such excellent support, saved me a lot (and I mean a lot) of time.

The point and the benefits

Working in a software company myself I can see where the benefits are with excellent and abundant support:

  1. Your customers think very highly of you.
  2. They will always recommend you to others.
  3. Your customers will give you much more feed back, which is invaluable to you. You will know precisely what they want.
  4. Your customers will probably come back to you without thinking twice.
And probably there are a couple of other reasons to think of.

In any case (and I have writting that down a couple of times before): the support team of DevExpress is that level of support that we strive for. I can only hope we can reach that in our live time.

Bye,
Bart

Ps: right after posting this, I found an artical that touches some of this
Ps2: coincidence or not? Only hours after I posted this, I got a response from the ProfDHTMLEditor with an official solution to the 2-year old problem... Maybe blogging is gooed for something.

Monday, April 07, 2008

Rediscovering FogBugz

This weekend I had a bit of a crisis because I couldn't see the forest from the trees (is that English at all?). There is simply so much to do, that I panicked a bit and wondered how to solve that.

I thought it would be best to make a list of things to do. Sometimes that helps to realign your thoughts. First I started typing the list as tasks in Microsoft Outlook, but I realised that I tried that many times before and I simply don't like that. So, I looked further on at the tools we have. I realized that we use FogBugz for storing our bug reports and feature requests, but I could also use it to create my own lists.

I did know FogBugz has a couple of things that we don't use (wiki, discussion board) because I think that user interface is too simple. But I found that, after entering my task list and estimate the time needed for that, FogBugz has a great feature. It can calculate if a planned release date can be met or not. It will also tell you the probability that you will make that date.

Even based on this weekends work it already tells me the probability for the next release (about 20% :-(). I can imagine that, if you use it to plan bigger amounts of work of more people, it can be a really helpfull thing. So, we will be good boys and use that feature of FogBugz and see if it helps.

If you don't know: FogBugz s created by FogCreek, a company with a state of mind much like ours. Just read http://www.fogcreek.com/About.html.

Bye,

Bart

Saturday, April 05, 2008

Namechange

We are thinking of changing the name of our company from Sevensteps to 7-Steps. Not a big change, but to see what it would look like in documentation, I will try it out for some time on this blog.

Bye,
Bart

Update: I reversed the title of the blog (and other general info). It probably won't be 7-Steps. Maybe not a change in name at all... We'll keep on thinking

Investements in hardware - continued...

In one of my postings I wrote about investing in hardware. Sometimes this involves a lot of money (computers, beamers, et cetera). Sometimes the investment is small but the gain is large.

Last week we bought a couple of pcmcia Gigabit network cards for our portables. For EUR 25 per card our networks speed increased 10 times! Now, that's value for money :-)

We are currently looking at a new fibernetwork that is being rolled out in our neighbourhood. For a mere 350 euro / month we would get a 1Gb network connection.... That would mean 100x our current upload speed... I canb hardly wait; working at home using a remote connection would be so much more comfortable...

Bye,
Bart

Thursday, April 03, 2008

When do you decide to do a redesign of your software?

I'm working like hell right now on the implementation of a new feature of our software in oder to support flow charts. With the flow charts, and accompanying editors and publication engine plugins, an author can add flow charts to describe a business process, work flows and stuff alike.

The flow charts are, in the tradition of the Sevensteps approach, object oriented and stripped from whatever visual markup that could be there. If you want a green flow chart element: fine. But, first create a style for that and apply it to the flow chart object. Want a italic text? Sure, but change the style to do that.

This approach enables us to have a true single source system and reusable content objects in our CMS-es. But, yesterday I was working on the styles editor and the flow charts editors and found a flaw in my design. The handling of actually applying the styles was programmed in the style editor, instead of in the flow chart object. Although the style editor worked beautifully, I realised my mistake when working on applying the styles for the actual flow chart objects. I found myself reimplementing the same code again.

Although I am under enormous time pressure, I decided to change that implementation and moved the code for applying styles to the place where it belongs: the flow chart objects.

It all took another day of my available time for all this (and I am running out of time already), but I am assured to know that later on I will be glad I did it. Right now it feels like time wasted, but I know better than that :-)

I have one rule that I don't move away from, no matter what: if you decide to do something, do it right, or don't do it. If you do it wrong, and - worse - if you know that it's wrong, it will bite you later on. It might take a day, a week, a year: you will regret it.

So, the answer to the question is: you do a redesign if you know that it's wrong. Don't change it and it will haunt you. Do it over again, and you'll be happy in the end.

Bye,
Bart

Wednesday, March 26, 2008

New hardware is always a thrill

I admit, I'm a gadget lover. And gadget lovers always get a buzz when something new pops up. This time it was a new mouse. My old one was worn out, it just didn't work properly anymore. So, I got myself a new mouse, a Logitech MX Revolution. It's an expensive one, but luckily we have a motto in our company: our hardware is our tool and we should get the best available.

This thing has one function that I haven't had before. The scroll wheel can have two modes: one light, fluent scroll mode and one 'clicking' scroll mode. By default (as far as I have found out yet) browsing on the internet uses the fluent mode and all other programs use the clicking mode. To me it means that scrolling through my code uses the 'clicking' mode, which is great because it clicks at every scrolled line. The fluent mode gives you a 'soft' feeling when browsing the internet, which somehow eases my mind. I don't feel as rushed as before when reading webpages. Funny how such a thing in hardware feedback can set your mind.

I can recommend adopting our motto: investing in hardware is never bad. It's much better to spend some money on fast, good performing hardware then having a mindset that is uncomfortable. Feeling not well when working can cost you money.

Bye,
Bart

Friday, March 14, 2008

What a differance a machine makes...

Yesterday I replaced our old build machine (the dedicated machine that creates the builds and setups for our partners and products) with a new one. The old one was, well, old. The new one has two processors on board, 4Gb memory and a fast harddisk.

The build time of our largest product (>100Mb in setup, with a lot of files and documentation) took 55 minutes to build on the old machine and a mere 4 minutes on the new one.

I actually decided to start developing on that build machine using a Remote Terminal session and that has changed the experience of programming quite a bit. A recompile of a product takes an average of 2 minutes on my own computer (depening on the number of sources that has changed since the last compile of course). Recompiling the complete product on the new sever takes 11 seconds. That actually changes the experiencing of programming. I'll let the compiler do more work (e.g. check syntax) than before.

I can recommend investing in good hardware to anybody; it's money well worth spent.

Bye,
Bart

Thursday, March 13, 2008

Getting back to blogging...

Since Google is now a customer, I think I should do well to do some blogging on blogger again :- Actually, since they signed up, we are in the middle of some interesting changes in our business model. More about that later.

We are on the verge of releasing version 6 of our software engine. We decided to make some pretty drastic changes to the user interface at the last minute. Due to our object oriented way of programming this won't interfere with our release plan too much. We thought we must use this opportunity to bring the UI back to standards. After all, the last major release was more than two years ago.

After version 6 is released we will release a new product that I think might change the way we work. More about that later again;I've gotta get back to working again. We installed a new server for our automated builds and that machine is about 20 times faster than the old one, so there is not much waiting involved anymore. I used to take that waiting time as an opportunity to do some other stuff, but that's history now. I will have to make some proper time for blogging and stuff like that.

Bye,
Bart