db4o: An Embeddable Database Engine for Object-Oriented Environments

Just posted details about this event for Scottish Developers in Glasgow.

The unique design of db4o’s native object database engine makes it the ideal choice to be embedded in equipment and devices, in packaged software running on mobile or desktop platforms, or in real-time control systems – in short: in all Java and .NET environments, where no database administrator (DBA) is present. db4o is used by some of the world’s most innovative companies, including Ricoh, Boeing, BMW, Bosch, Seagate, and Intel.

Jim Paterson describes the key features of db4o, and shows how to save objects in the database, use the db4o query mechanisms, control transactions and object activation, refactor databases, replicate data to a relational database and use db4o in a web app. You will also find out about extensive the developer resources provided by the db4o community.

Jim is a Lecturer in the School of Engineering and Computing at Glasgow Caledonian University. He is an author of “The Definitive Guide to db4o”, the first book to be published about db4o, and has written articles for the onJava and ASP Today websites. He has a particular interest in teaching software development. He has a PhD in Physics, and worked previously as a research physicist and as a software engineer.

Map of the venue showing nearby transport links

Room 16 is on Level 2 of the Continuing Professional Development Centre. The CPDC is on the left side (just past the bookshop) as you enter the university from the pedestrian entrance on Cowcaddens Road.

The event is FREE and all are welcome.

Tags:

How to… Run a .NET application without the framework

This is a question that comes up on forums with surprising regularity. It is usually at the point the poster is trying to run an application on someone else’s computer or create an autorun application or similar and discovers they they can’t unless the person already has the appropriate framework installed.

Well, never fear, there is a solution, albeit an expensive one. It is the Salamander .NET Linker, Native Compiler and Mini-Deployment Tool.

Finally, a disclaimer: I’ve never tried the above tool. I have no need for it. The only reason this post exists is that so many people have asked the question that I’m creating the post for my own reference purposes only.

Tags:

Curious about stats on my blog and website

Recently I added Google Analytics to my website and blog. It has been quite interesting to see what statistics it gave back.

For my blog a large number of people never leave the home page with 17% of all hits there. I do have quite a few recent posts up there and I guess there isn’t any reason for them to go any further than that.

The next most popular page is a post on “Why is it so hard to hire good software developers?” with 11% of the share. It is a relatively new topic so I’m sure that over time that will drop. However, it isn’t the newest topic around, so perhaps it is something people want to find out about. Perhaps others who are searching for software developers like to hear that there are people in the same boat. For people looking for a job, perhaps there are looking to see what employers are looking for.

What is more interesting is seeing the pages that have been up for a while. With 9% of all page views in the last week is a post on “Visual Studio 2005 on Vista” detailing my troubles trying to get VS2005 installed on Vista. This is obviously a problem that a lot of people are running in to.

With 5% of all page views in the last week is a post about a “SQL Exception because of a timeout”. So it is obvious that people are looking for information on that topic too.

However, what surprised me the most was that the single biggest search term that brought people to my blog was nothing to do with technology. The most searched term to bring people to my blog included the word “chocolate” e.g. “Chocolate Cake” or “Chocolate Crunch”. And it brought them to a page with a recipe for “Chocolate Crunch Cake

On to my website and I was interested to see that the most viewed page was a beginners article on “Passing values between forms in .NET” with a staggering 43% of page views.

The second most viewed page on my website was the article to go with the session I gave at DDD5 on “An Introduction to Mock Objects” with a mere 6% of page views.

So, what about SQL Injection Attacks (the article I consider to be the most important). It has just 4% of page views. Well, at least some people are concerned about database security. I just wish it were more people considering the number of times I see on forums some really poorly written code to get something out of a database.

All in all, I think this information has given me some ideas on what people are interested in and what they want to read. I hope I can therefore provide more information on related subjects that are of use to people.

Why is it so hard to hire good software developers?

Why is it so hard to hire good software developers? That is the question I’ve been asking myself recently. The company I work for is currently looking for two software developers and it is incredibly disheartening to see the quality of candidates.

First off the quality of the CVs. We’ve taken a two pronged approach to this. We used a recruitment agency and we advertised ourselves. What a difference between the two approaches! The CVs we got from the recruitment agency were at least sufficient quality to warrant an interview. The vast majority of the CVs we got from our advertising efforts were useless. Half didn’t even live within a commutable distance.

Of those that we did interview two thirds didn’t make it past the first interview. This is an informal meeting where we ask some questions based on what’s in their CV and try and assess their personality. If they mention that they’ve got SQL Server experience we’ll ask questions on that. If they say they’ve got Reporting Services experience we’ll delve a bit further.

We are looking for C# developers, but we don’t mind VB.NET guys because the main learning curve is the .NET Framework and that is the same for C# and VB.NET. The hundred or so differences come from the language syntax and that can be overcome in a short period of time.

The second interview is really a technical test. We give the candidate a specification and walk them through it. The application is sufficiently small that it is just possible to complete everything in the allotted two hours, but most don’t – and we don’t expect candidates to complete it, although we do expect that they will get a fair way through it. Part of what we are looking for is to see how their thought processes work, so the spec is sufficiently loose that they can make choices to show off their skills.

We’ve found that it really is the best way to discover if the candidate can actually do the work. The application is not difficult by any stretch of the imagination and we’d expect anyone with a few years experience or a computing or software engineering degree to be able to complete a fair portion of it. It is, admittedly, slightly larger the Scott Hanselman’s example of the Buzz-Fizz program. But, then, we also want to see how they would structure a more realistic application rather than just a single simple algorithm.

So, what would we recommend? Listening to DotNetRocks is a good start. Download it to your MP3 player or burn it to a CD and listen to it on your commute to and from work. Most people waste that entire time going to and from work, so start doing something useful with it. I vaguely remember a study that suggested that if you drive 12,000 miles per year (a 24 mile commute) you could learn as much as a 3 year degree course in 4 years.

Next, watching episodes of dnrTV will help. If you need to learn about some newer technologies then the Developer Platform Evangelists at Microsoft UK have produced an number of Nuggets – short 10-ish minute videos showing a single concept.

But, what is next for us? We are considering going back to basics. If we can’t find someone with the relevant skills then we’ll have to hire someone without those skills. But we can’t hire someone with a few years “experience” because they’ll want more money than they are worth, so fresh graduates or especially talented folk that are crossing from another field in IT will be what we are looking for.

Tags:

Feedback from DDD5

I’ve now received the feedback from the talk I did at DDD5. For the most part I thought the scores I received were fair. There were a couple of really scathing comments, but most pointed out things that I should work on to improve my presentation style.

The averages (out of 5) for each of the 4 things I was marked on were:

  • Overall: 3.68
  • Knowledge: 3.94
  • Presentation: 3.24
  • Content: 3.5

Most people did give me a lower mark for presentation – which I know I have to work on. I’m not the best at turning an already dry subject into something really exciting. A number of people commented on my initial nervousness, which is also true. I think that is something most presenters have, I’ve just not managed to hide it as well as some other people, and other than to a group of 4 developers at work this was the first outing for this presentation so I wasn’t sure how it was going to be received.

One interesting comment was to use yellow highlight. I though I did, but it turns out that my laptop is set to cyan. I will take that on board as I was looking at the screen in front of me rather than the projected image the audience saw.

The same person also suggested I use something called Zoomit. That comment seemed to concur with another that the fonts were too small. However, other than a brief moment when I first fired up Visual Studio, the fonts were set to 16pt which, when I asked the audience if it was big enough, I was told was perfectly readable. However, Zoomit may be useful so I’ll get that installed.

It also seems that I paused when moving between the code and the presentation. I agree that is something I have to work on. I am not good at multitasking, which is probably why didn’t say anything, however someone else suggested that to ease those moments it was best to just verbalise my internal thought processes just to let the audience know that I was still doing something. So, that is something I’ll try to do from now on.

One commenter said that I “introduced terms and abbreviations without explaining them”. I’m usually quite careful about that, but I’ll watch out for it in the future. It would have been nice to know what the terms were, that way I will be more conscious of them in the future.

One person was highly disappointed that I didn’t know much about TypeMock. Since my aim was to talk about the concept in general rather than about individual frameworks I didn’t think it was important to the presentation. A second person would have liked me to have delved deeper into the workings of RhinoMocks, the framework I was using for demonstration purposes. So, it would seem that people are interested in specific technologies. However, in a one hour session it would have been impossible to have explained the concept then shown off every aspect of each of the various frameworks, or even a specific one. It was, after all, only an introduction to the subject.

If all this seems a bit negative, it is because I’ve concentrated on the aspects that I need to improve or felt I had to address. I did get some very encouraging comments, including:

  • “The content was great and highly relevant”
  • “I came to DDD specifically to attend this presentation. I was not disappointed. I’ve already put what I learned into action.”
  • “Good Session”
  • “It was a good introduction to mocking”

Also, if I take out the the two scathing comments (outliers it’s called in statistics) out of the 35 people that filled in feedback my score increases a little bit. I don’t know how valid you think doing that is (but it makes me feel better):

  • Overall: 3.78
  • Knowledge: 4.06
  • Presentation: 3.34
  • Content: 3.63

Tags:

Comments are borked

There is something wrong with the comments on my blog at the moment – I’ve had reports of people not being able to comment. I am looking into this and will try and get something sorted out – there is a new version of the blog software I’m using so I’ll upgrade to that shortly.

If you do want to send me a comment in the meantime please use the contact button up at the top-left and send me one that way – I’ll make sure it gets put on the correct post (if you tell me what post it belongs to).