What a week!

Sue and I had been working our little tails off to get her office painted over the weekend so I took some time off on Monday. Tuesday morning when I got up I felt a bit weird, but didn't really think about it that much. By 11:30 I was not feeling good at all. Very dry cough, aches all over my body, particularly in my right ribcage. An hour later I couldn't stand it any more and went to bed and hoped this would pass. It didn't. Got worse and Wednesday and Thursday I had fever around 102-103

Sue's office is almost ready for her to move in! We have spent the last 4 days painting, replacing the trim around doors and windows and getting the place cleaned up. Sue still has some more painting to do, then clean the carpet and get the furniture in there and she will be all moved in. We should be to that point Thursday. This place looks nothing like it did last Thursday when we first saw it! As always these things take longer than you expect, but sometimes you just have to accept that things that the time they take and not get too stressed about it 🙂 Sue will do most of the remaining work as she needs to figure out how she want's to lay everything out but I will clean the carpet and help with some furniture assembly.

I got a new drive enclosure delivered today. Got the 1TB drive installed, connected via e-SATA and I'm moving my virtual machines over to get some extra room on my C drive. I simply hadn't paid attention to how much disk space the virtual machines were taking and ended up almost running out of disk space!!! I'm using VanTec NexStar 3 NST-360" enclosure. I already had two of them that I use for 1.5TB drives for off-site backups and I have been very happy with them. They are very easy to set up and this type comes with both USB and e-SATA connectors. VanTec has other enclosures that look exactly like this one but don't have e-SATA. The e-SATA enclosures come with e-SATA port that you simply plug into an existing SATA connector on your motherboard and thus get a free e-SATA port supporting 3Gbps compared to 480Mbps for USB2. Simple, easy to use and it just works!

Arnor Baldvinsson

We rented a new office for Sue today. We will be very busy over the weekend to set it up and get everything ready. The carpet needs to be cleaned and we need to paint the walls. We also need to get some furniture and move! I will keep using the office at home so we will have separate offices for the first time! She is picking up the keys tomorrow at noon and we are both very excited about her new office. To add to our excitement, Sue got the go-ahead on a new website contract this morning and I got an confirmation from a client today that he is going ahead with some updates to software that I have worked with him on and off for the past 10 years. So we are going to be very busy in the next couple of months!

I will most definitely still find time to work on my products and I will release an update to the Utilities again on Tuesday next week, September 21. I have been adding to the documentation and I might have the beginning of a new class ready for testing:)

I ran out of disk space on my computer the other day as I was setting up a new virtual machine. To cut a long story short, I had to get an external enclosure with eSATA connection for the drive as I had no more room in the box. I could not get it locally so I had to order it on-line. I hope it will get here before the weekend so I can move my virtual machines over to the new drive as soon as possible. This means that I have had to delay my .NET goal for another week and might have to skip it until the first week in October, but I will get there!!!

Arnor Baldvinsson

Our sister site, Icetips.NET is now up and running even though there is still not front page for it! This is where I will blog about learning .NET and post links, articles and information about resources that I find on my journey to learn .NET.

Every time I blog on Icetips.NET I will also post a short excerpt from it here with a direct link. I will also post on Icetips.NET if I write something interesting here, that other developers might be interested in.

Note that the forum and blog are barely up and running so there will be quite a bit of modifications made in the coming weeks. If you have tips on anything, comments or whatever, please post them on either the Icetips.NET blog or the Icetips.NET forums

Arnor Baldvinsson

6

Dave Harms, the editor of Clarion Magazine, published an article appropriately titled The future of Clarion.NET (subscription required).

To quote Dave: "Six years ago this month, at the only Florida DevCon of the decade, SoftVelocity's president Bob Zaunere announced Clarion.NET, the company's upcoming flagship product for Microsoft's .NET framework. "

Dave's conclusion is "Yes, Clarion.NET has a future, but at present it's not a very bright one. There's no AppGen yet, and past performance suggests that even if one does appear shortly it will take a long time before it is usable, particularly for newer technologies such as WPF."

So where is Clarion.NET?

From my perspective Clarion.NET doesn't exist. I bought a license a couple of years ago or so (don't remember exactly) and nothing much has happened since. I have not even bothered downloading the new builds. There is no application generator, no templates, just an IDE and a Clarion# compiler. I can just as well use Visual Studio and compile in C# or VB.NET. To me there are only two reasons to use Clarion#: Support for TPS files and queues. On the other hand, I don't want TPS files in .NET and from what I understand, collections and LINQ in .NET can easily be used instead of queues. So the advantages of Clarion# for me just aren't there.

Will SoftVelocity ever deliver Clarion.NET? I don't know. The product was developed outside of SoftVelocity and it feels like there is no communication about it. SoftVelocity deletes any threads from the ClarionSharp newsgroup that queries into the status of Clarion.NET. No information at all escapes except what SoftVelocity posts on their blog-site, the last one from just over a month ago, showing one screen-shot from the data pad and one screen-shot from the "Embed interface" which quite frankly is not looking like anything that is going to materialize anytime soon.

The silence of Clarion.NET

It is a well known secret by now that the Clarion.NET product was developed by Arcadia, a company in St. Petersburg, Russia. Arcadia has long experience in software development in Scandinavia. The contract was supposed to start in mid-2004 and take 4.5 years (or 500 man months) with a team of 10 developers. I don't see anything wrong with this, but something has definitely gone wrong in this relationship and one has to wonder if this project is dead. The absolute lack of public communication from SoftVelocity regarding Clarion.NET is worrisome - the silence is indeed deafening.

Starting something new

In the beginning of 2010 I decided to write off my investment in Clarion.NET and not have any expectation of it ever being released. This was actually a relieving decision as it transferred me out of a black hole that the Clarion.NET world had become and into the very exciting other .NET world! I went from negative to positive:) My commitment to the other .NET development environment was further strengthened as I started thinking about what benefits there would be to use Clarion.NET - and I found the benefits were precious little.

While I would miss some of the Clarion functions and syntax, I have done enough programming in both C and PHP to be able to embrace the syntax structure and case sensitivity of C#. I also have some BASIC programming in my background, BASIC being the first computer dialect I learned almost 25 years ago, so I would be Ok with VB.NET. I will blog later on what the initial pros and cons of C# vs VB.NET are for me.

Don't get me wrong: Just looking at all the stuff that is available for all the different options in .NET is an absolutely daunting task! But at the same time, it is energizing and fills me with optimism about programming because I see all those things that I can do! There are all those tools and products available in the .NET world for just about every conceivable task. And the millions of articles and blog posts about the various technical aspects are out there, too. Thousands up on thousands of detailed examples on sites such as Code Project. All right at my fingertips, ready for me when I need them.

What about Icetips products?

Does my decision to move to Visual Studio instead of Clarion.NET affect my support for Clarion as a desktop programming environment? Absolutely not! I will continue to work actively with Clarion, support my Clarion third party products, and add to those products, for a long time to come. I have absolutely no intention to stop using Clarion for desktop development, but I'm simply not waiting for Clarion.NET any more.

Considering Visual Studio

If you are considering looking into .NET - and in my opinion you should - you can download the free Visual Studio 2010 Express version right now and start playing with it! For the time being, I'm not sure what exactly the limitations are in the Express edition, but it looks like database access is limited to SQL Server Express and Access databases. Which admittedly should be just fine to start with, although it will not give you much freedom in accessing your existing databases unless they are in either of the supported formats.

The Professional Edition costs $549 if I'm reading things correctly. You can compare the various commercial versions to see what is included in each one. I have the BizSpark package from MS which is free to start, is valid for 3 years and costs $100 at the end and it includes a license for VS 2010 Ultimate so I'm good to go.

Learning .NET

The really cool thing about Visual Studio and .NET is that there are more resources available out there than any one of us can even imagine! As an example here is just one tutorial website for Windows Presentation Foundation at http://www.wpftutorial.net/

So where does this leave you? Where do you stand? What are you looking to get out of programming in .NET? What do you want to accomplish? Food for thought...

I have not done any .NET work yet. My plan is to start easing into it in the next month or so. I have some small stuff I can start with. Setting up a mySQL .NET provider, hooking up to my remote database and creating a browse using WPF will be my first step. I'll see if I can glue all the pieces together to make one browse app. I'm going to start messing with ASP.NET, set up a domain to test with online and see how it works. Then I'll take it from there. What are you going to do? Think about it:)

Starting the journey

In the coming months I will be taking a journey, studying .NET, experimenting with it and learning how to use it. I will blog about my experiences and perhaps I can help you along on your journey. I will shortly be setting up a new domain that I will use exclusively for exploring ASP.NET and SilverLight, which are my primary targets for .NET at this moment. I will also be exploring WPF, like I said, for some in-house programs, which quite frankly will mostly be to cut my teeth on WPF and desktop programming in .NET. My plan is to have something that connects to a database up and running before September 20!

Arnor Baldvinsson

1

I am really excited about starting to dig into Visual Studio 2010 and learn to work with .NET. I'm in the design phase for two "Software as a Service" (SaaS) products that I am going to do in ASP.NET. I'm also looking at creating a couple of small administration applications for myself using Windows Presentation Foundation. Those will be desktop applications (not web based) and will connect to our online mySQL database. Eventually they will be replacing parts of Clarion software that I have been using to maintain this database.

To get a nice test platform for VS2010 and MS SQL-Server 2008 I decided to set up a virtual machine with Windows 7 Ultimate 32 loaded on it. I had a ready made Windows 7 virtual machine, so I cloned it. It only had Clarion 6 and Clarion 7 on it and was only set up for 16GB disk size. The first thing I did was use the VMWare Disk Manager to increase the disk size to 32GB as I figured I would need some extra room.

I had asked around for what would be the best and most appropriate order to install VS2010 (Visual Studio 2010) and SQL Server (2008). It didn't seem that the order made a difference: one developer had installed VS first then SQL, so I decided to do that. Got VS 2010 installed without a problem. Did a full update of Windows 7, which took hours to complete.

Then I started installing SQL Server 2008. Windows 7 immediately showed a compatibility error and suggested to either get a newer version or immediately update SQL Server after installing. Since I was already installing I decided to go ahead and install it. During the installation I got an error and ignored it and everything seemed to be ok, except it didn't install the SQL documentation. Ok, so I figured I'd update Windows and it would update SQL Server. That did not happen and I decided to get the most recent version which is SQL Server 2008 R2. Downloaded it, which took awhile, because it is a 4.2GB download!

At this point I realized that I had made some mistakes along the way. I had completely forgotten to create snapshots of the virtual machine as I did the installs. Now that I wanted to go back, I could only go all the way to the beginning, which was from the day before! I had spent hours on installing VS2010 and SQL Server as well as Windows updates, so I was not happy about having to start over.

This time, after SQL Server R2 had downloaded, I snapped the virtual machine back to its initial state and started over. First Windows updates. Snapshot. Visual Studio. Snapshot. Everything was good, except this took me the better part of a day with all the Windows updates. The Windows updates just took forever - partially because at some point the installer had opened a window with some options and it appeared *behind* the installer. So it sat there for an hour or so, apparently working, but was in fact waiting for input on that other window behind it. 😉

I installed SQL server R2 and now I got even more errors than with the original 2008 install! The install ran very slowly and in the end, there were multiple errors. Worst of all, it had completely skipped all of the management tools!

Back to square one. Square two actually, as now I did have the Windows updates to start with. Now I decided I was going to change tactics and install SQL Server 2008 R2 first and then VS2010. Started with SQL Server and now it installed without a glitch and was much faster, probably took less than half the time it had taken before! This was finally done at 4AM, Tuesday morning. I took a snapshot and went to bed!

When I got up I picked up where I'd left and started installing VS2010. Everything went without a single hiccup. Once VS2010 was installed, I took a new snapshot and went on with doing Windows updates since I realized that I probably hadn't finished with them at the snapshot I had gone back to. That took another two hours, so I was not completely done with this until about 3PM on Tuesday.

If you plan on installing those two, make sure that you can roll back in case things do not go right! My advise, based on my experience, is to install SQL Server 2008 R2 before you install VS2010.

Arnor Baldvinsson

Even with all the wealth of information on the internet at our fingertips, sometimes it becomes a real challenge to find a solution to what seems to be a relatively simple problem.

For some upcoming work in Build Automator I wanted to be able to send keystrokes to a program. It somehow doesn't sound all that challenging, but I have spent the better part of today trying to come up with a solution. I have read hundreds of posts on multiple forums about this and have discovered that there are far more people that ask for this solution than those that even understand the problem, let alone who can give an intelligent answer. So far I haven't found a single post that solves it, lot of posts that give a hypothetical answer that looks like it should work, but doesn't, at least not in my case.

I have been successful in sending letter keystrokes to the editor window in NotePad, but trying to send something like Alt-F or Ctrl-O completely fails. So I'm putting this on the shelf for now even though I hate walking away from this, but I can't take more time on trying to find the solution at this point. Sometimes in programming, just like in poker, you have to know when to hold them and know when to fold them!

I got the Utilities build out last night while I was babysitting SQL Server 2008 R2 install and Visual Studio 2010 install. That was an interesting experience and I will blog about it tomorrow! I need to get some work in for my clients this week and next week I will be working on our products. I will also put in some work on the Icetips website which we have been working on behind the scenes for a while. Sue is re-doing almost every single page and it will be a very welcome update to the site!

Arnor Baldvinsson

Icetips Utilities build 1.1.2390 is available for download for all customers with a valid Gold Subscription.

This build contains complete documentation for the Date Class, File Search Class and INI Class. For more information please see the online manual and my blog entry from Sunday, September 5. Below is a detailed list of all updates and fixes in this build:

Updates, features:

  • July 2, 2010: Documentation done for File Search Class.
  • July 24, 2010: 22 new methods added to the Date Class: GetThisWeek, GetLastWeek, GetNextWeek, GetThisWorkWeek, GetLastWorkWeek, GetNextWorkWeek, GetThisMonth, GetLastMonth, GetNextMonth, GetThisQuarter, GetLastQuarter, GetNextQuarter, GetThisYear, GetLastYear, GetNextYear, GetLast12Months, GetMonthToDate, GetQuarterToDate, GetYearToDate, GetMonthFromDate, GetQuarterFromDate, GetYearFromDate. Documentation for Date Class updated.
  • July 24, 2010: Documentation done for Date Class.
  • July 28, 2010: 6 new methods added to the Date Class: DateDiff, DateAdd and GetDate to get date differences and SetWeekStartDay, GetWeekStartDay and GetWeekFirstDay that deal with different start day of a week. By default the week start day is set to Monday, but can now be set to any day. Documentation for Date Class also updated.
  • September 3, 2010: Added FreeFiles parameter to the ScanFiles method in the File Search Class. This allows the method to be called repeatedly for different folders or different wildcards without having to handle the files in the Files queue until all the files have been read.
  • September 3, 2010: Added attributes parameter to the FileExists method to Core Class. This allows the method to be used to find more than just FF_:Normal files, such as directories, hidden files etc.
  • September 6, 2010: Documentation done for INI Class.

Fixes:

  • July 21, 2010: HtmlToColor did only handle html color value strings that started with '#' Fixed so now it can handle html value colors without the '#' prefix. I.e. 'C1D8F0' instead of '#C1D8F0'
  • September 3, 2010: ScanFiles did not check if the path passed in ended with a backslash which caused an error. Fixed.
  • September 5, 2010: PROC attribute missing from SetFileAttrib method in Core Class. Fixed.

Arnor Baldvinsson

Monday September 6, is a holiday here in the US - Labor Day - and I am going to take the day off. Been working on a client project over the weekend that took longer than I expected but came out pretty nice. Some minor window cleanup left and I'm done with it for now:)

Today I installed Visual Studio 2010 on a Windows 7 Ultimate virtual machine using VMWare Workstation and I might mess with that a little bit tomorrow, as well as installing MS SQL Server 2008.

Other than that, I am barbecuing tomorrow! I have 3 racks of baby back ribs curing in the fridge with my own tried and tested dry rub. They'll go into the smoker at about 2pm tomorrow and cook low and slow for about 5 hours. It has been a while since the last time we had a barbecue and I can barely wait!

Tuesday I will get the new Utilities release out, see my earlier blog post. Everything is ready for it, but I do need to implement a call to TortoiseSVN in the Build Automator script to tag the Utilities build, which creates a new tag for it in the version control database. Tags are builds that are complete and should not be touched again.

I have a 1700 page monster book sitting on my desk about ASP.NET and another 800 page one about C# that I would like to start working through. So many things to learn! I may end up doing some studying on .NET tomorrow. Does that qualify as taking the day off? Hmm...

Arnor Baldvinsson

There will be a new build of the Icetips Utilities released on Tuesday, September 7.

Documentation is now complete for the File Search Class and the Date Class, and work was done in the Core Class, Date Class and File Search Class.

The main work in this build was on the Date Class. It has 28 new methods and the Date Class is now fully documented. This includes methods that are compatible with the DateDiff and DateAdd functions in Microsoft SQL. There are methods to get dates in the past and the future, such as GetLastWeek, GetNextWeek, GetLastMonth, GetNextMonth etc. For more information please see the online manual. Please note that the online manual is not 100% up to date right now but will be updated when the new release is uploaded on Tuesday. The new methods make it easy to do quick date calculations. Week calculations are ISO-8601 compatible and you can set any day of the week as the start date. If you see that some functionality is missing from the Date Class please let me know so I can continue to improve it. 🙂

There is also a new parameter for the FileExists method in the Core Class, which makes it possible to use it to check the existence of files or folders using the FF:_ equates as they are used for the Directory() function in Clarion. This makes it more versatile.

There are some very powerful methods in the File Search Class to scan for folders and files. I have made some minor improvement to the class, including adding a FreeFiles parameter to the ScanFiles method that allows you to call it multiple times and it will add the files to the Files queue rather than free the Files queue each time it is called. This increases flexibility of the method. I also fixed a problem with the ScanFiles method that I ran into when calling it with a fixed path and a wild card. In that situation it did not check if the path ended with a backslash which caused problems.

I am planning to get back on a schedule by releasing new product builds every other week or so. If you have ideas for new methods/classes, please don't hesitate to let me know!

Arnor Baldvinsson