A friend of mine showed me tiddlywiki last night, which is a light-weight wiki application written in html, javascript, and css. It's surprisingly full-featured given its small size. I played around with it a little today to see what I could do with it and was very pleased. It got me thinking about using something like tiddlywiki as a help file. The problem I have with help-files today is that they are difficult to cross-reference, or to see to related but separate topics together in one place. Tiddlywiki solves both of those problems. You can have any number of topics related by whatever synaptic connections you fancy pulled together on one page. Another advantage of using a wiki as a help document is editing: the user could add their own comments and notes to existing topics. I haven't seen any other help documentation that allows that.
Posted by taganov | with no comments

But in my job I have to wear the DBA hat quite often. I was having a problem today where a query that returns 200 rows was taking 16 seconds to return to my application. The same query run in Query Analyzer came back in .47 seconds. Huh?

One of my co-workers suggested that I run a stored procedure "sp_updateStats" against my database. That fixed the problem. I'm putting this here for future reference, and in case anyone else runs into the same issue. I also added a DBMaintenance object to my application class so that I can update statistics whenever the need arises.

Cheers!

I've been practicting Test Driven Development pretty religiously for about a year now. That and the reading I've done on design patterns and software architecture have dramatically improved my software design and quality. I've got an automated build server set up as well.

That said, I need to print a Reporting Services report directly to the printer. I have code that works, but I haven't been able to figure out how to write a unit test for this that can be executed by the build server. I don't want the build server to send the report to an in-house printer everytime it runs. I'd much rather print it to a file, but a file printer asks for user input (the file name).

Any ideas?

http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html

I"ll blog more about this later. For the past few months I've been immersed in the project I'm working on. (Deep breath) Guess I should get back to it now :-)

Posted by taganov | with no comments
Filed under:

Especially funny to me is wordUnit!

http://www.waterfall2006.com/

I had been looking for some accounting patterns about 5 months ago for a project I've nearly completed now. This morning I came accross Martin Fowler's Development of Further Patterns of Enterprise Application Architecture. I was delighted to find that the solution I came up with for entry, account, and transaction was very similar to the patterns described here. I can say from experience now that these solutions are good. I'd like to recommend them to anyone else needing to provide accounting solutions.

Posted by taganov | 121 comment(s)
Filed under:

I'm off tomorrow to the VS 2005 Launch Event in Atlanta!  I've got a buddy that would like to go, but registration's closed. Does anyone have a ticket that they're not going to use?

I haven't had much time to delve into VS 2005 yet, so I'm really looking forward to the presentations!

I found a weird bug related to attempting to add an inherited control to a VS .NET project. Here are the steps to reproduce:


Here's how to recreate it in Visual Studion .NET 2003 using VB .NET:

  1. Create a new solution.
  2. Add a ClassLibrary project called ClassLibrary1.
  3. Add a ClassLibrary project called ClassLibrary2
  4. Add a WIndows Control project called WindowsControlLibrary1.
  5. In ClassLibrary2, add an interface called IParameter.
  6. In ClassLibrary1, add an interface called ITest.
  7. Add a single method to ITest: "Sub TestRoutine(obj as IParameter)"
  8. In the WindowsControlLibrary1 project, add a usercontrol called UserControl1.
  9. Go ahead and compile the program, and prove that you can "add an inherited control" and that the inheritance picker successfully findes UserControl1 and adds it to the dialog.
  10. In UserControl1, implement ITest. You don't need any code in the method; just include the stub.
  11. Now, recompile, and try to "add an inherited control" again.
  12. See the error:
  13. ---------------------------
    Assembly Load Error
    ---------------------------
    Unable to load assembly '<path>\WindowsControlLibrary1.dll'.  Ensure that the file is a valid .Net Framework assembly.
    ---------------------------
    OK  
    ---------------------------
  14. Now, if you move ITest to the Control Library or to ClassLibrary2, it will succeed again :-)
  15. Interestingly enough, if you change ITest.TestRoutine(obj as IParameter) to ITest.TestRoutine(), the inheritance picker will work again. 
  16. Also, if ITest.TestRoutine() is a function that returns type IParameter, the same problem will occur.

<Code>

ClassLibrary1

Public Interface ITest

Function Test() As ClassLibrary2.IParameter

'Sub TestRoutine(ByVal obj As ClassLibrary2.IParameter) ' Fails

'Sub TestRoutine() ' Passes

End Interface

ClassLibrary2

Public Interface IParameter

End Interface

WindowsControlLibrary1

Public Class UserControl1

Inherits UserControl

Implements ITest

'WINDOWS FORMS DESIGNER GENERATED CODE

'Public Sub TestRoutine(ByVal obj As ClassLibrary2.IParameter) Implements ITest.TestRoutine

' ' fails

'End Sub

Public Function Test() As IParameter Implements ITest.Test

' fails

End Function

'Public Sub TestRoutine() Implements ClassLibrary1.ITest.TestRoutine

' ' Passes

'End Sub

End Class

</Code>

Posted by taganov | 10 comment(s)
Filed under:
Hat's off to Chris Hammond for making public the Visual Studio 2005 Launch Event. I'll be going to the one in Atlanta.

I was having trouble connecting to a remote SQL Server instance using Windows Authentication. I was getting the apparently famous "Not a Trusted Connection" error, (apparently famous because of the number of results google turned up) but none of the standard solutions such as allowing mixed-mode authentication in SQL Server were the culprit.

My problem was further compounded by the fact that I could log in to this server using NT Authentication from any other machine in the domain.  The issue was specific to my development computer--not my domain account or any other setup issue with SQL Server.

My network admin did some research on the problem and discovered a that Windows XP (my development OS) stores some login credentials in a local cache, and that that cache can sometimes be corrupted, or out of sync with the rest of the domain. A quick search of the event viewer revealed that I was getting Kerberos exceptions when attempting a connection to that server. The Event Viewer showed the following message:

"There were password errors using the Credential Manager. To remedy, launch the Stored User Names and Passwords control panel applet, and reenter the password for the credential ********."

A quick perusal of the control panel revealed no such tool (not sure why it wasn't there--but it wasn't).

I found this article to tell how to run the tool. I modified the password stored in XP, and then I was able to access the server from my development machine.

Kudos to my network admin who found this obscure networking issue!

More Posts Next page »