Greg Robinson's Blog

I report it, you decide

Click Once

Custom Authentication in Windows Forms

DataBinding Stuff

Favorite Links

My book contribution

My Book Reviews

My Personal Life

Richmond, VA .NET Users Group

Smart Client Stuff

What I am reading

March 2004 - Posts

My Newest XM Radio station to code to

Channel 80, The Move

One Nation, Underground

The future of dance is here! The Move is America's window into Rave and Club culture, 24 hours a day. Our vinyl collection combines Techno, Trance, House, Jungle and 2-step cuts that make you Move. Each day we feature world class DJ's mixing cutting edge electronic dance music from around the world. It's the ultimate radio adrenaline rush.

Hats off to Janus

We love the Janus controls.  We had to extend their CalendarCombo to handle 'our' default date in sql server, which is 1/1/1800.  Overall, our enhancement to their control for our requirement works well.

We have a strange behavior we are seeing so I sent an email to Janus asking if they could help.  The strange behavior is 100% because of our version of their control (we inherit their control) and I explained that to them.

Well, not only did they suggest a fix, they extended their control to now handle 'other' default values other than Null.  So, I can throw away all of our 1/1/1800 code. Man, these guys are awesome.  Thanks Janus!

Take a peek at what they offer:

http://www.janusys.com/janus/library/

 

The Accord cigarette

OK, I am now pissed.  Phillip Morris stole my idea:

http://www.globalink.org/tobacco/docs/na-docs/aa97123102.html

Brady Gaster can testify for me on this one.  I use to go with him for smoke breaks when we were on a project together 2 years ago.  I kept saying how cool it would be to have a mini "break" cigarette that did not put out as much smoke.  Well, here it is.  The cigarette is the same size, you simply do not waste 1/2 of it while it's burning in your hand and not in your mouth.  

This is on the market BTW.  The 'burner' is approx $45.  Thats it.  I am curious to see how this pans out.  

BTW, I never took the idea to Phillip Morris so I guess I have no reason to complain  ;-)

 

 

Whats a blog...whats a RSS

Aaron Skonnard has just published a nice article on this:

http://msdn.microsoft.com/msdnmag/issues/04/04/XMLFiles/default.aspx

DotNetDevs

Brad Wilson has launched a cool new site:

http://www.dotnetdevs.com/

How is Extreme Programming going so far

We've been having our 5-10 minute stands up. Good.

We've got stories and details documented well.  Good.

Developers are coming up with good estimates.  Good.

First iteration created and assignments made.  Good.

First iteration completed, 50% of stories not completed.  Bad. 

Why?  Nobody took the opportunity to mention other items that took their time away from the project during the 10 minute stand up.  So, make sure everyone knows this is their time to speak.  This is their time to say "I am swamped with support this week and will need more time or help with my tasks."

Secondly, once a developers signs up for a task, they become the "Project Manger" for that task and will follow it through to completion.  That means testing\customer sign off.   

 

  

 

5 minute stand up meetings

We started having our 5 minute stand up meetings (Extreme Programming) this week.  Wow was this painful and awkward at first. 

We had our 4th in a row today and got it done in 7 minutes!  First one took 15.  Let me say, these work.  Our communication on the project has increased dramatically.

 

Validating controls on a TabPage at one time using the Validating event

How do you Validate all of the controls on a TabPage at one time and set focus to one of the controls that fails validation?

Easy, use the TabPages Validating Event.  Problem, this always sets focus to the control the user is currently on.

We have a Form.  On this Form is a TabControl with a TabPage, and on the TabPage are two Textboxes (the app is much more complicated than this example).

There is a data validation requirement: the Textboxes need to either both have data or both be empty.  This validation must be enforced *at the latest* when the user tries to leave the TabPage and not at the Textbox level (cannot use Validating on each textbox).

So far, so good, but there is one more requirement: if validation fails because one TextBox contains data and one does not, THE EMPTY ONE NEEDS TO
RECEIVE FOCUS, so as to prompt the user to enter data.

The solution thus far: handle the Validating event on the TabPage, check the values in the Textboxes, and if validation fails, notify the user with a MessageBox, set focus to the necessary TextBox using MyTextBox.Focus() and set the CancelEventArgs.Cancel = true to signal that validation failed.  The Problem: the call to MyTextBox.Focus() seems to be ignored.  The cursor remains wherever the user had it before the Validating event fired.  Thus it seems the TabPage Validating event is firing at an odd times

The Solution:

Private Delegate Sub SetFocusDelegate(ByVal ctrl As Control)
Private Sub DoSetFocus(ByVal ctrl As Control)
       ctrl.Focus()
End Sub

Public Sub SetFocusDeferred(ByVal ctrl As Control)
       ctrl.BeginInvoke(New SetFocusDelegate(AddressOf DoSetFocus), New Object() {ctrl})
End Sub

Now, instead of calling Focus on control inside the TabPage validating event, call SetFocusDeferred passing the control as an argument.  Because BeginInvoke will post a message, it'll set the focus after all other message handling has completed.

Many thanks to Ian Griffiths for his help on this one.

Brian Noyes WebLog

If you are not listening:

http://www.softinsight.com/bnoyes/CategoryView.aspx?category=.NET

start listening.  Brian has a lot of .NET knowledge and brings good food to the table.

 

 

Wow is it tough being a Project Manager and a full time developer

I have walked these two lines carefully for about 2 years now.  Now, we are getting heavy into process.  This means my Project Manager time is increasing.  Man, its tough doing both.  I feel like I am 90 years old at times.  My memory is failing me, I am getting tasks confused, I show up to a meeting not even knowing what we are talking about when I called the meeting.

Everybody is getting excited about our new process (Lots of Extreme flavors), so that is great.  However, I feel like a Yo-Yo getting yanked all over the place now. 

I enjoy project management.  I hate the admin work though and I hate babysitting.  I am staying positive as all of this process stuff (which I implemented) is going to make a world of difference in the long run. 

 

 

 

More Posts Next page »