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

Wednesday, April 29, 2009

Running MS Surface SDK on Win Vista 64 / Windows 7

I just found this great post (http://www.grumpydev.com/2008/12/26/surface-sdk-on-vista-x64/) on how to install the SDK on Windows Vista 64 bits and used it to get it working on my Win7 64 bits machine. Removing a couple of more launch conditions in the MSI did the trick for Win7.

As mentioned in the original post, no guarantees, but I'm happy I can leave our MS Surface unit outside my room now. You don't need additional heating in your room with the unit on :-) but you do need ear plugs due to the fan :-(. Ok for public spaces I guess but not in my office.

Bye,
Bart

Wednesday, April 08, 2009

Developing for MS Surface – First project experiences

Our client and of course my Twitter followers got a couple of updates during our first implementation of a real world MS Surface application. But I thought it would be nice to summarize my experiences.

Sorry about the quality of the videos: I will buy a more professional camera in due course.


The final product …

As said before a couple of times already: Microsoft deserve a big compliment for the software (and hardware) they delivered. It is so comfortable developing for the MS Surface unit if you have any experience in C# and Visual Studio. Even though I didn’t have any experience in WPF (which would have made it even easier) I was able to take off quite quickly and within matters of hours come up with the first working prototype of the application.

The application itself isn’t that hard or special. It presents product information, triggered by a couple of tags which are glued to the back of the business cards of the sales persons.

In this project we didn’t do the visual elements, but left that up to out partner’s visual designers. That kept me worried for a bit, because I know from experience that integrating visual designs sometimes can be a pain. Not this time though; the VDs of Heuvelman (the partner) did an excellent job and it must be said: everything fitted the first time.

During the development I had to take a couple of hurdles. First, I had to get acquainted with WPF and XAML. Since this was my first WPF program, all of that was a first. I did some experimenting some time ago, but working on a real project is a different cookie as we say in Dutch. But, I got the hang of it quite soon and information on http://www.stackoverflow.com came to the rescue more than once.

Also, the Surface Community site came to the rescue on a couple of occasions. And even though that site isn’t the best Microsoft ever created (to be very mild), the information on it helped on a number of occasions.

But the best part of this project was actually delivering the project and seeing it in action on Event 2009. The salespersons were going berserk seeing the end result and were full of adrenaline to start using the unit and software. I think a lot of sales deals will be done at the Heuvelman stand :-)

It was great fun working on this project, but the working schedule (14 continuous days of working from 8am until 12pm or even later) almost did me. Next project will have a much more healthy schedule.

I’ll keep you posted about next projects. If you want to look at all the stages of the project you can always check out Youtube at http://www.youtube.com/brooz2001.

Bye,

Bart

Sunday, April 05, 2009

Getting the hang of things in WPF

Today I found this website (http://nerdplusart.com/) with this movie (http://msstudios.vo.llnwd.net/o21/mix08/08_WMVs/BC01.wmv) on it.

I've been busy for about two weeks on a real WPF/MS Surface project now and I kindof got going pretty well. But only after seeing that video I really start to get WPF and appreciate Blend. I still think it can be improved (I'm using the Preview of version 3), but I think MS will get there. Right now, I think WPF/Surface/Blend totally rocks.

I will update in a couple of days and write about the then finished project.

Bye,
Bart

Wednesday, April 01, 2009

Weird problem in Windows Explorer on XP and Windows 2003

UPDATE

The cause of the problem is found. Somehow something screw up a part of the registry (and it wasn't me!)

Adding the info below to the registry solves the problem. So if you have problems selecting or moving items in Windows Explorer under Windows XP or Windows Server 2003, this might help you too.

REGEDIT4
[HKEY_CLASSES_ROOT\Interface\{0000010e-0000-0000-C000-000000000046}]
@="IDataObject"
[HKEY_CLASSES_ROOT\Interface\{0000010e-0000-0000-C000-000000000046}\NumMethods]
@="12"
[HKEY_CLASSES_ROOT\Interface\{0000010e-0000-0000-C000-000000000046}\ProxyStubClsid32]
@="{00000320-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\CLSID\{00000320-0000-0000-C000-000000000046}]
@="oleprx32_PSFactoryBuffer"
[HKEY_CLASSES_ROOT\CLSID\{00000320-0000-0000-C000-000000000046}\InprocServer32]
@="C:\\WINDOWS\\system32\\ole32.dll"
"ThreadingModel"="Both"
 


I have posted this question at the
Tech Support Guy forum too. In case you’re not reading that, here it is again. Your help is much appreciated.

=============
I have a weird problem, that you might be able to help me with. Our software is distributed using MSI's. We do regular builds and releases, about twice a month. Now, suddenly reports are coming in that by *deinstalling* our software Windows Explorer is acting weird. Usings cannot select files/folders with a mouse anymore. When our software is installed, all is well.
This only happens on XP machines and I've seen it on our own Windows 2003 server.
Does this give anybody a clue about where to look? How should I go about to find out what's wrong here.
Some background information

  • Nothing spectacular has changed in our MSI projects.
  • The effects show up only after rebooting after de deinstallation of the software. When installing the software, no reboot is needed to have Windows Explorer act normally again.
  • We create the MSIs using Wise version 6, using AutomatedBuildStudio to build and package the software. Nothing hs changed in those procedures.
  • The effects aren't present on WIndows Vista or Windows 7 machines.
  • I have used VeriTest-Rational Install Analyzer to compare before and after snapshots, but no clear signs of anything wrong there.
  • There is one entry in the VeriTest-Rational Install Analyzer log about an entry at HKCU\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached\{2559A1F4-21D7-11D4-BDAF-00C04F60B9F0} {000214E6-0000-0000-C000-000000000046} 0x401 being changed
  • There is another entry in the VeriTest-Rational Install Analyzer log about an entry at HKCU\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached\{2559A1F5-21D7-11D4-BDAF-00C04F60B9F0} {000214E6-0000-0000-C000-000000000046} 0x401 being changed
  • This already happened before April 1. No relation to Conficker suspected.
ANYTHING that you can come up with is much appreciated.
Thanks for now,
Bart

First release of first Surface app delivered

It has been extremely hard work (the project has an insane schedule), but the first release of my first Surface app has been delivered.

I have to give my respect to Microsoft (again) for the quality of their software with the MS Surface unit. Although I’m not an experienced WPF programmer at all it has taken me about a week to come up with this first release. I am a pretty experienced programmer though, but still, coming up with this, learning along the way, after only a week is pretty awesome I think. And that has as much to do with the quality of the MS stuff as with my own capabilities (cough…).

I’ll be working on this for the next week or so. Next week the units will be a the Event2009 event, together with this little app to show off the products and services of our (MS Surface) partner.

Bye,

Bart

Tuesday, March 24, 2009

Cool MIT Stuff

It has been quoted a couple of times already of course, but I still wanted to point you to some real cool stuff. A personal floating surface unit?

Bye,
Bart

Monday, March 23, 2009

Some 3D manipulation on a MS Surface

A couple of clients are interested in a MS Surface unit, but only if it can handle 3D. Well, it can! And pretty good too. In a very short time I created a small demo that will make you view a 3D model from all sides. It's not very sofisticated (yet) but will do quite nicely as a demo.



Update: this is what you can do if you have a bit more resources to spend :-) Our day will come!



Bye,
Bart

Thursday, March 05, 2009

HTC Touch Pro

Just a quick message about something else today: my HTC TouchPro. I was already pretty impressed with this phone, but  couple of things bothered me. The performance just wasn't good enough, switching orientation when activating something from the main menus was troublesome (most of times you would return to the start screen) and a couple of other little things that made you go 'grrrrrr'  everytime it happens.

But, HTC has released a ROM update which fixed all that. Especially the improved performance is great! One wonders why that isn't good enough in the first place :-|

So, if you have a HTC Touch Pro, go to the HTC website and pick your new ROM software up.

Bye,
Bart

Wednesday, February 25, 2009

Progress on the Surface unit

The title might give you the idea that there’s any. Well there is, sort of. I haven’t done any development lately, partly because there’s a lot of other stuff to do, but also because we had a lot of visitors coming to peek at the Surface unit.

Besides all that it is, it is also a very good marketing instrument for our company. Simply having it make the crowds turn up. And if we show the small examples on it that we have, probably convinces people already.

We now have two developers working on it full time (that also is a reason for me not to really press for development time on it for myself). One of them will be working on a Concierge-like program (using a map to display information about buildings) and the other will be working on moving stuff around on a 2D-map of a building, calculating all kinds of things doing that.

I will be focusing on marketing and finding business partners for the development on the Surface unit.

So, if you have any suggestions, don’t hesitate to contact me.

Bye,

Bart

Saturday, January 24, 2009

WPF beginner begins…

I am a programmer since day one of the PC. However, I have always been working on business applications, mostly working on documentation software. I recently started work on a MS Surface unit and that involves programming using WPF (Windows Presentation Foundation)  or XNA. Since we also do a lot of web stuff, I chose WPF for my current development work.

Programming in WPF is a much more visual experience than what I was brought up with (Cobol, Fortran, Basic, Pascal, C, C++, Smalltalk, et cetera, et cetera). An important part of WPF are the definitions in XAML (Extensible Application Markup Language). This XML file defines the objects in your window and application. I am currently using Microsoft Blend to edit the XAML files, but you can of course edit them with Visual Studio too.

I’m just beginning with C#, .NET, WPF, XAML and Surface. Our company software is written in Delphi/Win32, but we will make a transition to C# and .NET this year.I won’t be programming on that myself (that much) anymore, but I want to know all about the technology we will be using of course. So, I’ve taken up the challenge to write some software for our MS Surface unit to learn our new environment.
I might use some ‘wrong’ terms and concepts. I will make some beginner mistakes. Bear with me though: I’m learning along the way. This blog shares my experiences doing so for you to learn from or laugh at…

As said, I’m not brought up with a lot of graphics in my software, let alone handling or animating them. So, I’m not that comfortable (yet) with the way WPF-programmers work. But, I will learn along the way and will share my thoughts and experiences for others to learn or to laugh at.

My first program

I am targeting the MS Surface unit and I thought it would be nice to begin with a small game: Memory (I’m assuming here that everybody knows the Memory game). The logic in that is simple, it’s quite suited for the MS Surface unit, it will be a nice gift for new Surface customers, but most of all, it will be a good subject for my learning experience.

So, the functional specs are:

  1. The images used for the memory cards will be taken from the clients computer
  2. The difficulty can be set using a slider
  3. The memory cards animate when flipped.
  4. (there’s a couple of more specs, but those will come later)

So, how to start? The first steps were easy. Create a board with images. The actual flipping will come later.

Update #1: I was writing this while working on my game. I have now proceeded a bit more, but I got word that Microsoft had planned for a programmers course coming week. So, I’ll be going to Paris a bit later this week and I hope to get a bit of a head start. I will finish this game and I might even make it open source. I’ll let you know how I get along.

Update #2: I am also really not introduced to the world of 3D. However, I found this great little article that helped me on my way. So, the first hurdles are taken. Maybe I will be able to do some nice stuff on my own to coming days.

Let’s regard this post as a first in a series.

Bye,

Bart

Wednesday, January 21, 2009

MS Surface – Dead Easy

As mentioned, yesterday our surface unit arrived. It was my day off, so it was not until today that I could get my hands on it. Now, fact is that I am swamped in regular work, so I have to work late to get some extra stuff done. And, of course the family suffers, because I won’t be at home at night.

So, the family has to come to me, which has the added benefit of having a representative test user group around me:

The guy is four years old, doesn’t own a Wii, Playstation or Xbox (or any other electronic equipment). He can however handle the remote DVD control. The images show him only a mere minute after first laying his eyes and hands on the Surface unit.

I think it’s quite amazing and a good advertisement for the technology that a kid this young can start working with it immediately without any help. It won’t be too difficult to convince our clients that usability is not an issue.

Bye,

Bart

Sunday, January 18, 2009

Surface unit will arrive on Tuesday

We got word that our Surface unit will be arriving on Tuesday. All preparations are done. We also learned that MS will reuse the package material (40kg or so in weight :-|). I think that’s a good thing: package material that large in size would be a waste when simply disposed off.

Tuesday is my day off though, so it will be Wednesday before I can lay my hands on them. Our new programmers will be working on other things for the next 4 weeks now (we had it planned that they could start at the very beginning of the year). A bit of a set back in our planning, but we’ll have to take it as it comes.

I’ll keep you posted.

Bye,
Bart

Monday, January 12, 2009

Windows 7 up and running

I just upgraded my Vista Ultimate 64 bits installation to Windows 7 beta, build 7000. All is well and running smoothly I might add. It already feels like Win7 is much faster and responds quite a bit better than Vista does.

Also, good to find that Bitdefender simply continues to run, which was a concern to me.

All our own software runs fine too, so I’m happy for now.

Starting real work on this system starting tomorrow.

Bye,

Bart

Look out, Microsoft Surface - the iTable might just trump you in every way

This is presented as an alternative to MS Surface. I think it might be a Windows multi touch alternative though. Still, pretty cool stuff.

Look out, Microsoft Surface - the iTable might just trump you in every way

Thursday, January 08, 2009

Using Virtual Earth on Surface

I still haven't got the actual unit, but it should be somewhere between Germany and our office. Maybe today?

In the mean while I found http://blogs.msdn.com/publicsector/archive/2008/06/24/wpf-and-virtual-earth-revisited.aspx. This is an example on how to use virtual earth in a (proper) user control.

This helps a lot, as it will make virtual earth a 'normal' control. And it is now also pretty easy to use it on the surface unit (or at least the simulator). For our demo stages, this is good enough.

O the wonders of the work of others...

Bye,

Bart

Wednesday, December 31, 2008

Starting work on MS Surface

As you might know I will start work on a MS Surface unit shortly. Now, I've come up with a couple of ideas to implement. Some are more obvious (photos from one of our projects presented on a map) but others are more intriguing (using the unit as an aid for biological determination work). I also want to do some work on a 'social networking' application which can be used by 'customers' to interact with each other, even when they are not in the same location.

However, a client of ours came up with another idea. This client works in the 'office cleaning business' and would like an application that will scan a map of a building and by adding information to the map (dragging people to rooms, coloring floors to indicate complexity) the application will calculate the price for cleaning that building.

So, I think that will be the first application I will be working on. I will keep you posted - for as far as the MS license agreements allow me to - about the progress.

Bye,

Bart

Wednesday, December 24, 2008

When to take matters in your own hands?

Some time ago I wrote about the poor support on a component that I'm using (ProfDHTMLEdit). For some time now, it seems the component (or the author) is dead and buried. I've given up hope for a D2009 version of the control any time in the future.

Now, for me that doesn't matter, since I won't be porting my software to D2009 after all (at least, that's the current thinking). But, what about the other customers? As you can read in the newsgroup the customers are getting more desperate and - if I were allowed to - I would like to help them.

So, what would my (legal) position be? I think I could offer my services as a consultant to an individual ProfDHTMLEdit user. No problems in hiring somebody that will do some work on a component that you purchased with the sources included I think. But, to most people that won't be an option, because it would become too expensive (the control itself only costs $100 or so).

Another matter would be if I would make a D2009 version of the component available for all to download. Let alone if I would sell it. I think there would be some legal problems if I did.

But, when would enough be enough? When would I (or anyone) be allowed to publish a new version of a control that no longer is supported? What are your thoughts?

Bye,

Bart

Friday, December 19, 2008

Starting to blog about my C# experiences

Regular visitors to my blog know that I have been working with Delphi for the last decade or so. The love between Delphi and I has grown, although my old love (just about everything that Microsoft did and does) never died out. At regular intervals I did some things with VB, C++, C#, ASP and ASP.Net.

For me, 2009 will be a year where I will say goodbye to Delphi (for new things that is) and will move to C# and .Net for all of our software. There is just too big a gap between development in the C#/.Net world and the Delphi world, despite the recent releases of Delphi 2009 and Prism. Of course, that's IMHO only, but in my company that's what counts.

So, I will be writing more and more about C# and not that much anymore about Delphi.

The first new product that we will do will be using the MS Surface unit, which will be installed in my office the first week of 2009. I can't wait to get going with that. I'll keep you posted (as far as I'm allowed by MS, because I'm bound to a pre release agreement for the MS Surface unit).

Bye,

Bart

Ps: From now on I will only tag postings that are about Delphi only with the Delphi tag. Other postings (not tagged Delphi) won't get picked up by delphifeeds.com, so if you want to stay in touch, please RSS subscribe or come back on a regular basis.

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