Register|Login
 
Navigation
UsersOnline
Membership Membership:
Latest New User Latest: silvestro
New Today New Today: 0
New Yesterday New Yesterday: 0
Overall Users Overall: 606

Users Online People Online:
Visitors Visitors: 2
Members Members: 0
Total Users Total: 2

Onine Now Online Now:

Buy My Modules at Snowcovered.com!
Welcome to ACIA Software 

Welcome to the web site of Kenneth S. Courtney, ACIA Software, and Family. I am a Tampa, Florida software developer specializing in Microsoft .NET Technologies. I am proficient in all aspects of software development including architecture, programming, and configuration management. My business web site can be found at host.aciasoftware.com, where I have detailed information and demos of my two commercial DotNetNuke modules.


If you have come here from the Rhabdoid Kids list looking for Natalie Kay, she has her own site here, please do visit and sign her guest book.

If you are in need of a license key for the ACIASoftware Gallery/Slide Show module, please email me with the domain name you need licensed and I will get you a key asap! Any other problems with that or the ACIA DMS Module, please contact me and again, I will be back with you ASAP!


 

Blog 
HP NC8430 ADI SoundMAx HD Audio Driver Enable Microphone Playback Kenneth Courtney Thursday, August 07, 2008
Kennster's Blog
I figured I should put this somewhere considering how aggravating it was trying to find a solution ... a solution to what you may ask? Well, apparently the recording industry hit up good Ole' M$ to disable the Microphone Line Playback abilities because apparently it is possible to record music this way. You can still record with your microphone and even use it in online games and such, but the volume/monitor functionality is disabled. Fortunately, it is only disabled with a registry hack, and it is possible to recover this functionality, but the amount of effort to do so obviously is out the reach of most.

I personally searched for a solution for the better part of five evenings (on more than one occasion!) and could not find a solution. I did find another person who tried to enable their microphone playback on a similar card by editing the inf file that drives the driver installation process so I figured what the heck so can I.

In any event, I download the ADI SoundMAX HD Audio Driver for Microsoft Vista sp36683 file from HP's support site.

Extracted the files to my local file system.

Located the .inf file in the i386\Vista directory named ADIHdAud.inf

Searched for any keys in the file with disable as the search string.

Found the following section [HpMobileCommon.AddReg].

Commented out the two Disable lines (can't remember what they looked like originally... but the following is from my file after modified).

Uninistalled the driver, reinstalled using the modified .inf below:

[HpMobileCommon.AddReg]
;HKR AD1981 settings
HKR,AD1981, "MonoMux", 1, 0x00
HKR,AD1981, Cmplx, 1, 01 ; Build Complex device (Render\Capture)
HKR,AD1981\\Disable, "MonR", 1, 01 ; Disable Mono Out Record
HKR,AD1981\\Disable, "MicV", 1, 01 ; Disable Microphone Playback
HKR,AD1981, MicBoostValue, 0x00010001, 0x00000010 ; 10 = 0db (off) +10db (on)
HKR,AD1981, MicR, 1, 0B; Set Mic Record Slider
HKR,AD1981, LinR, 1, 0B; Set Line In Record Slider
HKR,AD1981, HPWithMaster, 1, 01 ; Associate headphone volume with front master volme.
HKR,AD1981, JackSense, 0x00010001, 0x00000A00; ; Value for legacy mute table

and now I can sing along with my favorite karaoke songs!

And yes, this is apparently a conspiracy between Microsoft and the Recording industry: I say deliberately disabling such important functionality (which it was in fact deliberately disabled!!!!!) is tantamount to a crime because I spent the better part of four or five evenings trying to figure a solution! I also ended up having to do something similar on my desktop go figure.

ACIA Silverlight Slide Show & Photo Gallery Released on Snowcovered.com Kenneth Courtney Wednesday, January 02, 2008
Kennster's Blog

I am proud to announce that I have released my first independant commercial module on Snowcovered.com: the ACIA Silverlight Slide Show and Photo Gallery. The module provides a management UI for a popular open source Silverlight Slide Show control. The gallery provides a Silverlight 1.0 control for publishing highly-customizable photo slideshows on the Web.

 

Buy My Module at Snowcovered.com!


I traded my 2006 Night Train for a 2006 Honda ST1300 !!! Kenneth Courtney Monday, November 05, 2007
Kennster's Blog

Best decision I ever made.



The Merrits of DotNetNuke for ECommerce Kenneth Courtney Thursday, October 04, 2007
Kennster's Blog

I rarely have an original thought (if I have ever had one) and this entry is no exception. A while back while comparing the Commerce Starter Kit with the DNN Core Store Module, I found an interesting post on “Spooks Blog” (link) discussing the merrits of a DotNetNuke ecommerce module.

In response to this post, Sean Walker posted a very eloquent response, in which I found the following especially pointed and relevant to DotNetNuke's use in a great whole:

“In response to Rob's comment that DNN is not suited for e-commerce, I would obviously have to disagree. The fact is that anyone who needs to sell goods online also needs a whole array of other services on their website. They will want to customize the look of the website to match their business branding. They may want to provide forums for online support of their products. They may want a Newsletter to push information to their customers. They may need to designate private and public areas of their website for inside/outside sales or marketing information. They will need basic pages which describe the company and their mission. DotNetNuke handles all of these requirements and much more. And I am sure an e-commerce application could eventually provide all of these services, but in my opinion it is then losing its main focus - commerce.”

He also addressed performance issues, always a sticky subject with old school manager types:

In terms of performance and scalability, I definitely need to address the facts. DotNetNuke.com is running on a single dedicated web server connected to a database server ( so 2 boxes - no web farm or load balancer ). It is running the DotNetNuke framework with all of the standard defaults for the environment and application - so no custom tweaks or "squeezing" whatsoever ( we purposely avoid custom tweaks so that we stay in touch with our user community ). In January 2006, the site had 4.5 million page views ( or about 150,000 per day ). Obviously, this could scale much higher if we moved to a web farm model ( ie. I have heard of DNN sites handling 1.0M+ page views per day ).

February 16, 2006 3:12 AM
I couldn't have put it any better.

Subsonic + DotNetNuke without Modifying web.config Kenneth Courtney Friday, September 07, 2007
Kennster's Blog

I originally posted most of this in my reply on the SubSonic Community Forums to a thread on how to incorporate SubSonic DAL into a DNN Module without having to modify the web.config file. I figured it would be useful here because I had a bit of a time figuring this out.

To recap what I did (for my test app):

Started with a new Class Library project, named it ACIA.Data, added this to my DotNetNuke 'classic' web application project solution (which includes the BuildSupport assembly which compiles all assemblies into the web site's \Bin folder... another topic but important for module developers).

Set up the Subsonic Command line tool as per instructions in the Club Starter Kit (http://www.codeplex.com/ClubStarterKit) (which is a great starter kit not mentioned many places on Subsonic Community which uses Subsonic very nicely). Generated my code into the \Generated folder just like Club Starter Kit. Using this method, only a single app.config file necessary in the Assembly's root folder.

In my case, I wanted to limit the amount of code I generated to the objects (tables only) in my module, so my entire app.config looked like:

xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

    <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" allowDefinition="MachineToApplication" restartOnExternalChanges="true" requirePermission="false"/>

  configSections>

   

  <connectionStrings>

    <add name="SiteSqlServer" connectionString="Data Source=.; Initial Catalog=DotNetNuke4;Integrated Security=True" providerName="System.Data.SqlClient" />

   

  connectionStrings>

  <SubSonicService defaultProvider="SiteSqlServer">

    <providers>

      <clear/>

      <add name="SiteSqlServer" type="SubSonic.SqlDataProvider, SubSonic"

           connectionStringName="SiteSqlServer" fixPluralClassNames="false"

           spClassName="SPs" generatedNamespace="Database"

           stripTableText="ACIA_"

           includeTableList="ACIA_Committee,ACIA_Media_Files,ACIA_Meeting, ACIA_MeetingCommittee,ACIA_MeetingRSVP,ACIA_Organization,ACIA_UserOrganization"

           includeProcedureList=""

           viewStartsWith=""

           />

    providers>

  SubSonicService>

configuration>

Once code generation was working OK, I created a new class in my ACIA.Data project ... named it Application ... Created new method in the class InitializeProvider:

Imports SubSonic

Imports System.Configuration

 

Public Class SubsonicProvider

    ''' <summary>

    ''' Initialize Subsonic for the default provider.

    ''' </summary>

    ''' <remarks></remarks>

    Public Shared Sub InitializeProvider()

        InitializeProvider("<ConnectionStringNameOne>")

        InitializeProvider("<ConnectionStringNameTwo>")

    End Sub

 

    ''' <summary>

    ''' Initialize Subsonic for given Provider: Convention is to use same name

    ''' for Connection String and Provider name.

    ''' </summary>

    ''' <param name="ProviderName"></param>

    ''' <remarks></remarks>

    Public Shared Sub InitializeProvider(ByVal ProviderName As String)

        If DataService.ProviderCount = 0 Then

            DataService.Provider = New SubSonic.SqlDataProvider()

            DataService.Providers = New DataProviderCollection()

            Dim provider As SubSonic.DataProvider = DataService.Provider

            Dim config As System.Collections.Specialized.NameValueCollection = New System.Collections.Specialized.NameValueCollection()

            config.Add("connectionStringName", ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString)

            provider.Initialize(ProviderName, config)

            provider.DefaultConnectionString = ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString

            provider.GeneratedNamespace = "Data"

            DataService.Providers.Add(provider)

        End If

        If DataService.Providers.Item(ProviderName) Is Nothing Then

            Dim provider As New SubSonic.SqlDataProvider()

            Dim config As System.Collections.Specialized.NameValueCollection = New System.Collections.Specialized.NameValueCollection()

            config.Add("connectionStringName", ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString)

            provider.Initialize(ProviderName, config)

            provider.DefaultConnectionString = ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString

            provider.GeneratedNamespace = "Data"

            DataService.Providers.Add(provider)

        End If

    End Sub

End Class

 

Then in my test method in my module:

        Private Sub TestSubSonic()

            NCIGF.Data.Application.InitializeProvider()

            Dim committee As Database.Committee = New Database.Committee(CommitteeID)

            Debug.WriteLine(committee.Name)

        End Sub

Having to call InitializeProvider before using Subsonic isn't so bad, and ultimately could just be put into a base class in my module project and never be messed with again: the import thing here is that I made no configuration changes to my web.config and was indeed able to exercise my Subsonic Dal.


Plen the Skating Robot Kenneth Courtney Sunday, June 03, 2007
Kennster's Blog

Simple Excel Row To Column Macro Kenneth Courtney Friday, May 18, 2007
Kennster's Blog

I don't understand why Excel doesn't (appear to) have a Row To Column function built in. If it does, I couldn't find it. The following macro does the trick, and only took like five minutes to record edit and run to get right. I figured this has to be a common enough problem, so here was my own solution:

Sub RowToColumn()

 

    Dim i As Integer

    For i = 1 To 27

        Range("B1").Select()

        Selection.Cut(Destination:=Range("A" & i + 1))

        Range("C1:Z1").Select()

        Selection.Cut(Destination:=Range("B1:Y1"))

    Next i

 

End Sub

 


How NOT to Give a Presentation Kenneth Courtney Tuesday, May 08, 2007
Kennster's Blog

I am a Harley Owner Kenneth Courtney Sunday, April 29, 2007
Kennster's Blog
Never again will I have to answer the question "Do you have a bike" with anything but ... "A Night Train!"

Enterprise Application Integration Kenneth Courtney Friday, April 27, 2007
Kennster's Blog

Recently I was fortunate enough to be hired on full time with my current employer as an Enterprise Application Architect. The Software Architect discipline is still in it's infancy, and as such, there are many talks like “The Role of a Software Architect” by Jeff Barnes, a south Florida Microsoft Architect Evangelist. What follows in this blogging is the start a meandering history of my own experience in this field and eventually will include some of the insight I gain in my current integration project.

I would say roughly half of my career or for that many any single project I have worked on has entailed some form of integration and or the maintenance of integration components. On one of my favorite projects, I spent a year on contract the largest home finance corporation on a team of nine programmers and three managers. My team's sole role was the maintenance and support of home grown integration applications interconnecting the numerous loan origination systems with a central proprietary loan processing system. The department wrote and maintained all of the code to perform such activities as orchestrate the a process identical to the case study used in the Enterprise Integration Patterns using BizTalk 2004 white paper. This system used a proprietary asynchronous messaging system to receive and dispatch these loans to third party lending services such as Fanny Mae and Freddy Mac, consolidate these results and post them into the load approval system, wait for the loan approval processor to process the loan, convert the results of the loan approval, and transmit that approval back to the originating system using multiple transport mechanisms including IBM MQ, MSMQ, FTP, and a sophisticated fax back system using Microsoft Word automation and a third party fax solution from Brooktrout technology.

Elsewhere, I designed, coded, documented, and implemented a CRM consolidating the disparate practices of a rapidly growing health care industry software company in downtown St. Pete. At this company, my partner and I developed a CRM framework which used an elegant multi-tier architecture and meta data to “inflate” smart objects which included many cool capabilities including field level role-based security, data binding, and more. This system replaced five separate departments existing systems including custom asp applications, access databases, excel spread sheets, and a few sneaker nets: all in about four months. About a year after I left, the system was replaced with a commercial package. I am certain the lessons learned in that integration process were invaluable to their successful deployment of the new CRM package.

To be continued ...


Happy Pilot
Natalie
Acrylic PC Case
Ken with ST1300
July 17 Wisp
Links