mo.notono.us

Monday, November 22, 2004

musicplasma

Craig's Blog lead me to musicplasma.com. Enter a band you like, and this will show you a graphical representation of other bands you might also like, based on sales data from Amazon.

Pretty nifty.

from doron's blaahg: Livemarking your GMail Inbox

This is interesting, but currently quite useless:
FireFox has a feature called Live Bookmarks which essentially makes your bookmarks become an RSS feed reader.

Additionally, GMail has an undocumented feature providing XML feeds of your mailbox. Combine the 2 and you get: doron's blaahg: Livemarking your GMail Inbox

See the comments for why it's not quite so useful.

Thursday, November 04, 2004

'There was an error committing the row back to the data source. Index was out of range'

Do you wish to correct the value?

Another "feature" of the Windows Forms DataGrid that drove me nuts for some time yesterday. Roughly speaking my problem and solution is described here: RE: [aus-dotnet] DataGrid.CurrentRowIndex vs DataGrid.CurrentCell.RowNumber

My problem also seemed to have been caused by setting the DataSource to Nothing/null, which I had done to force a refresh of the grid. As a reminder to myself, this is a better way to refresh the grid:

CType(Me.BindingContext(myGrid.DataSource), CurrencyManager).Refresh()

Also, supposedly one should use the SetDataBinding method rather than setting the DataSource at runtime. I find that strange, as the DataSource property's set statement does almost exactly the same thing as the SetDataBinding method does:

Public Sub set_DataSource(ByVal value As Object)
      If (((Not value Is Nothing) AndAlso Not TypeOf value Is IList) AndAlso Not TypeOf value Is IListSource) Then
            Throw New Exception(SR.GetString("BadDataSourceForComplexBinding"))
      End If
      If ((Me.dataSource Is Nothing) OrElse Not Me.dataSource.Equals(value)) Then
            If (((value Is Nothing) OrElse (value Is Convert.DBNull)) AndAlso Not "".Equals(Me.DataMember)) Then
                  Me.dataSource = Nothing
                  Me.DataMember = ""
            Else
                  Dim flag1 As Boolean
                  If (Not value Is Nothing) Then
                        Me.EnforceValidDataMember(value)
                  End If
                  Me.parentRows.Clear
                  Me.originalState = Nothing
                  Me.caption.BackButtonVisible = (flag1 = False)
                  Me.caption.DownButtonActive = (flag1 = flag1)
                  Me.caption.BackButtonActive = flag1
                  Me.caption.SetDownButtonDirection(Not Me.layout.ParentRowsVisible)
                  Me.Set_ListManager(value, Me.DataMember, False)
            End If
      End If
End Sub
vs.
Public Sub SetDataBinding(ByVal dataSource As Object, ByVal dataMember As String)
      Dim flag1 As Boolean
      Me.parentRows.Clear
      Me.originalState = Nothing
      Me.caption.BackButtonVisible = (flag1 = False)
      Me.caption.DownButtonActive = (flag1 = flag1)
      Me.caption.BackButtonActive = flag1
      Me.caption.SetDownButtonDirection(Not Me.layout.ParentRowsVisible)
      Me.Set_ListManager(dataSource, dataMember, False)
End Sub

Labels: