Thursday, March 30, 2006

Data Application Block for Firebird SQL

The Firebird SQL data application block is intended to speed up development, and it should be used in conjunction with data layer classes in much the same way as Microsoft’s data block. The sample included with this article uses the embedded Firebird SQL database (included in sample) to demonstrate the use of the application block without having to bother setting up a database.

Firebird SQL data application block was inspired by the Microsoft Application blocks. The block provides overloaded methods to query a Firebird database which return a dataset, data table, or integer in the case of scalar database calls. An additional overload method takes an existing dataset as a parameter and fills the results of a stored procedure send as parameter as well.

Link

Visual Studio Information for Borland Delphi Developers

Marco Cantu has a take on Microsoft's Borland Delphi and Visual Studio Information page.

On a side note, our company will most likely do development in both Visual Studio/C# and Borland Delphi (7 and 2006) for future projects. As I write this, I am waiting for my Delphi 2006 upgrade to be delivered. From what I have read, it seems like a very solid upgrade. As far as Visual Stuiod 2005, I have been very pleased IDE.

Update: Tim Anderson has another take.

Wednesday, March 29, 2006

Genghis updated for .NET 2.0

Genghis is a set of extensions built on top of .NET and integrated with WinForms to provide application-level services in the same flavor as the Microsoft Foundation Classes.

This release is targeted for .NET Framework 2.0 RTM. It contains earlier controls migrated to .net 2.0 and new controls added to the existing list.

(via Chris Sells)

Tuesday, March 28, 2006

Quality Control Charting Software

Many years ago, we created a Quality Analysis application. It is still in use today. One of the features of the application was a real-time SPC module. It was a pain to create the SPC chart. Today, I found a vendor who now has quality control charting software for .NET (C# and VB.NET). The vendor name is Quinn Curtis. The name of the set of components is SPC Control Chart Tools for .NET. You can download the demostration program here.

Man, to have these controls back in the day!

Monday, March 27, 2006

Source code for CLR\BCL 2.0 - Rotor v2.0

Brad Abrams blogs about Rotor v2.0. It allows you to look at (Brad writes "mostly") the real source code from the CLR and BCL.

Double Casting Anti-Pattern = Bad!

Julian Bucknall has an informative post on on avoiding the inefficent double casting anti-pattern. Need to remember this post!

Bad:

    public static int DoubleCast(object obj) {
if ((obj != null) && (obj is Foo))
return (Foo)obj.Length;
return -1;
}
Good:
    public static int SingleCast(object obj) {
Foo foo = obj as Foo;
if (foo != null)
return foo.Length;
return -1;
}

Making Considerate Software

Jeff Atwood has a post on making considerate software. The list comes from the book About Face 2.0. I too have the original version of the book. Should probably pick up the updated one too.

Considerate software:

  1. takes an interest
  2. is deferential
  3. is forthcoming
  4. uses common sense
  5. anticipates needs
  6. is conscientious
  7. doesn't burden you with personal problems
  8. keeps you informed
  9. is perceptive
  10. is self-confident
  11. doesn't ask a lot of questions
  12. takes responsibility
  13. knows when to bend the rules

Sunday, March 26, 2006

Project Collaboration Utopia - Basecamp

James Avery is starting a new book with Jim Holmes. James mentions they use Basecamp to manage the project. We need to look at this for our collaboration tool. Pricing isn't bad either.

Basecamp is a unique project collaboration tool. Projects don't fail from a lack of charts, graphs, or reports, they fail from a lack of communication and collaboration. Basecamp makes it simple to communicate and collaborate on projects.

It's elegant, easy, and web-based. You don't need to download, install, or configure anything (no IT department required!). All you need is a web browser and an internet connection. And don't worry, your data is safe with us.

Basecamp makes it easy to centralize group communication with co-workers and clients.

Assign to-dos and tasks
Post messages and gather feedback
Simple scheduling and permissions
Share files internally or with clients
Track people's time

Many Software Requirements and Design Posts

Scott Sehlhorst has some very good posts on software requirements and design. Some I have mentioned previously.

  1. How to create personas for goal-driven development
  2. Interaction design and structured requirements
  3. Structured requirements
  4. Interaction design process
  5. Requirements vs. design - which is which and why
  6. Software requirements process and roles
  7. Kano techniques to prioritize features
  8. Multi-release requirement prioritization strategy

Wednesday, March 22, 2006

NUnit Code Snippets for Visual Studio 2005.

Scott Bellware has listed some NUnit Code Snippets for Visual Studio 2005.

Interaction Design Process Overview

Scott Sehlhorst has a written an excellent article titled "Interaction design process overview".

Scott also has another article, "Software design and specification and making movies", a good comparison between software development/design and the movie industry. I know there have been some posts, can't find them now, comparing software development and construction.

Tuesday, March 21, 2006

Debugging using Tracepoints

Jessica Fosler has a good debugging tip when using Tracepoints.

Instructions for creating a tracepoint.

Two articles on concurrent programming

Vance Morrison has put together two articles on concurrent programming.

  1. What Every Dev Must Know About Multithreaded Apps
  2. Understand the Impact of Low-Lock Techniques in Multithreaded Apps

Open Source BI Trend Will Grow

The Open Source BI Trend Will Grow - Here's Why

(via Nishith Singh)

Sunday, March 19, 2006

Detecting duplicate source code with Simian

Simian looks like an interesting tool to help check for source code duplication.

Simian (Similarity Analyser) identifies duplication in Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic source code and even plain text files. In fact, simian can be used on any human readable files such as ini files, deployment descriptors, you name it.

List of O/R Mappers and Code Generators

Johnson Smith has generated a list of O/R Mappers and Code Generators (with links).

SharpToolbox has a more comprehensive list of object-relational mappers and persistence tools. (via Anonymous)

GenWise Studio is missing from the list (via Anonymous)

Blogger Issues

Blogger has been having issues with some of their filers. You can read about it here and here. Unfortunately, my blog must be on this filer because I have been having issues with the 403 Forbidden error as well as multiple publishing errors. Today, it seems to be up and running. I know my blog has been down from time to time due to other issues. Hopefully since Blogger is now part of Google, these types of issues can be avoided.

In any event, as I mentioned in a previous post, I am thinking about moving off of Blogger to WordPress. I have created another blog site which I plan on updating concurrently with my Blogger site - dual maintenance. I really like the WordPress interface, themes, and ability to define categories. Hopefully this does not cause any confusion. WordPress does allow importing of Blogger posts into WordPress so no old posts will be lost.

Friday, March 17, 2006

Compiling Delphi code for .NET 2.0

Daniel Wischnewski on how to compile Delphi code for .NET 2.0 using the dccil command line compiler and the --clrversion parameter (and a couple of other tricks).

(via Hallvard Vassbotn)

Thursday, March 16, 2006

Great Blogger on Usability - Kathy Sierra

Thanks to Scott Sehlhorst for pointing me to Kathy Sierra's blog - Creating Passionate Users. Excellent stuff!

Proposed Requirements for the Windows Vista Logo Program for Software

Link to Document

Business Intelligence's Seven Fatal Flaws

Business Intelligence's Seven Fatal Flaws and Gartner Identifies the 'Fatal Flaws' of Business Intelligence

  1. Delusional deployments ("If we build it, they will come.")
  2. Cultural calamities ("Managers need to negotiate the numbers.")
  3. Data demons ("Data quality problem ... we do not have one.")
  4. Standardizing sellers ("Our enterprise applications vendor will deliver the best solution.")
  5. Promoting evolution ("Darwin was right -- BI projects need to evolve.")
  6. Over outsourcing ("We can outsource the whole thing.")
  7. Demanding dashboards ("Just give me a dashboard!")

Wednesday, March 15, 2006

Sell Software First

Scott Sehlhorst has an post titled "We must sell software first". Scott writes in order to sell your product, users must see value in the product. Also, over time, the product must continue giving users value. One way to get value is for the product to be desirable.

Scott goes on and references a great post by Kathy Sierra on 10 ways to make your product more desirable. They include:

  1. Pay attention to style.
  2. Pay attention to the emotional appeal.
  3. Show it in action…with real people.
  4. Don’t use pictures of generic shiny happy people that have become cliches.
  5. Make sure it’s clear to prospective users how this helps them kick ass.
  6. Appeal to as many senses as possible.
  7. Make it meaningful.
  8. Make it justifiable, so the user doesn’t have to feel guilty.
  9. Support a community of users.
  10. Never underestimate the power of fun.

Data Mart vs. Data Warehouse

Nishith Singh's take

Software Development Magazine - No more

Larry O'Brien, who founded Software Development magazine, writes the magazine will cease publication. It is being absorbed by Dr. Dobb's Journal. I can't count the number of magazines which have ceased publications.

1. Delphi Magazine (still around but online only)
2. Delphi Informant
3. Software Magazine
4. Many others

Guess Eric Sink called it.

Julian Bucknall moving to Developer Express

One of my favorite vendors is Developer Express. Julian Bucknall announced yesterday that he will be replacing Richard Morris at DevExpress. With Richard leaving and Julian coming, I know DevExpress will still be in good hands.

Sunday, March 12, 2006

Creating a unique or semi-unique ID in .NET

Creating a unique or semi-unique ID in .NET. Some very good links in the comments also.

(via Rick Strahl)

Automated Code Coverage and Unit Tests Tutorial

Short tutorial on how to use a code coverage tool and unit tests. Examples in C#.

Prioritizing software requirements across releases

Scott Sehlhorst/Tyner Blain is fast becoming one of my favorite bloggers (another favorite is Dennis Forbes). Scott has an excellent post titled "Prioritizing software requirements across releases". This is something every software house deals with.

Software requirements for migration projects

Joy Beatty, director of services at Seilevel, has a posts about gathering requirements for migration projects (here and here).

Scott has included his own thoughts on the subject. Very informative.

A common enterprise software project is the replacement of a legacy system - duplicating functionality in a new system that exists in an old system. This type of project usually has very different constraints than a “new application” project. We will look at the characteristics of migration projects to understand how we should approach them to assure success.

The techniques that have been designed for development of new applications do not always work when migrating an existing software system to a new platform. In a migration project, change management plays a key role in determining how we manage the requirements, prioritization, and scheduling of delivery. The impact that change-management has is determined by where the migration project lies on the migration continuum.

(via Scott Sehlhorst/Tyner Blain)

Simulate Low Bandwidth for Testing

Sahil Malik has a post on how to simulate low bandwidth for testing. For example, 28.8K Modems. Directions in Sahil's post.

Good reference point.

Good (no, Very Good!) .NET Books

As you know, I'm a huge geek book-a-holic. It's a disease. My most recent two "hits".

CLR via C#, Second Edition
CLR via C#, Second Edition by Jeffrey Richter

Practical .Net2 and C#2: Harness the Platform, the Language, the Framework
Practical .Net2 and C#2: Harness the Platform, the Language, the Framework by Patrick Smacchia

Sahil Malik pointed me to Smacchia's book. Thanks for the tip.

Both so far have been excellent books.

Thursday, March 09, 2006

Nick's Plan for DevCo

Nick Hodges has some interesting thoughts on DevCo (new Delphi Company).

Wednesday, March 08, 2006

Managed Spy - A new way to look at Windows Form applications

Managed Spy: Deliver The Power Of Spy++ To Windows Forms With Our New Tool

Article, written by Benjamin Wulfe, summary.

This tool is a combination of an application (exe) and library (dll). The application gives you a spy++ view of all managed processes and thier child windows. Unlike spy++, managed spy allows you to set and get all managed properties such as "BackColor" or "BorderStyle". You can also view managed events such as "MouseMove" or "ItemSelected".

The library portion allows programmatic access to controls in another process. This means you can sync on events and set properties all in your own code. You could use this to create test harnesses, create a diagnostic tool for your application after its deployed or any number of things.

Julian Bucknall on Refactoring and Object Encapsulation

I have been reading Julian Bucknall's books and articles on Delphi for quite some time.

Below are two excellent posts he has recently written:

refactoring != rewriting
object encapsulation and properties

Tuesday, March 07, 2006

Thoughts About UI Design

Thoughts About UI Design

Practical Tips For Boosting The Performance Of Windows Forms Apps

Practical Tips For Boosting The Performance Of Windows Forms Apps

(via Eric Gunnerson)

Borland's Delphi Goodbye

Borland's Delphi Goodbye

As a coworker said: "Sad funny but true".

Saturday, March 04, 2006

Introduction to Object Oriented Web Programming Techniques in C#

Josh Gough has a post titled "Introduction to Object Oriented Web Programming Techniques in C# with Real World Examples". Your typical Object Orientation examples are animals and automobiles - always helps to see real world examples.

Read the full article here: http://apps.ultravioletconsulting.com/projects/uvcwebtransform/tutorial/

Unit Testing and Code Coverage Guidelines

Dave Donaldson has taken the time to write up his thoughts and experiences with unit testing and code coverage.

Thursday, March 02, 2006

100 Bloggers

Today, Troy Worman, invited me to join 100 Bloggers. It’s quite an honor for someone who has just begun blogging. Check over there for some of my off-topic posts - oh my, guess I'll have to start writing some!

Thanks Troy!

Wednesday, March 01, 2006

Features Don't Matter Anymore?

WHY FEATURES DON'T MATTER ANYMORE: THE NEW LAWS OF DIGITAL TECHNOLOGY

10 fundamental rules for the age of user experience technology:

  1. More features isn't better, it's worse.
  2. You can't make things easier by adding to them.
  3. Confusion is the ultimate deal-breaker.
  4. Style matters
  5. Only features that provide a good user experience will be used.
  6. Any feature that requires learning will only be adopted by a small fraction of users.
  7. Unused features are not only useless, they can slow you down and diminish ease of use.
  8. Users do not want to think about technology: what really counts is what it does for them.
  9. Forget about the killer feature. Welcome to the age of the killer user-experience.
  10. Less is difficult, that's why less is more
Makes some interesting points.

Building a SplitButton

Jessica Fosler has a post on creating a SplitButton.