Library Pages

Craig's Utility Library

Since I've started this website, I've tried to help out my fellow programmer by posting snippets of code that I felt would be useful. As time has gone on, finding any or all of these items on the site can be a bit of a chore. As such, I've designed this library (CUL, pronounced "cull") as a set of utilities to deal with fairly common issues, as well as some uncommon ones, with regard to development including:

  • Encryption
    • AES
    • Caesar
    • DES
    • RSA
    • TripleDES
    • Vernam
  • Hashing
    • MD5
    • SHA1
  • Compression
    • Deflate
    • GZip
  • Serialization (XML, SOAP, and binary)
  • File management (including FTP and HTTP)
  • Email
    • Pop3 client (SSL capable)
    • MIME parser
    • SMTP email sending (SSL capable)
    • Exchange inbox email retrieval
  • HTML related functions
  • Javascript related functions (including minification)
  • CSS related functions (including minification)
  • Image manipulation
    • Cropping, resizing, rotating, flipping
    • To black and white or sepia tone
    • Threshold and edge detection
    • Text drawing, watermarks, object drawing helpers
    • Taking a screenshot which spans monitors
    • RGB Histograms
    • Various convolution filters such as sharpen, sobel emboss, etc. along with the ability to create your own easily.
    • Various other filters such as "jitter", pixelate, sin wave, median filter, and dilation, red/green/blue filters,
    • Multiple blurring techniques including box blur, Gaussian blur, Kuwahara, and Symmetric Nearest Neighbor blur
    • Bump map and Normal map helpers
    • ASCII art generator
    • Adjust brightness, gamma, and contrast
  • Active Directory querying
    • Includes functions for active users, all users, all groups, active members in groups, etc.
  • Exchange querying
    • Free/Busy data
    • Get next/previous available time for appointments
    • Get contacts
    • Get appointments/events
    • Get emails
    • Get the GAL
  • SQL query helper
  • File formats/Microformats
    • XMDP
    • RSS (with iTunes/Zune information embedded for podcasts)
    • vCard/hCard
    • vCalendar/hCalendar
    • iCalendar (with email sending capabilities, cancellation, and automatically putting it in Exchange)
    • APML
    • OPML
    • FOAF
    • XFN
    • CSV
    • RSD
    • BlogML
    • INI
  • Code to render a web page to BMP file
  • Icon extraction from a file
  • WebBrowser control cache clearing class
  • Reflection helper
  • Randomization
    • Including string randomization based on allowable characters, date randomization, Color, Enum, TimeSpan, and Lorem Ipsum generation.
  • Environment information
  • Process management
  • Error/Information gathering
  • Track back and ping back helper classes
  • Math related classes
    • Matrix
    • Vector3
    • Set
  • Data types
    • Pair
    • Triple
    • Vector
    • Bag
    • List
    • ListMapping
  • Base classes for various patterns including
    • Singleton
    • Factory
  • OAuth helper class
  • Classes to help with various media services including
    • YouTube
    • Hulu
    • Netflix
  • Classes to help with events
  • WMI query helpers
  • SQL Server structural analysis helpers
  • And some basic data conversion

The zip file contains the solution (Visual Studio 2010), all source files (in C#), compiled DLLs (against .Net 4.0) and documentation. Most of the classes should work with .Net 2.0/3.5 but only a few will work with anything earlier.

Download Craig's Utility Library