Craig's Utility Library, HaterAide, and YABOV updated


This is another one of those boring posts but today I released the latest versions of Craig's Utility Library (the collection of code from this site), HaterAide ORM, and YABOV (Yet Another Business Object Validator). HaterAide and YABOV are mostly bug/memory leak fixes. In the case of Craig's Utility Library, it now contains fixes for any memory leaks as well as new items listed below:

  • Naive Bayes classifier added.
  • The following data types added:
    • Priority queue
    • BTree
  • Speech recognition helper added
  • Speech synthesis helper added
  • Multi threading helper added
  • Added class for searching Craigslist
  • Added class for searching eBay
  • Ping class added
  • Pingback/Trackback classes moved to different namespace
  • Fixed YouTube file downloading to work with new site update.
  • Updated some of the internal code of various classes to take advantage of new functions that have been added.
It doesn't have the Tivo code in there. I'm still working with the downloading of the files and it seems that Direct Show Dump is no longer available, so I need to add converting them to my list... Anyway, download the new release, leave feedback, and happy coding.


James Craig
November 30, 2009 1:52 PM

Sorry for the delay but it is indeed busted in that instance. I do have a fix that will be uploaded in the next version of the library. For now all you need to do is switch out the constructor of the CSV class for the following:public CSV(string FileContent){Regex TempSplitter = new Regex("[^\"\r\n$]*(\r\n|\n|$)|(([^\"\r\n$]*)(\"[^\"]*\")([^\"\r\n$]*))*(\r\n|\n|$)");MatchCollection Matches = TempSplitter.Matches(FileContent);foreach (Match Match in Matches){if (!string.IsNullOrEmpty(Match.Value)){Rows.Add(new Row(Match.Value));}}}and replace the constructor of the Row class for this:public Row(string Content){Regex TempSplitter = new Regex("(?\"(?:[^\"]|\"\")*\"|[^,\r\n]*?)(?,|\r\n|\n|$)");MatchCollection Matches = TempSplitter.Matches(Cont

November 30, 2009 8:03 AM

just going thru the code of CUL, found a bug with CSV handling, it will not work if any comma is part of value.i.e. if the csv file contains data like :code,firstname,lastname,address1,zip1,jane,norman,"1,marks lane",70098then your code will assume there are 5 columns in first row & 6 columns in second row as address1 field value contains comma.